mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 20:45:31 +00:00
Compare commits
267 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0919a9732e | |||
| 52a941f0fa | |||
| e661f6d942 | |||
| b5160bbbfa | |||
| 2df27d2a0e | |||
|
|
0c0f3823e4 | ||
|
|
5fb433f7ac | ||
| 0fc08678a2 | |||
| ff83bc9ef1 | |||
| 492cb4dbd8 | |||
| bc608cd578 | |||
| acae4fec73 | |||
| 446d8971e7 | |||
| 2f917c9285 | |||
| 1d851708eb | |||
|
|
c3d4b51927 | ||
| 6d8c04977c | |||
| 64fc8a13d3 | |||
| 73e6f8a321 | |||
| 68727e4869 | |||
| c10654c50a | |||
| 4de181e3b2 | |||
| 8eb0d2bcab | |||
| 3154fabe26 | |||
| fb9301c095 | |||
| 906487f939 | |||
| 11c0a05c84 | |||
| 1ced69d3d7 | |||
| 168194aa74 | |||
| 51afab44ef | |||
| 31e04ce865 | |||
| 6b76bc825c | |||
| 10994347aa | |||
| 76b2236c63 | |||
| 288e63c9d9 | |||
| eb7267736e | |||
| b1c9032c7d | |||
| 2a805cf3e3 | |||
| 32566d0004 | |||
| 9fb925b38c | |||
| 3af8d8b638 | |||
| 4bb434b795 | |||
| b38b887098 | |||
| a81c8e56a8 | |||
|
|
1ffa9dfc9d | ||
|
|
d45d1107fa | ||
| edd0c4cba0 | |||
| 103aa08664 | |||
|
|
b8ba7a0681 | ||
|
|
e1db55f113 | ||
|
|
d519af562a | ||
| 7493fd6401 | |||
| 217664ffc2 | |||
| 7998705d3b | |||
| 2f043d8b37 | |||
| a103fbddbe | |||
| b583b0be83 | |||
| 52323803dc | |||
| 2026b6adfe | |||
| bb4eb1f8c7 | |||
| daff9f957a | |||
| 91c8410eb0 | |||
| 68bb53435d | |||
|
|
cd5cea172a | ||
| e3f5bbad00 | |||
| 1185524e97 | |||
| ac18c73f53 | |||
| bf4730a1f3 | |||
| 3ea0ba687c | |||
| b5df810075 | |||
| fab40dae96 | |||
| c6567f4f98 | |||
| 2ecbefecf7 | |||
| 90bc744d51 | |||
|
|
e46dadb128 | ||
| 3368217108 | |||
| 85fbc8684b | |||
| a3acd654f2 | |||
| 49362fcc9d | |||
| 742b4af0e8 | |||
| aebb0dadbd | |||
|
|
a7e68f1224 | ||
| 42706adf0b | |||
| fef9398a86 | |||
| c37df72f12 | |||
|
|
45a2330425 | ||
| 0596c51a0e | |||
| 8f4ad21ed8 | |||
| 491f733221 | |||
| 6eefbdc965 | |||
| 558b6500d3 | |||
|
|
23a34c1447 | ||
| 816ff7cd17 | |||
| fd3ba99ffc | |||
| c5454a36f3 | |||
| d32b43d7a0 | |||
| 9e3cc80694 | |||
| cd0fff756e | |||
| f8bde72337 | |||
|
|
afd28f8469 | ||
| 26ba1ac2a7 | |||
| 5d520d3f3f | |||
| 1d3ed5bfd0 | |||
| c80b577a5a | |||
| 4e2ee377f2 | |||
| d7106ae28f | |||
| a864d31e84 | |||
| b462ae20bf | |||
| 2cd1e7e0dd | |||
| c951dde930 | |||
|
|
a570cef49b | ||
| 441ba01455 | |||
| 73a00fcdf0 | |||
| 205ea28e16 | |||
| ade8162660 | |||
| 1745a15acf | |||
| ad08a2956e | |||
| 8d2083be4c | |||
| 87281a436f | |||
| 4ec9444e29 | |||
|
|
95d358ae3d | ||
|
|
cea61a5719 | ||
|
|
28c29d94f2 | ||
|
|
1028d3847c | ||
| 3498c6b739 | |||
| 83eb7d861e | |||
| 22090129ec | |||
|
|
5b0ca2a63b | ||
|
|
c5fa136a1f | ||
|
|
9a63aaff74 | ||
| 5e68077ac2 | |||
| 72b9acd710 | |||
|
|
469044bb2a | ||
|
|
96a362474c | ||
|
|
1b9dfac671 | ||
|
|
7dbaf8204b | ||
|
|
415d7d9026 | ||
|
|
6734d3c1ab | ||
|
|
b20d08aa69 | ||
|
|
e4da7534f8 | ||
| b39f7ec598 | |||
|
|
0f8c1ef457 | ||
|
|
4b31ad9a7b | ||
| 4d60d15831 | |||
|
|
90125c7278 | ||
| 0035575f8b | |||
|
|
865c0aa33b | ||
|
|
5fe7bc3527 | ||
| 0d1b35ef09 | |||
|
|
bee0340493 | ||
| fbdc9c741a | |||
| 0ac0d05db6 | |||
| 1c432da880 | |||
|
|
7e0cc9ec43 | ||
|
|
8c4b6d2983 | ||
|
|
5b4cf1bb2f | ||
| c9edd4bf84 | |||
| 1023228ddc | |||
| 8f8851d08f | |||
| 2b06642e4b | |||
|
|
52cbebc0b3 | ||
| 2b64164f2b | |||
| 7c8fb993a2 | |||
|
|
e745583f07 | ||
| 5762d57eb1 | |||
|
|
4b1d860cb5 | ||
|
|
288580c150 | ||
|
|
e535301139 | ||
| 58ba14aa47 | |||
|
|
a4a0d2e0f1 | ||
| c953f902ca | |||
| 3d917454a0 | |||
| 5b34ecfb97 | |||
| 1817cf6962 | |||
| bc914a1c5f | |||
| 48b9df95ab | |||
| 2799e80b2d | |||
|
|
5bbc241ec9 | ||
| 5e00422a28 | |||
|
|
44eacf9261 | ||
| 4f2c1f0b9b | |||
| 0fdc9fd08a | |||
| 65aaa4bec2 | |||
| a8835daede | |||
| 39ddc2ae00 | |||
| 06c2686815 | |||
| b259e4b992 | |||
|
|
47703cd182 | ||
| 6d31371af4 | |||
| c2250ee80c | |||
| a1d075fc0d | |||
| a3cc12aae1 | |||
| 808748a050 | |||
|
|
e29507ee61 | ||
| bd6408b024 | |||
| 45cf9ef2a5 | |||
| 5cc78e14e4 | |||
| 5683809e18 | |||
| 723d40a704 | |||
|
|
55ce79d9d1 | ||
|
|
fdd3845cf5 | ||
| 3e911755d2 | |||
| f3dff521f7 | |||
| cf1ccd6f39 | |||
| 2e963fa29e | |||
|
|
f595d437c9 | ||
| e7d0b4167a | |||
| f20fe04ed8 | |||
| 2b78d648c2 | |||
| ae2deef5fa | |||
| 8fc60ade75 | |||
| 34160d34dc | |||
| 5fab8e1cab | |||
| 1a612fef62 | |||
| ce5e9681fd | |||
| cab855380f | |||
| e7578e4905 | |||
| 3fce0ac4dc | |||
| b89213ffb5 | |||
| 823e9cc381 | |||
| 8be55a7c76 | |||
| f4fb53abaa | |||
| 66c31c3d3f | |||
| 1a8c32bf4c | |||
| 864fbc18da | |||
| b688ee7503 | |||
| 9dfb7a3c4a | |||
| 192ca6d26c | |||
| b5dd8c3eab | |||
| d2a84e6d20 | |||
| e29bd04c7d | |||
| 2b6fa42f17 | |||
| 8de487250d | |||
| e5fe49834d | |||
| edd56c80eb | |||
| eaedd40e06 | |||
| 06a53759ac | |||
| 3c98117c05 | |||
| c3aa6b77e5 | |||
| 66739fa765 | |||
| ff01a27b3c | |||
| 383855f23a | |||
| a5db6a465e | |||
| 293b847f79 | |||
| df14c71c17 | |||
| 29d46c5790 | |||
| d6565761ab | |||
| 0feb7a47ae | |||
| 161d0b8875 | |||
| d7f7240348 | |||
| 7de714161c | |||
| 263fca5839 | |||
| 02577547ce | |||
| 7f11a7073e | |||
| af38f7aa45 | |||
| 74df61ed1d | |||
| 6126827503 | |||
| fb48a86b27 | |||
| f84d70ea61 | |||
| 14f02a2b93 | |||
| 9f60efee33 | |||
| a834a9138a | |||
| 3a9ca6edab | |||
| d8292ca033 | |||
| e929b85669 | |||
| 775d2abf13 | |||
| 740ad17207 |
3
.actrc
Normal file
3
.actrc
Normal file
@@ -0,0 +1,3 @@
|
||||
--container-architecture linux/amd64
|
||||
--env-file .env
|
||||
--secret-file .env
|
||||
19
.ecrc
Normal file
19
.ecrc
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"Version": "2.7.0",
|
||||
"Verbose": false,
|
||||
"Debug": false,
|
||||
"IgnoreDefaults": false,
|
||||
"SpacesAftertabs": false,
|
||||
"NoColor": false,
|
||||
"Exclude": [],
|
||||
"AllowedContentTypes": [],
|
||||
"PassedFiles": [],
|
||||
"Disable": {
|
||||
"EndOfLine": false,
|
||||
"Indentation": false,
|
||||
"InsertFinalNewline": false,
|
||||
"TrimTrailingWhitespace": false,
|
||||
"IndentSize": false,
|
||||
"MaxLineLength": false
|
||||
}
|
||||
}
|
||||
@@ -7,3 +7,23 @@ indent_size = 2
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.php]
|
||||
indent_size = 4
|
||||
|
||||
[.git{ignore,modules}]
|
||||
indent_style = tab
|
||||
indent_size = 1
|
||||
|
||||
[*.plist]
|
||||
indent_size = 1
|
||||
indent_style = tab
|
||||
|
||||
[{local/bin/*,**/*.sh,**/zshrc}]
|
||||
shell_variant = bash # --language-variant
|
||||
binary_next_line = true
|
||||
switch_case_indent = true # --case-indent
|
||||
space_redirects = true
|
||||
keep_padding = true
|
||||
function_next_line = true # --func-next-line
|
||||
|
||||
|
||||
6
.gitattributes
vendored
6
.gitattributes
vendored
@@ -219,3 +219,9 @@ git/* text
|
||||
**/git/* text
|
||||
**/alias text
|
||||
ssh/* text
|
||||
|
||||
# Git Crypt special files
|
||||
*-secret filter=git-crypt diff=git-crypt
|
||||
*.key filter=git-crypt diff=git-crypt
|
||||
secrets/** filter=git-crypt diff=git-crypt
|
||||
|
||||
|
||||
118
.github/README.md
vendored
Normal file
118
.github/README.md
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
# .dotfiles
|
||||
|
||||
Welcome to [ivuorinen](https://github.com/ivuorinen)'s .dotfiles repository.
|
||||
It's a hodgepodge of scripts and configurations, tests and mistakes I'm not
|
||||
aware of yet. As I find more interesting tools, configs and other stuff,
|
||||
this repository will live accordingly.
|
||||
|
||||
Please for the love of everything good do not use these 1:1 as your own dotfiles,
|
||||
fork or download the repo as a zip and go from there with your own configs.
|
||||
|
||||
## Setup
|
||||
|
||||
### First time setup
|
||||
|
||||
1. Clone this repository to `$HOME/.dotfiles`
|
||||
2. `./install`
|
||||
3. ???
|
||||
4. Profit
|
||||
|
||||
### Updates
|
||||
|
||||
`cd $HOME/.dotfiles && git pull && ./install`
|
||||
|
||||
## The looks
|
||||
|
||||
## tmux with powerlevel10k, the default view
|
||||
|
||||

|
||||
|
||||
## tmux + nvim (astronvim) editing this repository
|
||||
|
||||

|
||||
|
||||
## Interesting files and locations
|
||||
|
||||
### Interesting folders
|
||||
|
||||
| Path | Description |
|
||||
|---------------------|----------------------------------------------|
|
||||
| `.github` | GitHub Repository configuration files. |
|
||||
| `hosts/{hostname}/` | Configs that should apply to that host only. |
|
||||
| `local/bin` | Helper scripts that I've collected or wrote. |
|
||||
| `scripts` | Setup scripts. |
|
||||
|
||||
### dotfile folders
|
||||
|
||||
| Repo | Destination | Description |
|
||||
|-----------|-------------|---------------------------------------------|
|
||||
| `base/` | `.*` | `$HOME` level files. |
|
||||
| `config/` | `.config/` | Configurations for applications. |
|
||||
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
|
||||
| `ssh/` | `.ssh/` | SSH Configurations. |
|
||||
|
||||
### dfm - the dotfiles manager
|
||||
|
||||
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
|
||||
|
||||
## Configuration
|
||||
|
||||
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
|
||||
|
||||
### XDG Variables
|
||||
|
||||
| Env | Default | Short description |
|
||||
|--------------------|----------------------|------------------------------------------------|
|
||||
| `$XDG_BIN_HOME` | `$HOME/.local/bin` | Local binaries |
|
||||
| `$XDG_CONFIG_HOME` | `$HOME/.config` | User-specific configs |
|
||||
| `$XDG_DATA_HOME` | `$HOME/.local/share` | User-specific data files |
|
||||
| `$XDG_STATE_HOME` | `$HOME/.local/state` | App state that should persist between restarts |
|
||||
|
||||
#### XDG_BIN_HOME (`$HOME/.local/bin`)
|
||||
|
||||
`$XDG_BIN_HOME` defines directory that contains local binaries.
|
||||
|
||||
User-specific executable files may be stored in `$HOME/.local/bin`.
|
||||
Distributions should ensure this directory shows up in the UNIX `$PATH`
|
||||
environment variable, at an appropriate place.
|
||||
|
||||
#### XDG_DATA_HOME (`$HOME/.local/share`)
|
||||
|
||||
`$XDG_DATA_HOME` defines the base directory relative to which
|
||||
user-specific *data files* should be stored.
|
||||
|
||||
If `$XDG_DATA_HOME` is either not set or empty,
|
||||
a default equal to `$HOME/.local/share` should be used.
|
||||
|
||||
#### XDG_CONFIG_HOME (`$HOME/.config`)
|
||||
|
||||
`$XDG_CONFIG_HOME` defines the base directory relative to which
|
||||
user-specific *configuration files* should be stored.
|
||||
|
||||
If `$XDG_CONFIG_HOME` is either not set or empty,
|
||||
a default equal to `$HOME/.config` should be used.
|
||||
|
||||
#### XDG_STATE_HOME (`$HOME/.local/state`)
|
||||
|
||||
`$XDG_STATE_HOME` defines the base directory relative to which
|
||||
user-specific *state files* should be stored.
|
||||
|
||||
If `$XDG_STATE_HOME` is either not set or empty,
|
||||
a default equal to `$HOME/.local/state` should be used.
|
||||
|
||||
The `$XDG_STATE_HOME` contains *state data* that should
|
||||
*persist between (application) restarts*, but that is not important or
|
||||
portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
|
||||
|
||||
- It may contain:
|
||||
- actions history (logs, history, recently used files, …)
|
||||
- current state of the application that can be reused
|
||||
on a restart (view, layout, open files, undo history, …)
|
||||
|
||||
#### XDG_DATA_DIRS
|
||||
|
||||
`$XDG_DATA_DIRS` defines the preference-ordered set of base directories
|
||||
to search for data files in addition to the `$XDG_DATA_HOME` base directory.
|
||||
The directories in `$XDG_DATA_DIRS` should be seperated with a colon ':'.
|
||||
|
||||
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||
7
.github/dependabot.yml
vendored
Normal file
7
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
updates:
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
0
renovate.json → .github/renovate.json
vendored
0
renovate.json → .github/renovate.json
vendored
BIN
.github/screenshots/tmux-astronvim-130x40.png
vendored
Normal file
BIN
.github/screenshots/tmux-astronvim-130x40.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
BIN
.github/screenshots/tmux-nvim-astronvim.png
vendored
Normal file
BIN
.github/screenshots/tmux-nvim-astronvim.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
BIN
.github/screenshots/tmux-powerlevel10k-130x20.png
vendored
Normal file
BIN
.github/screenshots/tmux-powerlevel10k-130x20.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
.github/screenshots/tmux-starship.png
vendored
Normal file
BIN
.github/screenshots/tmux-starship.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
35
.github/tag-changelog-config.js
vendored
Normal file
35
.github/tag-changelog-config.js
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
module.exports = {
|
||||
types: [
|
||||
{ types: ['feat', 'feature', 'Feat'], label: '🎉 New Features' },
|
||||
{ types: ['fix', 'bugfix', 'Fix'], label: '🐛 Bugfixes' },
|
||||
{ types: ['improvements', 'enhancement'], label: '🔨 Improvements' },
|
||||
{ types: ['perf'], label: '🏎️ Performance Improvements' },
|
||||
{ types: ['build', 'ci'], label: '🏗️ Build System' },
|
||||
{ types: ['refactor'], label: '🪚 Refactors' },
|
||||
{ types: ['doc', 'docs'], label: '📚 Documentation Changes' },
|
||||
{ types: ['test', 'tests'], label: '🔍 Tests' },
|
||||
{ types: ['style', 'codestyle'], label: '💅 Code Style Changes' },
|
||||
{ types: ['chore', 'Chore'], label: '🧹 Chores' },
|
||||
{ types: ['other', 'Other'], label: 'Other Changes' },
|
||||
],
|
||||
|
||||
excludeTypes: [],
|
||||
|
||||
renderTypeSection: function (label, commits) {
|
||||
let text = `\n## ${ label }\n\n`
|
||||
|
||||
commits.forEach((commit) => {
|
||||
const scope = commit.scope ? `**${ commit.scope }:** ` : ''
|
||||
text += `- ${ scope }${ commit.subject }\n`
|
||||
})
|
||||
|
||||
return text
|
||||
},
|
||||
|
||||
renderChangelog: function (release, changes) {
|
||||
const now = new Date()
|
||||
const d = now.toISOString().substring(0, 10);
|
||||
const header = `# ${ release } - ${ d }\n`;
|
||||
return header + changes + '\n\n'
|
||||
},
|
||||
}
|
||||
18
.github/workflows/changelog.yml
vendored
Normal file
18
.github/workflows/changelog.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: Debug Changelog # Workflow name displayed on GitHub
|
||||
on:
|
||||
workflow_dispatch: # Trigger manually
|
||||
jobs:
|
||||
debug-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create changelog text
|
||||
id: changelog
|
||||
uses: loopwerk/tag-changelog@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: .github/tag-changelog-config.js
|
||||
- name: "Echo results"
|
||||
id: output-changelog
|
||||
run: |
|
||||
echo "${{ steps.changelog.outputs.changes }}"
|
||||
2
.github/workflows/linters.yml
vendored
2
.github/workflows/linters.yml
vendored
@@ -5,7 +5,7 @@ jobs:
|
||||
name: Linters
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: GitHub Actions
|
||||
uses: reviewdog/action-actionlint@v1
|
||||
with:
|
||||
|
||||
34
.github/workflows/new-release.yml
vendored
Normal file
34
.github/workflows/new-release.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Release Daily State # Workflow name displayed on GitHub
|
||||
on:
|
||||
workflow_dispatch: # Trigger manually
|
||||
schedule:
|
||||
- cron: "30 20 * * *" # UTC is 2-3 hours behind Europe/Helsinki, my timezone
|
||||
permissions:
|
||||
contents: write
|
||||
jobs:
|
||||
new-daily-release:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
created: ${{ steps.daily-version.outputs.created }}
|
||||
version: ${{ steps.daily-version.outputs.version }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4 # Checkout our working repository
|
||||
- name: Create tag if necessary
|
||||
uses: fregante/daily-version-action@v2
|
||||
id: daily-version
|
||||
- name: Create changelog text
|
||||
if: steps.daily-version.outputs.created
|
||||
id: changelog
|
||||
uses: loopwerk/tag-changelog@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
config_file: .github/tag-changelog-config.js
|
||||
- name: Create release
|
||||
if: steps.daily-version.outputs.created
|
||||
uses: actions/create-release@latest
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ steps.daily-version.outputs.version }}
|
||||
release_name: Release ${{ steps.daily-version.outputs.version }}
|
||||
body: ${{ steps.changelog.outputs.changes }}
|
||||
36
.github/workflows/update-submodules.yml
vendored
Normal file
36
.github/workflows/update-submodules.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
name: Update submodules
|
||||
on:
|
||||
schedule: [{cron: 0 3 * * *}]
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
jobs:
|
||||
update-submodules:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
token: ${{secrets.GITHUB_TOKEN}}
|
||||
- name: Config Git User
|
||||
run: |
|
||||
git config --global user.name "${{ github.actor }}"
|
||||
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
- name: Update submodules
|
||||
run: |
|
||||
if git commit -am"chore(git): Update submodules (automated)
|
||||
|
||||
$(git submodule --quiet foreach \
|
||||
'tag="$(git describe --tags --abbrev=0 origin/HEAD)"
|
||||
if [ "$(git describe --tags)" != "$tag" ]; then
|
||||
git checkout --quiet "$tag"
|
||||
echo "$name" "$tag"
|
||||
fi')"
|
||||
then
|
||||
git show --raw
|
||||
git push
|
||||
fi
|
||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -4,3 +4,13 @@ Brewfile.lock.json
|
||||
*cache
|
||||
.idea
|
||||
.vscode
|
||||
config/cheat/cheatsheets/pure-bash-bible/*
|
||||
config/cheat/cheatsheets/tldr/*
|
||||
config/git/credentials
|
||||
config/npm/npmrc
|
||||
config/zsh/.zcompdump
|
||||
ssh/local.d/*
|
||||
!ssh/local.d/.gitkeep
|
||||
!.gitkeep
|
||||
.env
|
||||
|
||||
|
||||
44
.gitmodules
vendored
44
.gitmodules
vendored
@@ -1,28 +1,46 @@
|
||||
# vim: set expandtab:
|
||||
[submodule "dotbot"]
|
||||
path = dotbot
|
||||
path = tools/dotbot
|
||||
url = https://github.com/anishathalye/dotbot.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "dotbot-brew"]
|
||||
path = dotbot-brew
|
||||
path = tools/dotbot-brew
|
||||
url = https://github.com/wren/dotbot-brew.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "dotbot-include"]
|
||||
path = dotbot-include
|
||||
path = tools/dotbot-include
|
||||
url = https://gitlab.com/gnfzdz/dotbot-include.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "config/nvim"]
|
||||
path = config/nvim
|
||||
url = https://github.com/AstroNvim/AstroNvim.git
|
||||
[submodule "cheat-community"]
|
||||
path = config/cheat/cheatsheets/community
|
||||
url = https://github.com/cheat/cheatsheets.git
|
||||
ignore = dirty
|
||||
branch = main
|
||||
update = checkout
|
||||
|
||||
[submodule "config/astronvim/lua/user"]
|
||||
path = config/astronvim/lua/user
|
||||
url = https://github.com/ivuorinen/astronvim_config.git
|
||||
update = rebase
|
||||
branch = main
|
||||
[submodule "tmux/tpm"]
|
||||
path = config/tmux/plugins/tpm
|
||||
url = https://github.com/tmux-plugins/tpm.git
|
||||
ignore = dirty
|
||||
[submodule "tmux/catppuccin"]
|
||||
path = config/tmux/plugins/tmux
|
||||
url = https://github.com/catppuccin/tmux.git
|
||||
[submodule "tmux/tmux-continuum"]
|
||||
path = config/tmux/plugins/tmux-continuum
|
||||
url = https://github.com/tmux-plugins/tmux-continuum
|
||||
[submodule "tmux/tmux-menus"]
|
||||
path = config/tmux/plugins/tmux-menus
|
||||
url = https://github.com/jaclu/tmux-menus.git
|
||||
[submodule "tmux/tmux-resurrect"]
|
||||
path = config/tmux/plugins/tmux-resurrect
|
||||
url = https://github.com/tmux-plugins/tmux-resurrect
|
||||
[submodule "tmux/tmux-sensible"]
|
||||
path = config/tmux/plugins/tmux-sensible
|
||||
url = https://github.com/tmux-plugins/tmux-sensible.git
|
||||
[submodule "tmux/tmux-sessionist"]
|
||||
path = config/tmux/plugins/tmux-sessionist
|
||||
url = https://github.com/tmux-plugins/tmux-sessionist.git
|
||||
[submodule "tmux/tmux-yank"]
|
||||
path = config/tmux/plugins/tmux-yank
|
||||
url = https://github.com/tmux-plugins/tmux-yank.git
|
||||
|
||||
6
.ignore
Normal file
6
.ignore
Normal file
@@ -0,0 +1,6 @@
|
||||
.git/**
|
||||
config/cheat/cheatsheets/community/**
|
||||
tools/dotbot/**
|
||||
tools/dotbot-brew/**
|
||||
tools/dotbot-include/**
|
||||
|
||||
19
.markdownlint.json
Normal file
19
.markdownlint.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"extends": "markdownlint/style/prettier",
|
||||
"code-block-style": {
|
||||
"style": "fenced"
|
||||
},
|
||||
"code-fence-style": {
|
||||
"style": "backtick"
|
||||
},
|
||||
"heading-style": {
|
||||
"style": "atx"
|
||||
},
|
||||
"no-duplicate-heading": {
|
||||
"siblings_only": true
|
||||
},
|
||||
"required-headings": false,
|
||||
"ul-style": {
|
||||
"style": "dash"
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
3
|
||||
3.11
|
||||
|
||||
26
.shellcheckrc
Normal file
26
.shellcheckrc
Normal file
@@ -0,0 +1,26 @@
|
||||
# This is shellcheck configuration file.
|
||||
|
||||
# Set whether or not to follow arbitrary file
|
||||
# paths in source statements (since 0.8.0).
|
||||
external-sources=true
|
||||
includeAllWorkspaceSymbols=true
|
||||
|
||||
# SC2039: In POSIX sh, 'local' is undefined.
|
||||
# https://github.com/koalaman/shellcheck/wiki/SC2039
|
||||
disable=SC2039
|
||||
|
||||
# SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.
|
||||
# https://github.com/koalaman/shellcheck/wiki/SC2166
|
||||
disable=SC2166
|
||||
|
||||
# SC2154: Variable is referenced but not assigned
|
||||
# https://github.com/koalaman/shellcheck/wiki/SC2154
|
||||
disable=SC2154
|
||||
|
||||
# SC1091: Not following <file>
|
||||
# https://github.com/koalaman/shellcheck/wiki/SC1091
|
||||
disable=SC1091
|
||||
|
||||
# SC2174: When used with -p, -m only applies to the deepest directory.
|
||||
# https://github.com/koalaman/shellcheck/wiki/SC2174
|
||||
disable=SC2174
|
||||
10
.stylua.toml
Normal file
10
.stylua.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
column_width = 120
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferDouble"
|
||||
call_parentheses = "Always"
|
||||
collapse_simple_statement = "Always"
|
||||
|
||||
[sort_requires]
|
||||
enabled = true
|
||||
4
.yamlfmt
4
.yamlfmt
@@ -18,7 +18,5 @@ include:
|
||||
- ./**/*.{yml,yaml}
|
||||
|
||||
exclude:
|
||||
- ./dotbot/**
|
||||
- ./dotbot-*/**
|
||||
- ./config/astronvim/**
|
||||
- ./tools/**
|
||||
- ./config/nvim/**
|
||||
|
||||
2
.yamlignore
Normal file
2
.yamlignore
Normal file
@@ -0,0 +1,2 @@
|
||||
# .yamlignore
|
||||
|
||||
94
README.md
94
README.md
@@ -1,94 +0,0 @@
|
||||
# .dotfiles
|
||||
|
||||
Welcome to [ivuorinen](https://github.com/ivuorinen)'s .dotfiles repository.
|
||||
It's a hodgepodge of scripts and configurations, tests and mistakes I'm not
|
||||
aware of yet. As I find more interesting tools, configs and other stuff,
|
||||
this repository will live accordingly.
|
||||
|
||||
Please for the love of everything good do not use these 1:1 as your own dotfiles,
|
||||
fork or download the repo as a zip and go from there with your own configs.
|
||||
|
||||
## Setup
|
||||
|
||||
### First time setup
|
||||
|
||||
1. Clone this repository to `$HOME/.dotfiles`
|
||||
2. `./install`
|
||||
3. ???
|
||||
4. Profit
|
||||
|
||||
## Interesting files and locations
|
||||
|
||||
### Interesting folders
|
||||
|
||||
| Path | Description |
|
||||
| ------------------- | -------------------------------------------- |
|
||||
| `.github` | GitHub Repository configuration files. |
|
||||
| `hosts/{hostname}/` | Configs that should apply to that host only. |
|
||||
| `local/bin` | Helper scripts that I've collected or wrote. |
|
||||
| `scripts` | Setup scripts. |
|
||||
|
||||
### dotfile folders
|
||||
|
||||
| Repo | Destination | Description |
|
||||
| --------- | ----------- | ------------------------------------------- |
|
||||
| `base/` | `.*` | `$HOME` level files. |
|
||||
| `config/` | `.config/` | Configurations for applications. |
|
||||
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
|
||||
| `ssh/` | `.ssh/` | SSH Configurations. |
|
||||
|
||||
### dfm - the dotfiles manager
|
||||
|
||||
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
|
||||
|
||||
## Configuration
|
||||
|
||||
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
|
||||
|
||||
### XDG Variables
|
||||
|
||||
| Var | Default |
|
||||
| ------------------ | -------------------- |
|
||||
| `$XDG_DATA_HOME` | `$HOME/.local/share` |
|
||||
| `$XDG_STATE_HOME` | `$HOME/.local/state` |
|
||||
| `$XDG_CONFIG_HOME` | `$HOME/.config` |
|
||||
| `$XDG_BIN_HOME` | `$HOME/.local/bin` |
|
||||
|
||||
- `$XDG_BIN_HOME` is a custom `env` for `.local/bin` folder.
|
||||
- `$XDG_DATA_HOME` defines the base directory relative to which user-specific data
|
||||
files should be stored. If `$XDG_DATA_HOME` is either not set or empty,
|
||||
a default equal to `$HOME/.local/share` should be used.
|
||||
- `$XDG_CONFIG_HOME` defines the base directory relative to which user-specific configuration
|
||||
files should be stored. If `$XDG_CONFIG_HOME` is either not set or empty,
|
||||
a default equal to `$HOME/.config` should be used.
|
||||
- `$XDG_STATE_HOME` defines the base directory relative
|
||||
to which user-specific state files should be stored.
|
||||
If `$XDG_STATE_HOME` is either not set or empty, a default
|
||||
equal to `$HOME/.local/state` should be used.
|
||||
- The `$XDG_STATE_HOME` contains state data that should persist
|
||||
between (application) restarts,
|
||||
but that is not important or portable enough to the user that
|
||||
it should be stored in `$XDG_DATA_HOME`.
|
||||
It may contain:
|
||||
- actions history (logs, history, recently used files, …)
|
||||
- current state of the application that can be reused
|
||||
on a restart (view, layout, open files, undo history, …)
|
||||
- User-specific executable files may be stored in `$HOME/.local/bin`.
|
||||
Distributions should ensure this directory shows up in the UNIX `$PATH`
|
||||
environment variable, at an appropriate place.
|
||||
- `$XDG_DATA_DIRS` defines the preference-ordered set of base directories
|
||||
to search for data files in addition to the `$XDG_DATA_HOME` base directory.
|
||||
The directories in `$XDG_DATA_DIRS` should be seperated with a colon ':'.
|
||||
|
||||
[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||
|
||||
## Interesting links
|
||||
|
||||
### Interesting dotfiles repos
|
||||
|
||||
- [dotfiles.github.io/inspiration/](https://dotfiles.github.io/inspiration)
|
||||
- [frdmn/dotfiles](https://github.com/github.com/frdmn/dotfiles) - Ansible-based
|
||||
dotfile setup for macOS
|
||||
- [mvdan/dotfiles](https://github.com/mvdan/dotfiles) - Here be dragons
|
||||
- [vsouza/dotfiles](https://github.com/vsouza/dotfiles) - 🏡 My dotfiles
|
||||
- [freekmurze/dotfiles](https://github.com/freekmurze/dotfiles) - My personal dotfiles
|
||||
24
add-submodules.sh
Normal file → Executable file
24
add-submodules.sh
Normal file → Executable file
@@ -1,4 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
git submodule add --name dotbot-brew -f https://github.com/wren/dotbot-brew.git dotbot-brew
|
||||
git submodule add --name dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git dotbot-include
|
||||
git submodule add --name dotbot -f https://github.com/anishathalye/dotbot.git tools/dotbot
|
||||
git submodule add --name dotbot-brew -f https://github.com/wren/dotbot-brew.git tools/dotbot-brew
|
||||
git submodule add --name dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
|
||||
git submodule add --name cheat-community -f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
||||
|
||||
# tmux plugin manager and plugins
|
||||
git submodule add --name tmux/tpm \
|
||||
-f https://github.com/tmux-plugins/tpm.git config/tmux/plugins/tpm
|
||||
git submodule add --name tmux/catppuccin \
|
||||
-f https://github.com/catppuccin/tmux.git config/tmux/plugins/tmux
|
||||
git submodule add --name tmux/tmux-continuum \
|
||||
-f https://github.com/tmux-plugins/tmux-continuum config/tmux/plugins/tmux-continuum
|
||||
git submodule add --name tmux/tmux-menus \
|
||||
-f https://github.com/jaclu/tmux-menus.git config/tmux/plugins/tmux-menus
|
||||
git submodule add --name tmux/tmux-resurrect \
|
||||
-f https://github.com/tmux-plugins/tmux-resurrect config/tmux/plugins/tmux-resurrect
|
||||
git submodule add --name tmux/tmux-sensible \
|
||||
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
|
||||
git submodule add --name tmux/tmux-sessionist \
|
||||
-f https://github.com/tmux-plugins/tmux-sessionist.git config/tmux/plugins/tmux-sessionist
|
||||
git submodule add --name tmux/tmux-yank \
|
||||
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"cli": {
|
||||
"analytics": false
|
||||
}
|
||||
}
|
||||
13
base/bashrc
13
base/bashrc
@@ -7,15 +7,20 @@ export DOTFILES="$HOME/.dotfiles"
|
||||
# Run x-load-configs in your terminal to reload the files.
|
||||
function x-load-configs()
|
||||
{
|
||||
HOST="$(hostname -s)"
|
||||
# Load the shell dotfiles, and then some:
|
||||
for file in $DOTFILES/config/{exports,alias,functions}; do
|
||||
[ -r "$file" ] && [ -f "$file" ] && source "$file"
|
||||
[ -r "$file-secret" ] && [ -f "$file-secret" ] && source "$file-secret"
|
||||
[ -r "$file-$HOSTNAME" ] && [ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
|
||||
[ -r "$file-$HOSTNAME-secret" ] && [ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
|
||||
[ -r "$file" ] && source "$file"
|
||||
[ -r "$file-secret" ] && source "$file-secret"
|
||||
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
||||
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
||||
done
|
||||
}
|
||||
x-load-configs
|
||||
|
||||
# Import ssh keys in keychain
|
||||
ssh-add -A 2>/dev/null;
|
||||
|
||||
# shellcheck source=../config/fzf/fzf.bash
|
||||
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] \
|
||||
&& source "${DOTFILES}/config/fzf/fzf.bash"
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
[work]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo.vuorinen@vincit.fi
|
||||
|
||||
[home]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo@vuorinen.net
|
||||
34
base/gitprofile
Normal file
34
base/gitprofile
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"profiles": {
|
||||
"github": [
|
||||
{
|
||||
"key": "user.name",
|
||||
"value": "Ismo Vuorinen"
|
||||
},
|
||||
{
|
||||
"key": "user.email",
|
||||
"value": "ivuorinen@users.noreply.github.com"
|
||||
}
|
||||
],
|
||||
"home": [
|
||||
{
|
||||
"key": "user.email",
|
||||
"value": "ismo@ivuorinen.net"
|
||||
},
|
||||
{
|
||||
"key": "user.name",
|
||||
"value": "Ismo Vuorinen"
|
||||
}
|
||||
],
|
||||
"work": [
|
||||
{
|
||||
"key": "user.email",
|
||||
"value": "ismo.vuorinen@vincit.fi"
|
||||
},
|
||||
{
|
||||
"key": "user.name",
|
||||
"value": "Ismo Vuorinen"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -4,5 +4,3 @@ export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
alias php="php -d error_reporting=22527"
|
||||
|
||||
|
||||
24
base/vuerc
24
base/vuerc
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"useTaobaoRegistry": false,
|
||||
"presets": {
|
||||
"v2-router-vuex-scss-prettier": {
|
||||
"useConfigFiles": false,
|
||||
"plugins": {
|
||||
"@vue/cli-plugin-babel": {},
|
||||
"@vue/cli-plugin-router": {
|
||||
"historyMode": false
|
||||
},
|
||||
"@vue/cli-plugin-vuex": {},
|
||||
"@vue/cli-plugin-eslint": {
|
||||
"config": "prettier",
|
||||
"lintOn": [
|
||||
"save"
|
||||
]
|
||||
}
|
||||
},
|
||||
"vueVersion": "2",
|
||||
"cssPreprocessor": "dart-sass"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
54
base/zshrc
54
base/zshrc
@@ -1,32 +1,57 @@
|
||||
# this is my zsh config. there are many like it, but this one is mine.
|
||||
# shellcheck shell=bash
|
||||
|
||||
autoload -U colors zsh/terminfo
|
||||
colors
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
# shellcheck source=shared.sh
|
||||
# shellcheck source=scripts/shared.sh
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
export COMPLETION_WAITING_DOTS=true
|
||||
|
||||
# Run x-load-configs in your terminal to reload the files.
|
||||
function x-load-configs()
|
||||
{
|
||||
# Load the shell dotfiles, and then some:
|
||||
for file in $DOTFILES/config/{exports,alias,functions}; do
|
||||
[ -f "$file" ] && source "$file"
|
||||
[ -f "$file-secret" ] && source "$file-secret"
|
||||
[ -f "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
|
||||
[ -f "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
|
||||
HOST="$(hostname -s)"
|
||||
# global (exports|alias|functions) file for all hosts
|
||||
# shellcheck source=../config/exports
|
||||
[ -r "$file" ] && source "$file"
|
||||
# global secret file, git ignored
|
||||
# shellcheck source=../config/exports-secret
|
||||
[ -r "$file-secret" ] && source "$file-secret"
|
||||
# host specific (exports|alias|functions) file
|
||||
# shellcheck source=../config/exports
|
||||
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
||||
# host specific (exports|alias|functions) file, git ignored
|
||||
# shellcheck source=../config/exports
|
||||
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
||||
done
|
||||
}
|
||||
x-load-configs
|
||||
|
||||
# Import ssh keys in keychain
|
||||
ssh-add -A 2>/dev/null;
|
||||
export HISTFILE="$XDG_STATE_HOME"/zsh/history
|
||||
|
||||
autoload -U colors zsh/terminfo
|
||||
colors
|
||||
|
||||
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
|
||||
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
|
||||
|
||||
# Add completion scripts to zsh path
|
||||
FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH"
|
||||
autoload -Uz compinit
|
||||
|
||||
if type brew &>/dev/null
|
||||
then
|
||||
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
|
||||
fi
|
||||
|
||||
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
||||
|
||||
# Try to load antigen, if present
|
||||
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
|
||||
# shellcheck source=../../.local/bin/antigen.zsh
|
||||
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
|
||||
|
||||
# antigen is present
|
||||
@@ -39,5 +64,10 @@ have antigen && {
|
||||
antigen apply
|
||||
}
|
||||
|
||||
# starship is present
|
||||
have starship && eval "$(starship init zsh)"
|
||||
# shellcheck source=../config/fzf/fzf.zsh
|
||||
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
|
||||
&& source "${DOTFILES}/config/fzf/fzf.zsh"
|
||||
|
||||
# Start starship
|
||||
eval "$(starship init zsh)"
|
||||
|
||||
|
||||
4
config/act/actrc
Normal file
4
config/act/actrc
Normal file
@@ -0,0 +1,4 @@
|
||||
-P ubuntu-latest=catthehacker/ubuntu:act-latest
|
||||
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
|
||||
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
|
||||
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
|
||||
310
config/alacritty/alacritty.yml
Normal file
310
config/alacritty/alacritty.yml
Normal file
@@ -0,0 +1,310 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty it self.
|
||||
env:
|
||||
# TERM env customization.
|
||||
#
|
||||
# If this property is not set, alacritty will set it to xterm-256color.
|
||||
#
|
||||
# Note that some xterm terminfo databases don't declare support for italics.
|
||||
# You can verify this by checking for the presence of `smso` and `sitm` in
|
||||
# `infocmp xterm-256color`.
|
||||
TERM: xterm-256color
|
||||
|
||||
# Window dimensions in character columns and lines
|
||||
# (changes require restart)
|
||||
window:
|
||||
dimensions:
|
||||
columns: 130
|
||||
lines: 40
|
||||
|
||||
# Adds this many blank pixels of padding around the window
|
||||
# Units are physical pixels; this is not DPI aware.
|
||||
# (change requires restart)
|
||||
padding:
|
||||
x: 5
|
||||
y: 5
|
||||
|
||||
decorations: buttonless
|
||||
|
||||
opacity: 0.97
|
||||
|
||||
# When true, bold text is drawn using the bright variant of colors.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
# Font configuration (changes require restart)
|
||||
font:
|
||||
# The normal (roman) font face to use.
|
||||
normal:
|
||||
family: JetBrainsMono Nerd Font
|
||||
# Style can be specified to pick a specific face.
|
||||
# style: Regular
|
||||
|
||||
# The bold font face
|
||||
bold:
|
||||
family: JetBrainsMono Nerd Font
|
||||
# Style can be specified to pick a specific face.
|
||||
style: Bold
|
||||
|
||||
# The italic font face
|
||||
italic:
|
||||
family: JetBrainsMono Nerd Font
|
||||
# Style can be specified to pick a specific face.
|
||||
style: Italic
|
||||
|
||||
# Point size of the font
|
||||
size: 14.0
|
||||
|
||||
# Offset is the extra space around each character. offset.y can be thought of
|
||||
# as modifying the linespacing, and offset.x as modifying the letter spacing.
|
||||
offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increase the x offset to move the glyph to
|
||||
# the right, increase the y offset to move the glyph upward.
|
||||
glyph_offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Should display the render timer
|
||||
debug.render_timer: false
|
||||
|
||||
# https://github.com/catppuccin/alacritty
|
||||
colors:
|
||||
primary:
|
||||
background: "#1E1E2E" # base
|
||||
foreground: "#CDD6F4" # text
|
||||
# Bright and dim foreground colors
|
||||
dim_foreground: "#CDD6F4" # text
|
||||
bright_foreground: "#CDD6F4" # text
|
||||
|
||||
# Cursor colors
|
||||
cursor:
|
||||
text: "#1E1E2E" # base
|
||||
cursor: "#F5E0DC" # rosewater
|
||||
vi_mode_cursor:
|
||||
text: "#1E1E2E" # base
|
||||
cursor: "#B4BEFE" # lavender
|
||||
|
||||
# Search colors
|
||||
search:
|
||||
matches:
|
||||
foreground: "#1E1E2E" # base
|
||||
background: "#A6ADC8" # subtext0
|
||||
focused_match:
|
||||
foreground: "#1E1E2E" # base
|
||||
background: "#A6E3A1" # green
|
||||
footer_bar:
|
||||
foreground: "#1E1E2E" # base
|
||||
background: "#A6ADC8" # subtext0
|
||||
|
||||
# Keyboard regex hints
|
||||
hints:
|
||||
start:
|
||||
foreground: "#1E1E2E" # base
|
||||
background: "#F9E2AF" # yellow
|
||||
end:
|
||||
foreground: "#1E1E2E" # base
|
||||
background: "#A6ADC8" # subtext0
|
||||
|
||||
# Selection colors
|
||||
selection:
|
||||
text: "#1E1E2E" # base
|
||||
background: "#F5E0DC" # rosewater
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: "#45475A" # surface1
|
||||
red: "#F38BA8" # red
|
||||
green: "#A6E3A1" # green
|
||||
yellow: "#F9E2AF" # yellow
|
||||
blue: "#89B4FA" # blue
|
||||
magenta: "#F5C2E7" # pink
|
||||
cyan: "#94E2D5" # teal
|
||||
white: "#BAC2DE" # subtext1
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: "#585B70" # surface2
|
||||
red: "#F38BA8" # red
|
||||
green: "#A6E3A1" # green
|
||||
yellow: "#F9E2AF" # yellow
|
||||
blue: "#89B4FA" # blue
|
||||
magenta: "#F5C2E7" # pink
|
||||
cyan: "#94E2D5" # teal
|
||||
white: "#A6ADC8" # subtext0
|
||||
|
||||
# Dim colors
|
||||
dim:
|
||||
black: "#45475A" # surface1
|
||||
red: "#F38BA8" # red
|
||||
green: "#A6E3A1" # green
|
||||
yellow: "#F9E2AF" # yellow
|
||||
blue: "#89B4FA" # blue
|
||||
magenta: "#F5C2E7" # pink
|
||||
cyan: "#94E2D5" # teal
|
||||
white: "#BAC2DE" # subtext1
|
||||
|
||||
indexed_colors:
|
||||
- { index: 16, color: "#FAB387" }
|
||||
- { index: 17, color: "#F5E0DC" }
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Possible values for `animation`
|
||||
# `Ease`
|
||||
# `EaseOut`
|
||||
# `EaseOutSine`
|
||||
# `EaseOutQuad`
|
||||
# `EaseOutCubic`
|
||||
# `EaseOutQuart`
|
||||
# `EaseOutQuint`
|
||||
# `EaseOutExpo`
|
||||
# `EaseOutCirc`
|
||||
# `Linear`
|
||||
#
|
||||
# To completely disable the visual bell, set its duration to 0.
|
||||
#
|
||||
# visual_bell:
|
||||
# animation: EaseOutExpo
|
||||
# duration: 0
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Each binding is defined as an object with some properties. Most of the
|
||||
# properties are optional. All of the alphabetical keys should have a letter for
|
||||
# the `key` value such as `V`. Function keys are probably what you would expect
|
||||
# as well (F1, F2, ..). The number keys above the main keyboard are encoded as
|
||||
# `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`,
|
||||
# etc. These all match the glutin::VirtualKeyCode variants.
|
||||
#
|
||||
# Possible values for `mods`
|
||||
# `Command`, `Super` refer to the super/command/windows key
|
||||
# `Control` for the control key
|
||||
# `Shift` for the Shift key
|
||||
# `Alt` and `Option` refer to alt/option
|
||||
#
|
||||
# mods may be combined with a `|`. For example, requiring control and shift
|
||||
# looks like:
|
||||
#
|
||||
# mods: Control|Shift
|
||||
#
|
||||
# The parser is currently quite sensitive to whitespace and capitalization -
|
||||
# capitalization must match exactly, and piped items must not have whitespace
|
||||
# around them.
|
||||
#
|
||||
# Either an `action`, `chars`, or `command` field must be present.
|
||||
# `action` must be one of `Paste`, `PasteSelection`, `Copy`, or `Quit`.
|
||||
# `chars` writes the specified string every time that binding is activated.
|
||||
# These should generally be escape sequences, but they can be configured to
|
||||
# send arbitrary strings of bytes.
|
||||
# `command` must be a map containing a `program` string, and `args` array of
|
||||
# strings. For example:
|
||||
# - { ... , command: { program: "alacritty", args: ["-e", "vttest"] } }
|
||||
key_bindings:
|
||||
- { key: V, mods: Command, action: Paste }
|
||||
- { key: C, mods: Command, action: Copy }
|
||||
- { key: Q, mods: Command, action: Quit }
|
||||
- { key: W, mods: Command, action: Quit }
|
||||
- { key: N, mods: Command, action: SpawnNewInstance }
|
||||
- { key: Home, chars: "\eOH", mode: AppCursor }
|
||||
- { key: Home, chars: "\e[1~", mode: ~AppCursor }
|
||||
- { key: End, chars: "\eOF", mode: AppCursor }
|
||||
- { key: End, chars: "\e[4~", mode: ~AppCursor }
|
||||
- { key: PageUp, mods: Shift, chars: "\e[5;2~" }
|
||||
- { key: PageUp, mods: Control, chars: "\e[5;5~" }
|
||||
- { key: PageUp, chars: "\e[5~" }
|
||||
- { key: PageDown, mods: Shift, chars: "\e[6;2~" }
|
||||
- { key: PageDown, mods: Control, chars: "\e[6;5~" }
|
||||
- { key: PageDown, chars: "\e[6~" }
|
||||
- { key: Left, mods: Shift, chars: "\e[1;2D" }
|
||||
- { key: Left, mods: Control, chars: "\e[1;5D" }
|
||||
- { key: Left, mods: Alt, chars: "\e[1;3D" }
|
||||
- { key: Left, chars: "\e[D", mode: ~AppCursor }
|
||||
- { key: Left, chars: "\eOD", mode: AppCursor }
|
||||
- { key: Right, mods: Shift, chars: "\e[1;2C" }
|
||||
- { key: Right, mods: Control, chars: "\e[1;5C" }
|
||||
- { key: Right, mods: Alt, chars: "\e[1;3C" }
|
||||
- { key: Right, chars: "\e[C", mode: ~AppCursor }
|
||||
- { key: Right, chars: "\eOC", mode: AppCursor }
|
||||
- { key: Up, mods: Shift, chars: "\e[1;2A" }
|
||||
- { key: Up, mods: Control, chars: "\e[1;5A" }
|
||||
- { key: Up, mods: Alt, chars: "\e[1;3A" }
|
||||
- { key: Up, chars: "\e[A", mode: ~AppCursor }
|
||||
- { key: Up, chars: "\eOA", mode: AppCursor }
|
||||
- { key: Down, mods: Shift, chars: "\e[1;2B" }
|
||||
- { key: Down, mods: Control, chars: "\e[1;5B" }
|
||||
- { key: Down, mods: Alt, chars: "\e[1;3B" }
|
||||
- { key: Down, chars: "\e[B", mode: ~AppCursor }
|
||||
- { key: Down, chars: "\eOB", mode: AppCursor }
|
||||
- { key: Tab, mods: Shift, chars: "\e[Z" }
|
||||
- { key: F1, chars: "\eOP" }
|
||||
- { key: F2, chars: "\eOQ" }
|
||||
- { key: F3, chars: "\eOR" }
|
||||
- { key: F4, chars: "\eOS" }
|
||||
- { key: F5, chars: "\e[15~" }
|
||||
- { key: F6, chars: "\e[17~" }
|
||||
- { key: F7, chars: "\e[18~" }
|
||||
- { key: F8, chars: "\e[19~" }
|
||||
- { key: F9, chars: "\e[20~" }
|
||||
- { key: F10, chars: "\e[21~" }
|
||||
- { key: F11, chars: "\e[23~" }
|
||||
- { key: F12, chars: "\e[24~" }
|
||||
- { key: Back, chars: "" }
|
||||
- { key: Back, mods: Alt, chars: "\e" }
|
||||
- { key: Insert, chars: "\e[2~" }
|
||||
- { key: Delete, chars: "\e[3~" }
|
||||
|
||||
# shortcuts for tmux. the leader key is control-b (0x02)
|
||||
- { key: W, mods: Command, chars: "\x02&" } # close tab (kill)
|
||||
- { key: T, mods: Command, chars: "\x02c" } # new tab
|
||||
- { key: RBracket, mods: Command|Shift, chars: "\x02n" } # select next tab
|
||||
- { key: LBracket, mods: Command|Shift, chars: "\x02p" } # select previous tab
|
||||
- { key: RBracket, mods: Command, chars: "\x02o" } # select next pane
|
||||
- { key: LBracket, mods: Command, chars: "\x02;" } # select last (previously used) pane
|
||||
- { key: F, mods: Command, chars: "\x02/" } # search (upwards) (see tmux.conf)
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Currently doesn't support modifiers. Both the `mouse` and `action` fields must
|
||||
# be specified.
|
||||
#
|
||||
# Values for `mouse`:
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# Values for `action`:
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - Copy (TODO)
|
||||
mouse_bindings:
|
||||
- { mouse: Middle, action: PasteSelection }
|
||||
|
||||
mouse:
|
||||
double_click: { threshold: 300 }
|
||||
triple_click: { threshold: 300 }
|
||||
|
||||
selection:
|
||||
semantic_escape_chars: ',│`|:"'' ()[]{}<>'
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
|
||||
# Entries in shell.args are passed unmodified as arguments to the shell.
|
||||
#
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck source="../scripts/shared.sh"
|
||||
# shellcheck disable=1091,2139
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
# Get installed php versions from brew and setup aliases
|
||||
@@ -54,6 +55,11 @@ if [[ $(uname) == 'Darwin' ]]; then
|
||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
|
||||
fi
|
||||
|
||||
# tmux: automatically attach or create session with name 'main'
|
||||
alias tmux='tmux new-session -A -s main'
|
||||
# tmux: attach or create new session
|
||||
alias ta='tmux attach || tmux'
|
||||
|
||||
# watch with: differences, precise, beep and color
|
||||
alias watchx='watch -dpbc'
|
||||
# delete .DS_Store files
|
||||
@@ -83,3 +89,6 @@ if [[ -f "$HOME/.aliases.local" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source "$HOME/.aliases.local"
|
||||
fi
|
||||
|
||||
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
|
||||
alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion"
|
||||
|
||||
4
config/alias-tunkki
Executable file
4
config/alias-tunkki
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
# Setting aliases for tunkki
|
||||
|
||||
alias nvim="/snap/nvim/current/usr/bin/nvim"
|
||||
Submodule config/astronvim/lua/user deleted from 95cad51402
1
config/cheat/cheatsheets/community
Submodule
1
config/cheat/cheatsheets/community
Submodule
Submodule config/cheat/cheatsheets/community added at 36bdb99dcf
0
config/cheat/cheatsheets/personal/.gitkeep
Normal file
0
config/cheat/cheatsheets/personal/.gitkeep
Normal file
43
config/cheat/cheatsheets/personal/git-alias
Normal file
43
config/cheat/cheatsheets/personal/git-alias
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
tags: [ vcs, alias ]
|
||||
---
|
||||
|
||||
# git branchbydate
|
||||
|
||||
List repository branches by date when last updated and extra information.
|
||||
|
||||
# git branchcolor
|
||||
|
||||
List repository branches sorted by when they were last updated.
|
||||
|
||||
# git llog
|
||||
|
||||
Show log with fuller information.
|
||||
|
||||
# git logs
|
||||
|
||||
Git logs with detailed information and git tree.
|
||||
|
||||
# git nah
|
||||
|
||||
Reset all changes.
|
||||
|
||||
# git reset-origin
|
||||
|
||||
Reset to origin.
|
||||
|
||||
# git reset-upstream
|
||||
|
||||
Hard reset to upstream master.
|
||||
|
||||
# git rl
|
||||
|
||||
Colored reflog.
|
||||
|
||||
# git tagdate
|
||||
|
||||
List tags in date order and with graph.
|
||||
|
||||
# git undo-commit
|
||||
|
||||
Undoes last commit.
|
||||
0
config/cheat/cheatsheets/pure-bash-bible/.gitkeep
Normal file
0
config/cheat/cheatsheets/pure-bash-bible/.gitkeep
Normal file
0
config/cheat/cheatsheets/tldr/.gitkeep
Normal file
0
config/cheat/cheatsheets/tldr/.gitkeep
Normal file
86
config/cheat/conf.yml
Normal file
86
config/cheat/conf.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
# The editor to use with 'cheat -e <sheet>'. Defaults to $EDITOR or $VISUAL.
|
||||
# editor: $EDITOR
|
||||
|
||||
# Should 'cheat' always colorize output?
|
||||
colorize: true
|
||||
# Which 'chroma' colorscheme should be applied to the output?
|
||||
# Options are available here:
|
||||
# https://github.com/alecthomas/chroma/tree/master/styles
|
||||
style: "catppuccin"
|
||||
# Which 'chroma' "formatter" should be applied?
|
||||
# One of: "terminal", "terminal256", "terminal16m"
|
||||
formatter: terminal256
|
||||
# Through which pager should output be piped?
|
||||
# 'less -FRX' is recommended on Unix systems
|
||||
# 'more' is recommended on Windows
|
||||
pager: less -FRX
|
||||
# Cheatpaths are paths at which cheatsheets are available on your local
|
||||
# filesystem.
|
||||
#
|
||||
# It is useful to sort cheatsheets into different cheatpaths for organizational
|
||||
# purposes. For example, you might want one cheatpath for community
|
||||
# cheatsheets, one for personal cheatsheets, one for cheatsheets pertaining to
|
||||
# your day job, one for code snippets, etc.
|
||||
#
|
||||
# Cheatpaths are scoped, such that more "local" cheatpaths take priority over
|
||||
# more "global" cheatpaths. (The most global cheatpath is listed first in this
|
||||
# file; the most local is listed last.) For example, if there is a 'tar'
|
||||
# cheatsheet on both global and local paths, you'll be presented with the local
|
||||
# one by default. ('cheat -p' can be used to view cheatsheets from alternative
|
||||
# cheatpaths.)
|
||||
#
|
||||
# Cheatpaths can also be tagged as "read only". This instructs cheat not to
|
||||
# automatically create cheatsheets on a read-only cheatpath. Instead, when you
|
||||
# would like to edit a read-only cheatsheet using 'cheat -e', cheat will
|
||||
# perform a copy-on-write of that cheatsheet from a read-only cheatpath to a
|
||||
# writeable cheatpath.
|
||||
#
|
||||
# This is very useful when you would like to maintain, for example, a
|
||||
# "pristine" repository of community cheatsheets on one cheatpath, and an
|
||||
# editable personal reponsity of cheatsheets on another cheatpath.
|
||||
#
|
||||
# Cheatpaths can be also configured to automatically apply tags to cheatsheets
|
||||
# on certain paths, which can be useful for querying purposes.
|
||||
# Example: 'cheat -t work jenkins'.
|
||||
#
|
||||
# Community cheatsheets must be installed separately, though you may have
|
||||
# downloaded them automatically when installing 'cheat'. If not, you may
|
||||
# download them here:
|
||||
#
|
||||
# https://github.com/cheat/cheatsheets
|
||||
cheatpaths:
|
||||
# Cheatpath properties mean the following:
|
||||
# 'name': the name of the cheatpath
|
||||
# (view with 'cheat -d', filter with 'cheat -p')
|
||||
# 'path': the filesystem path of the cheatsheet directory
|
||||
# (view with 'cheat -d')
|
||||
# 'tags': tags that should be automatically applied to sheets on this path
|
||||
# 'readonly': shall user-created ('cheat -e') cheatsheets be saved here?
|
||||
- name: community
|
||||
path: ~/.config/cheat/cheatsheets/community
|
||||
tags: [community]
|
||||
readonly: true
|
||||
# If you have personalized cheatsheets, list them last. They will take
|
||||
# precedence over the more global cheatsheets.
|
||||
- name: personal
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/personal
|
||||
tags: [personal]
|
||||
readonly: false
|
||||
- name: pure-bash-bible
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/pure-bash-bible
|
||||
tags: [pure-bash-bible]
|
||||
readonly: true
|
||||
- name: tldr
|
||||
path: ~/.dotfiles/config/cheat/cheatsheets/tldr
|
||||
tags: [tldr]
|
||||
readonly: true
|
||||
|
||||
# While it requires no configuration here, it's also worth noting that
|
||||
# cheat will automatically append directories named '.cheat' within the
|
||||
# current working directory to the 'cheatpath'. This can be very useful if
|
||||
# you'd like to closely associate cheatsheets with, for example, a directory
|
||||
# containing source code.
|
||||
#
|
||||
# Such "directory-scoped" cheatsheets will be treated as the most "local"
|
||||
# cheatsheets, and will override less "local" cheatsheets. Similarly,
|
||||
# directory-scoped cheatsheets will always be editable ('readonly: false').
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=zsh
|
||||
# shellcheck shell=bash
|
||||
# vim: filetype=zsh
|
||||
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
@@ -17,24 +17,15 @@ export XDG_BIN_HOME="$HOME/.local/bin"
|
||||
export XDG_CACHE_HOME="$HOME/.cache"
|
||||
export XDG_RUNTIME_DIR="$HOME/.local/run"
|
||||
|
||||
# Homebrew configuration
|
||||
export HOMEBREW="/opt/homebrew"
|
||||
export HOMEBREW_BIN="$HOMEBREW/bin"
|
||||
export HOMEBREW_SBIN="$HOMEBREW/sbin"
|
||||
export HOMEBREW_PKG="$HOMEBREW/opt"
|
||||
export HOMEBREW_NO_ENV_HINTS=1
|
||||
path_append "/opt/homebrew/bin"
|
||||
have brew && eval "$(brew shellenv)"
|
||||
|
||||
path_append "/usr/local/bin"
|
||||
path_append "$HOMEBREW_SBIN"
|
||||
path_append "$HOMEBREW_BIN"
|
||||
path_append "$XDG_BIN_HOME"
|
||||
|
||||
# brew, https://brew.sh
|
||||
have brew && {
|
||||
path_append "$(brew --prefix python)/bin"
|
||||
path_append "$(brew --prefix coreutils)/libexec/gnubin"
|
||||
path_append "$(brew --prefix ruby)/bin"
|
||||
path_append "$(gem environment gemdir)/bin"
|
||||
have_brew python && path_append "$(brew --prefix python)/bin"
|
||||
}
|
||||
|
||||
source "$DOTFILES/config/exports-shell"
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# shellcheck enable=external-sources
|
||||
# shellcheck disable=1091,2139
|
||||
# vim: filetype=zsh
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
# Antigen configuration
|
||||
@@ -12,32 +14,36 @@ export ANTIGEN_PLUGIN_RECEIPT_F=".local/share/antigen/antigen_plugin_lastupdate"
|
||||
|
||||
# Ansible configuration
|
||||
# https://docs.ansible.com/ansible/latest/reference_appendices/config.html
|
||||
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
|
||||
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
|
||||
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||
have ansible && {
|
||||
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
|
||||
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
|
||||
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||
x-dc "$ANSIBLE_HOME"
|
||||
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||
}
|
||||
|
||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||
|
||||
export HOMEBREW_NO_ENV_HINTS=true
|
||||
|
||||
# composer, https://getcomposer.org/
|
||||
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
||||
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
|
||||
have composer && {
|
||||
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
||||
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
|
||||
export PATH="$COMPOSER_BIN:$PATH"
|
||||
}
|
||||
|
||||
# docker, https://docs.docker.com/engine/reference/commandline/cli/
|
||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||
have docker && {
|
||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||
x-dc "$DOCKER_CONFIG"
|
||||
# Docker: Disable snyk ad
|
||||
export DOCKER_SCAN_SUGGEST=false
|
||||
}
|
||||
|
||||
# ffmpeg
|
||||
have ffmpeg && {
|
||||
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
||||
x-dc "$FFMPEG_DATADIR"
|
||||
}
|
||||
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
||||
have ffmpeg && x-dc "$FFMPEG_DATADIR"
|
||||
|
||||
# gcloud
|
||||
have gcloud && {
|
||||
@@ -46,20 +52,12 @@ have gcloud && {
|
||||
[[ -f "$GCLOUD_LOC/completion.zsh.inc" ]] && builtin source "$GCLOUD_LOC/completion.zsh.inc"
|
||||
}
|
||||
|
||||
# gem, rubygems
|
||||
have gem && {
|
||||
export GEM_HOME="$XDG_STATE_HOME/gem"
|
||||
export GEM_PATH="$XDG_STATE_HOME/gem"
|
||||
export PATH="$GEM_HOME/bin:$PATH"
|
||||
path_append "$GEM_PATH/bin"
|
||||
}
|
||||
# GnuPG
|
||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
|
||||
# If we have go packages, include them to the PATH
|
||||
have go && {
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
export GOBIN="$XDG_BIN_HOME"
|
||||
x-dc "$GOPATH"
|
||||
}
|
||||
# Go
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
export GOBIN="$XDG_BIN_HOME"
|
||||
|
||||
# irssi
|
||||
have irssi && {
|
||||
@@ -69,6 +67,10 @@ have irssi && {
|
||||
x-dc "$IRSSI_CONFIG_HOME"
|
||||
}
|
||||
|
||||
# nb, https://xwmx.github.io/nb/
|
||||
export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
|
||||
export NB_DIR="$XDG_STATE_HOME/nb"
|
||||
|
||||
# nvm, the node version manager
|
||||
export NVM_LAZY_LOAD=true
|
||||
export NVM_COMPLETION=true
|
||||
@@ -77,23 +79,61 @@ export NVM_DIR="$XDG_CONFIG_HOME/nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
|
||||
|
||||
# Add npm packages to path
|
||||
have node && {
|
||||
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
|
||||
path_append "$NVM_NODE_BIN_DIR"
|
||||
}
|
||||
|
||||
# op (1Password cli) is present
|
||||
export OP_CACHE="$XDG_STATE_HOME/1password"
|
||||
have op && {
|
||||
export OP_CACHE="$XDG_STATE_HOME/1password"
|
||||
x-dc "$OP_CACHE"
|
||||
eval "$(op completion zsh)"
|
||||
compdef _op op
|
||||
}
|
||||
|
||||
# Python
|
||||
#
|
||||
# pyenv, python environments
|
||||
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
|
||||
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
|
||||
have pyenv && {
|
||||
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
|
||||
x-dc "$PYENV_ROOT"
|
||||
path_append "$(pyenv root)/shims"
|
||||
path_append "$PYENV_ROOT/bin"
|
||||
|
||||
eval "$(pyenv init -)"
|
||||
}
|
||||
|
||||
# Ruby
|
||||
#
|
||||
# including: bundler, rbenv
|
||||
export GEM_HOME="${XDG_DATA_HOME}"/gem
|
||||
export GEM_SPEC_CACHE="${XDG_CACHE_HOME}"/gem
|
||||
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle
|
||||
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
|
||||
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
|
||||
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
|
||||
x-dc "$RBENV_ROOT"
|
||||
have gem && path_append "$(gem environment gemdir)/bin"
|
||||
have rbenv && eval "$(rbenv init - zsh)"
|
||||
|
||||
# Rust / cargo
|
||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||
path_append "$CARGO_HOME/bin"
|
||||
|
||||
# screen
|
||||
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
|
||||
|
||||
# sonarlint
|
||||
export SONARLINT_USER_HOME="$XDG_DATA_HOME/sonarlint"
|
||||
|
||||
# tldr / tealdeer
|
||||
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"
|
||||
|
||||
# tmux
|
||||
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
|
||||
|
||||
# wakatime, https://github.com/wakatime/wakatime-cli
|
||||
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"
|
||||
x-dc "$WAKATIME_HOME"
|
||||
@@ -103,6 +143,6 @@ export _Z_DATA="$XDG_STATE_HOME/z"
|
||||
[[ -f "$XDG_BIN_HOME/z/z.sh" ]] && source "$XDG_BIN_HOME/z/z.sh"
|
||||
|
||||
# Misc
|
||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
export SCREENRC="$XDG_CONFIG_HOME/misc/screenrc"
|
||||
export BAT_THEME="ansi"
|
||||
export CHEAT_USE_FZF=true
|
||||
export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# shellcheck disable=1091,2046
|
||||
# vim: filetype=zsh
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
export LC_ALL=fi_FI.utf8
|
||||
export LC_ALL=fi_FI.UTF-8
|
||||
|
||||
# Bash completion file location
|
||||
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
|
||||
@@ -49,4 +51,14 @@ if [ "$SHELL" = "$(which zsh)" ]; then
|
||||
export HISTFILE="$XDG_STATE_HOME/zsh/history"
|
||||
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
|
||||
zstyle ':completion:*' list-colors "$LS_COLORS"
|
||||
|
||||
# fzf
|
||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
|
||||
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
|
||||
fi
|
||||
|
||||
# If we are using bash
|
||||
if [ "$SHELL" = "$(which bash)" ]; then
|
||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] \
|
||||
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
|
||||
fi
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
# shell functions
|
||||
#
|
||||
# shellcheck source="../scripts/shared.sh"
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
# Weather in Tampere, or other city
|
||||
function weather
|
||||
weather()
|
||||
{
|
||||
# https://github.com/chubin/wttr.in#usage
|
||||
local city="${1:-Tampere}"
|
||||
@@ -14,27 +15,21 @@ function weather
|
||||
}
|
||||
|
||||
# Docker
|
||||
function ssh-docker
|
||||
ssh-docker()
|
||||
{
|
||||
docker exec -it "$@" bash
|
||||
}
|
||||
|
||||
# Create a new directory and enter it
|
||||
function mkd
|
||||
{
|
||||
mkdir -p "$@" && cd "$@" || exit
|
||||
}
|
||||
|
||||
# All the dig info
|
||||
function digga
|
||||
digga()
|
||||
{
|
||||
dig +nocmd "$1" any +multiline +noall +answer
|
||||
}
|
||||
|
||||
# Rector project to php version 8.0 by default.
|
||||
function rector
|
||||
# Rector project to php version 8.2 by default.
|
||||
rector()
|
||||
{
|
||||
local php="${1:-80}"
|
||||
local php="${1:-82}"
|
||||
docker run -v "$(pwd)":/project rector/rector:latest process \
|
||||
"/project/$1" \
|
||||
--set "php${php}" \
|
||||
@@ -42,7 +37,7 @@ function rector
|
||||
}
|
||||
|
||||
# Commit everything
|
||||
function commit
|
||||
commit()
|
||||
{
|
||||
commitMessage="$*"
|
||||
|
||||
@@ -54,7 +49,7 @@ function commit
|
||||
eval "git commit -a -m '${commitMessage}'"
|
||||
}
|
||||
|
||||
function scheduler
|
||||
scheduler()
|
||||
{
|
||||
while :; do
|
||||
php artisan schedule:run
|
||||
@@ -63,32 +58,33 @@ function scheduler
|
||||
done
|
||||
}
|
||||
|
||||
function silent
|
||||
{
|
||||
"$@" >&/dev/null
|
||||
}
|
||||
|
||||
# Defines default antigen bundles
|
||||
function x-default-antigen-bundles
|
||||
x-default-antigen-bundles()
|
||||
{
|
||||
export ZSH_TMUX_AUTOSTART=false
|
||||
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
|
||||
export ZSH_TMUX_UNICODE=true
|
||||
export ZSH_TMUX_AUTOQUIT=false
|
||||
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
|
||||
|
||||
# Add keychain to ssh-agent args when on macOS
|
||||
have brew && zstyle :omz:plugins:ssh-agent ssh-add-args --apple-load-keychain
|
||||
|
||||
# these should be always available
|
||||
antigen bundle tmux
|
||||
antigen bundle colored-man-pages
|
||||
antigen bundle command-not-found
|
||||
antigen bundle ssh-agent
|
||||
antigen bundle MichaelAquilina/zsh-you-should-use
|
||||
antigen bundle Sparragus/zsh-auto-nvm-use
|
||||
# antigen bundle MichaelAquilina/zsh-you-should-use
|
||||
antigen bundle jreese/zsh-titles
|
||||
antigen bundle unixorn/autoupdate-antigen.zshplugin
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
|
||||
# these should be available if there's need
|
||||
have git && antigen bundle git
|
||||
have brew && antigen bundle brew
|
||||
have docker && antigen bundle docker
|
||||
have docker-compose && antigen bundle sroze/docker-compose-zsh-plugin
|
||||
have jq && antigen bundle reegnz/jq-zsh-plugin
|
||||
have nvm && antigen bundle nvm
|
||||
# have nvm && antigen bundle nvm
|
||||
have nvm && antigen bundle "$DOTFILES/config/zsh/plugins/nvm-auto-use"
|
||||
have php && antigen bundle php
|
||||
have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
|
||||
have rvm && antigen bundle unixorn/rvm-plugin
|
||||
|
||||
382
config/fzf/completion.bash
Executable file
382
config/fzf/completion.bash
Executable file
@@ -0,0 +1,382 @@
|
||||
# ____ ____
|
||||
# / __/___ / __/
|
||||
# / /_/_ / / /_
|
||||
# / __/ / /_/ __/
|
||||
# /_/ /___/_/ completion.bash
|
||||
#
|
||||
# - $FZF_TMUX (default: 0)
|
||||
# - $FZF_TMUX_OPTS (default: empty)
|
||||
# - $FZF_COMPLETION_TRIGGER (default: '**')
|
||||
# - $FZF_COMPLETION_OPTS (default: empty)
|
||||
|
||||
if [[ $- =~ i ]]; then
|
||||
|
||||
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
|
||||
if ! declare -f _fzf_compgen_path > /dev/null; then
|
||||
_fzf_compgen_path() {
|
||||
echo "$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 \) \
|
||||
-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
|
||||
}
|
||||
|
||||
__fzf_orig_completion() {
|
||||
local l comp f cmd
|
||||
while read -r l; do
|
||||
if [[ "$l" =~ ^(.*\ -F)\ *([^ ]*).*\ ([^ ]*)$ ]]; then
|
||||
comp="${BASH_REMATCH[1]}"
|
||||
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
|
||||
-e --exact
|
||||
--algo
|
||||
-i +i
|
||||
-n --nth
|
||||
--with-nth
|
||||
-d --delimiter
|
||||
+s --no-sort
|
||||
--tac
|
||||
--tiebreak
|
||||
-m --multi
|
||||
--no-mouse
|
||||
--bind
|
||||
--cycle
|
||||
--no-hscroll
|
||||
--jump-labels
|
||||
--height
|
||||
--literal
|
||||
--reverse
|
||||
--margin
|
||||
--inline-info
|
||||
--prompt
|
||||
--pointer
|
||||
--marker
|
||||
--header
|
||||
--header-lines
|
||||
--ansi
|
||||
--tabstop
|
||||
--color
|
||||
--no-bold
|
||||
--history
|
||||
--history-size
|
||||
--preview
|
||||
--preview-window
|
||||
-q --query
|
||||
-1 --select-1
|
||||
-0 --exit-0
|
||||
-f --filter
|
||||
--print-query
|
||||
--expect
|
||||
--sync"
|
||||
|
||||
case "${prev}" in
|
||||
--tiebreak)
|
||||
COMPREPLY=( $(compgen -W "length begin end index" -- "$cur") )
|
||||
return 0
|
||||
;;
|
||||
--color)
|
||||
COMPREPLY=( $(compgen -W "dark light 16 bw" -- "$cur") )
|
||||
return 0
|
||||
;;
|
||||
--history)
|
||||
COMPREPLY=()
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cur" =~ ^-|\+ ]]; then
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- "$cur") )
|
||||
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
|
||||
return $ret
|
||||
fi
|
||||
}
|
||||
|
||||
__fzf_generic_path_completion() {
|
||||
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=
|
||||
[[ $base = *"/"* ]] && dir="$base"
|
||||
while true; do
|
||||
if [[ -z "$dir" ]] || [[ -d "$dir" ]]; then
|
||||
leftover=${base/#"$dir"}
|
||||
leftover=${leftover/#\/}
|
||||
[[ -z "$dir" ]] && dir='.'
|
||||
[[ "$dir" != "/" ]] && dir="${dir/%\//}"
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
post="$(caller 0 | awk '{print $2}')_post"
|
||||
type -t "$post" > /dev/null 2>&1 || post=cat
|
||||
|
||||
cmd="${COMP_WORDS[0]//[^A-Za-z0-9_=]/_}"
|
||||
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
if [[ "$cur" == *"$trigger" ]]; then
|
||||
cur=${cur:0:${#cur}-${#trigger}}
|
||||
|
||||
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' ' ')
|
||||
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_path_completion() {
|
||||
__fzf_generic_path_completion _fzf_compgen_path "-m" "" "$@"
|
||||
}
|
||||
|
||||
# Deprecated. No file only completion.
|
||||
_fzf_file_completion() {
|
||||
_fzf_path_completion "$@"
|
||||
}
|
||||
|
||||
_fzf_dir_completion() {
|
||||
__fzf_generic_path_completion _fzf_compgen_dir "" "/" "$@"
|
||||
}
|
||||
|
||||
_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 -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') |
|
||||
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_var_completion() {
|
||||
_fzf_complete -m -- "$@" < <(
|
||||
declare -xp | sed -En 's|^declare [^ ]+ ([^=]+).*|\1|p'
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_alias_completion() {
|
||||
_fzf_complete -m -- "$@" < <(
|
||||
alias | sed -En 's|^alias ([^=]+).*|\1|p'
|
||||
)
|
||||
}
|
||||
|
||||
# fzf options
|
||||
complete -o default -F _fzf_opts_completion 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
|
||||
# fzf-tmux specific options (like `-w WIDTH`) are left as a future patch.
|
||||
complete -o default -F _fzf_opts_completion fzf-tmux
|
||||
|
||||
d_cmds="${FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir}"
|
||||
a_cmds="
|
||||
awk bat cat diff diff3
|
||||
emacs emacsclient ex file ftp g++ gcc gvim head hg hx java
|
||||
javac ld less more mvim nvim patch perl python ruby
|
||||
sed sftp sort source tail tee uniq vi view vim wc xdg-open
|
||||
basename bunzip2 bzip2 chmod chown curl cp dirname du
|
||||
find git grep gunzip gzip hg jar
|
||||
ln ls mv open rm rsync scp
|
||||
svn tar unzip zip"
|
||||
|
||||
# Preserve existing completion
|
||||
__fzf_orig_completion < <(complete -p $d_cmds $a_cmds 2> /dev/null)
|
||||
|
||||
if type _completion_loader > /dev/null 2>&1; then
|
||||
_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
|
||||
}
|
||||
|
||||
# Anything
|
||||
for cmd in $a_cmds; do
|
||||
__fzf_defc "$cmd" _fzf_path_completion "-o default -o bashdefault"
|
||||
done
|
||||
|
||||
# Directory
|
||||
for cmd in $d_cmds; do
|
||||
__fzf_defc "$cmd" _fzf_dir_completion "-o nospace -o dirnames"
|
||||
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
|
||||
}
|
||||
|
||||
# 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
|
||||
325
config/fzf/completion.zsh
Executable file
325
config/fzf/completion.zsh
Executable file
@@ -0,0 +1,325 @@
|
||||
# ____ ____
|
||||
# / __/___ / __/
|
||||
# / /_/_ / / /_
|
||||
# / __/ / /_/ __/
|
||||
# /_/ /___/_/ completion.zsh
|
||||
#
|
||||
# - $FZF_TMUX (default: 0)
|
||||
# - $FZF_TMUX_OPTS (default: '-d 40%')
|
||||
# - $FZF_COMPLETION_TRIGGER (default: '**')
|
||||
# - $FZF_COMPLETION_OPTS (default: empty)
|
||||
|
||||
# Both branches of the following `if` do the same thing -- define
|
||||
# __fzf_completion_options such that `eval $__fzf_completion_options` sets
|
||||
# all options to the same values they currently have. We'll do just that at
|
||||
# the bottom of the file after changing options to what we prefer.
|
||||
#
|
||||
# IMPORTANT: Until we get to the `emulate` line, all words that *can* be quoted
|
||||
# *must* be quoted in order to prevent alias expansion. In addition, code must
|
||||
# be written in a way works with any set of zsh options. This is very tricky, so
|
||||
# careful when you change it.
|
||||
#
|
||||
# Start by loading the builtin zsh/parameter module. It provides `options`
|
||||
# associative array that stores current shell options.
|
||||
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
|
||||
# This is the fast branch and it gets taken on virtually all Zsh installations.
|
||||
#
|
||||
# ${(kv)options[@]} expands to array of keys (option names) and values ("on"
|
||||
# or "off"). The subsequent expansion# with (j: :) flag joins all elements
|
||||
# together separated by spaces. __fzf_completion_options ends up with a value
|
||||
# like this: "options=(shwordsplit off aliases on ...)".
|
||||
__fzf_completion_options="options=(${(j: :)${(kv)options[@]}})"
|
||||
else
|
||||
# This branch is much slower because it forks to get the names of all
|
||||
# zsh options. It's possible to eliminate this fork but it's not worth the
|
||||
# trouble because this branch gets taken only on very ancient or broken
|
||||
# zsh installations.
|
||||
() {
|
||||
# That `()` above defines an anonymous function. This is essentially a scope
|
||||
# for local parameters. We use it to avoid polluting global scope.
|
||||
'local' '__fzf_opt'
|
||||
__fzf_completion_options="setopt"
|
||||
# `set -o` prints one line for every zsh option. Each line contains option
|
||||
# name, some spaces, and then either "on" or "off". We just want option names.
|
||||
# Expansion with (@f) flag splits a string into lines. The outer expansion
|
||||
# removes spaces and everything that follow them on every line. __fzf_opt
|
||||
# ends up iterating over option names: shwordsplit, aliases, etc.
|
||||
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
|
||||
if [[ -o "$__fzf_opt" ]]; then
|
||||
# Option $__fzf_opt is currently on, so remember to set it back on.
|
||||
__fzf_completion_options+=" -o $__fzf_opt"
|
||||
else
|
||||
# Option $__fzf_opt is currently off, so remember to set it back off.
|
||||
__fzf_completion_options+=" +o $__fzf_opt"
|
||||
fi
|
||||
done
|
||||
# The value of __fzf_completion_options here looks like this:
|
||||
# "setopt +o shwordsplit -o aliases ..."
|
||||
}
|
||||
fi
|
||||
|
||||
# Enable the default zsh options (those marked with <Z> in `man zshoptions`)
|
||||
# but without `aliases`. Aliases in functions are expanded when functions are
|
||||
# defined, so if we disable aliases here, we'll be sure to have no pesky
|
||||
# aliases in any of our functions. This way we won't need prefix every
|
||||
# command with `command` or to quote every word to defend against global
|
||||
# aliases. Note that `aliases` is not the only option that's important to
|
||||
# control. There are several others that could wreck havoc if they are set
|
||||
# to values we don't expect. With the following `emulate` command we
|
||||
# sidestep this issue entirely.
|
||||
'emulate' 'zsh' '-o' 'no_aliases'
|
||||
|
||||
# This brace is the start of try-always block. The `always` part is like
|
||||
# `finally` in lesser languages. We use it to *always* restore user options.
|
||||
{
|
||||
|
||||
# Bail out if not interactive shell.
|
||||
[[ -o interactive ]] || return 0
|
||||
|
||||
# To use custom commands instead of find, override _fzf_compgen_{path,dir}
|
||||
if ! declare -f _fzf_compgen_path > /dev/null; then
|
||||
_fzf_compgen_path() {
|
||||
echo "$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 \) \
|
||||
-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
|
||||
|
||||
###########################################################
|
||||
|
||||
__fzf_comprun() {
|
||||
if [[ "$(type _fzf_comprun 2>&1)" =~ function ]]; then
|
||||
_fzf_comprun "$@"
|
||||
elif [ -n "${TMUX_PANE-}" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "${FZF_TMUX_OPTS-}" ]; }; then
|
||||
shift
|
||||
if [ -n "${FZF_TMUX_OPTS-}" ]; then
|
||||
fzf-tmux ${(Q)${(Z+n+)FZF_TMUX_OPTS}} -- "$@"
|
||||
else
|
||||
fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%} -- "$@"
|
||||
fi
|
||||
else
|
||||
shift
|
||||
fzf "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Extract the name of the command. e.g. foo=1 bar baz**<tab>
|
||||
__fzf_extract_command() {
|
||||
local token tokens
|
||||
tokens=(${(z)1})
|
||||
for token in $tokens; do
|
||||
token=${(Q)token}
|
||||
if [[ "$token" =~ [[:alnum:]] && ! "$token" =~ "=" ]]; then
|
||||
echo "$token"
|
||||
return
|
||||
fi
|
||||
done
|
||||
echo "${tokens[1]}"
|
||||
}
|
||||
|
||||
__fzf_generic_path_completion() {
|
||||
local base lbuf cmd compgen fzf_opts suffix tail dir leftover matches
|
||||
base=$1
|
||||
lbuf=$2
|
||||
cmd=$(__fzf_extract_command "$lbuf")
|
||||
compgen=$3
|
||||
fzf_opts=$4
|
||||
suffix=$5
|
||||
tail=$6
|
||||
|
||||
setopt localoptions nonomatch
|
||||
eval "base=$base"
|
||||
[[ $base = *"/"* ]] && dir="$base"
|
||||
while [ 1 ]; do
|
||||
if [[ -z "$dir" || -d ${dir} ]]; then
|
||||
leftover=${base/#"$dir"}
|
||||
leftover=${leftover/#\/}
|
||||
[ -z "$dir" ] && dir='.'
|
||||
[ "$dir" != "/" ] && dir="${dir/%\//}"
|
||||
matches=$(eval "$compgen $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-}" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" | while read item; do
|
||||
item="${item%$suffix}$suffix"
|
||||
echo -n "${(q)item} "
|
||||
done)
|
||||
matches=${matches% }
|
||||
if [ -n "$matches" ]; then
|
||||
LBUFFER="$lbuf$matches$tail"
|
||||
fi
|
||||
zle reset-prompt
|
||||
break
|
||||
fi
|
||||
dir=$(dirname "$dir")
|
||||
dir=${dir%/}/
|
||||
done
|
||||
}
|
||||
|
||||
_fzf_path_completion() {
|
||||
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_path \
|
||||
"-m" "" " "
|
||||
}
|
||||
|
||||
_fzf_dir_completion() {
|
||||
__fzf_generic_path_completion "$1" "$2" _fzf_compgen_dir \
|
||||
"" "/" ""
|
||||
}
|
||||
|
||||
_fzf_feed_fifo() (
|
||||
command rm -f "$1"
|
||||
mkfifo "$1"
|
||||
cat <&0 > "$1" &
|
||||
)
|
||||
|
||||
_fzf_complete() {
|
||||
setopt localoptions ksh_arrays
|
||||
# Split arguments around --
|
||||
local args rest str_arg i sep
|
||||
args=("$@")
|
||||
sep=
|
||||
for i in {0..${#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
|
||||
|
||||
local fifo lbuf cmd matches post
|
||||
fifo="${TMPDIR:-/tmp}/fzf-complete-fifo-$$"
|
||||
lbuf=${rest[0]}
|
||||
cmd=$(__fzf_extract_command "$lbuf")
|
||||
post="${funcstack[1]}_post"
|
||||
type $post > /dev/null 2>&1 || post=cat
|
||||
|
||||
_fzf_feed_fifo "$fifo"
|
||||
matches=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $str_arg" __fzf_comprun "$cmd" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ')
|
||||
if [ -n "$matches" ]; then
|
||||
LBUFFER="$lbuf$matches"
|
||||
fi
|
||||
command rm -f "$fifo"
|
||||
}
|
||||
|
||||
_fzf_complete_telnet() {
|
||||
_fzf_complete +m -- "$@" < <(
|
||||
command grep -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0' |
|
||||
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_complete_ssh() {
|
||||
_fzf_complete +m -- "$@" < <(
|
||||
setopt localoptions nonomatch
|
||||
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 -v '^\s*\(#\|$\)' /etc/hosts | command grep -Fv '0.0.0.0') |
|
||||
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_complete_export() {
|
||||
_fzf_complete -m -- "$@" < <(
|
||||
declare -xp | sed 's/=.*//' | sed 's/.* //'
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_complete_unset() {
|
||||
_fzf_complete -m -- "$@" < <(
|
||||
declare -xp | sed 's/=.*//' | sed 's/.* //'
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_complete_unalias() {
|
||||
_fzf_complete +m -- "$@" < <(
|
||||
alias | sed 's/=.*//'
|
||||
)
|
||||
}
|
||||
|
||||
_fzf_complete_kill() {
|
||||
_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_complete_kill_post() {
|
||||
awk '{print $2}'
|
||||
}
|
||||
|
||||
fzf-completion() {
|
||||
local tokens cmd prefix trigger tail matches lbuf d_cmds
|
||||
setopt localoptions noshwordsplit noksh_arrays noposixbuiltins
|
||||
|
||||
# http://zsh.sourceforge.net/FAQ/zshfaq03.html
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
|
||||
tokens=(${(z)LBUFFER})
|
||||
if [ ${#tokens} -lt 1 ]; then
|
||||
zle ${fzf_default_completion:-expand-or-complete}
|
||||
return
|
||||
fi
|
||||
|
||||
cmd=$(__fzf_extract_command "$LBUFFER")
|
||||
|
||||
# Explicitly allow for empty trigger.
|
||||
trigger=${FZF_COMPLETION_TRIGGER-'**'}
|
||||
[ -z "$trigger" -a ${LBUFFER[-1]} = ' ' ] && tokens+=("")
|
||||
|
||||
# When the trigger starts with ';', it becomes a separate token
|
||||
if [[ ${LBUFFER} = *"${tokens[-2]-}${tokens[-1]}" ]]; then
|
||||
tokens[-2]="${tokens[-2]-}${tokens[-1]}"
|
||||
tokens=(${tokens[0,-2]})
|
||||
fi
|
||||
|
||||
lbuf=$LBUFFER
|
||||
tail=${LBUFFER:$(( ${#LBUFFER} - ${#trigger} ))}
|
||||
|
||||
# Trigger sequence given
|
||||
if [ ${#tokens} -gt 1 -a "$tail" = "$trigger" ]; then
|
||||
d_cmds=(${=FZF_COMPLETION_DIR_COMMANDS:-cd pushd rmdir})
|
||||
|
||||
[ -z "$trigger" ] && prefix=${tokens[-1]} || prefix=${tokens[-1]:0:-${#trigger}}
|
||||
[ -n "${tokens[-1]}" ] && lbuf=${lbuf:0:-${#tokens[-1]}}
|
||||
|
||||
if eval "type _fzf_complete_${cmd} > /dev/null"; then
|
||||
prefix="$prefix" eval _fzf_complete_${cmd} ${(q)lbuf}
|
||||
zle reset-prompt
|
||||
elif [ ${d_cmds[(i)$cmd]} -le ${#d_cmds} ]; then
|
||||
_fzf_dir_completion "$prefix" "$lbuf"
|
||||
else
|
||||
_fzf_path_completion "$prefix" "$lbuf"
|
||||
fi
|
||||
# Fall back to default completion
|
||||
else
|
||||
zle ${fzf_default_completion:-expand-or-complete}
|
||||
fi
|
||||
}
|
||||
|
||||
[ -z "$fzf_default_completion" ] && {
|
||||
binding=$(bindkey '^I')
|
||||
[[ $binding =~ 'undefined-key' ]] || fzf_default_completion=$binding[(s: :w)2]
|
||||
unset binding
|
||||
}
|
||||
|
||||
zle -N fzf-completion
|
||||
bindkey '^I' fzf-completion
|
||||
|
||||
} always {
|
||||
# Restore the original options.
|
||||
eval $__fzf_completion_options
|
||||
'unset' '__fzf_completion_options'
|
||||
}
|
||||
12
config/fzf/fzf.bash
Executable file
12
config/fzf/fzf.bash
Executable file
@@ -0,0 +1,12 @@
|
||||
# Setup fzf
|
||||
# ---------
|
||||
|
||||
# Auto-completion
|
||||
# ---------------
|
||||
# shellcheck source=completion.bash
|
||||
[[ $- == *i* ]] && source "$HOME/.dotfiles/config/fzf/completion.bash" 2> /dev/null
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
# shellcheck source=key-bindings.bash
|
||||
source "$HOME/.dotfiles/config/fzf/key-bindings.bash"
|
||||
12
config/fzf/fzf.zsh
Executable file
12
config/fzf/fzf.zsh
Executable file
@@ -0,0 +1,12 @@
|
||||
# Setup fzf
|
||||
# ---------
|
||||
|
||||
# Auto-completion
|
||||
# ---------------
|
||||
# shellcheck source=completion.zsh
|
||||
[[ $- == *i* ]] && source "$HOME/.dotfiles/config/fzf/completion.zsh" 2> /dev/null
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
# shellcheck source=key-bindings.zsh
|
||||
source "$HOME/.dotfiles/config/fzf/key-bindings.zsh"
|
||||
103
config/fzf/key-bindings.bash
Executable file
103
config/fzf/key-bindings.bash
Executable file
@@ -0,0 +1,103 @@
|
||||
# ____ ____
|
||||
# / __/___ / __/
|
||||
# / /_/_ / / /_
|
||||
# / __/ / /_/ __/
|
||||
# /_/ /___/_/ key-bindings.bash
|
||||
#
|
||||
# - $FZF_TMUX_OPTS
|
||||
# - $FZF_CTRL_T_COMMAND
|
||||
# - $FZF_CTRL_T_OPTS
|
||||
# - $FZF_CTRL_R_OPTS
|
||||
# - $FZF_ALT_C_COMMAND
|
||||
# - $FZF_ALT_C_OPTS
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
__fzf_select__() {
|
||||
local cmd opts
|
||||
cmd="${FZF_CTRL_T_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
||||
-o -type f -print \
|
||||
-o -type d -print \
|
||||
-o -type l -print 2> /dev/null | cut -b3-"}"
|
||||
opts="--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore --reverse ${FZF_DEFAULT_OPTS-} ${FZF_CTRL_T_OPTS-} -m"
|
||||
eval "$cmd" |
|
||||
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) "$@" |
|
||||
while read -r item; do
|
||||
printf '%q ' "$item" # escape special chars
|
||||
done
|
||||
}
|
||||
|
||||
if [[ $- =~ i ]]; then
|
||||
|
||||
__fzfcmd() {
|
||||
[[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; } &&
|
||||
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
|
||||
}
|
||||
|
||||
fzf-file-widget() {
|
||||
local selected="$(__fzf_select__ "$@")"
|
||||
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$selected${READLINE_LINE:$READLINE_POINT}"
|
||||
READLINE_POINT=$(( READLINE_POINT + ${#selected} ))
|
||||
}
|
||||
|
||||
__fzf_cd__() {
|
||||
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 \
|
||||
-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"
|
||||
dir=$(set +o pipefail; eval "$cmd" | FZF_DEFAULT_OPTS="$opts" $(__fzfcmd)) && printf 'builtin cd -- %q' "$dir"
|
||||
}
|
||||
|
||||
__fzf_history__() {
|
||||
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"
|
||||
script='BEGIN { getc; $/ = "\n\t"; $HISTCOUNT = $ENV{last_hist} + 1 } s/^[ *]//; print $HISTCOUNT - $. . "\t$_" if !$seen{$_}++'
|
||||
output=$(
|
||||
set +o pipefail
|
||||
builtin fc -lnr -2147483648 |
|
||||
last_hist=$(HISTTIMEFORMAT='' builtin history 1) perl -n -l0 -e "$script" |
|
||||
FZF_DEFAULT_OPTS="$opts" $(__fzfcmd) --query "$READLINE_LINE"
|
||||
) || return
|
||||
READLINE_LINE=${output#*$'\t'}
|
||||
if [[ -z "$READLINE_POINT" ]]; then
|
||||
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
|
||||
# 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
|
||||
172
config/fzf/key-bindings.fish
Executable file
172
config/fzf/key-bindings.fish
Executable file
@@ -0,0 +1,172 @@
|
||||
# ____ ____
|
||||
# / __/___ / __/
|
||||
# / /_/_ / / /_
|
||||
# / __/ / /_/ __/
|
||||
# /_/ /___/_/ key-bindings.fish
|
||||
#
|
||||
# - $FZF_TMUX_OPTS
|
||||
# - $FZF_CTRL_T_COMMAND
|
||||
# - $FZF_CTRL_T_OPTS
|
||||
# - $FZF_CTRL_R_OPTS
|
||||
# - $FZF_ALT_C_COMMAND
|
||||
# - $FZF_ALT_C_OPTS
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
function fzf_key_bindings
|
||||
|
||||
# Store current token in $dir as root for the 'find' command
|
||||
function fzf-file-widget -d "List files and folders"
|
||||
set -l commandline (__fzf_parse_commandline)
|
||||
set -l dir $commandline[1]
|
||||
set -l fzf_query $commandline[2]
|
||||
set -l prefix $commandline[3]
|
||||
|
||||
# "-path \$dir'*/\\.*'" matches hidden files/folders inside $dir but not
|
||||
# $dir itself, even if hidden.
|
||||
test -n "$FZF_CTRL_T_COMMAND"; or set -l FZF_CTRL_T_COMMAND "
|
||||
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
|
||||
-o -type f -print \
|
||||
-o -type d -print \
|
||||
-o -type l -print 2> /dev/null | sed 's@^\./@@'"
|
||||
|
||||
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
|
||||
begin
|
||||
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS"
|
||||
eval "$FZF_CTRL_T_COMMAND | "(__fzfcmd)' -m --query "'$fzf_query'"' | while read -l r; set result $result $r; end
|
||||
end
|
||||
if [ -z "$result" ]
|
||||
commandline -f repaint
|
||||
return
|
||||
else
|
||||
# Remove last token from commandline.
|
||||
commandline -t ""
|
||||
end
|
||||
for i in $result
|
||||
commandline -it -- $prefix
|
||||
commandline -it -- (string escape $i)
|
||||
commandline -it -- ' '
|
||||
end
|
||||
commandline -f repaint
|
||||
end
|
||||
|
||||
function fzf-history-widget -d "Show command history"
|
||||
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
|
||||
begin
|
||||
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore $FZF_CTRL_R_OPTS +m"
|
||||
|
||||
set -l FISH_MAJOR (echo $version | cut -f1 -d.)
|
||||
set -l FISH_MINOR (echo $version | cut -f2 -d.)
|
||||
|
||||
# history's -z flag is needed for multi-line support.
|
||||
# history's -z flag was added in fish 2.4.0, so don't use it for versions
|
||||
# before 2.4.0.
|
||||
if [ "$FISH_MAJOR" -gt 2 -o \( "$FISH_MAJOR" -eq 2 -a "$FISH_MINOR" -ge 4 \) ];
|
||||
history -z | eval (__fzfcmd) --read0 --print0 -q '(commandline)' | read -lz result
|
||||
and commandline -- $result
|
||||
else
|
||||
history | eval (__fzfcmd) -q '(commandline)' | read -l result
|
||||
and commandline -- $result
|
||||
end
|
||||
end
|
||||
commandline -f repaint
|
||||
end
|
||||
|
||||
function fzf-cd-widget -d "Change directory"
|
||||
set -l commandline (__fzf_parse_commandline)
|
||||
set -l dir $commandline[1]
|
||||
set -l fzf_query $commandline[2]
|
||||
set -l prefix $commandline[3]
|
||||
|
||||
test -n "$FZF_ALT_C_COMMAND"; or set -l FZF_ALT_C_COMMAND "
|
||||
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
|
||||
-o -type d -print 2> /dev/null | sed 's@^\./@@'"
|
||||
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
|
||||
begin
|
||||
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_ALT_C_OPTS"
|
||||
eval "$FZF_ALT_C_COMMAND | "(__fzfcmd)' +m --query "'$fzf_query'"' | read -l result
|
||||
|
||||
if [ -n "$result" ]
|
||||
cd -- $result
|
||||
|
||||
# Remove last token from commandline.
|
||||
commandline -t ""
|
||||
commandline -it -- $prefix
|
||||
end
|
||||
end
|
||||
|
||||
commandline -f repaint
|
||||
end
|
||||
|
||||
function __fzfcmd
|
||||
test -n "$FZF_TMUX"; or set FZF_TMUX 0
|
||||
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
|
||||
if [ -n "$FZF_TMUX_OPTS" ]
|
||||
echo "fzf-tmux $FZF_TMUX_OPTS -- "
|
||||
else if [ $FZF_TMUX -eq 1 ]
|
||||
echo "fzf-tmux -d$FZF_TMUX_HEIGHT -- "
|
||||
else
|
||||
echo "fzf"
|
||||
end
|
||||
end
|
||||
|
||||
bind \ct fzf-file-widget
|
||||
bind \cr fzf-history-widget
|
||||
bind \ec fzf-cd-widget
|
||||
|
||||
if bind -M insert > /dev/null 2>&1
|
||||
bind -M insert \ct fzf-file-widget
|
||||
bind -M insert \cr fzf-history-widget
|
||||
bind -M insert \ec fzf-cd-widget
|
||||
end
|
||||
|
||||
function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath, fzf query, and optional -option= prefix'
|
||||
set -l commandline (commandline -t)
|
||||
|
||||
# strip -option= from token if present
|
||||
set -l prefix (string match -r -- '^-[^\s=]+=' $commandline)
|
||||
set commandline (string replace -- "$prefix" '' $commandline)
|
||||
|
||||
# eval is used to do shell expansion on paths
|
||||
eval set commandline $commandline
|
||||
|
||||
if [ -z $commandline ]
|
||||
# Default to current directory with no --query
|
||||
set dir '.'
|
||||
set fzf_query ''
|
||||
else
|
||||
set dir (__fzf_get_dir $commandline)
|
||||
|
||||
if [ "$dir" = "." -a (string sub -l 1 -- $commandline) != '.' ]
|
||||
# if $dir is "." but commandline is not a relative path, this means no file path found
|
||||
set fzf_query $commandline
|
||||
else
|
||||
# Also remove trailing slash after dir, to "split" input properly
|
||||
set fzf_query (string replace -r "^$dir/?" -- '' "$commandline")
|
||||
end
|
||||
end
|
||||
|
||||
echo $dir
|
||||
echo $fzf_query
|
||||
echo $prefix
|
||||
end
|
||||
|
||||
function __fzf_get_dir -d 'Find the longest existing filepath from input string'
|
||||
set dir $argv
|
||||
|
||||
# Strip all trailing slashes. Ignore if $dir is root dir (/)
|
||||
if [ (string length -- $dir) -gt 1 ]
|
||||
set dir (string replace -r '/*$' -- '' $dir)
|
||||
end
|
||||
|
||||
# Iteratively check if dir exists and strip tail end of path
|
||||
while [ ! -d "$dir" ]
|
||||
# If path is absolute, this can keep going until ends up at /
|
||||
# If path is relative, this can keep going until entire input is consumed, dirname returns "."
|
||||
set dir (dirname -- "$dir")
|
||||
end
|
||||
|
||||
echo $dir
|
||||
end
|
||||
|
||||
end
|
||||
120
config/fzf/key-bindings.zsh
Executable file
120
config/fzf/key-bindings.zsh
Executable file
@@ -0,0 +1,120 @@
|
||||
# ____ ____
|
||||
# / __/___ / __/
|
||||
# / /_/_ / / /_
|
||||
# / __/ / /_/ __/
|
||||
# /_/ /___/_/ key-bindings.zsh
|
||||
#
|
||||
# - $FZF_TMUX_OPTS
|
||||
# - $FZF_CTRL_T_COMMAND
|
||||
# - $FZF_CTRL_T_OPTS
|
||||
# - $FZF_CTRL_R_OPTS
|
||||
# - $FZF_ALT_C_COMMAND
|
||||
# - $FZF_ALT_C_OPTS
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
|
||||
# The code at the top and the bottom of this file is the same as in completion.zsh.
|
||||
# Refer to that file for explanation.
|
||||
if 'zmodload' 'zsh/parameter' 2>'/dev/null' && (( ${+options} )); then
|
||||
__fzf_key_bindings_options="options=(${(j: :)${(kv)options[@]}})"
|
||||
else
|
||||
() {
|
||||
__fzf_key_bindings_options="setopt"
|
||||
'local' '__fzf_opt'
|
||||
for __fzf_opt in "${(@)${(@f)$(set -o)}%% *}"; do
|
||||
if [[ -o "$__fzf_opt" ]]; then
|
||||
__fzf_key_bindings_options+=" -o $__fzf_opt"
|
||||
else
|
||||
__fzf_key_bindings_options+=" +o $__fzf_opt"
|
||||
fi
|
||||
done
|
||||
}
|
||||
fi
|
||||
|
||||
'emulate' 'zsh' '-o' 'no_aliases'
|
||||
|
||||
{
|
||||
|
||||
[[ -o interactive ]] || return 0
|
||||
|
||||
# CTRL-T - Paste the selected file path(s) into the command line
|
||||
__fsel() {
|
||||
local cmd="${FZF_CTRL_T_COMMAND:-"command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \\) -prune \
|
||||
-o -type f -print \
|
||||
-o -type d -print \
|
||||
-o -type l -print 2> /dev/null | cut -b3-"}"
|
||||
setopt localoptions pipefail no_aliases 2> /dev/null
|
||||
local item
|
||||
eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_CTRL_T_OPTS-}" $(__fzfcmd) -m "$@" | while read item; do
|
||||
echo -n "${(q)item} "
|
||||
done
|
||||
local ret=$?
|
||||
echo
|
||||
return $ret
|
||||
}
|
||||
|
||||
__fzfcmd() {
|
||||
[ -n "${TMUX_PANE-}" ] && { [ "${FZF_TMUX:-0}" != 0 ] || [ -n "${FZF_TMUX_OPTS-}" ]; } &&
|
||||
echo "fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- " || echo "fzf"
|
||||
}
|
||||
|
||||
fzf-file-widget() {
|
||||
LBUFFER="${LBUFFER}$(__fsel)"
|
||||
local ret=$?
|
||||
zle reset-prompt
|
||||
return $ret
|
||||
}
|
||||
zle -N fzf-file-widget
|
||||
bindkey -M emacs '^T' fzf-file-widget
|
||||
bindkey -M vicmd '^T' fzf-file-widget
|
||||
bindkey -M viins '^T' fzf-file-widget
|
||||
|
||||
# ALT-C - cd into the selected directory
|
||||
fzf-cd-widget() {
|
||||
local 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-"}"
|
||||
setopt localoptions pipefail no_aliases 2> /dev/null
|
||||
local dir="$(eval "$cmd" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_ALT_C_OPTS-}" $(__fzfcmd) +m)"
|
||||
if [[ -z "$dir" ]]; then
|
||||
zle redisplay
|
||||
return 0
|
||||
fi
|
||||
zle push-line # Clear buffer. Auto-restored on next prompt.
|
||||
BUFFER="builtin cd -- ${(q)dir}"
|
||||
zle accept-line
|
||||
local ret=$?
|
||||
unset dir # ensure this doesn't end up appearing in prompt expansion
|
||||
zle reset-prompt
|
||||
return $ret
|
||||
}
|
||||
zle -N fzf-cd-widget
|
||||
bindkey -M emacs '\ec' fzf-cd-widget
|
||||
bindkey -M vicmd '\ec' fzf-cd-widget
|
||||
bindkey -M viins '\ec' fzf-cd-widget
|
||||
|
||||
# CTRL-R - Paste the selected command from history into the command line
|
||||
fzf-history-widget() {
|
||||
local selected num
|
||||
setopt localoptions noglobsubst noposixbuiltins pipefail no_aliases 2> /dev/null
|
||||
selected=( $(fc -rl 1 | awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' |
|
||||
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} ${FZF_DEFAULT_OPTS-} -n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-z:ignore ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m" $(__fzfcmd)) )
|
||||
local ret=$?
|
||||
if [ -n "$selected" ]; then
|
||||
num=$selected[1]
|
||||
if [ -n "$num" ]; then
|
||||
zle vi-fetch-history -n $num
|
||||
fi
|
||||
fi
|
||||
zle reset-prompt
|
||||
return $ret
|
||||
}
|
||||
zle -N fzf-history-widget
|
||||
bindkey -M emacs '^R' fzf-history-widget
|
||||
bindkey -M vicmd '^R' fzf-history-widget
|
||||
bindkey -M viins '^R' fzf-history-widget
|
||||
|
||||
} always {
|
||||
eval $__fzf_key_bindings_options
|
||||
'unset' '__fzf_key_bindings_options'
|
||||
}
|
||||
@@ -1,59 +1,7 @@
|
||||
[include]
|
||||
path = ~/.dotfiles/config/git/shared
|
||||
|
||||
[user]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo@ivuorinen.net
|
||||
|
||||
[credential]
|
||||
helper = store --file ~/.cache/git/git-credentials
|
||||
helper = cache --timeout 30000
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
|
||||
[alias]
|
||||
reset-origin = !git fetch origin && git reset --hard origin/master && git clean -f -d
|
||||
reset-upstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d
|
||||
nah = !git reset --hard && git clean -df
|
||||
undo-commit = reset HEAD~ --soft
|
||||
llog = log --pretty=fuller
|
||||
logs = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit
|
||||
rl = reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
|
||||
tagdate = log --date-order --graph --tags --simplify-by-decoration --pretty=format:\"%ai %h %d\"
|
||||
branchbydate = for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(refname:short)'
|
||||
branchcolor = "!for ref in $(git for-each-ref --sort=-committerdate --format=\"%(refname)\" refs/heads/ refs/remotes ); do git log -n1 $ref --pretty=format:\"%Cgreen%cr%Creset %C(yellow)%d%Creset %C(bold blue)<%an>%Creset%n\" | cat ; done | awk '! a[$0]++'"
|
||||
|
||||
[diff]
|
||||
tool = difftastic
|
||||
|
||||
[difftool]
|
||||
prompt = false
|
||||
|
||||
[difftool "difftastic"]
|
||||
cmd = difft "$LOCAL" "$REMOTE"
|
||||
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
diff = auto
|
||||
branch = auto
|
||||
status = auto
|
||||
|
||||
[color "status"]
|
||||
added = green bold
|
||||
changed = yellow
|
||||
deleted = red bold strike
|
||||
untracked = cyan
|
||||
branch = yellow black bold ul
|
||||
|
||||
[submodule]
|
||||
recurse = true
|
||||
|
||||
61
config/git/shared
Normal file
61
config/git/shared
Normal file
@@ -0,0 +1,61 @@
|
||||
[credential]
|
||||
helper = store --file ~/.cache/git/git-credentials
|
||||
helper = cache --timeout 30000
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[alias]
|
||||
branchbydate = for-each-ref --count=30 --sort=-committerdate refs/heads/ --format='%(refname:short)'
|
||||
branchcolor = "!for ref in $(git for-each-ref --sort=-committerdate --format=\"%(refname)\" refs/heads/ refs/remotes ); do git log -n1 $ref --pretty=format:\"%Cgreen%cr%Creset %C(yellow)%d%Creset %C(bold blue)<%an>%Creset%n\" | cat ; done | awk '! a[$0]++'"
|
||||
llog = log --pretty=fuller
|
||||
logs = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit
|
||||
nah = !git reset --hard && git clean -df
|
||||
reset-origin = !git fetch origin && git reset --hard origin/master && git clean -f -d
|
||||
reset-upstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d
|
||||
recent = "!r() { count=$1; git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:=10} | column -ts'|';}; r"
|
||||
rl = reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
|
||||
tagdate = log --date-order --graph --tags --simplify-by-decoration --pretty=format:\"%ai %h %d\"
|
||||
undo-commit = reset HEAD~ --soft
|
||||
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
|
||||
[diff]
|
||||
tool = difftastic
|
||||
|
||||
[difftool]
|
||||
prompt = false
|
||||
|
||||
[difftool "difftastic"]
|
||||
cmd = difft "$LOCAL" "$REMOTE"
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
diff = auto
|
||||
branch = auto
|
||||
status = auto
|
||||
|
||||
[color "status"]
|
||||
added = green bold
|
||||
changed = yellow
|
||||
deleted = red bold strike
|
||||
untracked = cyan
|
||||
branch = yellow black bold ul
|
||||
|
||||
[submodule]
|
||||
recurse = true
|
||||
|
||||
# dotfiles special config
|
||||
[includeIf "hasconfig:remote.*.url:https://github.com/ivuorinen/dotfiles.git"]
|
||||
path = ~/.dotfiles/config/git/special/dotfiles ;
|
||||
|
||||
2
config/git/special/dotfiles
Normal file
2
config/git/special/dotfiles
Normal file
@@ -0,0 +1,2 @@
|
||||
[submodule]
|
||||
recurse = false
|
||||
32
config/gpg-tui/gpg-tui.toml
Normal file
32
config/gpg-tui/gpg-tui.toml
Normal file
@@ -0,0 +1,32 @@
|
||||
[general]
|
||||
splash = false
|
||||
tick_rate = 250
|
||||
color = "gray"
|
||||
style = "plain"
|
||||
file_explorer = "xplr"
|
||||
detail_level = "minimum"
|
||||
# key_bindings = [
|
||||
# { keys = [ "?" ], command = ":help" },
|
||||
# { keys = [ "o" ], command = ":options" },
|
||||
# { keys = [ "n" ], command = ":normal" },
|
||||
# { keys = [ "v" ], command = ":visual" },
|
||||
# { keys = [ "c" ], command = ":copy" },
|
||||
# { keys = [ "p", "C-v" ], command = ":paste" },
|
||||
# { keys = [ "x" ], command = ":export" },
|
||||
# { keys = [ "s" ], command = ":set prompt :sign" },
|
||||
# { keys = [ "e" ], command = ":set prompt :edit" },
|
||||
# { keys = [ "i" ], command = ":set prompt :import"},
|
||||
# { keys = [ "f" ], command = ":set prompt :receive" },
|
||||
# { keys = [ "u" ], command = ":set prompt :send" },
|
||||
# { keys = [ "g" ], command = ":generate" },
|
||||
# { keys = [ "d", "backspace" ], command = ":delete" },
|
||||
# { keys = [ "C-r" ], command = ":refresh" },
|
||||
# ]
|
||||
|
||||
[gpg]
|
||||
armor = false
|
||||
# homedir = "~/.gnupg"
|
||||
# outdir = "~/.gnupg/out"
|
||||
# outfile = "{type}_{query}.{ext}"
|
||||
# default_key = "0xA1B2C3XY"
|
||||
|
||||
@@ -6,47 +6,86 @@ tap "gesquive/tap"
|
||||
tap "github/gh"
|
||||
tap "homebrew/autoupdate"
|
||||
tap "homebrew/bundle"
|
||||
tap "homebrew/cask"
|
||||
tap "homebrew/cask-fonts"
|
||||
tap "homebrew/core"
|
||||
tap "homebrew/services"
|
||||
tap "jesseduffield/lazygit"
|
||||
tap "mongodb/brew"
|
||||
tap "shivammathur/extensions"
|
||||
tap "shivammathur/php"
|
||||
tap "teamookla/speedtest"
|
||||
tap "xwmx/taps"
|
||||
# Run your GitHub Actions locally
|
||||
brew "act"
|
||||
# Mozilla CA certificate store
|
||||
brew "ca-certificates"
|
||||
# Cryptography and SSL/TLS Toolkit
|
||||
brew "openssl@3"
|
||||
# Interpreted, interactive, object-oriented programming language
|
||||
brew "python@3.11"
|
||||
# YAML Parser
|
||||
brew "libyaml"
|
||||
# Automate deployment, configuration, and upgrading
|
||||
brew "ansible"
|
||||
# Checks ansible playbooks for practices and behaviour
|
||||
brew "ansible-lint"
|
||||
# Generic-purpose lossless compression algorithm by Google
|
||||
brew "brotli"
|
||||
# Library and utilities for processing GIFs
|
||||
brew "giflib"
|
||||
# Performance-portable, length-agnostic SIMD with runtime dispatch
|
||||
brew "highway"
|
||||
# Library of 2D and 3D vector, matrix, and math operations
|
||||
brew "imath"
|
||||
# JPEG image codec that aids compression and decompression
|
||||
brew "jpeg-turbo"
|
||||
# Zstandard is a real-time compression algorithm
|
||||
brew "zstd"
|
||||
# New file format for still image compression
|
||||
brew "jpeg-xl"
|
||||
# Codec library for encoding and decoding AV1 video streams
|
||||
brew "aom"
|
||||
# Apache Portable Runtime library
|
||||
brew "apr"
|
||||
# Companion library to apr, the Apache Portable Runtime library
|
||||
brew "apr-util"
|
||||
# Password hashing library and CLI utility
|
||||
brew "argon2"
|
||||
# Open Source Kubernetes Marketplace
|
||||
brew "arkade"
|
||||
# Spell checker with better logic than ispell
|
||||
brew "aspell"
|
||||
# Automatic configure script builder
|
||||
brew "autoconf"
|
||||
# GNU multiple precision arithmetic library
|
||||
brew "gmp"
|
||||
# GNU File, Shell, and Text utilities
|
||||
brew "coreutils"
|
||||
# Extendable version manager with support for Ruby, Node.js, Erlang & more
|
||||
brew "asdf"
|
||||
# Spell checker with better logic than ispell
|
||||
brew "aspell"
|
||||
# Official Amazon AWS command-line interface
|
||||
brew "awscli"
|
||||
# Terminal bandwidth utilization tool
|
||||
brew "bandwhich"
|
||||
# Bourne-Again SHell, a UNIX command interpreter
|
||||
brew "bash"
|
||||
# Clone of cat(1) with syntax highlighting and Git integration
|
||||
brew "bat"
|
||||
# Yet another cross-platform graphical process/system monitor
|
||||
brew "bottom"
|
||||
# Switch Apache / Valet / CLI configs between PHP versions
|
||||
brew "brew-php-switcher"
|
||||
# Software library to render fonts
|
||||
brew "freetype"
|
||||
# XML-based font configuration API for X Windows
|
||||
brew "fontconfig"
|
||||
# GNU internationalization (i18n) and localization (l10n) library
|
||||
brew "gettext"
|
||||
# Core application library for C
|
||||
brew "glib"
|
||||
# Manage compile and link flags for libraries
|
||||
brew "pkg-config"
|
||||
# Human-friendly and fast alternative to cut and (sometimes) awk
|
||||
brew "choose-rust"
|
||||
# Cross-platform make
|
||||
brew "cmake"
|
||||
# GNU File, Shell, and Text utilities
|
||||
brew "coreutils"
|
||||
# Get, unpack, build, and install modules from CPAN
|
||||
brew "cpanminus"
|
||||
# Open source suite of directory software
|
||||
@@ -57,36 +96,46 @@ brew "curl"
|
||||
brew "difftastic"
|
||||
# Tool for exploring each layer in a docker image
|
||||
brew "dive"
|
||||
# Lightweight DNS forwarder and DHCP server
|
||||
brew "dnsmasq"
|
||||
# Command-line DNS client
|
||||
brew "dog"
|
||||
# Lightning-fast linter for .env files written in Rust
|
||||
brew "dotenv-linter"
|
||||
# Tool to verify that your files are in harmony with your .editorconfig
|
||||
brew "editorconfig-checker"
|
||||
# Useful examples at the command-line
|
||||
brew "eg-examples"
|
||||
# CLI for templating and/or deploying FaaS functions
|
||||
brew "faas-cli"
|
||||
# Run arbitrary commands when files change
|
||||
brew "entr"
|
||||
# Perl lib for reading and writing EXIF metadata
|
||||
brew "exiftool"
|
||||
# Simple, fast and user-friendly alternative to find
|
||||
brew "fd"
|
||||
# Banner-like program prints strings as ASCII art
|
||||
brew "figlet"
|
||||
# Libraries to talk to Microsoft SQL Server and Sybase databases
|
||||
brew "freetds"
|
||||
# Monitor a directory for changes and run a shell command
|
||||
brew "fswatch"
|
||||
# Command-line fuzzy finder written in Go
|
||||
brew "fzf"
|
||||
# Graphics library to dynamically manipulate images
|
||||
brew "gd"
|
||||
# Disk usage analyzer with console interface written in Go
|
||||
brew "gdu", link: false
|
||||
# GitHub command-line tool
|
||||
brew "gh"
|
||||
# Distributed revision control system
|
||||
brew "git"
|
||||
# Enable transparent encryption/decryption of files in a git repo
|
||||
brew "git-crypt"
|
||||
# Small git utilities
|
||||
brew "git-extras"
|
||||
# AVH edition of git-flow
|
||||
brew "git-flow-avh"
|
||||
# See your latest local git branches, formatted real fancy
|
||||
brew "git-recent"
|
||||
# Open-source GitLab command-line tool
|
||||
brew "glab"
|
||||
# Render markdown on the CLI
|
||||
brew "glow"
|
||||
# GNU implementation of the famous stream editor
|
||||
brew "gnu-sed"
|
||||
# Validating, recursive, caching DNS resolver
|
||||
@@ -97,6 +146,10 @@ brew "gnutls"
|
||||
brew "gnupg"
|
||||
# Open source programming language to build simple/reliable/efficient software
|
||||
brew "go"
|
||||
# Library access to GnuPG
|
||||
brew "gpgme"
|
||||
# Manage your GnuPG keys with ease!
|
||||
brew "gpg-tui"
|
||||
# Image manipulation
|
||||
brew "netpbm"
|
||||
# C/C++ and Java libraries for Unicode and globalization
|
||||
@@ -119,42 +172,54 @@ brew "hadolint"
|
||||
brew "htop"
|
||||
# Website copier/offline browser
|
||||
brew "httrack"
|
||||
# Configurable static site generator
|
||||
brew "hugo"
|
||||
# ISO/IEC 23008-12:2017 HEIF file format decoder and encoder
|
||||
brew "libheif"
|
||||
# Tools and libraries to manipulate images in many formats
|
||||
brew "imagemagick"
|
||||
# Lightweight and flexible command-line JSON processor
|
||||
brew "jq"
|
||||
# Network authentication protocol
|
||||
brew "krb5"
|
||||
# Lazier way to manage everything docker
|
||||
brew "lazydocker"
|
||||
# Postgres C API library
|
||||
brew "libpq"
|
||||
# Linguistic software and Finnish dictionary
|
||||
brew "libvoikko"
|
||||
# Rainbows and unicorns in your console!
|
||||
brew "lolcat"
|
||||
# Package manager for the Lua programming language
|
||||
brew "luarocks"
|
||||
# Swiss Army Knife for macOS
|
||||
brew "m-cli"
|
||||
# Mac App Store command-line interface
|
||||
brew "mas"
|
||||
# Terminal-based visual file manager
|
||||
brew "midnight-commander"
|
||||
# NCurses Disk Usage
|
||||
brew "ncdu"
|
||||
# Ambitious Vim-fork focused on extensibility and agility
|
||||
brew "neovim"
|
||||
# No Nonsense Neovim Client in Rust
|
||||
brew "neovide"
|
||||
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
|
||||
brew "nginx"
|
||||
# Port scanning utility for large networks
|
||||
brew "nmap"
|
||||
# Manage multiple Node.js versions
|
||||
brew "nvm"
|
||||
# Development kit for the Java programming language
|
||||
brew "openjdk"
|
||||
brew "openjdk@11"
|
||||
# Generate clients, server & docs from an OpenAPI spec (v2, v3)
|
||||
brew "openapi-generator"
|
||||
# Development kit for the Java programming language
|
||||
brew "openjdk"
|
||||
# Swiss-army knife of markup format conversion
|
||||
brew "pandoc"
|
||||
# Highly capable, feature-rich programming language
|
||||
brew "perl"
|
||||
# General-purpose scripting language
|
||||
brew "php@8.1"
|
||||
# Simple Python style checker in one Python file
|
||||
brew "pycodestyle"
|
||||
# Python version management
|
||||
brew "pyenv"
|
||||
# Migrate pip packages from one Python version to another
|
||||
@@ -165,24 +230,30 @@ brew "pyenv-virtualenv"
|
||||
brew "python@3.10"
|
||||
# Interpreted, interactive, object-oriented programming language
|
||||
brew "python@3.8"
|
||||
# Ruby version manager
|
||||
brew "rbenv"
|
||||
# RC file (dotfile) management
|
||||
brew "rcm"
|
||||
# Search tool like grep and The Silver Searcher
|
||||
brew "ripgrep"
|
||||
# Powerful, clean, object-oriented scripting language
|
||||
brew "ruby"
|
||||
# Safe, concurrent, practical language
|
||||
brew "rust"
|
||||
# Static analysis and lint tool, for (ba)sh scripts
|
||||
brew "shellcheck"
|
||||
# Autoformat shell script source code
|
||||
brew "shfmt"
|
||||
# Cross-shell prompt for astronauts
|
||||
brew "starship"
|
||||
# Support CI generation of SBOMs via golang tooling
|
||||
brew "spdx-sbom-generator"
|
||||
# Version control system designed to be a better CVS
|
||||
brew "subversion"
|
||||
# Feature-rich console based todo list manager
|
||||
brew "task"
|
||||
# Terminal user interface for taskwarrior
|
||||
brew "taskwarrior-tui"
|
||||
# Very fast implementation of tldr in Rust
|
||||
brew "tealdeer"
|
||||
# Send macOS User Notifications from the command-line
|
||||
brew "terminal-notifier", link: false
|
||||
# Tool to build, change, and version infrastructure
|
||||
brew "terraform", link: false
|
||||
brew "terminal-notifier"
|
||||
# Thin wrapper for Terraform e.g. for locking state
|
||||
brew "terragrunt"
|
||||
# Tool which checks for the support of TLS/SSL ciphers and flaws
|
||||
@@ -193,8 +264,6 @@ brew "tfenv"
|
||||
brew "tfsec"
|
||||
# Programmatically correct mistyped console commands
|
||||
brew "thefuck"
|
||||
# Simplified and community-driven man pages
|
||||
brew "tldr"
|
||||
# Terminal multiplexer
|
||||
brew "tmux"
|
||||
# Display directories as trees (with optional color/HTML output)
|
||||
@@ -213,6 +282,10 @@ brew "watch"
|
||||
brew "wget"
|
||||
# Personal information dashboard for your terminal
|
||||
brew "wtfutil"
|
||||
# Check your $HOME for unwanted files and directories
|
||||
brew "xdg-ninja", args: ["HEAD"]
|
||||
# Hackable, minimal, fast TUI file explorer
|
||||
brew "xplr"
|
||||
# JavaScript package manager
|
||||
brew "yarn"
|
||||
# A vulnerability scanner for container images and filesystems
|
||||
@@ -225,6 +298,8 @@ brew "gesquive/tap/git-user"
|
||||
brew "jesseduffield/lazygit/lazygit"
|
||||
# High-performance, schema-free, document-oriented database
|
||||
brew "mongodb/brew/mongodb-community"
|
||||
# Imagick PHP extension
|
||||
brew "shivammathur/extensions/imagick@8.2"
|
||||
# Xdebug PHP extension
|
||||
brew "shivammathur/extensions/xdebug@7.4"
|
||||
# Xdebug PHP extension
|
||||
@@ -241,12 +316,18 @@ brew "shivammathur/php/php@8.0"
|
||||
brew "teamookla/speedtest/speedtest"
|
||||
# Command-line helper for the 1Password password manager
|
||||
cask "1password-cli"
|
||||
# Turn audio CDs and files into audiobooks
|
||||
cask "audiobook-builder"
|
||||
# Text editor
|
||||
cask "coda"
|
||||
# Universal database tool and SQL client
|
||||
cask "dbeaver-community"
|
||||
# Database version management tool
|
||||
cask "dbngin"
|
||||
# App to build and share containerized applications and microservices
|
||||
cask "docker"
|
||||
# Reimagine your terminal
|
||||
cask "fig"
|
||||
# UI toolkit for building applications for mobile, web and desktop
|
||||
cask "flutter"
|
||||
# Unofficial overcast.fm podcast app
|
||||
cask "fog"
|
||||
# Typeface made for developers
|
||||
@@ -273,10 +354,16 @@ cask "insomnia"
|
||||
cask "jetbrains-toolbox"
|
||||
# Kubernetes IDE
|
||||
cask "lens"
|
||||
# Neovim Client
|
||||
cask "neovide"
|
||||
# Keep all tasks from your todo apps on your menu bar
|
||||
cask "monofocus"
|
||||
# Reverse proxy, secure introspectable tunnels to localhost
|
||||
cask "ngrok"
|
||||
# Simple application that will prevent iTunes or Apple Music from launching
|
||||
cask "notunes"
|
||||
# Knowledge base that works on top of a local folder of plain text Markdown files
|
||||
cask "obsidian"
|
||||
# Scheduling application focusing on organization
|
||||
cask "omnifocus"
|
||||
# Collaboration platform for API development
|
||||
cask "postman"
|
||||
# Display image info and preview unsupported formats in QuickLook
|
||||
@@ -291,8 +378,14 @@ cask "quicklook-json"
|
||||
cask "quicklookase"
|
||||
# Automatically hides or quits apps after periods of inactivity
|
||||
cask "quitter"
|
||||
# Control your tools with a few keystrokes
|
||||
cask "raycast"
|
||||
# Move and resize windows using keyboard shortcuts or snap areas
|
||||
cask "rectangle"
|
||||
# GUI for rsync
|
||||
cask "rsyncosx"
|
||||
# GUI for rsync
|
||||
cask "rsyncui"
|
||||
# MySQL/MariaDB database management
|
||||
cask "sequel-ace"
|
||||
# Collection of apps available by subscription
|
||||
@@ -313,9 +406,83 @@ cask "vlc"
|
||||
cask "voikkospellservice"
|
||||
# Rust-based terminal
|
||||
cask "warp"
|
||||
# View output from scripts in the menu bar
|
||||
cask "xbar"
|
||||
mas "1Password for Safari", id: 1569813296
|
||||
mas "Flow", id: 1423210932
|
||||
mas "pullBar", id: 1601913905
|
||||
mas "Actions", id: 1586435171
|
||||
mas "Audiobook Builder", id: 1437681957
|
||||
mas "Ivory", id: 6444602274
|
||||
mas "Keynote", id: 409183694
|
||||
mas "LastPass", id: 926036361
|
||||
mas "Numbers", id: 409203825
|
||||
mas "Pages", id: 409201541
|
||||
mas "Tailscale", id: 1475387142
|
||||
mas "Xcode", id: 497799835
|
||||
vscode "akamud.vscode-theme-onelight"
|
||||
vscode "amiralizadeh9480.laravel-extra-intellisense"
|
||||
vscode "andrewleedham.vscode-css-modules"
|
||||
vscode "andrewmcodes.tailwindcss-extension-pack"
|
||||
vscode "austenc.tailwind-docs"
|
||||
vscode "bmewburn.vscode-intelephense-client"
|
||||
vscode "Box-Of-Hats.bemhelper"
|
||||
vscode "bradlc.vscode-tailwindcss"
|
||||
vscode "christian-kohler.npm-intellisense"
|
||||
vscode "christian-kohler.path-intellisense"
|
||||
vscode "DavidAnson.vscode-markdownlint"
|
||||
vscode "dbaeumer.vscode-eslint"
|
||||
vscode "DotJoshJohnson.xml"
|
||||
vscode "eamodio.gitlens"
|
||||
vscode "EditorConfig.EditorConfig"
|
||||
vscode "esbenp.prettier-vscode"
|
||||
vscode "formulahendry.auto-close-tag"
|
||||
vscode "formulahendry.auto-rename-tag"
|
||||
vscode "formulahendry.code-runner"
|
||||
vscode "gencer.html-slim-scss-css-class-completion"
|
||||
vscode "github.vscode-github-actions"
|
||||
vscode "GitHub.vscode-pull-request-github"
|
||||
vscode "GraphQL.vscode-graphql"
|
||||
vscode "GraphQL.vscode-graphql-execution"
|
||||
vscode "GraphQL.vscode-graphql-syntax"
|
||||
vscode "heybourn.headwind"
|
||||
vscode "JohnnyMorganz.stylua"
|
||||
vscode "jumpinjackie.vscode-map-preview"
|
||||
vscode "k--kato.intellij-idea-keybindings"
|
||||
vscode "liamhammett.inline-parameters"
|
||||
vscode "macieklad.tailwind-sass-syntax"
|
||||
vscode "MehediDracula.php-namespace-resolver"
|
||||
vscode "mikestead.dotenv"
|
||||
vscode "MisterJ.vue-volar-extention-pack"
|
||||
vscode "MrChetan.phpstorm-parameter-hints-in-vscode"
|
||||
vscode "mrorz.language-gettext"
|
||||
vscode "ms-azuretools.vscode-docker"
|
||||
vscode "ms-python.python"
|
||||
vscode "ms-python.vscode-pylance"
|
||||
vscode "ms-toolsai.jupyter"
|
||||
vscode "ms-toolsai.jupyter-renderers"
|
||||
vscode "ms-toolsai.vscode-jupyter-cell-tags"
|
||||
vscode "ms-toolsai.vscode-jupyter-slideshow"
|
||||
vscode "ms-vscode-remote.remote-containers"
|
||||
vscode "ms-vscode-remote.remote-wsl"
|
||||
vscode "ms-vscode.cpptools"
|
||||
vscode "msjsdiag.vscode-react-native"
|
||||
vscode "mtxr.sqltools"
|
||||
vscode "neilbrayfield.php-docblocker"
|
||||
vscode "nhoizey.gremlins"
|
||||
vscode "octref.vetur"
|
||||
vscode "oderwat.indent-rainbow"
|
||||
vscode "pflannery.vscode-versionlens"
|
||||
vscode "phiter.phpstorm-snippets"
|
||||
vscode "sibiraj-s.vscode-scss-formatter"
|
||||
vscode "SonarSource.sonarlint-vscode"
|
||||
vscode "stylelint.vscode-stylelint"
|
||||
vscode "syler.sass-indented"
|
||||
vscode "timonwong.shellcheck"
|
||||
vscode "tootone.org-mode"
|
||||
vscode "valeryanm.vscode-phpsab"
|
||||
vscode "Vue.volar"
|
||||
vscode "Vue.vscode-typescript-vue-plugin"
|
||||
vscode "WakaTime.vscode-wakatime"
|
||||
vscode "wix.vscode-import-cost"
|
||||
vscode "xdebug.php-debug"
|
||||
vscode "xdebug.php-pack"
|
||||
vscode "yinfei.luahelper"
|
||||
vscode "yoavbls.pretty-ts-errors"
|
||||
vscode "ZainChen.json"
|
||||
11
config/homebrew/brew.env
Normal file
11
config/homebrew/brew.env
Normal file
@@ -0,0 +1,11 @@
|
||||
# shellcheck shell=bash
|
||||
# vim: filetype=zsh
|
||||
# dotenv-linter:off LowercaseKey, KeyWithoutValue, ExtraBlankLine, EndingBlankLine
|
||||
#
|
||||
# Homebrew configuration
|
||||
|
||||
export HOMEBREW_AUTOREMOVE=true
|
||||
export HOMEBREW_AUTO_UPDATE_SECS=86400
|
||||
export HOMEBREW_CLEANUP_MAX_AGE_DAYS=30
|
||||
export HOMEBREW_NO_ENV_HINTS=1
|
||||
|
||||
331
config/iterm2/catppuccin-mocha.itermcolors
Normal file
331
config/iterm2/catppuccin-mocha.itermcolors
Normal file
@@ -0,0 +1,331 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Ansi 0 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.27058823529411763</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.2784313725490196</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.35294117647058826</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 1 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9529411764705882</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.5450980392156862</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6588235294117647</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 2 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.6509803921568628</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8901960784313725</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6313725490196078</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 3 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9764705882352941</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8862745098039215</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6862745098039216</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 4 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.5372549019607843</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.7058823529411765</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9803921568627451</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 5 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9607843137254902</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.7607843137254902</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9058823529411765</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 6 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.5803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8862745098039215</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.8352941176470589</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 7 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.7294117647058823</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.7607843137254902</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.8705882352941177</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 8 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.34509803921568627</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.3568627450980392</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.4392156862745098</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 9 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9529411764705882</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.5450980392156862</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6588235294117647</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 10 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.6509803921568628</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8901960784313725</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6313725490196078</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 11 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9764705882352941</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8862745098039215</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.6862745098039216</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 12 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.5372549019607843</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.7058823529411765</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9803921568627451</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 13 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9607843137254902</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.7607843137254902</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9058823529411765</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 14 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.5803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8862745098039215</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.8352941176470589</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Ansi 15 Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.6509803921568628</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.6784313725490196</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.7843137254901961</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Background Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.11764705882352941</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.11764705882352941</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.1803921568627451</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Foreground Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8392156862745098</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9568627450980393</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Link Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.5372549019607843</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8627450980392157</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9215686274509803</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Bold Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8392156862745098</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9568627450980393</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Cursor Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.9607843137254902</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8784313725490196</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.8627450980392157</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Cursor Text Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8392156862745098</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9568627450980393</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Cursor Guide Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8392156862745098</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9568627450980393</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>0.07</real>
|
||||
</dict>
|
||||
<key>Selection Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.34509803921568627</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.3568627450980392</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.4392156862745098</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Selected Text Color</key>
|
||||
<dict>
|
||||
<key>Color Space</key>
|
||||
<string>sRGB</string>
|
||||
<key>Red Component</key>
|
||||
<real>0.803921568627451</real>
|
||||
<key>Green Component</key>
|
||||
<real>0.8392156862745098</real>
|
||||
<key>Blue Component</key>
|
||||
<real>0.9568627450980393</real>
|
||||
<key>Alpha Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
1333
config/iterm2/com.googlecode.iterm2.plist
Normal file
1333
config/iterm2/com.googlecode.iterm2.plist
Normal file
File diff suppressed because it is too large
Load Diff
417
config/iterm2/iterm2-config.json
Normal file
417
config/iterm2/iterm2-config.json
Normal file
@@ -0,0 +1,417 @@
|
||||
{
|
||||
"Badge Text" : "",
|
||||
"Working Directory" : "\/Users\/ivuorinen\/Code",
|
||||
"Prompt Before Closing 2" : false,
|
||||
"Selected Text Color" : {
|
||||
"Red Component" : 0.80392156862745101,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.95686274509803926,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.83921568627450982
|
||||
},
|
||||
"Rows" : 25,
|
||||
"Ansi 11 Color" : {
|
||||
"Red Component" : 0.97647058823529409,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.68627450980392157,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.88627450980392153
|
||||
},
|
||||
"Use Italic Font" : true,
|
||||
"Foreground Color" : {
|
||||
"Red Component" : 0.80392156862745101,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.95686274509803926,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.83921568627450982
|
||||
},
|
||||
"Right Option Key Sends" : 0,
|
||||
"Character Encoding" : 4,
|
||||
"Selection Color" : {
|
||||
"Red Component" : 0.34509803921568627,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.4392156862745098,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.35686274509803922
|
||||
},
|
||||
"Blend" : 0.24709154211956524,
|
||||
"Mouse Reporting" : true,
|
||||
"Cursor Boost" : 0,
|
||||
"Ansi 4 Color" : {
|
||||
"Red Component" : 0.53725490196078429,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.98039215686274506,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.70588235294117652
|
||||
},
|
||||
"Non-ASCII Anti Aliased" : true,
|
||||
"Sync Title" : false,
|
||||
"Badge Font" : "JetBrainsMonoNerdFontCompleteM-Bold",
|
||||
"Disable Window Resizing" : true,
|
||||
"Description" : "Default",
|
||||
"Close Sessions On End" : true,
|
||||
"Jobs to Ignore" : [
|
||||
"rlogin",
|
||||
"ssh",
|
||||
"slogin",
|
||||
"telnet"
|
||||
],
|
||||
"Scrollback Lines" : 0,
|
||||
"Draw Powerline Glyphs" : true,
|
||||
"Flashing Bell" : true,
|
||||
"Cursor Guide Color" : {
|
||||
"Red Component" : 0.80392156862745101,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.95686274509803926,
|
||||
"Alpha Component" : 0.070000000000000007,
|
||||
"Green Component" : 0.83921568627450982
|
||||
},
|
||||
"BM Growl" : true,
|
||||
"Ansi 3 Color" : {
|
||||
"Red Component" : 0.97647058823529409,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.68627450980392157,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.88627450980392153
|
||||
},
|
||||
"Icon" : 1,
|
||||
"Use Non-ASCII Font" : false,
|
||||
"Link Color" : {
|
||||
"Red Component" : 0.53725490196078429,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.92156862745098034,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.86274509803921573
|
||||
},
|
||||
"Shortcut" : "",
|
||||
"Background Image Location" : "",
|
||||
"Bold Color" : {
|
||||
"Red Component" : 0.80392156862745101,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.95686274509803926,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.83921568627450982
|
||||
},
|
||||
"Use Cursor Guide" : false,
|
||||
"Unlimited Scrollback" : true,
|
||||
"Custom Command" : "No",
|
||||
"Title Components" : 512,
|
||||
"Keyboard Map" : {
|
||||
"0xf700-0x260000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;6A"
|
||||
},
|
||||
"0x37-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1f"
|
||||
},
|
||||
"0x32-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x00"
|
||||
},
|
||||
"0xf709-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[17;2~"
|
||||
},
|
||||
"0xf70c-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[20;2~"
|
||||
},
|
||||
"0xf729-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2H"
|
||||
},
|
||||
"0xf72b-0x40000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5F"
|
||||
},
|
||||
"0xf705-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2Q"
|
||||
},
|
||||
"0xf703-0x260000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;6C"
|
||||
},
|
||||
"0xf700-0x220000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2A"
|
||||
},
|
||||
"0xf701-0x280000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1b 0x1b 0x5b 0x42"
|
||||
},
|
||||
"0x38-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x7f"
|
||||
},
|
||||
"0x33-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1b"
|
||||
},
|
||||
"0xf703-0x220000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2C"
|
||||
},
|
||||
"0xf701-0x240000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5B"
|
||||
},
|
||||
"0xf70d-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[21;2~"
|
||||
},
|
||||
"0xf702-0x260000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;6D"
|
||||
},
|
||||
"0xf729-0x40000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5H"
|
||||
},
|
||||
"0xf706-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2R"
|
||||
},
|
||||
"0x34-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1c"
|
||||
},
|
||||
"0xf700-0x280000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1b 0x1b 0x5b 0x41"
|
||||
},
|
||||
"0x2d-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1f"
|
||||
},
|
||||
"0xf70e-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[23;2~"
|
||||
},
|
||||
"0xf702-0x220000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2D"
|
||||
},
|
||||
"0xf703-0x280000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1b 0x1b 0x5b 0x43"
|
||||
},
|
||||
"0xf700-0x240000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5A"
|
||||
},
|
||||
"0xf707-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2S"
|
||||
},
|
||||
"0xf70a-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[18;2~"
|
||||
},
|
||||
"0x35-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1d"
|
||||
},
|
||||
"0xf70f-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[24;2~"
|
||||
},
|
||||
"0xf703-0x240000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5C"
|
||||
},
|
||||
"0xf701-0x260000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;6B"
|
||||
},
|
||||
"0xf702-0x280000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1b 0x1b 0x5b 0x44"
|
||||
},
|
||||
"0xf72b-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2F"
|
||||
},
|
||||
"0x36-0x40000" : {
|
||||
"Action" : 11,
|
||||
"Text" : "0x1e"
|
||||
},
|
||||
"0xf708-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[15;2~"
|
||||
},
|
||||
"0xf701-0x220000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2B"
|
||||
},
|
||||
"0xf70b-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[19;2~"
|
||||
},
|
||||
"0xf702-0x240000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;5D"
|
||||
},
|
||||
"0xf704-0x20000" : {
|
||||
"Action" : 10,
|
||||
"Text" : "[1;2P"
|
||||
}
|
||||
},
|
||||
"Ansi 14 Color" : {
|
||||
"Red Component" : 0.58039215686274515,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.83529411764705885,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.88627450980392153
|
||||
},
|
||||
"Ansi 2 Color" : {
|
||||
"Red Component" : 0.65098039215686276,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.63137254901960782,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.8901960784313725
|
||||
},
|
||||
"Send Code When Idle" : false,
|
||||
"ASCII Anti Aliased" : true,
|
||||
"Tags" : [
|
||||
|
||||
],
|
||||
"Ansi 9 Color" : {
|
||||
"Red Component" : 0.95294117647058818,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.6588235294117647,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.54509803921568623
|
||||
},
|
||||
"Badge Right Margin" : 10,
|
||||
"Use Bold Font" : true,
|
||||
"Silence Bell" : false,
|
||||
"Ansi 12 Color" : {
|
||||
"Red Component" : 0.53725490196078429,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.98039215686274506,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.70588235294117652
|
||||
},
|
||||
"Window Type" : 0,
|
||||
"Use Bright Bold" : true,
|
||||
"Cursor Text Color" : {
|
||||
"Red Component" : 0.80392156862745101,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.95686274509803926,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.83921568627450982
|
||||
},
|
||||
"Default Bookmark" : "No",
|
||||
"Cursor Color" : {
|
||||
"Red Component" : 0.96078431372549022,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.86274509803921573,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.8784313725490196
|
||||
},
|
||||
"Ansi 1 Color" : {
|
||||
"Red Component" : 0.95294117647058818,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.6588235294117647,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.54509803921568623
|
||||
},
|
||||
"Name" : "Default",
|
||||
"Blinking Cursor" : false,
|
||||
"Guid" : "82636119-EA17-4A26-9AA7-408172F4A9C8",
|
||||
"Badge Max Width" : 0.45000000000000001,
|
||||
"Idle Code" : 0,
|
||||
"Ansi 10 Color" : {
|
||||
"Red Component" : 0.65098039215686276,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.63137254901960782,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.8901960784313725
|
||||
},
|
||||
"Ansi 8 Color" : {
|
||||
"Red Component" : 0.34509803921568627,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.4392156862745098,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.35686274509803922
|
||||
},
|
||||
"Badge Color" : {
|
||||
"Red Component" : 1,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0,
|
||||
"Alpha Component" : 0.5,
|
||||
"Green Component" : 0.14910030364990234
|
||||
},
|
||||
"Smart Cursor Color" : true,
|
||||
"Ambiguous Double Width" : false,
|
||||
"Blur Radius" : 9.5927277260638313,
|
||||
"Badge Max Height" : 0.10000000000000001,
|
||||
"Ansi 0 Color" : {
|
||||
"Red Component" : 0.27058823529411763,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.35294117647058826,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.27843137254901962
|
||||
},
|
||||
"Blur" : true,
|
||||
"Normal Font" : "JetBrainsMonoNerdFontCompleteM-Light 15",
|
||||
"Vertical Spacing" : 1,
|
||||
"Ansi 7 Color" : {
|
||||
"Red Component" : 0.72941176470588232,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.87058823529411766,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.76078431372549016
|
||||
},
|
||||
"Command" : "",
|
||||
"Terminal Type" : "xterm-256color",
|
||||
"Horizontal Spacing" : 1,
|
||||
"Option Key Sends" : 0,
|
||||
"Only The Default BG Color Uses Transparency" : true,
|
||||
"Minimum Contrast" : 0.14973958333333334,
|
||||
"Ansi 15 Color" : {
|
||||
"Red Component" : 0.65098039215686276,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.78431372549019607,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.67843137254901964
|
||||
},
|
||||
"Ansi 6 Color" : {
|
||||
"Red Component" : 0.58039215686274515,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.83529411764705885,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.88627450980392153
|
||||
},
|
||||
"Badge Top Margin" : 10,
|
||||
"Transparency" : 0.10293218085106381,
|
||||
"Background Color" : {
|
||||
"Red Component" : 0.11764705882352941,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.1803921568627451,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.11764705882352941
|
||||
},
|
||||
"Screen" : -2,
|
||||
"Non Ascii Font" : "Monaco 12",
|
||||
"Ansi 13 Color" : {
|
||||
"Red Component" : 0.96078431372549022,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.90588235294117647,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.76078431372549016
|
||||
},
|
||||
"Columns" : 120,
|
||||
"Visual Bell" : true,
|
||||
"ASCII Ligatures" : false,
|
||||
"Ansi 5 Color" : {
|
||||
"Red Component" : 0.96078431372549022,
|
||||
"Color Space" : "sRGB",
|
||||
"Blue Component" : 0.90588235294117647,
|
||||
"Alpha Component" : 1,
|
||||
"Green Component" : 0.76078431372549016
|
||||
},
|
||||
"Custom Directory" : "Yes"
|
||||
}
|
||||
18
config/nbrc
Normal file
18
config/nbrc
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
###############################################################################
|
||||
# .nbrc
|
||||
#
|
||||
# Configuration file for `nb`, a command line note-taking, bookmarking,
|
||||
# and knowledge base application with encryption, search, Git-backed syncing,
|
||||
# and more in a single portable script.
|
||||
#
|
||||
# Edit this file manually or manage settings using the `nb settings`
|
||||
# subcommand. Configuration options are set as environment variables, eg:
|
||||
# export NB_ENCRYPTION_TOOL=gpg
|
||||
#
|
||||
# https://github.com/xwmx/nb
|
||||
###############################################################################
|
||||
|
||||
export NB_DIR="${NB_DIR:-$HOME/.local/state/nb}" # Set by `nb` • Mon May 8 15:25:12 EEST 2023
|
||||
|
||||
export NB_COLOR_THEME="${NB_COLOR_THEME:-unicorn}" # Set by `nb` • Mon May 8 15:41:22 EEST 2023
|
||||
864
config/neofetch/config.conf
Normal file
864
config/neofetch/config.conf
Normal file
@@ -0,0 +1,864 @@
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
print_info() {
|
||||
info title
|
||||
info underline
|
||||
|
||||
info "OS" distro
|
||||
info "Host" model
|
||||
# info "Kernel" kernel
|
||||
info "Uptime" uptime
|
||||
# info "Packages" packages
|
||||
info "Shell" shell
|
||||
info "Resolution" resolution
|
||||
# info "DE" de
|
||||
# info "WM" wm
|
||||
# info "WM Theme" wm_theme
|
||||
info "Theme" theme
|
||||
info "Icons" icons
|
||||
info "Terminal" term
|
||||
info "Terminal Font" term_font
|
||||
info "CPU" cpu
|
||||
info "GPU" gpu
|
||||
info "Memory" memory
|
||||
|
||||
# info "GPU Driver" gpu_driver # Linux/macOS only
|
||||
# info "CPU Usage" cpu_usage
|
||||
# info "Disk" disk
|
||||
# info "Battery" battery
|
||||
# info "Font" font
|
||||
# info "Song" song
|
||||
# [[ "$player" ]] && prin "Music Player" "$player"
|
||||
info "Local IP" local_ip
|
||||
# info "Public IP" public_ip
|
||||
# info "Users" users
|
||||
info "Locale" locale # This only works on glibc systems.
|
||||
|
||||
info cols
|
||||
}
|
||||
|
||||
# Title
|
||||
|
||||
|
||||
# Hide/Show Fully qualified domain name.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --title_fqdn
|
||||
title_fqdn="off"
|
||||
|
||||
|
||||
# Kernel
|
||||
|
||||
|
||||
# Shorten the output of the kernel function.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --kernel_shorthand
|
||||
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
||||
#
|
||||
# Example:
|
||||
# on: '4.8.9-1-ARCH'
|
||||
# off: 'Linux 4.8.9-1-ARCH'
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
# Distro
|
||||
|
||||
|
||||
# Shorten the output of the distro function
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --distro_shorthand
|
||||
# Supports: Everything except Windows and Haiku
|
||||
distro_shorthand="on"
|
||||
|
||||
# Show/Hide OS Architecture.
|
||||
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --os_arch
|
||||
#
|
||||
# Example:
|
||||
# on: 'Arch Linux x86_64'
|
||||
# off: 'Arch Linux'
|
||||
os_arch="on"
|
||||
|
||||
|
||||
# Uptime
|
||||
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --uptime_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: '2 days, 10 hours, 3 mins'
|
||||
# tiny: '2d 10h 3m'
|
||||
# off: '2 days, 10 hours, 3 minutes'
|
||||
uptime_shorthand="tiny"
|
||||
|
||||
|
||||
# Memory
|
||||
|
||||
|
||||
# Show memory pecentage in output.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --memory_percent
|
||||
#
|
||||
# Example:
|
||||
# on: '1801MiB / 7881MiB (22%)'
|
||||
# off: '1801MiB / 7881MiB'
|
||||
memory_percent="on"
|
||||
|
||||
# Change memory output unit.
|
||||
#
|
||||
# Default: 'mib'
|
||||
# Values: 'kib', 'mib', 'gib'
|
||||
# Flag: --memory_unit
|
||||
#
|
||||
# Example:
|
||||
# kib '1020928KiB / 7117824KiB'
|
||||
# mib '1042MiB / 6951MiB'
|
||||
# gib: ' 0.98GiB / 6.79GiB'
|
||||
memory_unit="gib"
|
||||
|
||||
|
||||
# Packages
|
||||
|
||||
|
||||
# Show/Hide Package Manager names.
|
||||
#
|
||||
# Default: 'tiny'
|
||||
# Values: 'on', 'tiny' 'off'
|
||||
# Flag: --package_managers
|
||||
#
|
||||
# Example:
|
||||
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
||||
# tiny: '908 (pacman, flatpak, snap)'
|
||||
# off: '908'
|
||||
package_managers="on"
|
||||
|
||||
|
||||
# Shell
|
||||
|
||||
|
||||
# Show the path to $SHELL
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_path
|
||||
#
|
||||
# Example:
|
||||
# on: '/bin/bash'
|
||||
# off: 'bash'
|
||||
shell_path="off"
|
||||
|
||||
# Show $SHELL version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_version
|
||||
#
|
||||
# Example:
|
||||
# on: 'bash 4.4.5'
|
||||
# off: 'bash'
|
||||
shell_version="on"
|
||||
|
||||
|
||||
# CPU
|
||||
|
||||
|
||||
# CPU speed type
|
||||
#
|
||||
# Default: 'bios_limit'
|
||||
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
||||
# Flag: --speed_type
|
||||
# Supports: Linux with 'cpufreq'
|
||||
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
||||
speed_type="bios_limit"
|
||||
|
||||
# CPU speed shorthand
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'.
|
||||
# Flag: --speed_shorthand
|
||||
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
||||
#
|
||||
# Example:
|
||||
# on: 'i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'i7-6500U (4) @ 3.100GHz'
|
||||
speed_shorthand="off"
|
||||
|
||||
# Enable/Disable CPU brand in output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U'
|
||||
# off: 'i7-6500U (4)'
|
||||
cpu_brand="on"
|
||||
|
||||
# CPU Speed
|
||||
# Hide/Show CPU speed.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_speed
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'Intel i7-6500U (4)'
|
||||
cpu_speed="on"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
#
|
||||
# Default: 'logical'
|
||||
# Values: 'logical', 'physical', 'off'
|
||||
# Flag: --cpu_cores
|
||||
# Support: 'physical' doesn't work on BSD.
|
||||
#
|
||||
# Example:
|
||||
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
||||
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
||||
# off: 'Intel i7-6500U @ 3.1GHz'
|
||||
cpu_cores="logical"
|
||||
|
||||
# CPU Temperature
|
||||
# Hide/Show CPU temperature.
|
||||
# Note the temperature is added to the regular CPU function.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'C', 'F', 'off'
|
||||
# Flag: --cpu_temp
|
||||
# Supports: Linux, BSD
|
||||
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
||||
# coretemp kernel module. This only supports newer Intel processors.
|
||||
#
|
||||
# Example:
|
||||
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
||||
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
||||
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
cpu_temp="off"
|
||||
|
||||
|
||||
# GPU
|
||||
|
||||
|
||||
# Enable/Disable GPU Brand
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'AMD HD 7950'
|
||||
# off: 'HD 7950'
|
||||
gpu_brand="on"
|
||||
|
||||
# Which GPU to display
|
||||
#
|
||||
# Default: 'all'
|
||||
# Values: 'all', 'dedicated', 'integrated'
|
||||
# Flag: --gpu_type
|
||||
# Supports: Linux
|
||||
#
|
||||
# Example:
|
||||
# all:
|
||||
# GPU1: AMD HD 7950
|
||||
# GPU2: Intel Integrated Graphics
|
||||
#
|
||||
# dedicated:
|
||||
# GPU1: AMD HD 7950
|
||||
#
|
||||
# integrated:
|
||||
# GPU1: Intel Integrated Graphics
|
||||
gpu_type="all"
|
||||
|
||||
|
||||
# Resolution
|
||||
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --refresh_rate
|
||||
# Supports: Doesn't work on Windows.
|
||||
#
|
||||
# Example:
|
||||
# on: '1920x1080 @ 60Hz'
|
||||
# off: '1920x1080'
|
||||
refresh_rate="off"
|
||||
|
||||
|
||||
# Gtk Theme / Icons / Font
|
||||
|
||||
|
||||
# Shorten output of GTK Theme / Icons / Font
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix, Adwaita'
|
||||
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
gtk_shorthand="off"
|
||||
|
||||
|
||||
# Enable/Disable gtk2 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk2
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Adwaita [GTK3]'
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk3
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Numix [GTK2]'
|
||||
gtk3="on"
|
||||
|
||||
|
||||
# IP Address
|
||||
|
||||
|
||||
# Website to ping for the public IP
|
||||
#
|
||||
# Default: 'http://ident.me'
|
||||
# Values: 'url'
|
||||
# Flag: --ip_host
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
# Public IP timeout.
|
||||
#
|
||||
# Default: '2'
|
||||
# Values: 'int'
|
||||
# Flag: --ip_timeout
|
||||
public_ip_timeout=2
|
||||
|
||||
|
||||
# Desktop Environment
|
||||
|
||||
|
||||
# Show Desktop Environment version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --de_version
|
||||
de_version="on"
|
||||
|
||||
|
||||
# Disk
|
||||
|
||||
|
||||
# Which disks to display.
|
||||
# The values can be any /dev/sdXX, mount point or directory.
|
||||
# NOTE: By default we only show the disk info for '/'.
|
||||
#
|
||||
# Default: '/'
|
||||
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
||||
# Flag: --disk_show
|
||||
#
|
||||
# Example:
|
||||
# disk_show=('/' '/dev/sdb1'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
||||
#
|
||||
# disk_show=('/'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
#
|
||||
disk_show=('/')
|
||||
|
||||
# Disk subtitle.
|
||||
# What to append to the Disk subtitle.
|
||||
#
|
||||
# Default: 'mount'
|
||||
# Values: 'mount', 'name', 'dir', 'none'
|
||||
# Flag: --disk_subtitle
|
||||
#
|
||||
# Example:
|
||||
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
||||
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
||||
#
|
||||
# mount: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# dir: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# none: 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
disk_subtitle="mount"
|
||||
|
||||
# Disk percent.
|
||||
# Show/Hide disk percent.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --disk_percent
|
||||
#
|
||||
# Example:
|
||||
# on: 'Disk (/): 74G / 118G (66%)'
|
||||
# off: 'Disk (/): 74G / 118G'
|
||||
disk_percent="on"
|
||||
|
||||
|
||||
# Song
|
||||
|
||||
|
||||
# Manually specify a music player.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'player-name'
|
||||
# Flag: --music_player
|
||||
#
|
||||
# Available values for 'player-name':
|
||||
#
|
||||
# amarok
|
||||
# audacious
|
||||
# banshee
|
||||
# bluemindo
|
||||
# clementine
|
||||
# cmus
|
||||
# deadbeef
|
||||
# deepin-music
|
||||
# dragon
|
||||
# elisa
|
||||
# exaile
|
||||
# gnome-music
|
||||
# gmusicbrowser
|
||||
# gogglesmm
|
||||
# guayadeque
|
||||
# io.elementary.music
|
||||
# iTunes
|
||||
# juk
|
||||
# lollypop
|
||||
# mocp
|
||||
# mopidy
|
||||
# mpd
|
||||
# muine
|
||||
# netease-cloud-music
|
||||
# olivia
|
||||
# playerctl
|
||||
# pogo
|
||||
# pragha
|
||||
# qmmp
|
||||
# quodlibet
|
||||
# rhythmbox
|
||||
# sayonara
|
||||
# smplayer
|
||||
# spotify
|
||||
# strawberry
|
||||
# tauonmb
|
||||
# tomahawk
|
||||
# vlc
|
||||
# xmms2d
|
||||
# xnoise
|
||||
# yarock
|
||||
music_player="auto"
|
||||
|
||||
# Format to display song information.
|
||||
#
|
||||
# Default: '%artist% - %album% - %title%'
|
||||
# Values: '%artist%', '%album%', '%title%'
|
||||
# Flag: --song_format
|
||||
#
|
||||
# Example:
|
||||
# default: 'Song: Jet - Get Born - Sgt Major'
|
||||
song_format="%artist% - %album% - %title%"
|
||||
|
||||
# Print the Artist, Album and Title on separate lines
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --song_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Artist: The Fratellis'
|
||||
# 'Album: Costello Music'
|
||||
# 'Song: Chelsea Dagger'
|
||||
#
|
||||
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
||||
song_shorthand="off"
|
||||
|
||||
# 'mpc' arguments (specify a host, password etc).
|
||||
#
|
||||
# Default: ''
|
||||
# Example: mpc_args=(-h HOST -P PASSWORD)
|
||||
mpc_args=()
|
||||
|
||||
|
||||
# Text Colors
|
||||
|
||||
|
||||
# Text Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --colors
|
||||
#
|
||||
# Each number represents a different part of the text in
|
||||
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
||||
#
|
||||
# Example:
|
||||
# colors=(distro) - Text is colored based on Distro colors.
|
||||
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
||||
colors=(distro)
|
||||
|
||||
|
||||
# Text Options
|
||||
|
||||
|
||||
# Toggle bold text
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bold
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --underline
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
#
|
||||
# Default: '-'
|
||||
# Values: 'string'
|
||||
# Flag: --underline_char
|
||||
underline_char="-"
|
||||
|
||||
|
||||
# Info Separator
|
||||
# Replace the default separator with the specified string.
|
||||
#
|
||||
# Default: ':'
|
||||
# Flag: --separator
|
||||
#
|
||||
# Example:
|
||||
# separator="->": 'Shell-> bash'
|
||||
# separator=" =": 'WM = dwm'
|
||||
separator=":"
|
||||
|
||||
|
||||
# Color Blocks
|
||||
|
||||
|
||||
# Color block range
|
||||
# The range of colors to print.
|
||||
#
|
||||
# Default: '0', '15'
|
||||
# Values: 'num'
|
||||
# Flag: --block_range
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# Display colors 0-7 in the blocks. (8 colors)
|
||||
# neofetch --block_range 0 7
|
||||
#
|
||||
# Display colors 0-15 in the blocks. (16 colors)
|
||||
# neofetch --block_range 0 15
|
||||
block_range=(0 15)
|
||||
|
||||
# Toggle color blocks
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --color_blocks
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num'
|
||||
# Flag: --block_width
|
||||
block_width=3
|
||||
|
||||
# Color block height in lines
|
||||
#
|
||||
# Default: '1'
|
||||
# Values: 'num'
|
||||
# Flag: --block_height
|
||||
block_height=1
|
||||
|
||||
# Color Alignment
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'num'
|
||||
# Flag: --col_offset
|
||||
#
|
||||
# Number specifies how far from the left side of the terminal (in spaces) to
|
||||
# begin printing the columns, in case you want to e.g. center them under your
|
||||
# text.
|
||||
# Example:
|
||||
# col_offset="auto" - Default behavior of neofetch
|
||||
# col_offset=7 - Leave 7 spaces then print the colors
|
||||
col_offset="auto"
|
||||
|
||||
# Progress Bars
|
||||
|
||||
|
||||
# Bar characters
|
||||
#
|
||||
# Default: '-', '='
|
||||
# Values: 'string', 'string'
|
||||
# Flag: --bar_char
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_char 'elapsed' 'total'
|
||||
# neofetch --bar_char '-' '='
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
|
||||
# Toggle Bar border
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bar_border
|
||||
bar_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
#
|
||||
# Default: '15'
|
||||
# Values: 'num'
|
||||
# Flag: --bar_length
|
||||
bar_length=15
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors.
|
||||
#
|
||||
# Default: 'distro', 'distro'
|
||||
# Values: 'distro', 'num'
|
||||
# Flag: --bar_colors
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_colors 3 4
|
||||
# neofetch --bar_colors distro 5
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
|
||||
|
||||
# Info display
|
||||
# Display a bar with the info.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
||||
# Flags: --cpu_display
|
||||
# --memory_display
|
||||
# --battery_display
|
||||
# --disk_display
|
||||
#
|
||||
# Example:
|
||||
# bar: '[---=======]'
|
||||
# infobar: 'info [---=======]'
|
||||
# barinfo: '[---=======] info'
|
||||
# off: 'info'
|
||||
cpu_display="off"
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="off"
|
||||
|
||||
|
||||
# Backend Settings
|
||||
|
||||
|
||||
# Image backend.
|
||||
#
|
||||
# Default: 'ascii'
|
||||
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
|
||||
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
|
||||
# Flag: --backend
|
||||
image_backend="ascii"
|
||||
|
||||
# Image Source
|
||||
#
|
||||
# Which image or ascii file to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
||||
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
|
||||
# Flag: --source
|
||||
#
|
||||
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
||||
# In ascii mode, distro ascii art will be used and in an image mode, your
|
||||
# wallpaper will be used.
|
||||
image_source="auto"
|
||||
|
||||
|
||||
# Ascii Options
|
||||
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'distro_name'
|
||||
# Flag: --ascii_distro
|
||||
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
|
||||
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
|
||||
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
|
||||
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
|
||||
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
||||
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
|
||||
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
|
||||
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
|
||||
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
|
||||
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
|
||||
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
|
||||
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
|
||||
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
|
||||
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
|
||||
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
|
||||
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
|
||||
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
|
||||
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
|
||||
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
|
||||
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
|
||||
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
|
||||
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
|
||||
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
|
||||
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
|
||||
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
|
||||
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
|
||||
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
|
||||
# and IRIX have ascii logos
|
||||
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
|
||||
# Use '{distro name}_old' to use the old logos.
|
||||
# NOTE: Ubuntu has flavor variants.
|
||||
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
|
||||
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
|
||||
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
||||
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
||||
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
||||
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
||||
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
||||
# postmarketOS, and Void have a smaller logo variant.
|
||||
# Use '{distro name}_small' to use the small variants.
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --ascii_colors
|
||||
#
|
||||
# Example:
|
||||
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
||||
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
||||
ascii_colors=(distro)
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --ascii_bold
|
||||
ascii_bold="on"
|
||||
|
||||
|
||||
# Image Options
|
||||
|
||||
|
||||
# Image loop
|
||||
# Setting this to on will make neofetch redraw the image constantly until
|
||||
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --loop
|
||||
image_loop="off"
|
||||
|
||||
# Thumbnail directory
|
||||
#
|
||||
# Default: '~/.cache/thumbnails/neofetch'
|
||||
# Values: 'dir'
|
||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||
|
||||
# Crop mode
|
||||
#
|
||||
# Default: 'normal'
|
||||
# Values: 'normal', 'fit', 'fill'
|
||||
# Flag: --crop_mode
|
||||
#
|
||||
# See this wiki page to learn about the fit and fill options.
|
||||
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Note: Only affects 'normal' crop mode.
|
||||
#
|
||||
# Default: 'center'
|
||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||
# 'east', 'southwest', 'south', 'southeast'
|
||||
# Flag: --crop_offset
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', '00px', '00%', 'none'
|
||||
# Flags: --image_size
|
||||
# --size
|
||||
image_size="auto"
|
||||
|
||||
# Gap between image and text
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num', '-num'
|
||||
# Flag: --gap
|
||||
gap=3
|
||||
|
||||
# Image offsets
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: '0'
|
||||
# Values: 'px'
|
||||
# Flags: --xoffset
|
||||
# --yoffset
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
# Image background color
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: ''
|
||||
# Values: 'color', 'blue'
|
||||
# Flag: --bg_color
|
||||
background_color=
|
||||
|
||||
|
||||
# Misc Options
|
||||
|
||||
# Stdout mode
|
||||
# Turn off all colors and disables image backend (ASCII/Image).
|
||||
# Useful for piping into another command.
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
stdout="off"
|
||||
Submodule config/nvim deleted from cf624ae587
8
config/nvim/.gitignore
vendored
Normal file
8
config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
config/nvim/.neoconf.json
Normal file
15
config/nvim/.neoconf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
config/nvim/README.md
Normal file
4
config/nvim/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
2
config/nvim/init.lua
Normal file
2
config/nvim/init.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
62
config/nvim/lazy-lock.json
Normal file
62
config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"LazyVim": { "branch": "main", "commit": "a72a84972d85e5bbc6b9d60a0983b37efef21b8a" },
|
||||
"LuaSnip": { "branch": "master", "commit": "ea7d7ea510c641c4f15042becd27f35b3e5b3c2b" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "0305d00d4e9fd9ed643432b488c51d8002e17c28" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" },
|
||||
"bufdelete.nvim": { "branch": "master", "commit": "07d1f8ba79dec59d42b975a4df1c732b2e4e37b4" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "9961d87bb3ec008213c46ba14b3f384a5f520eb5" },
|
||||
"catppuccin": { "branch": "main", "commit": "85e93601e0f0b48aa2c6bbfae4d0e9d7a1898280" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
|
||||
"comment-box.nvim": { "branch": "main", "commit": "dd1a48f8d06102e9b87ae1e0069bc365c006979b" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "c1e1d5fa44fe08811b6ef4aadac2b50e602f9504" },
|
||||
"flash.nvim": { "branch": "main", "commit": "8a8e74922a383c253b7f92e042b749150140c8d1" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "ebf6d6e83494cdd88a54a429340256f4dbb6a052" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "907ae8636016aab2f283576fc60d46ca3427e579" },
|
||||
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "3ad55ae678876516156cca2f361c51f7952a924b" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "f014db32437aa61c86fc0ef1067cd2bc6a37205c" },
|
||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||
"mini.ai": { "branch": "main", "commit": "7ae226f331885e6f30e9a8229e113debc59308ae" },
|
||||
"mini.animate": { "branch": "main", "commit": "230140aa0b06af87c9d345573aab1aaf50d8b539" },
|
||||
"mini.bufremove": { "branch": "main", "commit": "7821606e35c1ac931b56d8e3155f45ffe76ee7e5" },
|
||||
"mini.comment": { "branch": "main", "commit": "877acea5b2a32ff55f808fc0ebe9aa898648318c" },
|
||||
"mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" },
|
||||
"mini.pairs": { "branch": "main", "commit": "dfa9f6e2576bb8853be277d96b735af59d9be7c2" },
|
||||
"mini.surround": { "branch": "main", "commit": "9d1956b576d7051da3a483b251dfc778121c60db" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "2d89ca96e08eb6e9c8e50e1bb4738bc5125c9f12" },
|
||||
"neoconf.nvim": { "branch": "main", "commit": "06afabe121ec01784e7c4da20340a338ae78f7c7" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "471324e6c746284dbbdc1d357799d1911bb7e120" },
|
||||
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
|
||||
"noice.nvim": { "branch": "main", "commit": "74c2902146b080035beb19944baf6f014a954720" },
|
||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "cc388d3f6b9c7c943ae2b2dcd46ad470fd257f91" },
|
||||
"nvim-navic": { "branch": "master", "commit": "9c89730da6a05acfeb6a197e212dfadf5aa60ca0" },
|
||||
"nvim-notify": { "branch": "master", "commit": "94859430020f5cf32a1b97ddd9e596fed9db7981" },
|
||||
"nvim-regexplainer": { "branch": "main", "commit": "4250c8f3c1307876384e70eeedde5149249e154f" },
|
||||
"nvim-spectre": { "branch": "master", "commit": "97cfd1b0f5a6ab35979ce1bee6c17f54745fd1e5" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "bf8b089eecef9e9e8c1765f81613a2fd5e49175c" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "95e9ba9de4289d221666b66fd930d157c7ca08c6" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "973ab742f143a796a779af4d786ec409116a0d87" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "4b8051c01f696d8849a5cb8afa9767be8db16e40" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||
"stickybuf.nvim": { "branch": "master", "commit": "4c667bc837e5e3fec5a8857ee99f1a229fc76df9" },
|
||||
"tabnine": { "branch": "master", "commit": "cceef1024aa1d8a17698a77c499a124fe85f1f79" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "59812c26d826e8c717e29406267ea1260f71e103" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "9a01eada39558dc3243278e6805d90e8dff45dc0" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "3f85d8ed30e97ceeddbbcf80224245d347053711" },
|
||||
"typescript.nvim": { "branch": "main", "commit": "4de85ef699d7e6010528dcfbddc2ed4c2c421467" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "8c910b2f84ae6acd9b4b17330bb94dd783c0c11a" },
|
||||
"vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
|
||||
"vim-wakatime": { "branch": "master", "commit": "0d2efa2daff34b27b0d227d4c3b136811c93db93" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
|
||||
}
|
||||
3
config/nvim/lua/config/autocmds.lua
Normal file
3
config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
3
config/nvim/lua/config/keymaps.lua
Normal file
3
config/nvim/lua/config/keymaps.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
58
config/nvim/lua/config/lazy.lua
Normal file
58
config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
-- bootstrap lazy.nvim
|
||||
-- stylua: ignore
|
||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||
end
|
||||
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
import = "lazyvim.plugins",
|
||||
opts = {
|
||||
colorscheme = "catppuccin",
|
||||
},
|
||||
},
|
||||
-- import any extras modules here
|
||||
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||
{ import = "lazyvim.plugins.extras.lang.docker" },
|
||||
{ import = "lazyvim.plugins.extras.lang.go" },
|
||||
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||
{ import = "lazyvim.plugins.extras.lang.terraform" },
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
{ import = "lazyvim.plugins.extras.linting.eslint" },
|
||||
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "catppuccin", "tokyonight", "habamax" } },
|
||||
checker = { enabled = true }, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
11
config/nvim/lua/config/options.lua
Normal file
11
config/nvim/lua/config/options.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
local opt = vim.opt
|
||||
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
90
config/nvim/lua/plugins/coding.lua
Normal file
90
config/nvim/lua/plugins/coding.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
return {
|
||||
-- A better annotation generator. Supports multiple languages and annotation conventions.
|
||||
-- https://github.com/danymat/neogen
|
||||
{
|
||||
"danymat/neogen",
|
||||
dependencies = "nvim-treesitter/nvim-treesitter",
|
||||
version = "*",
|
||||
cmd = "Neogen",
|
||||
opts = {
|
||||
snippet_engine = "luasnip",
|
||||
languages = {
|
||||
lua = { template = { annotation_convention = "ldoc" } },
|
||||
typescript = { template = { annotation_convention = "tsdoc" } },
|
||||
typescriptreact = { template = { annotation_convention = "tsdoc" } },
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>baa",
|
||||
function()
|
||||
require("neogen").generate({ type = "current" })
|
||||
end,
|
||||
desc = "Current",
|
||||
},
|
||||
{
|
||||
"<leader>bac",
|
||||
function()
|
||||
require("neogen").generate({ type = "class" })
|
||||
end,
|
||||
desc = "Class",
|
||||
},
|
||||
{
|
||||
"<leader>baf",
|
||||
function()
|
||||
require("neogen").generate({ type = "func" })
|
||||
end,
|
||||
desc = "Function",
|
||||
},
|
||||
{
|
||||
"<leader>bat",
|
||||
function()
|
||||
require("neogen").generate({ type = "type" })
|
||||
end,
|
||||
desc = "Type",
|
||||
},
|
||||
{
|
||||
"<leader>baF",
|
||||
function()
|
||||
require("neogen").generate({ type = "file" })
|
||||
end,
|
||||
desc = "File",
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Describe the regexp under the cursor
|
||||
-- https://github.com/bennypowers/nvim-regexplainer
|
||||
{
|
||||
"bennypowers/nvim-regexplainer",
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
opts = {
|
||||
-- automatically show the explainer when the cursor enters a regexp
|
||||
auto = true,
|
||||
},
|
||||
},
|
||||
|
||||
-- Clarify and beautify your comments using boxes and lines.
|
||||
-- https://github.com/LudoPinelli/comment-box.nvim
|
||||
{ "LudoPinelli/comment-box.nvim", opts = {} },
|
||||
|
||||
-- Tabnine Client for Neovim
|
||||
-- https://github.com/codota/tabnine-nvim
|
||||
{
|
||||
"codota/tabnine-nvim",
|
||||
name = "tabnine",
|
||||
build = vim.loop.os_uname().sysname == "Windows_NT" and "pwsh.exe -file .\\dl_binaries.ps1" or "./dl_binaries.sh",
|
||||
cmd = { "TabnineStatus", "TabnineDisable", "TabnineEnable", "TabnineToggle" },
|
||||
event = "User",
|
||||
opts = {
|
||||
accept_keymap = "<C-CR>",
|
||||
dismiss_keymap = "<C-Esc>",
|
||||
},
|
||||
},
|
||||
|
||||
-- Vim plugin for automatic time tracking and metrics generated from your programming activity.
|
||||
-- https://github.com/wakatime/vim-wakatime
|
||||
{ "wakatime/vim-wakatime", lazy = false, enabled = true },
|
||||
}
|
||||
266
config/nvim/lua/plugins/example.lua
Normal file
266
config/nvim/lua/plugins/example.lua
Normal file
@@ -0,0 +1,266 @@
|
||||
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||
-- stylua: ignore
|
||||
if true then return {} end
|
||||
|
||||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||
--
|
||||
-- In your plugin files, you can:
|
||||
-- * add extra plugins
|
||||
-- * disable/enabled LazyVim plugins
|
||||
-- * override the configuration of LazyVim plugins
|
||||
return {
|
||||
-- add gruvbox
|
||||
{ "ellisonleao/gruvbox.nvim" },
|
||||
|
||||
-- Configure LazyVim to load gruvbox
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "gruvbox",
|
||||
},
|
||||
},
|
||||
|
||||
-- change trouble config
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
-- opts will be merged with the parent spec
|
||||
opts = { use_diagnostic_signs = true },
|
||||
},
|
||||
|
||||
-- disable trouble
|
||||
{ "folke/trouble.nvim", enabled = false },
|
||||
|
||||
-- add symbols-outline
|
||||
{
|
||||
"simrat39/symbols-outline.nvim",
|
||||
cmd = "SymbolsOutline",
|
||||
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
|
||||
config = true,
|
||||
},
|
||||
|
||||
-- override nvim-cmp and add cmp-emoji
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = { "hrsh7th/cmp-emoji" },
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
local cmp = require("cmp")
|
||||
opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "emoji" } }))
|
||||
end,
|
||||
},
|
||||
|
||||
-- change some telescope options and a keymap to browse plugin files
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
keys = {
|
||||
-- add a keymap to browse plugin files
|
||||
-- stylua: ignore
|
||||
{
|
||||
"<leader>fp",
|
||||
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||
desc = "Find Plugin File",
|
||||
},
|
||||
},
|
||||
-- change some options
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = { prompt_position = "top" },
|
||||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add telescope-fzf-native
|
||||
{
|
||||
"telescope.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
build = "make",
|
||||
config = function()
|
||||
require("telescope").load_extension("fzf")
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
-- add pyright to lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- pyright will be automatically installed with mason and loaded with lspconfig
|
||||
pyright = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"jose-elias-alvarez/typescript.nvim",
|
||||
init = function()
|
||||
require("lazyvim.util").on_attach(function(_, buffer)
|
||||
-- stylua: ignore
|
||||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||
end)
|
||||
end,
|
||||
},
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
||||
tsserver = {},
|
||||
},
|
||||
-- you can do any additional lsp server setup here
|
||||
-- return true if you don't want this server to be setup with lspconfig
|
||||
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||
setup = {
|
||||
-- example to setup with typescript.nvim
|
||||
tsserver = function(_, opts)
|
||||
require("typescript").setup({ server = opts })
|
||||
return true
|
||||
end,
|
||||
-- Specify * to use this function as a fallback for any server
|
||||
-- ["*"] = function(server, opts) end,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
||||
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
|
||||
-- add more treesitter parsers
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"html",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"python",
|
||||
"query",
|
||||
"regex",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
||||
-- would overwrite `ensure_installed` with the new value.
|
||||
-- If you'd rather extend the default config, use the code below instead:
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
-- add tsx and treesitter
|
||||
vim.list_extend(opts.ensure_installed, {
|
||||
"tsx",
|
||||
"typescript",
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- the opts function can also be used to change the default opts:
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sections.lualine_x, "😄")
|
||||
end,
|
||||
},
|
||||
|
||||
-- or you can return new options to override all the defaults
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function()
|
||||
return {
|
||||
--[[add your custom lualine config here]]
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- use mini.starter instead of alpha
|
||||
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||
|
||||
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
|
||||
-- add any tools you want to have installed below
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
"shellcheck",
|
||||
"shfmt",
|
||||
"flake8",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Use <tab> for completion and snippets (supertab)
|
||||
-- first: disable default <tab> and <s-tab> behavior in LuaSnip
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
},
|
||||
-- then: setup supertab in cmp
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-emoji",
|
||||
},
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local luasnip = require("luasnip")
|
||||
local cmp = require("cmp")
|
||||
|
||||
opts.mapping = vim.tbl_extend("force", opts.mapping, {
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
|
||||
-- this way you will only jump inside the snippet region
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
17
config/nvim/lua/plugins/nvim-lspconfig.lua
Normal file
17
config/nvim/lua/plugins/nvim-lspconfig.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = { eslint = {} },
|
||||
setup = {
|
||||
eslint = function()
|
||||
require("lazyvim.util").on_attach(function(client)
|
||||
if client.name == "eslint" then
|
||||
client.server_capabilities.documentFormattingProvider = true
|
||||
elseif client.name == "tsserver" then
|
||||
client.server_capabilities.documentFormattingProvider = false
|
||||
end
|
||||
end)
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
25
config/nvim/lua/plugins/ui.lua
Normal file
25
config/nvim/lua/plugins/ui.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
return {
|
||||
-- The theme of choise, catppuccin
|
||||
-- https://github.com/catppuccin/nvim
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
enabled = true,
|
||||
config = function()
|
||||
vim.cmd.colorscheme("catppuccin")
|
||||
end,
|
||||
opts = {
|
||||
flavour = "mocha",
|
||||
},
|
||||
},
|
||||
-- Getting you where you want with the fewest keystrokes.
|
||||
-- https://github.com/ThePrimeagen/harpoon
|
||||
{ "ThePrimeagen/harpoon" },
|
||||
-- Close buffer without messing up with the window.
|
||||
-- https://github.com/famiu/bufdelete.nvim
|
||||
{ "famiu/bufdelete.nvim" },
|
||||
-- Neovim plugin for locking a buffer to a window
|
||||
-- https://github.com/stevearc/stickybuf.nvim
|
||||
{ "stevearc/stickybuf.nvim", opts = {} },
|
||||
}
|
||||
3
config/nvim/spell/en.utf-8.add
Normal file
3
config/nvim/spell/en.utf-8.add
Normal file
@@ -0,0 +1,3 @@
|
||||
Plugins
|
||||
lua
|
||||
plugins
|
||||
3
config/nvim/stylua.toml
Normal file
3
config/nvim/stylua.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
@@ -2,8 +2,6 @@ blade-formatter
|
||||
corepack
|
||||
editorconfig-checker
|
||||
github-release-notes
|
||||
js-debug
|
||||
neovim
|
||||
prettier
|
||||
standardjs
|
||||
stylelint-lsp
|
||||
|
||||
|
||||
@@ -1,21 +1,58 @@
|
||||
# Get editor completions based on the config schema
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
# Inserts a blank line between shell prompts
|
||||
add_newline = true
|
||||
format = """
|
||||
$os\
|
||||
$directory\
|
||||
$git_branch\
|
||||
$git_state\
|
||||
$git_status\
|
||||
$fill\
|
||||
$battery\
|
||||
$username\
|
||||
$hostname\
|
||||
$aws\
|
||||
$gcloud\
|
||||
$conda\
|
||||
$golang\
|
||||
$nodejs\
|
||||
$php\
|
||||
$python\
|
||||
$package\
|
||||
$line_break\
|
||||
$character"""
|
||||
|
||||
# Timeout for commands executed by starship (in milliseconds).
|
||||
command_timeout = 1000
|
||||
# command_timeout = 1000
|
||||
|
||||
# Replace the '❯' symbol in the prompt with '➜'
|
||||
[character] # The name of the module we are configuring is 'character'
|
||||
success_symbol = '[➜](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green'
|
||||
[character]
|
||||
success_symbol = "[→](bold green)"
|
||||
error_symbol = "[→](red)"
|
||||
vimcmd_symbol = "[←](green)"
|
||||
|
||||
[aws]
|
||||
symbol = " "
|
||||
format = '[$symbol($profile )(\($region\) )(\[$duration\] )]($style)'
|
||||
|
||||
[cmd_duration]
|
||||
disabled = true
|
||||
|
||||
[directory]
|
||||
read_only = " "
|
||||
style = "blue"
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
|
||||
[fill]
|
||||
symbol = '·'
|
||||
style = 'bold black'
|
||||
|
||||
[gcloud]
|
||||
format = ' [($symbol)$account(@$domain)(\($region\))]($style) '
|
||||
|
||||
[git_branch]
|
||||
symbol = '🌱 '
|
||||
symbol = " "
|
||||
truncation_length = 20
|
||||
truncation_symbol = '…'
|
||||
ignore_branches = ['master', 'main']
|
||||
@@ -24,7 +61,74 @@ ignore_branches = ['master', 'main']
|
||||
up_to_date = '✓'
|
||||
staged = '[++\($count\)](green)'
|
||||
|
||||
[git_state]
|
||||
format = '\([$state( $progress_current/$progress_total)]($style)\) '
|
||||
style = "bright-black"
|
||||
|
||||
[git_metrics]
|
||||
added_style = 'bold blue'
|
||||
format = '[+$added]($added_style)/[-$deleted]($deleted_style) '
|
||||
disabled = false
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
|
||||
[hostname]
|
||||
ssh_symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
format = '[$symbol($version )]($style)'
|
||||
version_format = '${major}.${minor}'
|
||||
|
||||
[os]
|
||||
format = "[$symbol]($style) "
|
||||
style = "bold blue"
|
||||
disabled = false
|
||||
|
||||
[os.symbols]
|
||||
Alpaquita = " "
|
||||
Alpine = " "
|
||||
Amazon = " "
|
||||
Android = " "
|
||||
Arch = " "
|
||||
Artix = " "
|
||||
CentOS = " "
|
||||
Debian = " "
|
||||
DragonFly = " "
|
||||
Emscripten = " "
|
||||
EndeavourOS = " "
|
||||
Fedora = " "
|
||||
FreeBSD = " "
|
||||
Garuda = " "
|
||||
Gentoo = " "
|
||||
HardenedBSD = " "
|
||||
Illumos = " "
|
||||
Linux = " "
|
||||
Mabox = " "
|
||||
Macos = " "
|
||||
Manjaro = " "
|
||||
Mariner = " "
|
||||
MidnightBSD = " "
|
||||
Mint = " "
|
||||
NetBSD = " "
|
||||
NixOS = " "
|
||||
OpenBSD = " "
|
||||
openSUSE = " "
|
||||
OracleLinux = " "
|
||||
Pop = " "
|
||||
Raspbian = " "
|
||||
Redhat = " "
|
||||
RedHatEnterprise = " "
|
||||
Redox = " "
|
||||
Solus = " "
|
||||
SUSE = " "
|
||||
Ubuntu = " "
|
||||
Unknown = " "
|
||||
Windows = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
format = '[$symbol($version )]($style)'
|
||||
version_format = '${major}.${minor}'
|
||||
|
||||
@@ -32,6 +136,8 @@ version_format = '${major}.${minor}'
|
||||
format = '[$symbol($version )]($style)'
|
||||
version_format = '${major}.${minor}'
|
||||
|
||||
[nodejs]
|
||||
format = '[$symbol($version )]($style)'
|
||||
version_format = '${major}.${minor}'
|
||||
[python]
|
||||
symbol = " "
|
||||
format = "[$virtualenv]($style) "
|
||||
style = "bright-black"
|
||||
|
||||
|
||||
82
config/task/taskrc
Normal file
82
config/task/taskrc
Normal file
@@ -0,0 +1,82 @@
|
||||
# [Created by task 2.6.2 5/11/2023 09:33:14]
|
||||
# Taskwarrior program configuration file.
|
||||
# For more documentation, see https://taskwarrior.org or try 'man task', 'man task-color',
|
||||
# 'man task-sync' or 'man taskrc'
|
||||
|
||||
# Here is an example of entries that use the default, override and blank values
|
||||
# variable=foo -- By specifying a value, this overrides the default
|
||||
# variable= -- By specifying no value, this means no default
|
||||
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
|
||||
|
||||
# You can also refence environment variables:
|
||||
# variable=$HOME/task
|
||||
# variable=$VALUE
|
||||
|
||||
# Use the command 'task show' to see all defaults and overrides
|
||||
|
||||
# Files
|
||||
data.location=$XDG_DATA_HOME/task/
|
||||
|
||||
# To use the default location of the XDG directories,
|
||||
# move this configuration file from ~/.taskrc to ~/.config/task/taskrc and uncomment below
|
||||
|
||||
#data.location=$XDG_DATA_HOME/task
|
||||
#hooks.location=~/.config/task/hooks
|
||||
|
||||
# Color theme (uncomment one to use)
|
||||
#include light-16.theme
|
||||
#include light-256.theme
|
||||
#include dark-16.theme
|
||||
#include dark-256.theme
|
||||
#include dark-red-256.theme
|
||||
#include dark-green-256.theme
|
||||
#include dark-blue-256.theme
|
||||
#include dark-violets-256.theme
|
||||
#include dark-yellow-green.theme
|
||||
#include dark-gray-256.theme
|
||||
#include dark-gray-blue-256.theme
|
||||
#include solarized-dark-256.theme
|
||||
#include solarized-light-256.theme
|
||||
#include no-color.theme
|
||||
|
||||
weekstart=monday
|
||||
|
||||
news.version=2.6.0
|
||||
|
||||
default.project=Inbox
|
||||
calendar.details=full
|
||||
calendar.holidays=sparse
|
||||
recurrence=on
|
||||
|
||||
uda.taskwarrior-tui.keyconfig.quit=q
|
||||
uda.taskwarrior-tui.keyconfig.refresh=r
|
||||
uda.taskwarrior-tui.keyconfig.go-to-bottom=G
|
||||
uda.taskwarrior-tui.keyconfig.go-to-top=g
|
||||
uda.taskwarrior-tui.keyconfig.down=j
|
||||
uda.taskwarrior-tui.keyconfig.up=k
|
||||
uda.taskwarrior-tui.keyconfig.page-down=J
|
||||
uda.taskwarrior-tui.keyconfig.page-up=K
|
||||
uda.taskwarrior-tui.keyconfig.delete=x
|
||||
uda.taskwarrior-tui.keyconfig.done=d
|
||||
uda.taskwarrior-tui.keyconfig.start-stop=s
|
||||
uda.taskwarrior-tui.keyconfig.quick-tag=t
|
||||
uda.taskwarrior-tui.keyconfig.undo=u
|
||||
uda.taskwarrior-tui.keyconfig.edit=e
|
||||
uda.taskwarrior-tui.keyconfig.modify=m
|
||||
uda.taskwarrior-tui.keyconfig.shell=!
|
||||
uda.taskwarrior-tui.keyconfig.log=l
|
||||
uda.taskwarrior-tui.keyconfig.add=a
|
||||
uda.taskwarrior-tui.keyconfig.annotate=A
|
||||
uda.taskwarrior-tui.keyconfig.filter=/
|
||||
uda.taskwarrior-tui.keyconfig.zoom=z
|
||||
uda.taskwarrior-tui.keyconfig.context-menu=c
|
||||
uda.taskwarrior-tui.keyconfig.next-tab=.
|
||||
uda.taskwarrior-tui.keyconfig.previous-tab=,
|
||||
|
||||
taskd.certificate=$XDG_DATA_HOME/task/private.certificate.pem
|
||||
taskd.key=$XDG_DATA_HOME/task/private.key.pem
|
||||
taskd.ca=$XDG_DATA_HOME/task/ca.cert.pem
|
||||
taskd.server=inthe.am:53589
|
||||
taskd.credentials=inthe_am/ivuorinen/b99a4970-94fb-4fb8-b9fe-e1a8140dd44d
|
||||
taskd.trust=strict
|
||||
|
||||
38
config/tealdeer/config.toml
Normal file
38
config/tealdeer/config.toml
Normal file
@@ -0,0 +1,38 @@
|
||||
[style.description]
|
||||
underline = false
|
||||
bold = false
|
||||
italic = false
|
||||
|
||||
[style.command_name]
|
||||
foreground = "cyan"
|
||||
underline = false
|
||||
bold = false
|
||||
italic = false
|
||||
|
||||
[style.example_text]
|
||||
foreground = "green"
|
||||
underline = false
|
||||
bold = false
|
||||
italic = false
|
||||
|
||||
[style.example_code]
|
||||
foreground = "cyan"
|
||||
underline = false
|
||||
bold = false
|
||||
italic = false
|
||||
|
||||
[style.example_variable]
|
||||
foreground = "cyan"
|
||||
underline = true
|
||||
bold = false
|
||||
italic = false
|
||||
|
||||
[display]
|
||||
compact = false
|
||||
use_pager = false
|
||||
|
||||
[updates]
|
||||
auto_update = false
|
||||
auto_update_interval_hours = 720
|
||||
|
||||
[directories]
|
||||
1
config/tmux/plugins/tmux
Submodule
1
config/tmux/plugins/tmux
Submodule
Submodule config/tmux/plugins/tmux added at 38932bddfc
1
config/tmux/plugins/tmux-continuum
Submodule
1
config/tmux/plugins/tmux-continuum
Submodule
Submodule config/tmux/plugins/tmux-continuum added at 46e0e00234
1
config/tmux/plugins/tmux-menus
Submodule
1
config/tmux/plugins/tmux-menus
Submodule
Submodule config/tmux/plugins/tmux-menus added at c24c8d5ecb
1
config/tmux/plugins/tmux-resurrect
Submodule
1
config/tmux/plugins/tmux-resurrect
Submodule
Submodule config/tmux/plugins/tmux-resurrect added at e87d7d592c
1
config/tmux/plugins/tmux-sensible
Submodule
1
config/tmux/plugins/tmux-sensible
Submodule
Submodule config/tmux/plugins/tmux-sensible added at 2ce7679f9d
1
config/tmux/plugins/tmux-sessionist
Submodule
1
config/tmux/plugins/tmux-sessionist
Submodule
Submodule config/tmux/plugins/tmux-sessionist added at fdd0876f6f
1
config/tmux/plugins/tmux-yank
Submodule
1
config/tmux/plugins/tmux-yank
Submodule
Submodule config/tmux/plugins/tmux-yank added at fd8000238b
1
config/tmux/plugins/tpm
Submodule
1
config/tmux/plugins/tpm
Submodule
Submodule config/tmux/plugins/tpm added at 1ff32085b2
@@ -2,44 +2,56 @@
|
||||
#
|
||||
# Contains configuration from the follwing sources:
|
||||
# - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html
|
||||
# -
|
||||
# - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf
|
||||
|
||||
# unbind default prefix and set it to ctrl-a
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Bindings │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
# Set <prefix> to Control + Space
|
||||
unbind C-b
|
||||
set -g prefix C-a
|
||||
bind C-a send-prefix
|
||||
set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
|
||||
# make delay shorter
|
||||
set -sg escape-time 0
|
||||
|
||||
|
||||
|
||||
#### key bindings ####
|
||||
|
||||
# reload config file
|
||||
bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux.conf reloaded!"
|
||||
|
||||
# quickly open a new window
|
||||
bind N new-window
|
||||
|
||||
# synchronize all panes in a window
|
||||
bind y setw synchronize-panes
|
||||
|
||||
# pane movement shortcuts (same as vim)
|
||||
# Vim style pane selection
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# enable mouse support for switching panes/windows
|
||||
#set -g mouse-utf8 on
|
||||
#set -g mouse on
|
||||
# Use Alt-arrow keys without prefix key to switch panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# Control-Tab & Control-Shift-Tab to switch windows
|
||||
bind -n C-Tab previous-window
|
||||
bind -n C-S-Tab next-window
|
||||
|
||||
# Reload tmux config with <prefix> + r
|
||||
bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!"
|
||||
|
||||
# Open a new window with <prefix> + N
|
||||
bind N new-window
|
||||
|
||||
# Set default directory for new windows in this session to current directory:
|
||||
bind M-c attach-session -c "#{pane_current_path}"
|
||||
|
||||
# Open a new window in the current directory
|
||||
bind C new-window -c "#{pane_current_path}"
|
||||
|
||||
# keybindings
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
bind '"' split-window -v -c "#{pane_current_path}"
|
||||
bind '!' split-window -h -c "#{pane_current_path}"
|
||||
|
||||
# synchronize all panes in a window
|
||||
bind y setw synchronize-panes
|
||||
|
||||
#### copy mode : vim ####
|
||||
|
||||
# set vi mode for copy mode
|
||||
setw -g mode-keys vi
|
||||
|
||||
# copy mode using 'Esc'
|
||||
unbind [
|
||||
bind Escape copy-mode
|
||||
@@ -51,3 +63,72 @@ bind Escape copy-mode
|
||||
unbind p
|
||||
bind p paste-buffer
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Settings │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
# Mouse support
|
||||
set -g mouse on
|
||||
|
||||
# Make delay shorter
|
||||
set -sg escape-time 0
|
||||
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# set vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
# Set plugins install dir
|
||||
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.dotfiles/config/tmux/plugins'
|
||||
|
||||
## Install plugins, starting with plugin manager
|
||||
set -g @tpm_plugins ' \
|
||||
catppuccin/tmux \
|
||||
tmux-plugins/tmux-continuum \
|
||||
jaclu/tmux-menus \
|
||||
tmux-plugins/tmux-resurrect \
|
||||
tmux-plugins/tmux-sensible \
|
||||
tmux-plugins/tmux-sessionist \
|
||||
tmux-plugins/tmux-yank \
|
||||
tmux-plugins/tpm \
|
||||
'
|
||||
|
||||
# ╭──────────────────────────────────────────────────────────╮
|
||||
# │ Plugins related configurations │
|
||||
# ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
## https://github.com/jaclu/tmux-menus
|
||||
set -g @menus_trigger 'm'
|
||||
|
||||
## https://github.com/catppuccin/tmux
|
||||
set -g @catppuccin_flavour "mocha" # latte/frappe/macchiato/mocha
|
||||
set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs
|
||||
set -g @catppuccin_window_status_enable "yes"
|
||||
|
||||
## set -g @catppuccin_window_right_separator "█"
|
||||
set -g @catppuccin_window_number_position "left"
|
||||
set -g @catppuccin_window_middle_separator ": "
|
||||
set -g @catppuccin_window_default_fill "none"
|
||||
set -g @catppuccin_window_current_fill "all"
|
||||
set -g @catppuccin_status_modules "application session date_time"
|
||||
set -g @catppuccin_status_left_separator "█"
|
||||
set -g @catppuccin_status_right_separator "█"
|
||||
set -g @catppuccin_date_time_text "%Y-%m-%d %H:%M"
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-continuum
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-boot 'on'
|
||||
|
||||
## https://github.com/tmux-plugins/tmux-resurrect
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
|
||||
# Finally run the tmux plugin manager
|
||||
run '~/.dotfiles/config/tmux/plugins/tpm/tpm'
|
||||
|
||||
32
config/yamllint/config
Normal file
32
config/yamllint/config
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
extends: default
|
||||
|
||||
ignore-from-file: [.gitignore, .yamlignore]
|
||||
|
||||
rules:
|
||||
braces:
|
||||
level: warning
|
||||
max-spaces-inside: 1
|
||||
brackets:
|
||||
level: warning
|
||||
max-spaces-inside: 1
|
||||
colons:
|
||||
level: warning
|
||||
commas:
|
||||
level: warning
|
||||
comments: disable
|
||||
comments-indentation: disable
|
||||
document-start: disable
|
||||
empty-lines:
|
||||
level: warning
|
||||
hyphens:
|
||||
level: warning
|
||||
indentation:
|
||||
level: warning
|
||||
indent-sequences: consistent
|
||||
line-length:
|
||||
level: warning
|
||||
allow-non-breakable-inline-mappings: true
|
||||
max: 120
|
||||
truthy: disable
|
||||
|
||||
66
config/zsh/completion/_cheat
Normal file
66
config/zsh/completion/_cheat
Normal file
@@ -0,0 +1,66 @@
|
||||
#compdef cheat
|
||||
# vim: ft=zsh
|
||||
|
||||
local cheats taglist pathlist
|
||||
|
||||
_cheat_complete_personal_cheatsheets()
|
||||
{
|
||||
cheats=("${(f)$(cheat -l -t personal | tail -n +2 | cut -d' ' -f1)}")
|
||||
_describe -t cheats 'cheats' cheats
|
||||
}
|
||||
|
||||
_cheat_complete_full_cheatsheets()
|
||||
{
|
||||
cheats=("${(f)$(cheat -l | tail -n +2 | cut -d' ' -f1)}")
|
||||
_describe -t cheats 'cheats' cheats
|
||||
}
|
||||
|
||||
_cheat_complete_tags()
|
||||
{
|
||||
taglist=("${(f)$(cheat -T)}")
|
||||
_describe -t taglist 'taglist' taglist
|
||||
}
|
||||
|
||||
_cheat_complete_paths()
|
||||
{
|
||||
pathlist=("${(f)$(cheat -d | cut -d':' -f1)}")
|
||||
_describe -t pathlist 'pathlist' pathlist
|
||||
}
|
||||
|
||||
_cheat() {
|
||||
|
||||
_arguments -C \
|
||||
'(--init)--init[Write a default config file to stdout]: :->none' \
|
||||
'(-c --colorize)'{-c,--colorize}'[Colorize output]: :->none' \
|
||||
'(-d --directories)'{-d,--directories}'[List cheatsheet directories]: :->none' \
|
||||
'(-e --edit)'{-e,--edit}'[Edit <sheet>]: :->personal' \
|
||||
'(-l --list)'{-l,--list}'[List cheatsheets]: :->full' \
|
||||
'(-p --path)'{-p,--path}'[Return only sheets found on path <name>]: :->pathlist' \
|
||||
'(-r --regex)'{-r,--regex}'[Treat search <phrase> as a regex]: :->none' \
|
||||
'(-s --search)'{-s,--search}'[Search cheatsheets for <phrase>]: :->none' \
|
||||
'(-t --tag)'{-t,--tag}'[Return only sheets matching <tag>]: :->taglist' \
|
||||
'(-T --tags)'{-T,--tags}'[List all tags in use]: :->none' \
|
||||
'(-v --version)'{-v,--version}'[Print the version number]: :->none' \
|
||||
'(--rm)--rm[Remove (delete) <sheet>]: :->personal'
|
||||
|
||||
case $state in
|
||||
(none)
|
||||
;;
|
||||
(full)
|
||||
_cheat_complete_full_cheatsheets
|
||||
;;
|
||||
(personal)
|
||||
_cheat_complete_personal_cheatsheets
|
||||
;;
|
||||
(taglist)
|
||||
_cheat_complete_tags
|
||||
;;
|
||||
(pathlist)
|
||||
_cheat_complete_paths
|
||||
;;
|
||||
(*)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
compdef _cheat cheat
|
||||
177
config/zsh/completion/_git-profile
Normal file
177
config/zsh/completion/_git-profile
Normal file
@@ -0,0 +1,177 @@
|
||||
#compdef _git-profile git-profile
|
||||
|
||||
# zsh completion for git-profile -*- shell-script -*-
|
||||
|
||||
__git-profile_debug()
|
||||
{
|
||||
local file="$BASH_COMP_DEBUG_FILE"
|
||||
if [[ -n ${file} ]]; then
|
||||
echo "$*" >> "${file}"
|
||||
fi
|
||||
}
|
||||
|
||||
_git-profile()
|
||||
{
|
||||
local shellCompDirectiveError=1
|
||||
local shellCompDirectiveNoSpace=2
|
||||
local shellCompDirectiveNoFileComp=4
|
||||
local shellCompDirectiveFilterFileExt=8
|
||||
local shellCompDirectiveFilterDirs=16
|
||||
|
||||
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace
|
||||
local -a completions
|
||||
|
||||
__git-profile_debug "\n========= starting completion logic =========="
|
||||
__git-profile_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
|
||||
|
||||
# The user could have moved the cursor backwards on the command-line.
|
||||
# We need to trigger completion from the $CURRENT location, so we need
|
||||
# to truncate the command-line ($words) up to the $CURRENT location.
|
||||
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
|
||||
words=("${=words[1,CURRENT]}")
|
||||
__git-profile_debug "Truncated words[*]: ${words[*]},"
|
||||
|
||||
lastParam=${words[-1]}
|
||||
lastChar=${lastParam[-1]}
|
||||
__git-profile_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
|
||||
|
||||
# For zsh, when completing a flag with an = (e.g., git-profile -n=<TAB>)
|
||||
# completions must be prefixed with the flag
|
||||
setopt local_options BASH_REMATCH
|
||||
if [[ "${lastParam}" =~ '-.*=' ]]; then
|
||||
# We are dealing with a flag with an =
|
||||
flagPrefix="-P ${BASH_REMATCH}"
|
||||
fi
|
||||
|
||||
# Prepare the command to obtain completions
|
||||
requestComp="${words[1]} __complete ${words[2,-1]}"
|
||||
if [ "${lastChar}" = "" ]; then
|
||||
# If the last parameter is complete (there is a space following it)
|
||||
# We add an extra empty parameter so we can indicate this to the go completion code.
|
||||
__git-profile_debug "Adding extra empty parameter"
|
||||
requestComp="${requestComp} \"\""
|
||||
fi
|
||||
|
||||
__git-profile_debug "About to call: eval ${requestComp}"
|
||||
|
||||
# Use eval to handle any environment variables and such
|
||||
out=$(eval ${requestComp} 2>/dev/null)
|
||||
__git-profile_debug "completion output: ${out}"
|
||||
|
||||
# Extract the directive integer following a : from the last line
|
||||
local lastLine
|
||||
while IFS='\n' read -r line; do
|
||||
lastLine=${line}
|
||||
done < <(printf "%s\n" "${out[@]}")
|
||||
__git-profile_debug "last line: ${lastLine}"
|
||||
|
||||
if [ "${lastLine[1]}" = : ]; then
|
||||
directive=${lastLine[2,-1]}
|
||||
# Remove the directive including the : and the newline
|
||||
local suffix
|
||||
(( suffix=${#lastLine}+2))
|
||||
out=${out[1,-$suffix]}
|
||||
else
|
||||
# There is no directive specified. Leave $out as is.
|
||||
__git-profile_debug "No directive found. Setting do default"
|
||||
directive=0
|
||||
fi
|
||||
|
||||
__git-profile_debug "directive: ${directive}"
|
||||
__git-profile_debug "completions: ${out}"
|
||||
__git-profile_debug "flagPrefix: ${flagPrefix}"
|
||||
|
||||
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
|
||||
__git-profile_debug "Completion received error. Ignoring completions."
|
||||
return
|
||||
fi
|
||||
|
||||
while IFS='\n' read -r comp; do
|
||||
if [ -n "$comp" ]; then
|
||||
# If requested, completions are returned with a description.
|
||||
# The description is preceded by a TAB character.
|
||||
# For zsh's _describe, we need to use a : instead of a TAB.
|
||||
# We first need to escape any : as part of the completion itself.
|
||||
comp=${comp//:/\\:}
|
||||
|
||||
local tab=$(printf '\t')
|
||||
comp=${comp//$tab/:}
|
||||
|
||||
__git-profile_debug "Adding completion: ${comp}"
|
||||
completions+=${comp}
|
||||
lastComp=$comp
|
||||
fi
|
||||
done < <(printf "%s\n" "${out[@]}")
|
||||
|
||||
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
|
||||
__git-profile_debug "Activating nospace."
|
||||
noSpace="-S ''"
|
||||
fi
|
||||
|
||||
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
|
||||
# File extension filtering
|
||||
local filteringCmd
|
||||
filteringCmd='_files'
|
||||
for filter in ${completions[@]}; do
|
||||
if [ ${filter[1]} != '*' ]; then
|
||||
# zsh requires a glob pattern to do file filtering
|
||||
filter="\*.$filter"
|
||||
fi
|
||||
filteringCmd+=" -g $filter"
|
||||
done
|
||||
filteringCmd+=" ${flagPrefix}"
|
||||
|
||||
__git-profile_debug "File filtering command: $filteringCmd"
|
||||
_arguments '*:filename:'"$filteringCmd"
|
||||
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
|
||||
# File completion for directories only
|
||||
local subdir
|
||||
subdir="${completions[1]}"
|
||||
if [ -n "$subdir" ]; then
|
||||
__git-profile_debug "Listing directories in $subdir"
|
||||
pushd "${subdir}" >/dev/null 2>&1
|
||||
else
|
||||
__git-profile_debug "Listing directories in ."
|
||||
fi
|
||||
|
||||
local result
|
||||
_arguments '*:dirname:_files -/'" ${flagPrefix}"
|
||||
result=$?
|
||||
if [ -n "$subdir" ]; then
|
||||
popd >/dev/null 2>&1
|
||||
fi
|
||||
return $result
|
||||
else
|
||||
__git-profile_debug "Calling _describe"
|
||||
if eval _describe "completions" completions $flagPrefix $noSpace; then
|
||||
__git-profile_debug "_describe found some completions"
|
||||
|
||||
# Return the success of having called _describe
|
||||
return 0
|
||||
else
|
||||
__git-profile_debug "_describe did not find completions."
|
||||
__git-profile_debug "Checking if we should do file completion."
|
||||
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
|
||||
__git-profile_debug "deactivating file completion"
|
||||
|
||||
# We must return an error code here to let zsh know that there were no
|
||||
# completions found by _describe; this is what will trigger other
|
||||
# matching algorithms to attempt to find completions.
|
||||
# For example zsh can match letters in the middle of words.
|
||||
return 1
|
||||
else
|
||||
# Perform file completion
|
||||
__git-profile_debug "Activating file completion"
|
||||
|
||||
# We must return the result of this command, so it must be the
|
||||
# last command, or else we must store its result to return it.
|
||||
_arguments '*:filename:_files'" ${flagPrefix}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# don't run the completion function when being source-ed or eval-ed
|
||||
if [ "$funcstack[1]" = "_git-profile" ]; then
|
||||
_git-profile
|
||||
fi
|
||||
3420
config/zsh/completion/_solo2
Normal file
3420
config/zsh/completion/_solo2
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user