mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-27 22:41:02 +00:00
Compare commits
284 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| c9d0284c91 | |||
| ac8b7beb9b | |||
| 2fa6c69e4a | |||
| c1287c4ea8 | |||
| 7b63afd4f5 | |||
| e5d6cb37fd | |||
| 4492c386b6 | |||
| 5f5f79d270 | |||
| dcd042262f | |||
| 268fd35bdb | |||
| 38a6f6f8e4 | |||
| d504fc5f2b | |||
| 4b1feb16fc | |||
| 9331b2b643 | |||
| 5ce9906ff1 | |||
| dbadcc3b6c | |||
|
|
4f2fd3cfd6 | ||
| 9621c67866 | |||
| 5e59893281 | |||
| ea292de853 | |||
| d2cedd0fee | |||
| 995cc569e7 | |||
| cceeba3f8e | |||
| dd3640586e | |||
|
|
11969bf791 | ||
|
|
bb3f4a8f6c | ||
|
|
6395895beb | ||
|
|
fa3dc531a0 | ||
| bb7ba3c919 | |||
| 53d91f8248 | |||
| 745fc9b737 | |||
| dbe5ea3ce0 | |||
| 761671e7f7 | |||
| f4df8623b0 | |||
| 03aacb0639 | |||
| 04c85245cc | |||
| 2ccb74422c | |||
| 3c87ed4d2b | |||
| 4e4ff92ae5 | |||
| ef9bf3864b | |||
| cfb9aa696e | |||
| 1c75e7a53f | |||
| 6e8875e734 | |||
| 70a9237166 | |||
| 59b08f8d1f | |||
| c9bc6e597a | |||
| 5cd720cc4d | |||
| e618f64cf5 | |||
| fed9769640 | |||
|
|
95e213d407 | ||
|
|
29a289bc7b | ||
| 9f133469e0 | |||
| ba90a2e6eb | |||
|
|
af32dd6bf3 | ||
|
|
e519d98a68 | ||
| cde571de69 |
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
|
||||
}
|
||||
}
|
||||
@@ -8,5 +8,22 @@ indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[local/bin/antigen.zsh]
|
||||
ignore = true
|
||||
[*.php]
|
||||
indent_size = 4
|
||||
|
||||
[.git{ignore,modules}]
|
||||
indent_style = tab
|
||||
indent_size = 1
|
||||
|
||||
[*.plist]
|
||||
indent_size = 1
|
||||
indent_style = tab
|
||||
|
||||
[local/bin/*]
|
||||
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"
|
||||
6
.github/renovate.json
vendored
Normal file
6
.github/renovate.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"local>ivuorinen/.github:renovate-config"
|
||||
]
|
||||
}
|
||||
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@v3
|
||||
- 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 }}"
|
||||
8
.github/workflows/linters.yml
vendored
8
.github/workflows/linters.yml
vendored
@@ -1,30 +1,26 @@
|
||||
name: reviewdog
|
||||
on: [ push ]
|
||||
on: [push]
|
||||
jobs:
|
||||
linters:
|
||||
name: Linters
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- name: GitHub Actions
|
||||
uses: reviewdog/action-actionlint@v1
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: detect-secrets
|
||||
uses: reviewdog/action-detect-secrets@master
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: markdownlint
|
||||
uses: reviewdog/action-markdownlint@v0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review
|
||||
|
||||
- name: shfmt
|
||||
uses: reviewdog/action-shfmt@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@v3 # 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@v3
|
||||
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
|
||||
14
.gitignore
vendored
14
.gitignore
vendored
@@ -1,3 +1,17 @@
|
||||
Brewfile.lock.json
|
||||
*.log
|
||||
*-secret
|
||||
*cache
|
||||
.idea
|
||||
.vscode
|
||||
config/fzf
|
||||
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
|
||||
|
||||
|
||||
72
.gitmodules
vendored
72
.gitmodules
vendored
@@ -1,12 +1,64 @@
|
||||
[submodule "config/nvim"]
|
||||
path = config/nvim
|
||||
url = git@github.com:AstroNvim/AstroNvim.git
|
||||
# vim: set expandtab:
|
||||
[submodule "dotbot"]
|
||||
path = tools/dotbot
|
||||
url = https://github.com/anishathalye/dotbot.git
|
||||
ignore = dirty
|
||||
branch = v3
|
||||
update = checkout
|
||||
[submodule "config/astronvim/lua/user"]
|
||||
path = config/astronvim/lua/user
|
||||
url = git@github.com:ivuorinen/astronvim_config.git
|
||||
update = rebase
|
||||
branch = main
|
||||
|
||||
[submodule "dotbot-brew"]
|
||||
path = tools/dotbot-brew
|
||||
url = https://github.com/wren/dotbot-brew.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "dotbot-include"]
|
||||
path = tools/dotbot-include
|
||||
url = https://gitlab.com/gnfzdz/dotbot-include.git
|
||||
ignore = dirty
|
||||
|
||||
[submodule "cheat-community"]
|
||||
path = config/cheat/cheatsheets/community
|
||||
url = https://github.com/cheat/cheatsheets.git
|
||||
ignore = dirty
|
||||
|
||||
[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-1password"]
|
||||
path = config/tmux/plugins/tmux-1password
|
||||
url = https://github.com/yardnsm/tmux-1password.git
|
||||
[submodule "tmux/tmux-autoreload"]
|
||||
path = config/tmux/plugins/tmux-autoreload
|
||||
url = https://github.com/b0o/tmux-autoreload.git
|
||||
[submodule "tmux/tmux-continuum"]
|
||||
path = config/tmux/plugins/tmux-continuum
|
||||
url = https://github.com/tmux-plugins/tmux-continuum
|
||||
[submodule "tmux/tmux-fzf"]
|
||||
path = config/tmux/plugins/tmux-fzf
|
||||
url = https://github.com/sainnhe/tmux-fzf.git
|
||||
[submodule "tmux/tmux-menus"]
|
||||
path = config/tmux/plugins/tmux-menus
|
||||
url = https://github.com/jaclu/tmux-menus.git
|
||||
[submodule "tmux/tmux-notify"]
|
||||
path = config/tmux/plugins/tmux-notify
|
||||
url = https://github.com/ChanderG/tmux-notify.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-suspend"]
|
||||
path = config/tmux/plugins/tmux-suspend
|
||||
url = https://github.com/MunifTanjim/tmux-suspend.git
|
||||
[submodule "tmux/tmux-yank"]
|
||||
path = config/tmux/plugins/tmux-yank
|
||||
url = https://github.com/tmux-plugins/tmux-yank.git
|
||||
[submodule "tmux/vim-tmux-navigator"]
|
||||
path = config/tmux/plugins/vim-tmux-navigator
|
||||
url = https://github.com/christoomey/vim-tmux-navigator.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
.python-version
Normal file
1
.python-version
Normal file
@@ -0,0 +1 @@
|
||||
3.11
|
||||
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
|
||||
24
.yamlfmt
Normal file
24
.yamlfmt
Normal file
@@ -0,0 +1,24 @@
|
||||
formatter:
|
||||
type: basic
|
||||
indent: 2
|
||||
retain_line_breaks: false
|
||||
disallow_anchors: false
|
||||
max_line_length: 0
|
||||
scan_folded_as_literal: false
|
||||
indentless_arrays: false
|
||||
|
||||
doublestar: true
|
||||
|
||||
extensions:
|
||||
- yaml
|
||||
- yml
|
||||
|
||||
include:
|
||||
- ./*.{yml,yaml}
|
||||
- ./**/*.{yml,yaml}
|
||||
|
||||
exclude:
|
||||
- ./tools/dotbot/**
|
||||
- ./tools/dotbot-*/**
|
||||
- ./config/astronvim/**
|
||||
- ./config/nvim/**
|
||||
2
.yamlignore
Normal file
2
.yamlignore
Normal file
@@ -0,0 +1,2 @@
|
||||
# .yamlignore
|
||||
|
||||
96
README.md
96
README.md
@@ -1,96 +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. `bash $HOME/.dotfiles/scripts/settler.sh`
|
||||
3. ???
|
||||
4. Profit
|
||||
|
||||
Note: there's a bit chicken/egg situation, because settler assumes you don't have git,
|
||||
and you need git to clone the repo. This will change soon™.
|
||||
|
||||
## Interesting files and locations
|
||||
|
||||
### Special folders
|
||||
|
||||
| Path | Description |
|
||||
|--------------------|-------------------------------------------------------------------------------------|
|
||||
| `.github` | GitHub Repository configuration files. Not part of the dotfiles per se. |
|
||||
| `host-{hostname}/` | Host specific dotfiles. Configurations that should apply to that host only. |
|
||||
| `local/bin` | Helper scripts that I've collected or wrote to make life easier. |
|
||||
| `scripts` | Setup scripts. Some can be run many times, some are meant only for the first round. |
|
||||
|
||||
### dotfile folders
|
||||
|
||||
| Repo | Destination | Description |
|
||||
|-----------|-------------|------------------------------------------------------------------|
|
||||
| `config/` | `.config/` | Configurations for applications. |
|
||||
| `local/` | `.local/` | XDG Base folder, contains `bin`, `share` and `state` for example |
|
||||
| `ssh/` | `.ssh/` | SSH Configurations. |
|
||||
|
||||
### dfm - the dotfiles manager
|
||||
|
||||
`.local/bin/dfm` is a shell script that has some tools that help with dotfiles management.
|
||||
|
||||
### `scripts/install-dotfiles.sh` - dotfiles linker
|
||||
|
||||
The `scripts/install-dotfiles.sh` is a `rcm` generated shell script that does all the necessary linking.
|
||||
|
||||
To refresh the file, you can run `dfm dotfiles update`
|
||||
|
||||
## Configuration
|
||||
|
||||
The folder structure follows [XDG Base Directory Specification][xdg] where possible.
|
||||
|
||||
### XDG Variables
|
||||
|
||||
| Var | Default |
|
||||
|--------------------|----------------------|
|
||||
| Executables | `$HOME/.local/bin` |
|
||||
| `$XDG_DATA_HOME` | `$HOME/.local/share` |
|
||||
| `$XDG_STATE_HOME` | `$HOME/.local/state` |
|
||||
| `$XDG_CONFIG_HOME` | `$HOME/.config` |
|
||||
|
||||
- `$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
|
||||
|
||||
- https://dotfiles.github.io/inspiration/
|
||||
- https://github.com/frdmn/dotfiles - Ansible-based dotfile setup for macOS
|
||||
- https://github.com/mvdan/dotfiles - Here be dragons
|
||||
- https://github.com/vsouza/dotfiles - 🏡 My dotfiles
|
||||
- https://github.com/freekmurze/dotfiles - My personal dotfiles
|
||||
|
||||
### Interesting dotfiles tools
|
||||
|
||||
- https://github.com/zero-sh/zero.sh - Radically simple personal bootstrapping tool for macOS.
|
||||
37
add-submodules.sh
Executable file
37
add-submodules.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
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-1password \
|
||||
-f https://github.com/yardnsm/tmux-1password.git config/tmux/plugins/tmux-1password
|
||||
git submodule add --name tmux/tmux-autoreload \
|
||||
-f https://github.com/b0o/tmux-autoreload.git config/tmux/plugins/tmux-autoreload
|
||||
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-fzf \
|
||||
-f https://github.com/sainnhe/tmux-fzf.git config/tmux/plugins/tmux-fzf
|
||||
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-notify \
|
||||
-f https://github.com/ChanderG/tmux-notify.git config/tmux/plugins/tmux-notify
|
||||
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-suspend \
|
||||
-f https://github.com/MunifTanjim/tmux-suspend.git config/tmux/plugins/tmux-suspend
|
||||
git submodule add --name tmux/tmux-yank \
|
||||
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
|
||||
git submodule add --name tmux/vim-tmux-navigator \
|
||||
-f https://github.com/christoomey/vim-tmux-navigator.git config/tmux/plugins/vim-tmux-navigator
|
||||
|
||||
25
base/bashrc
Normal file
25
base/bashrc
Normal file
@@ -0,0 +1,25 @@
|
||||
# this is my bashrc config. there are many like it, but this one is mine.
|
||||
# shellcheck shell=bash
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
|
||||
# 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
|
||||
[ -r "$file" ] && source "$file"
|
||||
[ -r "$file-secret" ] && source "$file-secret"
|
||||
[ -r "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
|
||||
[ -r "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
|
||||
done
|
||||
}
|
||||
x-load-configs
|
||||
|
||||
# Import ssh keys in keychain
|
||||
ssh-add -A 2>/dev/null;
|
||||
|
||||
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] \
|
||||
&& source "${DOTFILES}/config/fzf/fzf.bash"
|
||||
|
||||
@@ -17,4 +17,3 @@
|
||||
"MaxLineLength": false
|
||||
}
|
||||
}
|
||||
|
||||
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,4 +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"
|
||||
7
base/shellcheckrc
Normal file
7
base/shellcheckrc
Normal file
@@ -0,0 +1,7 @@
|
||||
# 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
|
||||
|
||||
65
base/zshrc
Normal file
65
base/zshrc
Normal file
@@ -0,0 +1,65 @@
|
||||
# this is my zsh config. there are many like it, but this one is mine.
|
||||
# shellcheck shell=bash
|
||||
|
||||
# Defaults
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
# shellcheck source=shared.sh
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
|
||||
# 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
|
||||
[ -r "$file" ] && source "$file"
|
||||
[ -r "$file-secret" ] && source "$file-secret"
|
||||
[ -r "$file-$HOSTNAME" ] && source "$file-$HOSTNAME"
|
||||
[ -r "$file-$HOSTNAME-secret" ] && source "$file-$HOSTNAME-secret"
|
||||
done
|
||||
}
|
||||
x-load-configs
|
||||
|
||||
export HISTFILE="$XDG_STATE_HOME"/zsh/history
|
||||
|
||||
autoload -U colors zsh/terminfo
|
||||
colors
|
||||
setopt correct
|
||||
|
||||
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"
|
||||
|
||||
# Import ssh keys in keychain
|
||||
ssh-add -A 2>/dev/null;
|
||||
|
||||
# Try to load antigen, if present
|
||||
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
|
||||
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
|
||||
|
||||
# antigen is present
|
||||
have antigen && {
|
||||
antigen use oh-my-zsh
|
||||
|
||||
# config/functions
|
||||
x-default-antigen-bundles
|
||||
|
||||
antigen apply
|
||||
}
|
||||
|
||||
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
|
||||
&& source "${DOTFILES}/config/fzf/fzf.zsh"
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
export P10K_LOCATION="$XDG_CONFIG_HOME/zsh/p10k.zsh"
|
||||
[[ ! -f $P10K_LOCATION ]] || source "$P10K_LOCATION"
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# Fig pre block. Keep at the top of this file.
|
||||
[[ -f "$HOME/.fig/shell/bash_profile.pre.bash" ]] && builtin source "$HOME/.fig/shell/bash_profile.pre.bash"
|
||||
# shellcheck shell=bash
|
||||
|
||||
export PATH="$HOME/.local/bin:/usr/local/sbin:$PATH"
|
||||
|
||||
# Fig post block. Keep at the bottom of this file.
|
||||
[[ -f "$HOME/.fig/shell/bash_profile.post.bash" ]] && builtin source "$HOME/.fig/shell/bash_profile.post.bash"
|
||||
14
bashrc
14
bashrc
@@ -1,14 +0,0 @@
|
||||
# Fig pre block. Keep at the top of this file.
|
||||
[[ -f "$HOME/.fig/shell/bashrc.pre.bash" ]] && builtin source "$HOME/.fig/shell/bashrc.pre.bash"
|
||||
# shellcheck shell=bash
|
||||
|
||||
PHP_PATH=$(brew --prefix php)/bin
|
||||
|
||||
export PATH="$PHP_PATH:$HOME/.composer/vendor/bin/:/usr/local/opt/ruby/bin:/usr/local/sbin:$PATH"
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
|
||||
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
|
||||
|
||||
# Fig post block. Keep at the bottom of this file.
|
||||
[[ -f "$HOME/.fig/shell/bashrc.post.bash" ]] && builtin source "$HOME/.fig/shell/bashrc.post.bash"
|
||||
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
|
||||
97
config/alias
Normal file → Executable file
97
config/alias
Normal file → Executable file
@@ -1,45 +1,47 @@
|
||||
# shellcheck shell=bash
|
||||
# macOS specific
|
||||
#!/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
|
||||
function x-set-php-aliases
|
||||
{
|
||||
local php_versions=()
|
||||
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew list | grep '^php')
|
||||
have brew && {
|
||||
local php_versions=()
|
||||
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew list | grep '^php')
|
||||
|
||||
php_error_reporting='-d error_reporting=22527'
|
||||
php_error_reporting='-d error_reporting=22527'
|
||||
|
||||
for version in "${php_versions[@]}"; do
|
||||
# drop the dot from version (8.0 -> 80)
|
||||
local php_abbr="${version//\./}"
|
||||
# replace "php@" with "p" so "php@80" becomes "p80"
|
||||
local php_alias="${php_abbr//php@/p}"
|
||||
for version in "${php_versions[@]}"; do
|
||||
# drop the dot from version (8.0 -> 80)
|
||||
local php_abbr="${version//\./}"
|
||||
# replace "php@" with "p" so "php@80" becomes "p80"
|
||||
local php_alias="${php_abbr//php@/p}"
|
||||
|
||||
# Skip php = php aliasing
|
||||
# if [[ "$php_abbr" == "$php_alias" ]]; then continue; fi;
|
||||
# Fetch the exec path once
|
||||
php_exec="$(brew --prefix "$version")/bin/php"
|
||||
|
||||
# Fetch the exec path once
|
||||
php_exec="$(brew --prefix "$version")/bin/php"
|
||||
|
||||
# Raw PHP without error_reporting flag.
|
||||
# shellcheck disable=SC2139
|
||||
alias ${php_alias}r="$php_exec"
|
||||
# PHP with error_reporting flag.
|
||||
# shellcheck disable=SC2139
|
||||
alias $php_alias="$php_exec $php_error_reporting"
|
||||
# Local PHP Server.
|
||||
# shellcheck disable=SC2139
|
||||
alias ${php_alias}s="$php_exec -S localhost:9000"
|
||||
# Use composer with specific PHP and error_reporting flag on.
|
||||
# shellcheck disable=SC2139
|
||||
alias ${php_alias}c="$php_exec $php_error_reporting $(which composer)"
|
||||
done
|
||||
# Raw PHP without error_reporting flag.
|
||||
# shellcheck disable=SC2139
|
||||
alias "${php_alias}"r="$php_exec"
|
||||
# PHP with error_reporting flag.
|
||||
# shellcheck disable=SC2139,SC2140
|
||||
alias "$php_alias"="$php_exec $php_error_reporting"
|
||||
# Local PHP Server.
|
||||
# shellcheck disable=SC2139,SC2140
|
||||
alias "${php_alias}s"="$php_exec -S localhost:9000"
|
||||
# Use composer with specific PHP and error_reporting flag on.
|
||||
# shellcheck disable=SC2139,SC2140
|
||||
alias "${php_alias}c"="$php_exec $php_error_reporting $(which composer)"
|
||||
done
|
||||
}
|
||||
}
|
||||
|
||||
if [[ $(uname) == 'Darwin' ]]; then
|
||||
|
||||
x-set-php-aliases
|
||||
|
||||
# Laravel Sail shortcut
|
||||
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
|
||||
|
||||
# Flush Directory Service cache
|
||||
@@ -53,25 +55,40 @@ if [[ $(uname) == 'Darwin' ]]; then
|
||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
|
||||
fi
|
||||
|
||||
alias watchx='watch -dpbc' # watch with: differences, precise, beep and color
|
||||
# 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
|
||||
alias zapds='find . -name ".DS_Store" -print -delete'
|
||||
alias t='tail -f' # tail with follow flag on
|
||||
alias dn='du -chd1' # directory usage, return only the total
|
||||
# tail with follow flag on
|
||||
alias t='tail -f'
|
||||
# directory usage, return only the total
|
||||
alias dn='du -chd1'
|
||||
# Mirror site with wget
|
||||
alias mirror_site='wget -m -k -K -E -e robots=off'
|
||||
# Mirror stdout to stderr, useful for seeing data going through a pipe
|
||||
alias peek='tee >(cat 1>&2)'
|
||||
|
||||
alias code_scanner="docker run \
|
||||
--env SOURCE_CODE='${PWD}' \
|
||||
--volume '${PWD}':/code \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
registry.gitlab.com/gitlab-org/ci-cd/codequality:${CODEQUALITY_VERSION:-latest} \
|
||||
/code"
|
||||
|
||||
alias composerUp='composer global update'
|
||||
alias npmUp='npm -g up'
|
||||
alias code_scanner='docker run
|
||||
--env SOURCE_CODE="$PWD"
|
||||
--volume "${PWD}":/code
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock
|
||||
registry.gitlab.com/gitlab-org/ci-cd/codequality:"${CODEQUALITY_VERSION:-latest}"
|
||||
/code'
|
||||
|
||||
alias zedit='$EDITOR ~/.dotfiles'
|
||||
|
||||
have irssi \
|
||||
&& alias irssi="irssi --config='$IRSSI_CONFIG_FILE' --home='$IRSSI_CONFIG_HOME'"
|
||||
|
||||
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"
|
||||
|
||||
Submodule config/astronvim/lua/user deleted from 521d7dbfa4
1
config/cheat/cheatsheets/community
Submodule
1
config/cheat/cheatsheets/community
Submodule
Submodule config/cheat/cheatsheets/community added at 36bdb99dcf
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/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').
|
||||
233
config/dircolors
Normal file
233
config/dircolors
Normal file
@@ -0,0 +1,233 @@
|
||||
# Configuration file for dircolors, a utility to help you set the
|
||||
# LS_COLORS environment variable used by GNU ls with the --color option.
|
||||
# Copyright (C) 1996-2023 Free Software Foundation, Inc.
|
||||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted provided the copyright notice and this notice are preserved.
|
||||
#
|
||||
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
|
||||
# slackware version of dircolors) are recognized but ignored.
|
||||
# Global config options can be specified before TERM or COLORTERM entries
|
||||
# ===================================================================
|
||||
# Terminal filters
|
||||
# ===================================================================
|
||||
# Below are TERM or COLORTERM entries, which can be glob patterns, which
|
||||
# restrict following config to systems with matching environment variables.
|
||||
COLORTERM ?*
|
||||
TERM Eterm
|
||||
TERM ansi
|
||||
TERM *color*
|
||||
TERM con[0-9]*x[0-9]*
|
||||
TERM cons25
|
||||
TERM console
|
||||
TERM cygwin
|
||||
TERM *direct*
|
||||
TERM dtterm
|
||||
TERM gnome
|
||||
TERM hurd
|
||||
TERM jfbterm
|
||||
TERM konsole
|
||||
TERM kterm
|
||||
TERM linux
|
||||
TERM linux-c
|
||||
TERM mlterm
|
||||
TERM putty
|
||||
TERM rxvt*
|
||||
TERM screen*
|
||||
TERM st
|
||||
TERM terminator
|
||||
TERM tmux*
|
||||
TERM vt100
|
||||
TERM xterm*
|
||||
# ===================================================================
|
||||
# Basic file attributes
|
||||
# ===================================================================
|
||||
# Below are the color init strings for the basic file types.
|
||||
# One can use codes for 256 or more colors supported by modern terminals.
|
||||
# The default color codes use the capabilities of an 8 color terminal
|
||||
# with some additional attributes as per the following codes:
|
||||
# Attribute codes:
|
||||
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
|
||||
# Text color codes:
|
||||
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
|
||||
# Background color codes:
|
||||
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
|
||||
#NORMAL 00 # no color code at all
|
||||
#FILE 00 # regular file: use no color at all
|
||||
RESET 0 # reset to "normal" color
|
||||
DIR 01;34 # directory
|
||||
LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
|
||||
# numerical value, the color is as for the file pointed to.)
|
||||
MULTIHARDLINK 00 # regular file with more than one link
|
||||
FIFO 40;33 # pipe
|
||||
SOCK 01;35 # socket
|
||||
DOOR 01;35 # door
|
||||
BLK 40;33;01 # block device driver
|
||||
CHR 40;33;01 # character device driver
|
||||
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
|
||||
MISSING 00 # ... and the files they point to
|
||||
SETUID 37;41 # file that is setuid (u+s)
|
||||
SETGID 30;43 # file that is setgid (g+s)
|
||||
CAPABILITY 00 # file with capability (very expensive to lookup)
|
||||
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
|
||||
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
|
||||
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
|
||||
# This is for files with execute permission:
|
||||
EXEC 01;32
|
||||
# ===================================================================
|
||||
# File extension attributes
|
||||
# ===================================================================
|
||||
# List any file extensions like '.gz' or '.tar' that you would like ls
|
||||
# to color below. Put the suffix, a space, and the color init string.
|
||||
# (and any comments you want to add after a '#').
|
||||
# Suffixes are matched case insensitively, but if you define different
|
||||
# init strings for separate cases, those will be honored.
|
||||
#
|
||||
# If you use DOS-style suffixes, you may want to uncomment the following:
|
||||
#.cmd 01;32 # executables (bright green)
|
||||
#.exe 01;32
|
||||
#.com 01;32
|
||||
#.btm 01;32
|
||||
#.bat 01;32
|
||||
# Or if you want to color scripts even if they do not have the
|
||||
# executable bit actually set.
|
||||
#.sh 01;32
|
||||
#.csh 01;32
|
||||
# archives or compressed (bright red)
|
||||
.tar 01;31
|
||||
.tgz 01;31
|
||||
.arc 01;31
|
||||
.arj 01;31
|
||||
.taz 01;31
|
||||
.lha 01;31
|
||||
.lz4 01;31
|
||||
.lzh 01;31
|
||||
.lzma 01;31
|
||||
.tlz 01;31
|
||||
.txz 01;31
|
||||
.tzo 01;31
|
||||
.t7z 01;31
|
||||
.zip 01;31
|
||||
.z 01;31
|
||||
.dz 01;31
|
||||
.gz 01;31
|
||||
.lrz 01;31
|
||||
.lz 01;31
|
||||
.lzo 01;31
|
||||
.xz 01;31
|
||||
.zst 01;31
|
||||
.tzst 01;31
|
||||
.bz2 01;31
|
||||
.bz 01;31
|
||||
.tbz 01;31
|
||||
.tbz2 01;31
|
||||
.tz 01;31
|
||||
.deb 01;31
|
||||
.rpm 01;31
|
||||
.jar 01;31
|
||||
.war 01;31
|
||||
.ear 01;31
|
||||
.sar 01;31
|
||||
.rar 01;31
|
||||
.alz 01;31
|
||||
.ace 01;31
|
||||
.zoo 01;31
|
||||
.cpio 01;31
|
||||
.7z 01;31
|
||||
.rz 01;31
|
||||
.cab 01;31
|
||||
.wim 01;31
|
||||
.swm 01;31
|
||||
.dwm 01;31
|
||||
.esd 01;31
|
||||
# image formats
|
||||
.avif 01;35
|
||||
.jpg 01;35
|
||||
.jpeg 01;35
|
||||
.mjpg 01;35
|
||||
.mjpeg 01;35
|
||||
.gif 01;35
|
||||
.bmp 01;35
|
||||
.pbm 01;35
|
||||
.pgm 01;35
|
||||
.ppm 01;35
|
||||
.tga 01;35
|
||||
.xbm 01;35
|
||||
.xpm 01;35
|
||||
.tif 01;35
|
||||
.tiff 01;35
|
||||
.png 01;35
|
||||
.svg 01;35
|
||||
.svgz 01;35
|
||||
.mng 01;35
|
||||
.pcx 01;35
|
||||
.mov 01;35
|
||||
.mpg 01;35
|
||||
.mpeg 01;35
|
||||
.m2v 01;35
|
||||
.mkv 01;35
|
||||
.webm 01;35
|
||||
.webp 01;35
|
||||
.ogm 01;35
|
||||
.mp4 01;35
|
||||
.m4v 01;35
|
||||
.mp4v 01;35
|
||||
.vob 01;35
|
||||
.qt 01;35
|
||||
.nuv 01;35
|
||||
.wmv 01;35
|
||||
.asf 01;35
|
||||
.rm 01;35
|
||||
.rmvb 01;35
|
||||
.flc 01;35
|
||||
.avi 01;35
|
||||
.fli 01;35
|
||||
.flv 01;35
|
||||
.gl 01;35
|
||||
.dl 01;35
|
||||
.xcf 01;35
|
||||
.xwd 01;35
|
||||
.yuv 01;35
|
||||
.cgm 01;35
|
||||
.emf 01;35
|
||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
||||
.ogv 01;35
|
||||
.ogx 01;35
|
||||
# audio formats
|
||||
.aac 00;36
|
||||
.au 00;36
|
||||
.flac 00;36
|
||||
.m4a 00;36
|
||||
.mid 00;36
|
||||
.midi 00;36
|
||||
.mka 00;36
|
||||
.mp3 00;36
|
||||
.mpc 00;36
|
||||
.ogg 00;36
|
||||
.ra 00;36
|
||||
.wav 00;36
|
||||
# https://wiki.xiph.org/MIME_Types_and_File_Extensions
|
||||
.oga 00;36
|
||||
.opus 00;36
|
||||
.spx 00;36
|
||||
.xspf 00;36
|
||||
# backup files
|
||||
*~ 00;90
|
||||
*# 00;90
|
||||
.bak 00;90
|
||||
.old 00;90
|
||||
.orig 00;90
|
||||
.part 00;90
|
||||
.rej 00;90
|
||||
.swp 00;90
|
||||
.tmp 00;90
|
||||
.dpkg-dist 00;90
|
||||
.dpkg-old 00;90
|
||||
.ucf-dist 00;90
|
||||
.ucf-new 00;90
|
||||
.ucf-old 00;90
|
||||
.rpmnew 00;90
|
||||
.rpmorig 00;90
|
||||
.rpmsave 00;90
|
||||
#
|
||||
# Subsequent TERM or COLORTERM entries, can be used to add / override
|
||||
# config specific to those matching environment variables.
|
||||
43
config/exports
Normal file → Executable file
43
config/exports
Normal file → Executable file
@@ -1,23 +1,34 @@
|
||||
# shellcheck shell=bash
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=zsh
|
||||
# vim: filetype=zsh
|
||||
|
||||
export HIST_STAMPS="yyyy-mm-dd"
|
||||
export DOTFILES="$HOME/.dotfiles"
|
||||
source "$DOTFILES/scripts/shared.sh"
|
||||
path_append "$DOTFILES/local/bin"
|
||||
|
||||
# Larger bash history (allow 32³ entries; default is 500)
|
||||
export HISTSIZE=32768
|
||||
export HISTFILESIZE=$HISTSIZE
|
||||
export HISTCONTROL=ignoredups
|
||||
# Explicitly set XDG folders
|
||||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export XDG_DATA_HOME="$HOME/.local/share"
|
||||
export XDG_STATE_HOME="$HOME/.local/state"
|
||||
|
||||
# Make some commands not show up in history
|
||||
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
|
||||
# custom variables
|
||||
export XDG_BIN_HOME="$HOME/.local/bin"
|
||||
export XDG_CACHE_HOME="$HOME/.cache"
|
||||
export XDG_RUNTIME_DIR="$HOME/.local/run"
|
||||
|
||||
# And include the parameter for ZSH
|
||||
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
|
||||
path_append "/opt/homebrew/bin"
|
||||
have brew && eval "$(brew shellenv)"
|
||||
|
||||
# Highlight section titles in manual pages
|
||||
export LESS_TERMCAP_md="$ORANGE"
|
||||
path_append "/usr/local/bin"
|
||||
path_append "$XDG_BIN_HOME"
|
||||
|
||||
# Don’t clear the screen after quitting a manual page
|
||||
export MANPAGER="less -X"
|
||||
# brew, https://brew.sh
|
||||
have brew && {
|
||||
have_brew python && path_append "$(brew --prefix python)/bin"
|
||||
}
|
||||
|
||||
# Always enable colored `grep` output
|
||||
export GREP_OPTIONS="--color=auto"
|
||||
source "$DOTFILES/config/exports-shell"
|
||||
source "$DOTFILES/config/exports-apps"
|
||||
|
||||
have nvim && export EDITOR="nvim"
|
||||
|
||||
146
config/exports-apps
Executable file
146
config/exports-apps
Executable file
@@ -0,0 +1,146 @@
|
||||
#!/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
|
||||
# https://github.com/zsh-users/antigen/wiki/Configuration
|
||||
export ADOTDIR="$XDG_DATA_HOME/antigen"
|
||||
export ANTIGEN_SYSTEM_RECEIPT_F=".local/share/antigen/antigen_system_lastupdate"
|
||||
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 && {
|
||||
x-dc "$ANSIBLE_HOME"
|
||||
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||
}
|
||||
|
||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||
|
||||
# composer, https://getcomposer.org/
|
||||
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
||||
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
|
||||
have composer && {
|
||||
export PATH="$COMPOSER_BIN:$PATH"
|
||||
}
|
||||
|
||||
# docker, https://docs.docker.com/engine/reference/commandline/cli/
|
||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||
have docker && {
|
||||
x-dc "$DOCKER_CONFIG"
|
||||
# Docker: Disable snyk ad
|
||||
export DOCKER_SCAN_SUGGEST=false
|
||||
}
|
||||
|
||||
# ffmpeg
|
||||
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
||||
have ffmpeg && x-dc "$FFMPEG_DATADIR"
|
||||
|
||||
# gcloud
|
||||
have gcloud && {
|
||||
GCLOUD_LOC=$(gcloud info --format="value(installation.sdk_root)" --quiet)
|
||||
[[ -f "$GCLOUD_LOC/path.zsh.inc" ]] && builtin source "$GCLOUD_LOC/path.zsh.inc"
|
||||
[[ -f "$GCLOUD_LOC/completion.zsh.inc" ]] && builtin source "$GCLOUD_LOC/completion.zsh.inc"
|
||||
}
|
||||
|
||||
# GnuPG
|
||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||
|
||||
# Go
|
||||
export GOPATH="$XDG_DATA_HOME/go"
|
||||
export GOBIN="$XDG_BIN_HOME"
|
||||
|
||||
# irssi
|
||||
have irssi && {
|
||||
# These variables are used in ./alias with --config and --home
|
||||
export IRSSI_CONFIG_HOME="$XDG_CONFIG_HOME/irssi"
|
||||
export IRSSI_CONFIG_FILE="$IRSSI_CONFIG_HOME/config"
|
||||
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
|
||||
export NVM_AUTO_USE=true
|
||||
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 && {
|
||||
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 && {
|
||||
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"
|
||||
|
||||
# z, https://github.com/rupa/z
|
||||
export _Z_DATA="$XDG_STATE_HOME/z"
|
||||
[[ -f "$XDG_BIN_HOME/z/z.sh" ]] && source "$XDG_BIN_HOME/z/z.sh"
|
||||
|
||||
# Misc
|
||||
export BAT_THEME="ansi"
|
||||
export CHEAT_USE_FZF=true
|
||||
export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history
|
||||
6
config/exports-secret.example
Normal file
6
config/exports-secret.example
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# This file is secret and wont be added to the git repo.
|
||||
|
||||
export GITLAB_API_TOKEN=""
|
||||
export GREN_GITHUB_TOKEN=""
|
||||
64
config/exports-shell
Executable file
64
config/exports-shell
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/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.UTF-8
|
||||
|
||||
# Bash completion file location
|
||||
export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_completion"
|
||||
|
||||
# History env variables
|
||||
export HIST_STAMPS="yyyy-mm-dd"
|
||||
# Larger bash history (allow 32³ entries; default is 500)
|
||||
export HISTSIZE=32768
|
||||
export HISTFILESIZE=$HISTSIZE
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
export HISTCONTROL=ignoreboth
|
||||
# Make some commands not show up in history
|
||||
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
|
||||
# And include the parameter for ZSH
|
||||
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
|
||||
|
||||
# Highlight section titles in manual pages
|
||||
export LESS_TERMCAP_md="$ORANGE"
|
||||
|
||||
# Don’t clear the screen after quitting a manual page
|
||||
export MANPAGER="less -X"
|
||||
|
||||
# Always enable colored `grep` output
|
||||
export GREP_OPTIONS="--color=auto"
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
hash shopt 2> /dev/null && shopt -s checkwinsize
|
||||
|
||||
# Load iterm2 shell integration
|
||||
# https://iterm2.com/documentation-shell-integration.html
|
||||
[[ -f "$XDG_BIN_HOME/iterm2_shell_integration.zsh" ]] \
|
||||
&& source "$XDG_BIN_HOME/iterm2_shell_integration.zsh"
|
||||
|
||||
# Set dircolors based on the file, if it exists
|
||||
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
|
||||
|
||||
# If we are using zsh, color our dir lists and such
|
||||
if [ "$SHELL" = "$(which zsh)" ]; then
|
||||
x-dc "$XDG_CACHE_HOME/zsh"
|
||||
x-dc "$XDG_STATE_HOME/zsh"
|
||||
export HISTFILE="$XDG_STATE_HOME/zsh/history"
|
||||
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
|
||||
zstyle ':completion:*' list-colors "$LS_COLORS"
|
||||
|
||||
# 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
|
||||
51
config/functions
Normal file → Executable file
51
config/functions
Normal file → Executable file
@@ -1,10 +1,13 @@
|
||||
# shellcheck shell=bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 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}"
|
||||
@@ -12,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}" \
|
||||
@@ -40,7 +37,7 @@ function rector
|
||||
}
|
||||
|
||||
# Commit everything
|
||||
function commit
|
||||
commit()
|
||||
{
|
||||
commitMessage="$*"
|
||||
|
||||
@@ -52,7 +49,7 @@ function commit
|
||||
eval "git commit -a -m '${commitMessage}'"
|
||||
}
|
||||
|
||||
function scheduler
|
||||
scheduler()
|
||||
{
|
||||
while :; do
|
||||
php artisan schedule:run
|
||||
@@ -61,7 +58,27 @@ function scheduler
|
||||
done
|
||||
}
|
||||
|
||||
function silent
|
||||
# Defines default antigen bundles
|
||||
x-default-antigen-bundles()
|
||||
{
|
||||
"$@" >&/dev/null
|
||||
# the theme to use
|
||||
antigen theme romkatv/powerlevel10k
|
||||
|
||||
# these should be always available
|
||||
antigen bundle colored-man-pages
|
||||
antigen bundle command-not-found
|
||||
antigen bundle ssh-agent
|
||||
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 brew && antigen bundle brew
|
||||
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
|
||||
}
|
||||
|
||||
13
config/fzf/fzf.bash
Normal file
13
config/fzf/fzf.bash
Normal file
@@ -0,0 +1,13 @@
|
||||
# Setup fzf
|
||||
# ---------
|
||||
if [[ ! "$PATH" == */Users/ivuorinen/.config/fzf/bin* ]]; then
|
||||
PATH="${PATH:+${PATH}:}/Users/ivuorinen/.config/fzf/bin"
|
||||
fi
|
||||
|
||||
# Auto-completion
|
||||
# ---------------
|
||||
[[ $- == *i* ]] && source "/Users/ivuorinen/.config/fzf/shell/completion.bash" 2> /dev/null
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
source "/Users/ivuorinen/.config/fzf/shell/key-bindings.bash"
|
||||
13
config/fzf/fzf.zsh
Normal file
13
config/fzf/fzf.zsh
Normal file
@@ -0,0 +1,13 @@
|
||||
# Setup fzf
|
||||
# ---------
|
||||
if [[ ! "$PATH" == *$HOME/.config/fzf/bin* ]]; then
|
||||
PATH="${PATH:+${PATH}:}$HOME/.config/fzf/bin"
|
||||
fi
|
||||
|
||||
# Auto-completion
|
||||
# ---------------
|
||||
[[ $- == *i* ]] && source "$HOME/.config/fzf/shell/completion.zsh" 2> /dev/null
|
||||
|
||||
# Key bindings
|
||||
# ------------
|
||||
source "$HOME/.config/fzf/shell/key-bindings.zsh"
|
||||
@@ -1 +1 @@
|
||||
git_protocol: ssh
|
||||
git_protocol: https
|
||||
|
||||
@@ -1,55 +1,7 @@
|
||||
[include]
|
||||
path = ~/.dotfiles/config/git/shared
|
||||
|
||||
[user]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo@ivuorinen.net
|
||||
|
||||
[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
|
||||
|
||||
@@ -1,22 +1,34 @@
|
||||
[user]
|
||||
name = Ismo Vuorinen
|
||||
email = ismo.vuorinen@vincit.fi
|
||||
signingkey = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDLyOvkr1nRqMVv3UAizmk6C+q40H4khvw7qIXXXyOyFmzjwYx/Cuxoi4uZVjX+q4qFYJ+c312uu6YXiEtfyoCao3wub8r1cLBQ3eIvuyWp2K8Ixcd9JmFmLmoeiENpJxqyr0WPZLDkrCWUZCsQQh8zzGFnfciUdUdTiZ7s21AEhhmFRSdFlVfQSlGMFxU321psg1YilcP80bDwFd1FsL4TssSkwlbgP/twqnpZ4436TTo7kp0UnH/RZkfRdDWScKHaWgncBG0CZeQxGWnRp8fvZn/7gDnthcZhvnDALVBE7QFuZ90GxqVw3IGpHryV0mFO6EGQ9Ke9YX7pKVZPUXZjeCN4SVKsqFdVJ6AjaSJ9K7nL98rYK7qNzndT3cKqPNgPteyXWRulH68A51ecQqHrjTttZcdN9hKt9uBHpzuXsby2QObT+VB4MNjZapa+YYF/WgwJCml4lzn2xMFg1vYZD78pfoJ9e5f2cL1MMlUSDb0TNxmEXfDQ77H/pRpKDz0=
|
||||
[credential]
|
||||
helper = store --file ~/.cache/git/git-credentials
|
||||
helper = cache --timeout 30000
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[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]++'"
|
||||
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
|
||||
@@ -27,18 +39,6 @@
|
||||
[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
|
||||
@@ -52,23 +52,10 @@
|
||||
untracked = cyan
|
||||
branch = yellow black bold ul
|
||||
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[gpg "ssh"]
|
||||
program = /Applications/1Password.app/Contents/MacOS/op-ssh-sign
|
||||
allowedSignersFile = ~/.ssh/allowed_signers
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[credential "https://github.com"]
|
||||
helper =
|
||||
helper = !/opt/homebrew/bin/gh auth git-credential
|
||||
|
||||
[credential "https://gist.github.com"]
|
||||
helper =
|
||||
helper = !/opt/homebrew/bin/gh auth git-credential
|
||||
|
||||
[submodule]
|
||||
recurse = true
|
||||
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,80 +6,136 @@ 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"
|
||||
# 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"
|
||||
# Spell checker with better logic than ispell
|
||||
brew "aspell"
|
||||
# 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"
|
||||
# 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"
|
||||
# Get, unpack, build, and install modules from CPAN
|
||||
brew "cpanminus"
|
||||
# Open source suite of directory software
|
||||
brew "openldap"
|
||||
# Get a file from an HTTP, HTTPS or FTP server
|
||||
brew "curl"
|
||||
# Libraries to talk to Microsoft SQL Server and Sybase databases
|
||||
brew "freetds"
|
||||
# C/C++ and Java libraries for Unicode and globalization
|
||||
brew "icu4c"
|
||||
# Postgres C API library
|
||||
brew "libpq"
|
||||
# General-purpose scripting language
|
||||
brew "php"
|
||||
# Dependency Manager for PHP
|
||||
brew "composer"
|
||||
# GNU File, Shell, and Text utilities
|
||||
brew "coreutils"
|
||||
# Get, unpack, build, and install modules from CPAN
|
||||
brew "cpanminus"
|
||||
# Diff that understands syntax
|
||||
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
|
||||
@@ -90,10 +146,18 @@ 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
|
||||
brew "icu4c"
|
||||
# OpenType text shaping engine
|
||||
brew "harfbuzz"
|
||||
# Framework for layout and rendering of i18n text
|
||||
brew "pango"
|
||||
# Library to render SVG files using Cairo
|
||||
brew "librsvg"
|
||||
# Graph visualization software from AT&T and Bell Labs
|
||||
@@ -108,76 +172,108 @@ 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
|
||||
brew "pyenv-pip-migrate"
|
||||
# Pyenv plugin to manage virtualenv
|
||||
brew "pyenv-virtualenv"
|
||||
# Interpreted, interactive, object-oriented programming language
|
||||
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
|
||||
brew "testssl"
|
||||
# Terraform version manager inspired by rbenv
|
||||
brew "tfenv"
|
||||
# Static analysis security scanner for your terraform code
|
||||
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)
|
||||
brew "tree"
|
||||
# Vulnerability scanner for container images, file systems, and Git repos
|
||||
brew "trivy"
|
||||
# Modern watch command
|
||||
brew "viddy"
|
||||
# Tool for creating isolated virtual python environments
|
||||
brew "virtualenv"
|
||||
# Command-line interface to the WakaTime api
|
||||
brew "wakatime-cli"
|
||||
# Executes a program periodically, showing output fullscreen
|
||||
@@ -186,18 +282,24 @@ 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"
|
||||
# Tracks most-used directories to make cd smarter
|
||||
brew "z"
|
||||
# A vulnerability scanner for container images and filesystems
|
||||
brew "anchore/grype/grype"
|
||||
# High-performance load testing tool, written in Golang.
|
||||
brew "ddosify/tap/ddosify"
|
||||
# lets you quickly switch between multiple git user profiles
|
||||
brew "gesquive/tap/git-user"
|
||||
# A simple terminal UI for git commands, written in Go
|
||||
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
|
||||
@@ -214,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
|
||||
@@ -246,8 +354,16 @@ cask "insomnia"
|
||||
cask "jetbrains-toolbox"
|
||||
# Kubernetes IDE
|
||||
cask "lens"
|
||||
# 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
|
||||
@@ -262,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
|
||||
@@ -284,9 +406,82 @@ 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 "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"
|
||||
}
|
||||
16
config/misc/screenrc
Normal file
16
config/misc/screenrc
Normal file
@@ -0,0 +1,16 @@
|
||||
# Disable the startup message
|
||||
startup_message off
|
||||
|
||||
# Set a large scrollback buffer
|
||||
defscrollback 32000
|
||||
|
||||
# Always start `screen` with UTF-8 enabled (`screen -U`)
|
||||
defutf8 on
|
||||
|
||||
# Scroll with mouse wheel (http://stackoverflow.com/a/1125947)
|
||||
termcapinfo xterm* ti@:te@
|
||||
|
||||
# Some settings for screen + vim
|
||||
term xterm-256color
|
||||
maptimeout 10
|
||||
|
||||
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 e283d6749f
6
config/nvim/.gitignore
vendored
Normal file
6
config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
tags
|
||||
test.sh
|
||||
.luarc.json
|
||||
nvim
|
||||
lazy-lock.json
|
||||
session.vim
|
||||
10
config/nvim/.stylua.toml
Normal file
10
config/nvim/.stylua.toml
Normal file
@@ -0,0 +1,10 @@
|
||||
column_width = 160
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferDouble"
|
||||
call_parentheses = "Always"
|
||||
collapse_simple_statement = "Always"
|
||||
|
||||
[sort_requires]
|
||||
enabled = true
|
||||
1
config/nvim/after/ftplugin/lua.lua
Normal file
1
config/nvim/after/ftplugin/lua.lua
Normal file
@@ -0,0 +1 @@
|
||||
vim.api.nvim_command("set formatoptions-=cro")
|
||||
30
config/nvim/init.lua
Normal file
30
config/nvim/init.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
local key = vim.api.nvim_set_keymap
|
||||
local remap = { noremap = true, silent = true }
|
||||
|
||||
-- Set with normal Vim opts, 'Space' as mapleader
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- Set 'Space' as <NOP> key to leadermap key
|
||||
key("n", "<Space>", "<NOP>", remap)
|
||||
|
||||
-- Filetype specialties.
|
||||
require("filetype")
|
||||
|
||||
-- Global, windows options of neovim:
|
||||
require("options")
|
||||
|
||||
-- To adminstrate packages:
|
||||
require("plugin-manager")
|
||||
|
||||
-- LSP for editing.
|
||||
require("lsp")
|
||||
|
||||
-- Autocmd commands from Vimscript
|
||||
require("autocmd")
|
||||
|
||||
-- Personal Keymaps of neovim:
|
||||
require("keymappings")
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
31
config/nvim/lua/autocmd.lua
Normal file
31
config/nvim/lua/autocmd.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
local vim = vim
|
||||
local api = vim.api
|
||||
local M = {}
|
||||
|
||||
--- function to create a list of commands and convert them to autocommands
|
||||
--- This function is taken from https://github.com/norcalli/nvim_utils
|
||||
function M.nvim_create_augroups(definitions)
|
||||
for group_name, definition in pairs(definitions) do
|
||||
api.nvim_command("augroup " .. group_name)
|
||||
api.nvim_command("autocmd!")
|
||||
for _, def in ipairs(definition) do
|
||||
local command = table.concat(vim.tbl_flatten({ "autocmd", def }), " ")
|
||||
api.nvim_command(command)
|
||||
end
|
||||
api.nvim_command("augroup END")
|
||||
end
|
||||
end
|
||||
|
||||
local autoCommands = {
|
||||
-- To save the current session (may be restored later).
|
||||
-- autocmd! VimLeavePre * :mks! ~/.config/nvim/session.vim
|
||||
save_session = {
|
||||
{ "VimLeavePre", "*", ":mks! ~/.local/state/nvim/session.vim" },
|
||||
},
|
||||
-- other autocommands
|
||||
open_folds = {
|
||||
{ "BufReadPost,FileReadPost", "*", "normal zR<cr>" },
|
||||
},
|
||||
}
|
||||
|
||||
M.nvim_create_augroups(autoCommands)
|
||||
77
config/nvim/lua/filetype.lua
Normal file
77
config/nvim/lua/filetype.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
-- To be used anywhere.
|
||||
local function job(command) vim.api.nvim_command("call jobstart('" .. command .. "')") end
|
||||
|
||||
local function format()
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = "<buffer>",
|
||||
callback = function() vim.lsp.buf.format() end,
|
||||
})
|
||||
end
|
||||
|
||||
local function yaml_ft(path, bufnr)
|
||||
-- get content of buffer as string
|
||||
local content = vim.filetype.getlines(bufnr)
|
||||
if type(content) == "table" then content = table.concat(content, "\n") end
|
||||
|
||||
-- check if file is in roles, tasks, or handlers folder
|
||||
local path_regex = vim.regex("(tasks\\|roles\\|handlers)/")
|
||||
if path_regex and path_regex:match_str(path) then return "yaml.ansible" end
|
||||
-- check for known ansible playbook text and if found, return yaml.ansible
|
||||
local regex = vim.regex("hosts:\\|tasks:")
|
||||
if regex and regex:match_str(content) then return "yaml.ansible" end
|
||||
|
||||
-- return yaml if nothing else
|
||||
return "yaml"
|
||||
end
|
||||
|
||||
-- In init.lua or filetype.nvim's config file
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
|
||||
h = function()
|
||||
-- Use a lazy heuristic that #including a C++ header means it's a
|
||||
-- C++ header
|
||||
if vim.fn.search("\\C^#include <[^>.]\\+>$", "nw") == 1 then return "cpp" end
|
||||
return "c"
|
||||
end,
|
||||
|
||||
-- Spelling fix.
|
||||
md = function() vim.api.nvim_command("setlocal spell!") end,
|
||||
|
||||
yml = yaml_ft,
|
||||
yaml = yaml_ft,
|
||||
|
||||
--
|
||||
csv = "csv",
|
||||
cl = "opencl",
|
||||
env = "env",
|
||||
sh = "zsh",
|
||||
--
|
||||
},
|
||||
pattern = {
|
||||
|
||||
-- Go to root configuration of some projects.
|
||||
-- [".*config/nvim/.*"] = function() vim.api.nvim_command "cd ~/.config/nvim/" end,
|
||||
|
||||
---- Typescript Projects
|
||||
[".*/src/.*ts"] = function() format() end,
|
||||
[".*/src/.*json"] = function() format() end,
|
||||
[".*/src/.*scss"] = function() format() end,
|
||||
[".*/src/.*html"] = function() format() end,
|
||||
|
||||
--[".*Code/ivuorinen/[project]/src/.*ts"] = function()
|
||||
-- vim.api.nvim_command('cd ~/Code/ivuorinen/[project]/')
|
||||
-- build('ts index')
|
||||
--end,
|
||||
},
|
||||
|
||||
filename = {
|
||||
-- For eslint_d configuration file.
|
||||
[".eslintrc"] = "jsonc",
|
||||
|
||||
-- For Typescript projects.
|
||||
["tsconfig.json"] = "json5",
|
||||
|
||||
[".ignore"] = "gitignore",
|
||||
},
|
||||
})
|
||||
279
config/nvim/lua/keymappings.lua
Normal file
279
config/nvim/lua/keymappings.lua
Normal file
@@ -0,0 +1,279 @@
|
||||
--[[
|
||||
Keymappings for nvim experience.
|
||||
|
||||
I use combination of both nvim default vim.api.nvim_set_keymap
|
||||
and WhichKey register. Slowly migrating to the WhichKey system,
|
||||
and tweaking the groupings as I go.
|
||||
--]]
|
||||
|
||||
local key = vim.api.nvim_set_keymap
|
||||
local remap = { noremap = true, silent = true }
|
||||
|
||||
local wk = require("which-key")
|
||||
|
||||
-- ╭──────────────────────────────────────────────────────────╮
|
||||
-- │ Register keybindings │
|
||||
-- ╰──────────────────────────────────────────────────────────╯
|
||||
|
||||
-- Register in all modes, prefix <leader>
|
||||
wk.register({
|
||||
b = {
|
||||
name = "Buffer",
|
||||
n = {
|
||||
"<cmd>tabnew<cr>",
|
||||
"New tab",
|
||||
},
|
||||
c = {
|
||||
name = "Comments",
|
||||
b = {
|
||||
"<cmd>lua require('comment-box').lbox()<cr>",
|
||||
"Left aligned fixed size box with left aligned text",
|
||||
},
|
||||
c = {
|
||||
"<cmd>lua require('comment-box').ccbox()<cr>",
|
||||
desc = "Centered adapted box with centered text",
|
||||
},
|
||||
l = {
|
||||
"<cmd>lua require('comment-box').cline()<cr>",
|
||||
desc = "Centered line",
|
||||
},
|
||||
},
|
||||
d = {
|
||||
name = "Delete buffers",
|
||||
h = {
|
||||
"<CMD>lua require('close_buffers').delete({type = 'hidden'})<CR>",
|
||||
"Delete hidden buffers",
|
||||
},
|
||||
},
|
||||
},
|
||||
D = {
|
||||
name = "[D]iagnostics (Trouble)",
|
||||
t = { ":TroubleToggle<CR>", "[D]iagnostics [t]oggle" },
|
||||
-- Quick navigation between diagonostics.
|
||||
f = { ":lua vim.diagnostic.open_float()<CR>", "[D]iagnostics: Open [f]loat" },
|
||||
n = { ":lua vim.diagnostic.goto_next()<CR>", "[D]iagnostics: [n]ext" },
|
||||
p = { ":lua vim.diagnostic.goto_prev()<CR>", "[D]iagnostics: [p]rev" },
|
||||
},
|
||||
f = {
|
||||
name = "[f]ind",
|
||||
-- Find recursively files across the root folder subfiles.
|
||||
f = { ':lua require("telescope.builtin").find_files()<cr>', "[f]ind [f]iles" },
|
||||
-- Find recursively a text across the root folder subfiles.
|
||||
g = { ':lua require("telescope.builtin").live_grep()<cr>', "[f]ind text with [g]rep" },
|
||||
},
|
||||
h = {
|
||||
name = "[h]arpoon",
|
||||
a = { "<cmd>lua require('harpoon.mark').add_file()<cr>", "[h]arpoon: [A]dd file" },
|
||||
r = { "<cmd>lua require('harpoon.mark').rm_file()<cr>", "[h]arpoon: [r]emove file" },
|
||||
m = { "<cmd>lua require('harpoon.ui').toggle_quick_menu()<cr>", "[h]arpoon: harpoon [m]enu" },
|
||||
n = { "<cmd>lua require('harpoon.ui').nav_next()<cr>", "[h]arpoon: [n]ext file" },
|
||||
p = { "<cmd>lua require('harpoon.ui').nav_prev()<cr>", "[h]arpoon: [p]revious file" },
|
||||
["1"] = { "<cmd> lua require('harpoon.ui').nav_file(1)<cr>", "[h]arpoon: file 1" },
|
||||
["2"] = { "<cmd> lua require('harpoon.ui').nav_file(2)<cr>", "[h]arpoon: file 2" },
|
||||
["3"] = { "<cmd> lua require('harpoon.ui').nav_file(3)<cr>", "[h]arpoon: file 3" },
|
||||
},
|
||||
--- Remap debugging to "H" from LV default of "h"
|
||||
H = {
|
||||
name = "[H]elp/Conceal/Telescope",
|
||||
c = {
|
||||
name = "[c]onceal",
|
||||
h = { ":set conceallevel=1<cr>", "hide/conceal" },
|
||||
s = { ":set conceallevel=0<cr>", "show/unconceal" },
|
||||
},
|
||||
t = {
|
||||
name = "Treesitter",
|
||||
t = { vim.treesitter.inspect_tree, "show tree" },
|
||||
c = { ":=vim.treesitter.get_captures_at_cursor()<cr>", "show capture" },
|
||||
n = { ":=vim.treesitter.get_node():type()<cr>", "show node" },
|
||||
},
|
||||
},
|
||||
p = {
|
||||
name = "[p]lugins",
|
||||
i = { function() require("lazy").install() end, "[p]lugins [i]nstall" },
|
||||
s = { function() require("lazy").home() end, "[p]lugins [s]tatus" },
|
||||
S = { function() require("lazy").sync() end, "[p]lugins [S]ync" },
|
||||
u = { function() require("lazy").check() end, "[p]lugins Check [u]pdates" },
|
||||
U = { function() require("lazy").update() end, "[p]lugins [U]pdate" },
|
||||
},
|
||||
q = {
|
||||
name = "[q]uit",
|
||||
q = { ":qa<cr>", "[q]uit: [q]uit all" },
|
||||
f = { ":qa!<cr>", "[q]uit: all with [f]orce" },
|
||||
},
|
||||
t = {
|
||||
name = "[t]elescope",
|
||||
-- Find recursively TODOs, NOTEs, FIXITs, ... across the root folder subfiles.
|
||||
t = { ":TodoTelescope<cr>", "[t]elescope: [t]odo" },
|
||||
},
|
||||
x = { ":Bdelete<CR>", "[x]: Close current buffer" },
|
||||
}, { prefix = "<leader>" })
|
||||
|
||||
-- Normal mode, prefix <leader>
|
||||
wk.register({
|
||||
b = { name = "Buffer" },
|
||||
}, { mode = "n", prefix = "<leader>" })
|
||||
|
||||
-- Insert mode, prefix <leader>
|
||||
wk.register({
|
||||
b = { name = "Buffer" },
|
||||
}, { mode = "i", prefix = "<leader>" })
|
||||
|
||||
-- Go to the next block.
|
||||
--key('n', '<C-Down>', 'g%', remap )
|
||||
|
||||
-- Loop through brackets blocks.
|
||||
--key('n', '<C-Up>', 'z%', remap )
|
||||
|
||||
-- Do just End on CTRL + End.
|
||||
key("i", "<C-End>", "<End>", remap)
|
||||
key("n", "<C-End>", "<End>", remap)
|
||||
|
||||
-- Do just Home on CTRL + Home.
|
||||
key("i", "<C-Home>", "<End>", remap)
|
||||
|
||||
-- Highlight the word after pressing enter.
|
||||
key(
|
||||
"n",
|
||||
"<CR>",
|
||||
[[:let searchTerm = '\v<'.expand("<cword>").'>' <bar> let @/ = searchTerm <bar> echo '/'.@/ <bar> call histadd("search", searchTerm) <bar> set hls<cr>]],
|
||||
remap
|
||||
)
|
||||
|
||||
-- Highlight the visual selection after pressing enter.
|
||||
key(
|
||||
"v",
|
||||
"<CR>",
|
||||
[["*y:silent! let searchTerm = '\V'.substitute(escape(@*, '\/'), "\n", '\\n', "g") <bar> let @/ = searchTerm <bar> echo '/'.@/ <bar> call histadd("search", searchTerm) <bar> set hls<cr>]],
|
||||
remap
|
||||
)
|
||||
|
||||
-- Toggle highlight of search
|
||||
key("n", "<C-c>", ":set hlsearch!<CR>", remap)
|
||||
|
||||
-- Toggle the sidebar tree of the root folder.
|
||||
key("n", "<leader>e", "", {
|
||||
noremap = true,
|
||||
silent = true,
|
||||
desc = "Open NeoTree without warnings",
|
||||
callback = function() vim.cmd("Neotree toggle source=filesystem position=left") end,
|
||||
})
|
||||
|
||||
-- Try to correct the current word.
|
||||
key("i", "<C-b>", "ea<C-x><C-s>", remap)
|
||||
|
||||
-- Toggle built-in nvim spell checking.
|
||||
key("n", "<F5>", ":setlocal spell!<CR>", remap)
|
||||
|
||||
-- Move lines normally like an IDE when line wraps
|
||||
key("i", "<Down>", [[v:count ? 'j' : '<c-o>gj']], { expr = true, noremap = true, silent = true })
|
||||
key("i", "<Up>", [[v:count ? 'k' : '<c-o>gk']], { expr = true, noremap = true, silent = true })
|
||||
key("n", "<Down>", [[v:count ? 'j' : 'gj']], { expr = true, noremap = true, silent = true })
|
||||
key("n", "<Up>", [[v:count ? 'k' : 'gk']], { expr = true, noremap = true, silent = true })
|
||||
|
||||
-- Set 'CTRL + v' as 'paster'
|
||||
-- key('', '<C-v>', 'map"_d<Esc>i', remap )
|
||||
key("v", "<C-v>", "p", remap)
|
||||
|
||||
-- Set 'CTRL + x' as 'cut'
|
||||
key("v", "<C-x>", "mad`ai<Right>", { silent = true })
|
||||
|
||||
-- Set 'CTRL + c' as 'copier'
|
||||
key("v", "<C-c>", "may`ai", remap)
|
||||
key("i", "<C-v>", "<Esc>:Registers<CR>", remap)
|
||||
|
||||
-- Set 'CTRL + s as save'
|
||||
key("n", "<C-s>", "<cmd>w<cr>", remap)
|
||||
|
||||
-- Create mark.
|
||||
key("n", "'", "`", remap)
|
||||
|
||||
-- Move normaly bottom and up with C+Up and C+Down.
|
||||
key("i", "<C-Up>", "<C-o>gk", remap)
|
||||
key("i", "<C-Down>", "<C-o>gj", remap)
|
||||
key("n", "<C-Up>", "gk", remap)
|
||||
key("n", "<C-Down>", "gj", remap)
|
||||
|
||||
-- Set 'CTRL + z' as 'undo'
|
||||
key("i", "<C-z>", "<Esc>ui", remap)
|
||||
|
||||
-- Set 'CTRL + y' as 'redo'
|
||||
key("i", "<C-y>", "<Esc><C-r>", remap)
|
||||
|
||||
-- Set 'SHIFT + arrows' as 'select' like modern text-editor.
|
||||
key("n", "<S-Up>", "v<Up>", remap)
|
||||
key("n", "<S-Down>", "v<Down>", remap)
|
||||
key("n", "<S-Left>", "v<Left>", remap)
|
||||
key("n", "<S-Right>", "v<Right>", remap)
|
||||
key("v", "<S-Up>", "<Up>", remap)
|
||||
key("v", "<S-Down>", "<Down>", remap)
|
||||
key("v", "<S-Left>", "<Left>", remap)
|
||||
key("v", "<S-Right>", "<Right>", remap)
|
||||
key("i", "<S-Up>", "<Esc>v<Up>", remap)
|
||||
key("i", "<S-Down>", "<C-o>v<Down>", remap)
|
||||
key("i", "<S-Left>", "<Esc>v<Left>", remap)
|
||||
key("i", "<S-Right>", "<C-o>v<Right>", remap)
|
||||
|
||||
-- Set 'SHIFT + special-keys' as 'select' like a modern text editor.
|
||||
key("i", "<S-Home>", "<Esc>v<Home>", remap)
|
||||
key("i", "<S-End>", "<C-o>v<End><Left>", remap)
|
||||
key("n", "<S-Home>", "v<Home>", remap)
|
||||
key("n", "<S-End>", "v<End><Left>", remap)
|
||||
key("n", "<S-PageUp>", "", remap)
|
||||
key("n", "<S-PageDown>", "<Esc>:call Visual_Scroll_Down()<CR>i<Right><Left>", remap)
|
||||
|
||||
-- Indent the current visual selection.
|
||||
key("v", "<", "<gv", remap)
|
||||
key("v", ">", ">gv", remap)
|
||||
|
||||
-- Set 'Backspace' as 'delete selection' for the visual selection.
|
||||
key("v", "<BS>", '"_di', remap)
|
||||
|
||||
---
|
||||
|
||||
-- Barbar keymappings
|
||||
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local opts = { noremap = true, silent = true }
|
||||
|
||||
-- Move to previous/next
|
||||
map("n", "<C-,>", "<Cmd>BufferPrevious<CR>", opts)
|
||||
map("n", "<C-.>", "<Cmd>BufferNext<CR>", opts)
|
||||
-- Re-order to previous/next
|
||||
map("n", "<C-<>", "<Cmd>BufferMovePrevious<CR>", opts)
|
||||
map("n", "<C->>", "<Cmd>BufferMoveNext<CR>", opts)
|
||||
-- Goto buffer in position...
|
||||
map("n", "<C-1>", "<Cmd>BufferGoto 1<CR>", opts)
|
||||
map("n", "<C-2>", "<Cmd>BufferGoto 2<CR>", opts)
|
||||
map("n", "<C-3>", "<Cmd>BufferGoto 3<CR>", opts)
|
||||
map("n", "<C-4>", "<Cmd>BufferGoto 4<CR>", opts)
|
||||
map("n", "<C-5>", "<Cmd>BufferGoto 5<CR>", opts)
|
||||
map("n", "<C-6>", "<Cmd>BufferGoto 6<CR>", opts)
|
||||
map("n", "<C-7>", "<Cmd>BufferGoto 7<CR>", opts)
|
||||
map("n", "<C-8>", "<Cmd>BufferGoto 8<CR>", opts)
|
||||
map("n", "<C-9>", "<Cmd>BufferGoto 9<CR>", opts)
|
||||
map("n", "<C-0>", "<Cmd>BufferLast<CR>", opts)
|
||||
-- Pin/unpin buffer
|
||||
map("n", "<C-p>", "<Cmd>BufferPin<CR>", opts)
|
||||
|
||||
-- Close buffer
|
||||
-- map('n', '<C-c>', '<Cmd>BufferClose<CR>', opts)
|
||||
|
||||
-- Wipeout buffer
|
||||
-- :BufferWipeout
|
||||
-- Close commands
|
||||
-- :BufferCloseAllButCurrent
|
||||
-- :BufferCloseAllButPinned
|
||||
-- :BufferCloseAllButCurrentOrPinned
|
||||
-- :BufferCloseBuffersLeft
|
||||
-- :BufferCloseBuffersRight
|
||||
-- Magic buffer-picking mode
|
||||
map("n", "<C-p>", "<Cmd>BufferPick<CR>", opts)
|
||||
-- Sort automatically by...
|
||||
map("n", "<Space>bb", "<Cmd>BufferOrderByBufferNumber<CR>", opts)
|
||||
map("n", "<Space>bd", "<Cmd>BufferOrderByDirectory<CR>", opts)
|
||||
map("n", "<Space>bl", "<Cmd>BufferOrderByLanguage<CR>", opts)
|
||||
map("n", "<Space>bw", "<Cmd>BufferOrderByWindowNumber<CR>", opts)
|
||||
|
||||
-- Other:
|
||||
-- :BarbarEnable - enables barbar (enabled by default)
|
||||
-- :BarbarDisable - very bad command, should never be used
|
||||
146
config/nvim/lua/lsp.lua
Normal file
146
config/nvim/lua/lsp.lua
Normal file
@@ -0,0 +1,146 @@
|
||||
-- Completion for snippets.
|
||||
CAPABILITIES = vim.lsp.protocol.make_client_capabilities()
|
||||
CAPABILITIES = require("cmp_nvim_lsp").default_capabilities(CAPABILITIES)
|
||||
CAPABILITIES.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
--CAPABILITIES.offsetEncoding = 'utf-8'
|
||||
|
||||
-- [[ Configure LSP ]]
|
||||
-- This function gets run when an LSP connects to a particular buffer.
|
||||
local on_attach = function(_, bufnr)
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then desc = "LSP: " .. desc end
|
||||
|
||||
vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
local wk = require("which-key")
|
||||
|
||||
wk.register({
|
||||
l = {
|
||||
name = "LSP",
|
||||
n = { vim.lsp.buf.rename, "Rename" },
|
||||
c = { vim.lsp.buf.code_action, "Code Action" },
|
||||
f = { "<cmd>Format", "Format current buffer with LSP" },
|
||||
D = { vim.lsp.buf.declaration, "[G]oto [D]eclaration" },
|
||||
w = {
|
||||
name = "[w]orkspace",
|
||||
a = { vim.lsp.buf.add_workspace_folder, "[w]orkspace: [a]dd folder" },
|
||||
r = { vim.lsp.buf.remove_workspace_folder, "[w]orkspace: [r]emove folder" },
|
||||
l = {
|
||||
function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end,
|
||||
"[w]orkspace [l]ist folders",
|
||||
},
|
||||
},
|
||||
},
|
||||
g = {
|
||||
name = "Goto",
|
||||
d = { vim.lsp.buf.definition, "[G]oto [D]efinition" },
|
||||
r = { require("telescope.builtin").lsp_references, "[G]oto [R]eferences" },
|
||||
I = { vim.lsp.buf.implementation, "[G]oto [I]mplementation" },
|
||||
D = { vim.lsp.buf.type_definition, "Type [D]efinition" },
|
||||
s = { require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols" },
|
||||
w = { require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols" },
|
||||
},
|
||||
}, { prefix = "<leader>" })
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap("K", vim.lsp.buf.hover, "Hover Documentation")
|
||||
nmap("<C-k>", vim.lsp.buf.signature_help, "Signature Documentation")
|
||||
|
||||
-- Create a command `:Format` local to the LSP buffer
|
||||
vim.api.nvim_buf_create_user_command(
|
||||
bufnr,
|
||||
"Format",
|
||||
function(_) vim.lsp.buf.format() end,
|
||||
{ desc = "Format current buffer with LSP" }
|
||||
)
|
||||
end
|
||||
|
||||
-- Enable the following language servers
|
||||
-- Feel free to add/remove any LSPs that you want here.
|
||||
-- They will automatically be installed.
|
||||
--
|
||||
-- Add any additional override configuration in the following
|
||||
-- tables. They will be passed to the `settings` field of the
|
||||
-- server config. You must look up that documentation yourself.
|
||||
--
|
||||
-- If you want to override the default filetypes that your
|
||||
-- language server will attach to you can define the property
|
||||
-- 'filetypes' to the map in question.
|
||||
local servers = {
|
||||
ansiblels = {},
|
||||
bashls = {},
|
||||
clangd = {},
|
||||
docker_compose_language_service = {},
|
||||
dockerls = {},
|
||||
eslint = {},
|
||||
gopls = {},
|
||||
html = { filetypes = { "html", "twig", "hbs" } },
|
||||
intelephense = {},
|
||||
jsonls = {},
|
||||
lua_ls = {
|
||||
Lua = {
|
||||
workspace = { checkThirdParty = false },
|
||||
telemetry = { enable = false },
|
||||
},
|
||||
},
|
||||
marksman = {},
|
||||
pyright = {},
|
||||
rust_analyzer = {},
|
||||
terraformls = {},
|
||||
tsserver = {},
|
||||
vuels = {},
|
||||
yamlls = {},
|
||||
}
|
||||
|
||||
-- Setup neovim lua configuration
|
||||
require("neodev").setup()
|
||||
|
||||
-- nvim-cmp supports additional completion capabilities,
|
||||
-- so broadcast that to servers
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
|
||||
|
||||
-- Ensure the servers above are installed
|
||||
local mason_lspconfig = require("mason-lspconfig")
|
||||
|
||||
mason_lspconfig.setup({
|
||||
ensure_installed = vim.tbl_keys(servers),
|
||||
automatic_installation = true,
|
||||
})
|
||||
|
||||
mason_lspconfig.setup_handlers({
|
||||
function(server_name)
|
||||
require("lspconfig")[server_name].setup({
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
settings = servers[server_name],
|
||||
filetypes = (servers[server_name] or {}).filetypes,
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
-- Bash Language Server
|
||||
require("lsp.bash")
|
||||
|
||||
-- eslint_d + prettierd
|
||||
-- require 'lsp.eslint_d_prettierd'
|
||||
|
||||
-- HTML
|
||||
require("lsp.html")
|
||||
|
||||
-- JSON
|
||||
require("lsp.json")
|
||||
|
||||
-- Python
|
||||
require("lsp.python")
|
||||
|
||||
-- CSS + Less + SCSS
|
||||
require("lsp.scss")
|
||||
|
||||
-- rome
|
||||
require("lsp.rome")
|
||||
|
||||
-- Typescript + Javascript
|
||||
require("lsp.typescript")
|
||||
8
config/nvim/lua/lsp/bash.lua
Normal file
8
config/nvim/lua/lsp/bash.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
require("lspconfig").bashls.setup({
|
||||
cmd = {
|
||||
"bash-language-server",
|
||||
"start",
|
||||
},
|
||||
filetypes = { "sh", "zsh" },
|
||||
capabilities = CAPABILITIES,
|
||||
})
|
||||
25
config/nvim/lua/lsp/eslint_d_prettierd.lua
Normal file
25
config/nvim/lua/lsp/eslint_d_prettierd.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
local eslint = require("eslint")
|
||||
local null_ls = require("null-ls")
|
||||
-- local sources = { null_ls.builtins.formatting.prettierd }
|
||||
|
||||
null_ls.setup()
|
||||
|
||||
eslint.setup({
|
||||
bin = "eslint_d",
|
||||
code_actions = {
|
||||
enable = true,
|
||||
apply_on_save = {
|
||||
enable = true,
|
||||
types = { "directive", "problem", "suggestion", "layout" },
|
||||
},
|
||||
disable_rule_comment = {
|
||||
enable = true,
|
||||
location = "separate_line", -- or `same_line`
|
||||
},
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
report_unused_disable_directives = false,
|
||||
run_on = "type", -- or `save`
|
||||
},
|
||||
})
|
||||
1
config/nvim/lua/lsp/html.lua
Normal file
1
config/nvim/lua/lsp/html.lua
Normal file
@@ -0,0 +1 @@
|
||||
require("lspconfig").html.setup({ capabilities = CAPABILITIES })
|
||||
9
config/nvim/lua/lsp/json.lua
Normal file
9
config/nvim/lua/lsp/json.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
require("lspconfig").jsonls.setup({
|
||||
settings = {
|
||||
json = {
|
||||
schemas = require("schemastore").json.schemas(),
|
||||
validate = { enable = true },
|
||||
},
|
||||
},
|
||||
capabilities = CAPABILITIES,
|
||||
})
|
||||
1
config/nvim/lua/lsp/python.lua
Normal file
1
config/nvim/lua/lsp/python.lua
Normal file
@@ -0,0 +1 @@
|
||||
require("lspconfig").pylsp.setup({})
|
||||
31
config/nvim/lua/lsp/rome.lua
Normal file
31
config/nvim/lua/lsp/rome.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
local util = require("lspconfig.util")
|
||||
-- local config = require 'lspconfig.configs'
|
||||
|
||||
-- This duplicate exec is just a workaruond, if don't execute at first,
|
||||
-- the nvim will stuck when you first init rome socket
|
||||
-- local rome_cmd = { 'rome', 'lsp-proxy' }
|
||||
|
||||
-- local merged_table = vim.tbl_extend("keep", {
|
||||
-- textDocument = {
|
||||
-- formatting = {
|
||||
-- dynamicRegistration = true
|
||||
-- }
|
||||
-- }
|
||||
-- }, capabilities);
|
||||
--
|
||||
require("lspconfig").rome.setup({
|
||||
-- cmd = rome_cmd,
|
||||
-- filetypes = {
|
||||
-- 'javascript',
|
||||
-- 'javascriptreact',
|
||||
-- 'typescript',
|
||||
-- 'typescriptreact',
|
||||
-- 'json'
|
||||
-- },
|
||||
root_dir = util.root_pattern("rome.json"),
|
||||
single_file_support = true,
|
||||
on_attach = function(client, bufnr)
|
||||
if client.server_capabilities.documentSymbolProvider then require("nvim-navic").attach(client, bufnr) end
|
||||
end,
|
||||
capabilities = CAPABILITIES,
|
||||
})
|
||||
22
config/nvim/lua/lsp/scss.lua
Normal file
22
config/nvim/lua/lsp/scss.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
-- CSS + Less + SASS Language Server
|
||||
require("lspconfig").cssls.setup({
|
||||
cmd = { "vscode-css-language-server", "--stdio" },
|
||||
filetypes = { "css", "scss", "less" },
|
||||
-- root_dir = root_pattern("package.json", ".git") or bufdir,
|
||||
settings = {
|
||||
css = {
|
||||
validate = true,
|
||||
},
|
||||
less = {
|
||||
validate = true,
|
||||
},
|
||||
scss = {
|
||||
validate = true,
|
||||
},
|
||||
},
|
||||
single_file_support = true,
|
||||
capabilities = CAPABILITIES,
|
||||
on_attach = function(client, bufnr)
|
||||
if client.server_capabilities.documentSymbolProvider then require("nvim-navic").attach(client, bufnr) end
|
||||
end,
|
||||
})
|
||||
6
config/nvim/lua/lsp/typescript.lua
Normal file
6
config/nvim/lua/lsp/typescript.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
require("lspconfig").tsserver.setup({
|
||||
capabilities = CAPABILITIES,
|
||||
on_attach = function(client, bufnr)
|
||||
if client.server_capabilities.documentSymbolProvider then require("nvim-navic").attach(client, bufnr) end
|
||||
end,
|
||||
})
|
||||
59
config/nvim/lua/lsp_signature.lua
Normal file
59
config/nvim/lua/lsp_signature.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
-- Signature for LSP
|
||||
|
||||
return {
|
||||
"ray-x/lsp_signature.nvim",
|
||||
config = {
|
||||
debug = false, -- set to true to enable debug logging
|
||||
verbose = false, -- show debug line number
|
||||
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
-- If you want to hook lspsaga or other signature handler, pls set to false
|
||||
doc_lines = 10, -- will show two lines of comment/doc(if there are more than two lines in doc, will be truncated);
|
||||
-- set to 0 if you DO NOT want any API comments be shown
|
||||
-- This setting only take effect in insert mode, it does not affect signature help in normal
|
||||
-- mode, 10 by default
|
||||
|
||||
floating_window = true, -- show hint in a floating window, set to false for virtual text only mode
|
||||
|
||||
floating_window_above_cur_line = false, -- try to place the floating above the current line when possible Note:
|
||||
-- will set to true when fully tested, set to false will use whichever side has more space
|
||||
-- this setting will be helpful if you do not want the PUM and floating win overlap
|
||||
close_timeout = 4000, -- close floating window after ms when laster parameter is entered
|
||||
hint_enable = true, -- virtual hint enable
|
||||
hint_prefix = "🐼", -- Panda for parameter
|
||||
hint_scheme = "String",
|
||||
use_lspsaga = false, -- set to true if you want to use lspsaga popup
|
||||
|
||||
hi_parameter = "LspSignatureActiveParameter", -- how your parameter will be highlight
|
||||
|
||||
max_height = 12, -- max height of signature floating_window, if content is more than max_height, you can scroll down
|
||||
-- to view the hiding contents
|
||||
max_width = 90, -- max_width of signature floating_window, line will be wrapped if exceed max_width
|
||||
wrap = true,
|
||||
handler_opts = {
|
||||
border = "shadow", -- double, rounded, single, shadow, none
|
||||
},
|
||||
|
||||
always_trigger = false, -- sometime show signature on new line or in middle of parameter can be confusing, set it to false for #58
|
||||
|
||||
floating_window_off_x = 0, -- adjust float windows x position.
|
||||
-- can be either a number or function
|
||||
floating_window_off_y = 2, -- adjust float windows y position. e.g -2 move window up 2 lines; 2 move down 2 lines
|
||||
-- can be either number or function, see examples
|
||||
|
||||
auto_close_after = nil, -- autoclose signature float win after x sec, disabled if nil.
|
||||
extra_trigger_chars = { "(", ",", ";", ")", "{", "}" }, -- Array of extra characters that will trigger signature completion, e.g., {"(", ","}
|
||||
zindex = 200, -- by default it will be on top of all floating windows, set to <= 50 send it to bottom
|
||||
|
||||
padding = "", -- character to pad on left and right of signature can be ' ', or '|' etc
|
||||
|
||||
transparency = 20, -- disabled by default, allow floating win transparent value 1~100
|
||||
shadow_blend = 36, -- if you using shadow as border use this set the opacity
|
||||
shadow_guibg = "Black", -- if you using shadow as border use this set the color e.g. 'Green' or '#121315'
|
||||
timer_interval = 50, -- default timer check interval set to lower value if you want to reduce latency
|
||||
toggle_key = "<C-n>", -- toggle signature on and off in insert mode, e.g. toggle_key = '<M-x>'
|
||||
|
||||
select_signature_key = nil, -- cycle to next signature, e.g. '<M-n>' function overloading
|
||||
move_cursor_key = nil, -- imap, use nvim_set_current_win to move cursor between current win and floating
|
||||
},
|
||||
}
|
||||
153
config/nvim/lua/options.lua
Normal file
153
config/nvim/lua/options.lua
Normal file
@@ -0,0 +1,153 @@
|
||||
local option = vim.api.nvim_set_option
|
||||
local set = vim.api.nvim_set_var
|
||||
|
||||
-- Fix moving through lines 'gk' and 'gj'
|
||||
vim.wo.linebreak = true
|
||||
|
||||
-- Enable break indent
|
||||
vim.o.breakindent = true
|
||||
|
||||
-- Use the new FileType system of Neovim.
|
||||
-- let g:do_filetype_lua = 1
|
||||
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
|
||||
-- Show lines number (hybrid)
|
||||
vim.wo.number = true
|
||||
vim.wo.relativenumber = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.wo.signcolumn = "yes"
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or capital in search
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- To have a extra line :)
|
||||
vim.o.cmdheight = 0
|
||||
|
||||
-- Set wrap for words
|
||||
vim.wo.wrap = true
|
||||
|
||||
-- Always show tabs
|
||||
vim.o.showtabline = 2
|
||||
|
||||
-- Show xtra spaces
|
||||
vim.opt.list = true
|
||||
|
||||
-- Set wildmenu for later use
|
||||
vim.o.wildmenu = true
|
||||
|
||||
-- Highlighting search
|
||||
vim.o.hlsearch = true
|
||||
|
||||
-- Set ruler for better look
|
||||
vim.o.ruler = true
|
||||
|
||||
-- No nice message
|
||||
vim.o.hidden = true
|
||||
|
||||
-- Partial commands only in the screen
|
||||
vim.o.showcmd = true
|
||||
|
||||
-- Match braces when inserting new ones :)
|
||||
vim.o.showmatch = true
|
||||
|
||||
-- Cursor line
|
||||
---- Cursor column
|
||||
vim.o.cursorline = true
|
||||
vim.wo.cursorline = true
|
||||
vim.o.cursorcolumn = true
|
||||
vim.wo.cursorcolumn = true
|
||||
|
||||
-- Off scroll when moving through the buffer
|
||||
vim.o.scrolloff = 40
|
||||
|
||||
-- For terminal RGB colours
|
||||
vim.go.termguicolors = true
|
||||
|
||||
-- Colours, I believe
|
||||
vim.go.t_Co = "256"
|
||||
vim.go.t_ut = ""
|
||||
|
||||
-- Space for tabs
|
||||
vim.o.laststatus = 3
|
||||
|
||||
-- Space for tabs
|
||||
vim.o.softtabstop = 2
|
||||
|
||||
-- Expand tab to use spaces instead
|
||||
vim.o.expandtab = true
|
||||
|
||||
-- Space for tabs
|
||||
vim.o.tabstop = 2
|
||||
|
||||
-- Space for tabs
|
||||
vim.bo.shiftwidth = 2
|
||||
|
||||
-- Space for tabs
|
||||
vim.o.shiftwidth = 2
|
||||
|
||||
-- Format options to not create new lines with comments
|
||||
vim.o.formatoptions = "tqj"
|
||||
|
||||
-- Mouse working with neovim
|
||||
vim.o.mouse = "a"
|
||||
|
||||
-- viminfo file
|
||||
-- vim.o.viminfo = vim.o.viminfo .. '~/.config/nvim/viminfo'
|
||||
|
||||
-- Spell language to English (UK)
|
||||
vim.o.spelllang = "en_gb"
|
||||
vim.bo.spelllang = "en_gb"
|
||||
|
||||
-- Global statusline.
|
||||
vim.opt.laststatus = 3
|
||||
|
||||
-- When "on" the commands listed below move the cursor to the first non-blank
|
||||
-- of the line. When off the cursor is kept in the same column (if possible).
|
||||
-- https://neovim.io/doc/user/options.html#'startofline'
|
||||
vim.opt.startofline = true
|
||||
|
||||
-- Columns line "limit"
|
||||
-- vim.o.cc = '85'
|
||||
|
||||
-- Set path for better searching across the system
|
||||
-- vim.o.path = vim.o.path .. '**'
|
||||
|
||||
-- Complete options
|
||||
vim.o.completeopt = "menuone,longest,noselect"
|
||||
vim.o.shortmess = vim.o.shortmess .. "c"
|
||||
|
||||
-- Menu Transparency.
|
||||
vim.go.pumblend = 10
|
||||
|
||||
--------------------Variables-----------------
|
||||
|
||||
set("one_allow_itali:set cursorlinec:set cursorlines", 1)
|
||||
set("do_filetype_lua", 1)
|
||||
set("MRU_File", "~/.cache/vim_mru_files")
|
||||
|
||||
--------------------API------------------------
|
||||
|
||||
-- Change title accordingly.
|
||||
-- option('title', true)
|
||||
|
||||
-- Set clipboard to be global across the system
|
||||
option("clipboard", "unnamedplus")
|
||||
|
||||
-- Basic fold column
|
||||
option("foldcolumn", "1")
|
||||
|
||||
-- Set dictionary to language spell
|
||||
option("dictionary", "/usr/share/dict/words")
|
||||
|
||||
-- Wildignore for when opening files :0
|
||||
option("wildignore", "*/tmp*/,*/node_modules/*,_site,*/__pycache__/,*/venv/*,*/target/*,*/.vim$,~$,*/.log")
|
||||
|
||||
-- Folding
|
||||
option("foldmethod", "syntax")
|
||||
|
||||
-- File format for neovim reading
|
||||
option("fileformat", "unix")
|
||||
21
config/nvim/lua/plugin-manager.lua
Normal file
21
config/nvim/lua/plugin-manager.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
-- Package manager https://github.com/folke/lazy.nvim
|
||||
-- :help lazy.nvim.txt
|
||||
|
||||
-- To install lazy.nvim automatically.
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- Plugins start here:
|
||||
require("lazy").setup("plugins")
|
||||
90
config/nvim/lua/plugins/barbecue.lua
Normal file
90
config/nvim/lua/plugins/barbecue.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
-- Winbar with context.
|
||||
return {
|
||||
"utilyre/barbecue.nvim",
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
"SmiteshP/nvim-navic",
|
||||
"kyazdani42/nvim-web-devicons", -- Optional
|
||||
},
|
||||
config = {
|
||||
theme = "catppuccin",
|
||||
|
||||
-- If you set this to false, floating windows will look weird
|
||||
exclude_float = true,
|
||||
|
||||
-- Instead of excluding countless number of filetypes, barbecue tries to only show on some buftypes
|
||||
-- "": file buffer
|
||||
-- "nofile": e.g. nvim-tree and nvim-dap-ui
|
||||
-- "prompt": e.g. telescope.nvim and nvim-fzf
|
||||
-- "terminal": e.g. fterm.nvim and toggleterm.nvim
|
||||
-- ...
|
||||
include_buftypes = { "" },
|
||||
|
||||
---Filetypes not to enable winbar in.
|
||||
---
|
||||
---@type string[]
|
||||
exclude_filetypes = {
|
||||
"",
|
||||
"txt",
|
||||
"markdown",
|
||||
},
|
||||
|
||||
-- :help events
|
||||
-- :help [event] (like :help BufWinEnter)
|
||||
update_events = {
|
||||
"BufWinEnter",
|
||||
"BufWritePost",
|
||||
"CursorMoved",
|
||||
"CursorMovedI",
|
||||
"TextChanged",
|
||||
"TextChangedI",
|
||||
},
|
||||
|
||||
-- Show `~ ...` instead of `/ home user ...`
|
||||
tilde_home = true,
|
||||
|
||||
-- Your winbar will have a little padding from the edge
|
||||
prefix = " ",
|
||||
|
||||
-- The sign between each entry
|
||||
separator = " ",
|
||||
|
||||
-- Show if lsp context is available but there is nothing to show
|
||||
no_info_indicator = "…",
|
||||
|
||||
-- Symbol to show if file has been modified (not saved). It's usually `[+]` in vim
|
||||
-- `nil` to disable
|
||||
modified_indicator = nil,
|
||||
|
||||
-- Icons passed to nvim-navic
|
||||
icons = {
|
||||
File = " ",
|
||||
Module = " ",
|
||||
Namespace = " ",
|
||||
Package = " ",
|
||||
Class = " ",
|
||||
Method = " ",
|
||||
Property = " ",
|
||||
Field = " ",
|
||||
Constructor = " ",
|
||||
Enum = "練",
|
||||
Interface = "練",
|
||||
Function = " ",
|
||||
Variable = " ",
|
||||
Constant = " ",
|
||||
String = " ",
|
||||
Number = " ",
|
||||
Boolean = "◩ ",
|
||||
Array = " ",
|
||||
Object = " ",
|
||||
Key = " ",
|
||||
Null = "ﳠ ",
|
||||
EnumMember = " ",
|
||||
Struct = " ",
|
||||
Event = " ",
|
||||
Operator = " ",
|
||||
TypeParameter = " ",
|
||||
Define = " ",
|
||||
},
|
||||
},
|
||||
}
|
||||
1
config/nvim/lua/plugins/close-buffers.lua
Normal file
1
config/nvim/lua/plugins/close-buffers.lua
Normal file
@@ -0,0 +1 @@
|
||||
return { "kazhala/close-buffers.nvim" }
|
||||
4
config/nvim/lua/plugins/commentbox.lua
Normal file
4
config/nvim/lua/plugins/commentbox.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
"LudoPinelli/comment-box.nvim",
|
||||
opts = {},
|
||||
}
|
||||
29
config/nvim/lua/plugins/fold-preview.lua
Normal file
29
config/nvim/lua/plugins/fold-preview.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
return {
|
||||
"anuvyklack/fold-preview.nvim",
|
||||
dependencies = { "anuvyklack/keymap-amend.nvim", "ray-x/lsp_signature.nvim" },
|
||||
config = function()
|
||||
local fp = require("fold-preview")
|
||||
local map = require("fold-preview").mapping
|
||||
local keymap = vim.keymap
|
||||
keymap.amend = require("keymap-amend")
|
||||
|
||||
fp.setup({
|
||||
default_keybindings = false,
|
||||
-- another settings
|
||||
})
|
||||
|
||||
keymap.amend("n", "K", function(original)
|
||||
if not fp.show_preview() then original() end
|
||||
-- or
|
||||
-- if not fp.toggle_preview() then original() end
|
||||
-- to close preview on second press on K.
|
||||
end)
|
||||
keymap.amend("n", "h", map.close_preview_open_fold)
|
||||
keymap.amend("n", "l", map.close_preview_open_fold)
|
||||
keymap.amend("n", "zo", map.close_preview)
|
||||
keymap.amend("n", "zO", map.close_preview)
|
||||
keymap.amend("n", "zc", map.close_preview_without_defer)
|
||||
keymap.amend("n", "zR", map.close_preview)
|
||||
keymap.amend("n", "zM", map.close_preview_without_defer)
|
||||
end,
|
||||
}
|
||||
87
config/nvim/lua/plugins/gitsigns.lua
Normal file
87
config/nvim/lua/plugins/gitsigns.lua
Normal file
@@ -0,0 +1,87 @@
|
||||
-- Show signs of GIT written in lua
|
||||
return {
|
||||
"lewis6991/gitsigns.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = {
|
||||
signs = {
|
||||
add = { hl = "GitSignsAdd", text = "┃", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
|
||||
change = { hl = "GitSignsChange", text = "┃", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||
delete = { hl = "GitSignsDelete", text = "_", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||
topdelete = { hl = "GitSignsDelete", text = "‾", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
||||
changedelete = { hl = "GitSignsChange", text = "~", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
||||
},
|
||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||
on_attach = function(bufnr)
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
-- Navigation
|
||||
map("n", "]c", function()
|
||||
if vim.wo.diff then return "]c" end
|
||||
vim.schedule(function() gs.next_hunk() end)
|
||||
return "<Ignore>"
|
||||
end, { expr = true })
|
||||
|
||||
map("n", "[c", function()
|
||||
if vim.wo.diff then return "[c" end
|
||||
vim.schedule(function() gs.prev_hunk() end)
|
||||
return "<Ignore>"
|
||||
end, { expr = true })
|
||||
|
||||
-- Actions
|
||||
map("n", "<leader>hs", gs.stage_hunk, { desc = "Stage Hunk" })
|
||||
map("n", "<leader>hr", gs.reset_hunk, { desc = "Reset Hunk" })
|
||||
map("v", "<leader>hs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end)
|
||||
map("v", "<leader>hr", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end)
|
||||
map("n", "<leader>hS", gs.stage_buffer, { desc = "Stage Buffer" })
|
||||
map("n", "<leader>hu", gs.undo_stage_hunk, { desc = "Undo Stage Hunk" })
|
||||
map("n", "<leader>hR", gs.reset_buffer, { desc = "Reset Buffer" })
|
||||
map("n", "<leader>hp", gs.preview_hunk, { desc = "Preview Hunk" })
|
||||
map("n", "<leader>hb", function() gs.blame_line({ full = true }) end, { desc = "Blame Line" })
|
||||
map("n", "<leader>tb", gs.toggle_current_line_blame, { desc = "Toggle Current Line Blame" })
|
||||
map("n", "<leader>hd", gs.diffthis, { desc = "Diff This" })
|
||||
map("n", "<leader>hD", function() gs.diffthis("~") end)
|
||||
map("n", "<leader>td", gs.toggle_deleted, { desc = "Toggle Deleted" })
|
||||
|
||||
-- Text object
|
||||
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>")
|
||||
end,
|
||||
watch_gitdir = {
|
||||
interval = 1000,
|
||||
follow_files = true,
|
||||
},
|
||||
attach_to_untracked = true,
|
||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||
current_line_blame_opts = {
|
||||
virt_text = true,
|
||||
virt_text_pos = "eol", -- 'eol' | 'overlay' | 'right_align'
|
||||
delay = 1000,
|
||||
},
|
||||
current_line_blame_formatter_opts = {
|
||||
relative_time = false,
|
||||
},
|
||||
sign_priority = 6,
|
||||
update_debounce = 100,
|
||||
status_formatter = nil, -- Use default
|
||||
max_file_length = 40000,
|
||||
preview_config = {
|
||||
-- Options passed to nvim_open_win
|
||||
border = "single",
|
||||
style = "minimal",
|
||||
relative = "cursor",
|
||||
row = 0,
|
||||
col = 1,
|
||||
},
|
||||
yadm = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
1
config/nvim/lua/plugins/harpoon.lua
Normal file
1
config/nvim/lua/plugins/harpoon.lua
Normal file
@@ -0,0 +1 @@
|
||||
return { "ThePrimeagen/harpoon" }
|
||||
70
config/nvim/lua/plugins/incline.lua
Normal file
70
config/nvim/lua/plugins/incline.lua
Normal file
@@ -0,0 +1,70 @@
|
||||
-- Floating statuslines for Neovim
|
||||
-- https://github.com/b0o/incline.nvim
|
||||
--
|
||||
-- Lightweight floating statuslines, best used with
|
||||
-- Neovim's global statusline (set laststatus=3).
|
||||
|
||||
return {
|
||||
"b0o/incline.nvim",
|
||||
config = {
|
||||
debounce_threshold = {
|
||||
falling = 50,
|
||||
rising = 0,
|
||||
},
|
||||
hide = {
|
||||
cursorline = true,
|
||||
focused_win = false,
|
||||
only_win = true,
|
||||
},
|
||||
highlight = {
|
||||
groups = {
|
||||
InclineNormal = {
|
||||
default = true,
|
||||
group = "NormalFloat",
|
||||
},
|
||||
InclineNormalNC = {
|
||||
default = true,
|
||||
group = "NormalFloat",
|
||||
},
|
||||
},
|
||||
},
|
||||
ignore = {
|
||||
buftypes = "special",
|
||||
filetypes = {},
|
||||
floating_wins = true,
|
||||
unlisted_buffers = true,
|
||||
wintypes = "special",
|
||||
},
|
||||
render = "basic",
|
||||
window = {
|
||||
margin = {
|
||||
horizontal = 1,
|
||||
vertical = 1,
|
||||
},
|
||||
options = {
|
||||
signcolumn = "no",
|
||||
wrap = false,
|
||||
},
|
||||
padding = 1,
|
||||
padding_char = " ",
|
||||
placement = {
|
||||
horizontal = "right",
|
||||
vertical = "top",
|
||||
},
|
||||
width = "fit",
|
||||
winhighlight = {
|
||||
active = {
|
||||
EndOfBuffer = "None",
|
||||
Normal = "InclineNormal",
|
||||
Search = "None",
|
||||
},
|
||||
inactive = {
|
||||
EndOfBuffer = "None",
|
||||
Normal = "InclineNormalNC",
|
||||
Search = "None",
|
||||
},
|
||||
},
|
||||
zindex = 10,
|
||||
},
|
||||
},
|
||||
}
|
||||
25
config/nvim/lua/plugins/lazy.lua
Normal file
25
config/nvim/lua/plugins/lazy.lua
Normal file
@@ -0,0 +1,25 @@
|
||||
return {
|
||||
--
|
||||
-- Menu
|
||||
--
|
||||
-- Icons on menu
|
||||
"onsails/lspkind-nvim",
|
||||
|
||||
-- Restore folds and cursor position
|
||||
"senderle/restoreview",
|
||||
|
||||
--
|
||||
-- Appearance
|
||||
--
|
||||
|
||||
-- Status information for LSP.
|
||||
"j-hui/fidget.nvim",
|
||||
|
||||
-- Close buffer without messing up with the window.
|
||||
"famiu/bufdelete.nvim",
|
||||
|
||||
"nyoom-engineering/oxocarbon.nvim",
|
||||
|
||||
-- JSONLS
|
||||
"b0o/schemastore.nvim",
|
||||
}
|
||||
9
config/nvim/lua/plugins/legendary.lua
Normal file
9
config/nvim/lua/plugins/legendary.lua
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
"mrjones2014/legendary.nvim",
|
||||
-- since legendary.nvim handles all your keymaps/commands,
|
||||
-- its recommended to load legendary.nvim before other plugins
|
||||
priority = 10000,
|
||||
lazy = false,
|
||||
-- sqlite is only needed if you want to use frecency sorting
|
||||
-- dependencies = { 'kkharji/sqlite.lua' }
|
||||
}
|
||||
36
config/nvim/lua/plugins/marks.lua
Normal file
36
config/nvim/lua/plugins/marks.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
-- Signs for built-in marks.
|
||||
|
||||
return {
|
||||
"chentoast/marks.nvim",
|
||||
config = {
|
||||
-- whether to map keybinds or not. default true
|
||||
default_mappings = true,
|
||||
-- which builtin marks to show. default {}
|
||||
builtin_marks = { ".", "<", ">", "^" },
|
||||
-- whether movements cycle back to the beginning/end of buffer. default true
|
||||
cyclic = true,
|
||||
-- whether the shada file is updated after modifying uppercase marks. default false
|
||||
force_write_shada = false,
|
||||
-- how often (in ms) to redraw signs/recompute mark positions.
|
||||
-- higher values will have better performance but may cause visual lag,
|
||||
-- while lower values may cause performance penalties. default 150.
|
||||
refresh_interval = 250,
|
||||
-- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase
|
||||
-- marks, and bookmarks.
|
||||
-- can be either a table with all/none of the keys, or a single number, in which case
|
||||
-- the priority applies to all marks.
|
||||
-- default 10.
|
||||
sign_priority = { lower = 10, upper = 15, builtin = 8, bookmark = 20 },
|
||||
-- disables mark tracking for specific filetypes. default {}
|
||||
excluded_filetypes = {},
|
||||
-- marks.nvim allows you to configure up to 10 bookmark groups, each with its own
|
||||
-- sign/virttext. Bookmarks can be used to group together positions and quickly move
|
||||
-- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and
|
||||
-- default virt_text is "".
|
||||
bookmark_0 = {
|
||||
sign = "⚑",
|
||||
virt_text = "hello world",
|
||||
},
|
||||
mappings = {},
|
||||
},
|
||||
}
|
||||
131
config/nvim/lua/plugins/mini.lua
Normal file
131
config/nvim/lua/plugins/mini.lua
Normal file
@@ -0,0 +1,131 @@
|
||||
return {
|
||||
"echasnovski/mini.nvim",
|
||||
version = "*",
|
||||
config = function()
|
||||
-- Common configuration presets
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-basics.md
|
||||
require("mini.basics").setup()
|
||||
|
||||
-- Fast and flexible start screen
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-starter.md
|
||||
local starter = require("mini.starter")
|
||||
starter.setup({
|
||||
header = table.concat({
|
||||
" ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ",
|
||||
" ▄▀░░░░░░░░░░░░▄░░░░░░░▀▄ ",
|
||||
" █░░▄░░░░▄░░░░░░░░░░░░░░█ ",
|
||||
" █░░░░░░░░░░░░▄█▄▄░░▄░░░█ ▄▄▄ ",
|
||||
"▄▄▄▄▄ █░░░░░░▀░░░░▀█░░▀▄░░░░░█▀▀░██ ",
|
||||
"██▄▀██▄█░░░▄░░░░░░░██░░░░▀▀▀▀▀░░░░██ ",
|
||||
" ▀██▄▀██░░░░░░░░▀░██▀░░░░░░░░░░░░░▀██",
|
||||
" ▀████░▀░░░░▄░░░██░░░▄█░░░░▄░▄█░░██",
|
||||
" ▀█░░░░▄░░░░░██░░░░▄░░░▄░░▄░░░██",
|
||||
" ▄█▄░░░░░░░░░░░▀▄░░▀▀▀▀▀▀▀▀░░▄▀ ",
|
||||
" █▀▀█████████▀▀▀▀████████████▀ ",
|
||||
" ████▀ ███▀ ▀███ ▀██▀ ",
|
||||
}, "\n"),
|
||||
evaluate_single = true,
|
||||
items = {
|
||||
starter.sections.telescope(),
|
||||
starter.sections.builtin_actions(),
|
||||
starter.sections.recent_files(5, true, true),
|
||||
},
|
||||
content_hooks = {
|
||||
starter.gen_hook.adding_bullet(),
|
||||
starter.gen_hook.aligning("center", "center"),
|
||||
},
|
||||
})
|
||||
|
||||
-- Miscellaneous useful functions
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-misc.md
|
||||
require("mini.misc").setup()
|
||||
|
||||
-- Extend and create a/i textobjects
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-ai.md
|
||||
require("mini.ai").setup()
|
||||
|
||||
-- Align text interactively
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-align.md
|
||||
require("mini.align").setup()
|
||||
|
||||
-- Animate common Neovim actions
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-animate.md
|
||||
require("mini.animate").setup()
|
||||
|
||||
-- Go forward/backward with square brackets
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-bracketed.md
|
||||
require("mini.bracketed").setup()
|
||||
|
||||
-- Comment lines
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-comment.md
|
||||
require("mini.comment").setup()
|
||||
|
||||
-- Autocompletion and signature help plugin
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-completion.md
|
||||
require("mini.completion").setup()
|
||||
|
||||
-- Automatic highlighting of word under cursor
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-cursorword.md
|
||||
require("mini.cursorword").setup()
|
||||
|
||||
-- Highlight patterns in text
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-hipatterns.md
|
||||
local hipatterns = require("mini.hipatterns")
|
||||
hipatterns.setup({
|
||||
highlighters = {
|
||||
-- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE'
|
||||
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
|
||||
hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
|
||||
todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
|
||||
note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
|
||||
|
||||
-- Highlight hex color strings (`#rrggbb`) using that color
|
||||
hex_color = hipatterns.gen_highlighter.hex_color(),
|
||||
},
|
||||
})
|
||||
|
||||
-- Visualize and work with indent scope
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-indentscope.md
|
||||
require("mini.indentscope").setup()
|
||||
|
||||
-- Jump to next/previous single character
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-jump.md
|
||||
require("mini.jump").setup()
|
||||
|
||||
-- Jump within visible lines via iterative label filtering
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-jump2d.md
|
||||
require("mini.jump2d").setup()
|
||||
|
||||
-- Window with buffer text overview, scrollbar, and highlights
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-map.md
|
||||
require("mini.map").setup()
|
||||
|
||||
-- Move any selection in any direction
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-move.md
|
||||
require("mini.move").setup()
|
||||
|
||||
-- Text edit operators
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-operators.md
|
||||
-- require("mini.operators").setup()
|
||||
|
||||
-- Minimal and fast autopairs
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-pairs.md
|
||||
require("mini.pairs").setup()
|
||||
|
||||
-- Split and join arguments
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-splitjoin.md
|
||||
require("mini.splitjoin").setup()
|
||||
|
||||
-- Minimal and fast statusline module with opinionated default look
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-statusline.md
|
||||
require("mini.statusline").setup()
|
||||
|
||||
-- Minimal and fast tabline showing listed buffers
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-tabline.md
|
||||
require("mini.tabline").setup()
|
||||
|
||||
-- Work with trailing whitespace
|
||||
-- https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-trailspace.md
|
||||
require("mini.trailspace").setup()
|
||||
end,
|
||||
}
|
||||
415
config/nvim/lua/plugins/neo-tree.lua
Normal file
415
config/nvim/lua/plugins/neo-tree.lua
Normal file
@@ -0,0 +1,415 @@
|
||||
-- File-tree manager.
|
||||
|
||||
-- Unless you are still migrating, remove the deprecated commands from v1.x
|
||||
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
|
||||
|
||||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"kyazdani42/nvim-web-devicons", -- not strictly required, but recommended
|
||||
"MunifTanjim/nui.nvim",
|
||||
{
|
||||
-- only needed if you want to use the commands with "_with_window_picker" suffix
|
||||
"s1n7ax/nvim-window-picker",
|
||||
config = function()
|
||||
require("window-picker").setup({
|
||||
autoselect_one = true,
|
||||
include_current = false,
|
||||
filter_rules = {
|
||||
-- filter using buffer options
|
||||
bo = {
|
||||
-- if the file type is one of following, the window will be ignored
|
||||
filetype = { "neo-tree", "neo-tree-popup", "notify" },
|
||||
|
||||
-- if the buffer type is one of following, the window will be ignored
|
||||
buftype = { "terminal", "quickfix" },
|
||||
},
|
||||
},
|
||||
other_win_hl_color = "#e35e4f",
|
||||
})
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
-- If you want icons for diagnostic errors, you'll need to define them somewhere:
|
||||
vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticSignError" })
|
||||
vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticSignWarn" })
|
||||
vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticSignInfo" })
|
||||
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
||||
|
||||
require("neo-tree").setup({
|
||||
close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
|
||||
popup_border_style = "rounded", -- "double", "none", "rounded", "shadow", "single" or "solid"
|
||||
enable_git_status = true,
|
||||
enable_diagnostics = true,
|
||||
enable_normal_mode_for_inputs = false, -- Enable normal mode for input dialogs.
|
||||
|
||||
open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes
|
||||
|
||||
-- popup_border_style is for input and confirmation dialogs.
|
||||
-- Configurtaion of floating window is done in the individual source sections.
|
||||
-- "NC" is a special style that works well with NormalNC set
|
||||
close_floats_on_escape_key = true,
|
||||
default_source = "filesystem",
|
||||
git_status_async = true,
|
||||
log_level = "info", -- "trace", "debug", "info", "warn", "error", "fatal"
|
||||
log_to_file = false, -- true, false, "/path/to/file.log", use :NeoTreeLogs to show the file
|
||||
open_files_in_last_window = true, -- false = open files in top left window
|
||||
resize_timer_interval = 100, -- in ms, needed for containers to redraw right aligned and faded content
|
||||
sort_case_insensitive = true, -- used when sorting files and directories in the tree
|
||||
use_popups_for_input = false, -- If false, inputs will use vim.ui.input() instead of custom floats.
|
||||
sort_function = nil, -- use a custom function for sorting files and directories in the tree
|
||||
|
||||
event_handlers = {
|
||||
-- {
|
||||
-- event = "before_render",
|
||||
-- handler = function (state)
|
||||
-- -- add something to the state that can be used by custom components
|
||||
-- end
|
||||
-- },
|
||||
-- {
|
||||
-- event = "file_opened",
|
||||
-- handler = function(file_path)
|
||||
-- --auto close
|
||||
-- require("neo-tree").close_all()
|
||||
-- end
|
||||
-- },
|
||||
-- {
|
||||
-- event = "file_opened",
|
||||
-- handler = function(file_path)
|
||||
-- --clear search after opening a file
|
||||
-- require("neo-tree.sources.filesystem").reset_search()
|
||||
-- end
|
||||
-- },
|
||||
-- {
|
||||
-- event = "file_renamed",
|
||||
-- handler = function(args)
|
||||
-- -- fix references to file
|
||||
-- print(args.source, " renamed to ", args.destination)
|
||||
-- end
|
||||
-- },
|
||||
-- {
|
||||
-- event = "file_moved",
|
||||
-- handler = function(args)
|
||||
-- -- fix references to file
|
||||
-- print(args.source, " moved to ", args.destination)
|
||||
-- end
|
||||
-- },
|
||||
{
|
||||
event = "neo_tree_buffer_enter",
|
||||
handler = function()
|
||||
vim.cmd("set winbar=")
|
||||
vim.cmd("highlight CursorLine gui='bold'")
|
||||
vim.cmd("highlight CursorColumn guibg=NONE")
|
||||
--vim.cmd("set guicursor+=a:InvisibleCursor")
|
||||
--vim.cmd("highlight InvisibleCursor gui=reverse blend=100")
|
||||
end,
|
||||
},
|
||||
{
|
||||
event = "neo_tree_buffer_leave",
|
||||
handler = function()
|
||||
--vim.cmd("set guicursor-=a:InvisibleCursor")
|
||||
vim.cmd("highlight CursorLine gui=NONE")
|
||||
end,
|
||||
},
|
||||
},
|
||||
|
||||
default_component_configs = {
|
||||
container = {
|
||||
enable_character_fade = true,
|
||||
},
|
||||
indent = {
|
||||
indent_size = 2,
|
||||
padding = 1, -- extra padding on left hand side
|
||||
-- indent guides
|
||||
with_markers = true,
|
||||
indent_marker = "│",
|
||||
last_indent_marker = "└",
|
||||
highlight = "NeoTreeIndentMarker",
|
||||
-- expander config, needed for nesting files
|
||||
with_expanders = true, -- if nil and file nesting is enabled, will enable expanders
|
||||
expander_collapsed = "",
|
||||
expander_expanded = "",
|
||||
expander_highlight = "NeoTreeExpander",
|
||||
},
|
||||
icon = {
|
||||
folder_closed = "",
|
||||
folder_open = "",
|
||||
folder_empty = "-",
|
||||
-- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there
|
||||
-- then these will never be used.
|
||||
default = "*",
|
||||
highlight = "NeoTreeFileIcon",
|
||||
},
|
||||
modified = {
|
||||
symbol = "[+]",
|
||||
highlight = "NeoTreeModified",
|
||||
},
|
||||
name = {
|
||||
trailing_slash = true,
|
||||
use_git_status_colors = false,
|
||||
highlight = "NeoTreeFileName",
|
||||
},
|
||||
git_status = {
|
||||
symbols = {
|
||||
-- Change type
|
||||
added = "˖", -- or "✚", but this is redundant info if you use git_status_colors on the name
|
||||
modified = "±", -- or "", but this is redundant info if you use git_status_colors on the name
|
||||
deleted = "✕", -- this can only be used in the git_status source
|
||||
renamed = "↪", -- this can only be used in the git_status source
|
||||
-- Status type
|
||||
untracked = "?",
|
||||
ignored = "⍨",
|
||||
unstaged = "·",
|
||||
staged = "✓",
|
||||
conflict = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
renderers = {
|
||||
directory = {
|
||||
{ "indent" },
|
||||
{ "icon" },
|
||||
{ "current_filter" },
|
||||
{
|
||||
"container",
|
||||
width = "100%",
|
||||
right_padding = 0,
|
||||
--max_width = 60,
|
||||
content = {
|
||||
{ "name", zindex = 10 },
|
||||
-- {
|
||||
-- "symlink_target",
|
||||
-- zindex = 10,
|
||||
-- highlight = "NeoTreeSymbolicLinkTarget",
|
||||
-- },
|
||||
{ "clipboard", zindex = 10 },
|
||||
{ "diagnostics", errors_only = true, zindex = 20, align = "right" },
|
||||
},
|
||||
},
|
||||
},
|
||||
file = {
|
||||
{ "indent" },
|
||||
{ "icon" },
|
||||
{
|
||||
"container",
|
||||
width = "100%",
|
||||
right_padding = 0,
|
||||
--max_width = 60,
|
||||
content = {
|
||||
{
|
||||
"name",
|
||||
use_git_status_colors = false,
|
||||
zindex = 10,
|
||||
},
|
||||
-- {
|
||||
-- "symlink_target",
|
||||
-- zindex = 10,
|
||||
-- highlight = "NeoTreeSymbolicLinkTarget",
|
||||
-- },
|
||||
{ "clipboard", zindex = 10 },
|
||||
{ "bufnr", zindex = 10 },
|
||||
-- { "harpoon_index" }, --> This is what actually adds the component in where you want it
|
||||
{ "modified", zindex = 20, align = "right" },
|
||||
{ "diagnostics", zindex = 20, align = "right" },
|
||||
{ "git_status", zindex = 20, align = "right" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
-- A list of functions, each representing a global custom command
|
||||
-- that will be available in all sources (if not overridden in `opts[source_name].commands`)
|
||||
-- see `:h neo-tree-custom-commands-global`
|
||||
commands = {},
|
||||
window = { -- see https://github.com/MunifTanjim/nui.nvim/tree/main/lua/nui/popup for
|
||||
-- possible options. These can also be functions that return these options.
|
||||
position = "left", -- left, right, float, current
|
||||
width = 40, -- applies to left and right positions
|
||||
mapping_options = {
|
||||
noremap = true,
|
||||
nowait = true,
|
||||
},
|
||||
popup = { -- settings that apply to float position only
|
||||
size = {
|
||||
height = "80%",
|
||||
width = "50%",
|
||||
},
|
||||
position = "50%", -- 50% means center it
|
||||
-- you can also specify border here, if you want a different setting from
|
||||
-- the global popup_border_style.
|
||||
},
|
||||
-- Mappings for tree window. See `:h nep-tree-mappings` for a list of built-in commands.
|
||||
-- You can also create your own commands by providing a function instead of a string.
|
||||
mappings = {
|
||||
["<space>"] = {
|
||||
"toggle_node",
|
||||
nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use
|
||||
},
|
||||
["<2-LeftMouse>"] = "open",
|
||||
["<cr>"] = "open",
|
||||
["<esc>"] = "cancel", -- close preview or floating neo-tree window
|
||||
["P"] = { "toggle_preview", config = { use_float = true } },
|
||||
["l"] = "focus_preview",
|
||||
["S"] = "open_split",
|
||||
["s"] = "open_vsplit",
|
||||
-- ["S"] = "split_with_window_picker",
|
||||
-- ["s"] = "vsplit_with_window_picker",
|
||||
["t"] = "open_tabnew",
|
||||
-- ["<cr>"] = "open_drop",
|
||||
-- ["t"] = "open_tab_drop",
|
||||
["w"] = "open_with_window_picker",
|
||||
--["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing
|
||||
["C"] = "close_node",
|
||||
-- ['C'] = 'close_all_subnodes',
|
||||
["z"] = "close_all_nodes",
|
||||
--["Z"] = "expand_all_nodes",
|
||||
["a"] = {
|
||||
"add",
|
||||
-- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details
|
||||
-- some commands may take optional config options, see `:h neo-tree-mappings` for details
|
||||
config = {
|
||||
show_path = "none", -- "none", "relative", "absolute"
|
||||
},
|
||||
},
|
||||
["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
|
||||
["d"] = "delete",
|
||||
["r"] = "rename",
|
||||
["y"] = "copy_to_clipboard",
|
||||
["x"] = "cut_to_clipboard",
|
||||
["p"] = "paste_from_clipboard",
|
||||
["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add":
|
||||
-- ["c"] = {
|
||||
-- "copy",
|
||||
-- config = {
|
||||
-- show_path = "none" -- "none", "relative", "absolute"
|
||||
-- }
|
||||
--}
|
||||
["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add".
|
||||
["q"] = "close_window",
|
||||
["R"] = "refresh",
|
||||
["?"] = "show_help",
|
||||
["<"] = "prev_source",
|
||||
[">"] = "next_source",
|
||||
},
|
||||
},
|
||||
nesting_rules = {},
|
||||
filesystem = {
|
||||
commands = {}, -- Add a custom command or override a global one using the same function name
|
||||
components = {
|
||||
harpoon_index = function(config, node, state)
|
||||
local Marked = require("harpoon.mark")
|
||||
local path = node:get_id()
|
||||
local succuss, index = pcall(Marked.get_index_of, path)
|
||||
if succuss and index and index > 0 then
|
||||
return {
|
||||
text = string.format(" ⥤ %d", index), -- <-- Add your favorite harpoon like arrow here
|
||||
highlight = config.highlight or "NeoTreeDirectoryIcon",
|
||||
}
|
||||
else
|
||||
return {}
|
||||
end
|
||||
end,
|
||||
},
|
||||
filtered_items = {
|
||||
visible = false, -- when true, they will just be displayed differently than normal items
|
||||
hide_dotfiles = false,
|
||||
hide_gitignored = false,
|
||||
hide_hidden = true, -- only works on Windows for hidden files/directories
|
||||
hide_by_name = {
|
||||
".git",
|
||||
".DS_Store",
|
||||
"thumbs.db",
|
||||
".idea",
|
||||
".mypy_cache",
|
||||
"node_modules",
|
||||
},
|
||||
hide_by_pattern = { -- uses glob style patterns
|
||||
--"*.meta",
|
||||
--"*/src/*/tsconfig.json",
|
||||
"*-cache",
|
||||
"*.cache",
|
||||
".null-ls_*",
|
||||
},
|
||||
never_show = { -- remains hidden even if visible is toggled to true
|
||||
".DS_Store",
|
||||
"thumbs.db",
|
||||
},
|
||||
always_show = { -- remains visible even if other settings would normally hide it
|
||||
".gitignore",
|
||||
".gitkeep",
|
||||
},
|
||||
},
|
||||
find_by_full_path_words = true,
|
||||
group_empty_dirs = false, -- when true, empty folders will be grouped together
|
||||
bind_to_cwd = false, -- true creates a 2-way binding between vim's cwd and neo-tree's root
|
||||
search_limit = 50, -- max number of search results when using filters
|
||||
follow_current_file = {
|
||||
enabled = false, -- This will find and focus the file in the active buffer every time
|
||||
-- -- the current file is changed while the tree is open.
|
||||
leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
|
||||
},
|
||||
hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree
|
||||
-- in whatever position is specified in window.position
|
||||
-- "open_current", -- netrw disabled, opening a directory opens within the
|
||||
-- window like netrw would, regardless of window.position
|
||||
-- "disabled", -- netrw left alone, neo-tree does not handle opening dirs
|
||||
use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes
|
||||
-- instead of relying on nvim autocmd events.
|
||||
window = {
|
||||
mappings = {
|
||||
["."] = "set_root",
|
||||
["/"] = "fuzzy_finder",
|
||||
["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm
|
||||
["<bs>"] = "navigate_up",
|
||||
["<c-up>"] = "navigate_up",
|
||||
["<c-x>"] = "clear_filter",
|
||||
["D"] = "fuzzy_finder_directory",
|
||||
["f"] = "filter_on_submit",
|
||||
["gn"] = "next_git_modified",
|
||||
["gp"] = "prev_git_modified",
|
||||
["H"] = "toggle_hidden",
|
||||
},
|
||||
fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
|
||||
["<down>"] = "move_cursor_down",
|
||||
["<C-n>"] = "move_cursor_down",
|
||||
["<up>"] = "move_cursor_up",
|
||||
["<C-p>"] = "move_cursor_up",
|
||||
},
|
||||
},
|
||||
},
|
||||
buffers = {
|
||||
follow_current_file = {
|
||||
enabled = true, -- This will find and focus the file in the active buffer every time
|
||||
-- -- the current file is changed while the tree is open.
|
||||
leave_dirs_open = true, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
|
||||
},
|
||||
group_empty_dirs = true, -- when true, empty folders will be grouped together
|
||||
show_unloaded = true,
|
||||
window = {
|
||||
mappings = {
|
||||
["bd"] = "buffer_delete",
|
||||
["<bs>"] = "navigate_up",
|
||||
["."] = "set_root",
|
||||
},
|
||||
},
|
||||
},
|
||||
git_status = {
|
||||
window = {
|
||||
position = "float",
|
||||
mappings = {
|
||||
["A"] = "git_add_all",
|
||||
["gu"] = "git_unstage_file",
|
||||
["ga"] = "git_add_file",
|
||||
["gr"] = "git_revert_file",
|
||||
["gc"] = "git_commit",
|
||||
["gp"] = "git_push",
|
||||
["gg"] = "git_commit_and_push",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd([[nnoremap \ :Neotree reveal<cr>]])
|
||||
end,
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user