mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-02 20:48:03 +00:00
Compare commits
51 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b1a7932b72 | |||
| ced09160ab | |||
| 594ee0d03c | |||
| 68ec53e29b | |||
| 0c8b075689 | |||
| 0242bbbd73 | |||
| 31423c30b9 | |||
| fbdd2c7448 | |||
| 0aff4784b1 | |||
| 10b18e8bcc | |||
| dc0a349139 | |||
| 3ac1fac444 | |||
| 5bf4ea462b | |||
| 1d056988f4 | |||
| 2415dff0e2 | |||
| d891d5a3c5 | |||
| f48813ff85 | |||
| a87b33b8c2 | |||
| 6f854ddbfd | |||
| 748e5bb561 | |||
| 67867b57cd | |||
| 91734ffa15 | |||
| 5364bef678 | |||
| 50b4f5c60f | |||
| 7cd508a727 | |||
| bf2c665433 | |||
| f5b1bf0915 | |||
| e0c6d7e4f4 | |||
| 1937e72f17 | |||
| 228ba78341 | |||
| c8c34dcc81 | |||
| 3d65fdee43 | |||
| 1897f49906 | |||
| d86785ad47 | |||
| 1c3c04a6f3 | |||
| debb79ee09 | |||
| c1dda8a230 | |||
| 5c74383dda | |||
| da1473547a | |||
| 43df368ec1 | |||
| 6f3f977100 | |||
| ab8e654c2a | |||
| 1a4113e3cd | |||
| b3445d7e7a | |||
| 50fc1ea279 | |||
| d61f53196d | |||
| 7769af68b5 | |||
| 05aa4ba092 | |||
| a26f160326 | |||
| 00de4a7b83 | |||
| 020012eb60 |
3
.commitlintrc.json
Normal file
3
.commitlintrc.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": ["@ivuorinen/commitlint-config"]
|
||||||
|
}
|
||||||
@@ -19,11 +19,11 @@ indent_size = 1
|
|||||||
indent_size = 1
|
indent_size = 1
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
|
|
||||||
[{local/bin/*,**/*.sh,**/zshrc}]
|
[{local/bin/*,**/*.sh,**/zshrc,config/*}]
|
||||||
shell_variant = bash # --language-variant
|
shell_variant = bash # --language-variant
|
||||||
binary_next_line = true
|
binary_next_line = true
|
||||||
switch_case_indent = true # --case-indent
|
switch_case_indent = true # --case-indent
|
||||||
space_redirects = true
|
space_redirects = true
|
||||||
keep_padding = true
|
keep_padding = false
|
||||||
function_next_line = true # --func-next-line
|
function_next_line = true # --func-next-line
|
||||||
|
|
||||||
|
|||||||
3
.eslintrc.json
Normal file
3
.eslintrc.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": ["@ivuorinen"]
|
||||||
|
}
|
||||||
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -13,7 +13,7 @@
|
|||||||
## Handle line endings automatically for files detected as
|
## Handle line endings automatically for files detected as
|
||||||
## text and leave all files detected as binary untouched.
|
## text and leave all files detected as binary untouched.
|
||||||
## This will handle all files NOT defined below.
|
## This will handle all files NOT defined below.
|
||||||
* text=auto
|
* text=auto oel=lf
|
||||||
|
|
||||||
# Source code
|
# Source code
|
||||||
*.bash text eol=lf
|
*.bash text eol=lf
|
||||||
|
|||||||
24
.github/README.md
vendored
24
.github/README.md
vendored
@@ -23,20 +23,14 @@ fork or download the repo as a zip and go from there with your own configs.
|
|||||||
|
|
||||||
## The looks
|
## The looks
|
||||||
|
|
||||||
## tmux with powerlevel10k, the default view
|

|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
## Interesting files and locations
|
## Interesting files and locations
|
||||||
|
|
||||||
### Interesting folders
|
### Interesting folders
|
||||||
|
|
||||||
| Path | Description |
|
| Path | Description |
|
||||||
|---------------------|----------------------------------------------|
|
| ------------------- | -------------------------------------------- |
|
||||||
| `.github` | GitHub Repository configuration files. |
|
| `.github` | GitHub Repository configuration files. |
|
||||||
| `hosts/{hostname}/` | Configs that should apply to that host only. |
|
| `hosts/{hostname}/` | Configs that should apply to that host only. |
|
||||||
| `local/bin` | Helper scripts that I've collected or wrote. |
|
| `local/bin` | Helper scripts that I've collected or wrote. |
|
||||||
@@ -45,7 +39,7 @@ fork or download the repo as a zip and go from there with your own configs.
|
|||||||
### dotfile folders
|
### dotfile folders
|
||||||
|
|
||||||
| Repo | Destination | Description |
|
| Repo | Destination | Description |
|
||||||
|-----------|-------------|---------------------------------------------|
|
| --------- | ----------- | ------------------------------------------- |
|
||||||
| `base/` | `.*` | `$HOME` level files. |
|
| `base/` | `.*` | `$HOME` level files. |
|
||||||
| `config/` | `.config/` | Configurations for applications. |
|
| `config/` | `.config/` | Configurations for applications. |
|
||||||
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
|
| `local/` | `.local/` | XDG Base folder: `bin`, `share` and `state` |
|
||||||
@@ -62,7 +56,7 @@ The folder structure follows [XDG Base Directory Specification][xdg] where possi
|
|||||||
### XDG Variables
|
### XDG Variables
|
||||||
|
|
||||||
| Env | Default | Short description |
|
| Env | Default | Short description |
|
||||||
|--------------------|----------------------|------------------------------------------------|
|
| ------------------ | -------------------- | ---------------------------------------------- |
|
||||||
| `$XDG_BIN_HOME` | `$HOME/.local/bin` | Local binaries |
|
| `$XDG_BIN_HOME` | `$HOME/.local/bin` | Local binaries |
|
||||||
| `$XDG_CONFIG_HOME` | `$HOME/.config` | User-specific configs |
|
| `$XDG_CONFIG_HOME` | `$HOME/.config` | User-specific configs |
|
||||||
| `$XDG_DATA_HOME` | `$HOME/.local/share` | User-specific data files |
|
| `$XDG_DATA_HOME` | `$HOME/.local/share` | User-specific data files |
|
||||||
@@ -79,7 +73,7 @@ environment variable, at an appropriate place.
|
|||||||
#### XDG_DATA_HOME (`$HOME/.local/share`)
|
#### XDG_DATA_HOME (`$HOME/.local/share`)
|
||||||
|
|
||||||
`$XDG_DATA_HOME` defines the base directory relative to which
|
`$XDG_DATA_HOME` defines the base directory relative to which
|
||||||
user-specific *data files* should be stored.
|
user-specific _data files_ should be stored.
|
||||||
|
|
||||||
If `$XDG_DATA_HOME` is either not set or empty,
|
If `$XDG_DATA_HOME` is either not set or empty,
|
||||||
a default equal to `$HOME/.local/share` should be used.
|
a default equal to `$HOME/.local/share` should be used.
|
||||||
@@ -87,7 +81,7 @@ a default equal to `$HOME/.local/share` should be used.
|
|||||||
#### XDG_CONFIG_HOME (`$HOME/.config`)
|
#### XDG_CONFIG_HOME (`$HOME/.config`)
|
||||||
|
|
||||||
`$XDG_CONFIG_HOME` defines the base directory relative to which
|
`$XDG_CONFIG_HOME` defines the base directory relative to which
|
||||||
user-specific *configuration files* should be stored.
|
user-specific _configuration files_ should be stored.
|
||||||
|
|
||||||
If `$XDG_CONFIG_HOME` is either not set or empty,
|
If `$XDG_CONFIG_HOME` is either not set or empty,
|
||||||
a default equal to `$HOME/.config` should be used.
|
a default equal to `$HOME/.config` should be used.
|
||||||
@@ -95,13 +89,13 @@ a default equal to `$HOME/.config` should be used.
|
|||||||
#### XDG_STATE_HOME (`$HOME/.local/state`)
|
#### XDG_STATE_HOME (`$HOME/.local/state`)
|
||||||
|
|
||||||
`$XDG_STATE_HOME` defines the base directory relative to which
|
`$XDG_STATE_HOME` defines the base directory relative to which
|
||||||
user-specific *state files* should be stored.
|
user-specific _state files_ should be stored.
|
||||||
|
|
||||||
If `$XDG_STATE_HOME` is either not set or empty,
|
If `$XDG_STATE_HOME` is either not set or empty,
|
||||||
a default equal to `$HOME/.local/state` should be used.
|
a default equal to `$HOME/.local/state` should be used.
|
||||||
|
|
||||||
The `$XDG_STATE_HOME` contains *state data* that should
|
The `$XDG_STATE_HOME` contains _state data_ that should
|
||||||
*persist between (application) restarts*, but that is not important or
|
_persist between (application) restarts_, but that is not important or
|
||||||
portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
|
portable enough to the user that it should be stored in `$XDG_DATA_HOME`.
|
||||||
|
|
||||||
- It may contain:
|
- It may contain:
|
||||||
|
|||||||
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
@@ -1,7 +1,7 @@
|
|||||||
version: 2
|
version: 2
|
||||||
updates:
|
updates:
|
||||||
# Maintain dependencies for GitHub Actions
|
# Maintain dependencies for GitHub Actions
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: 'github-actions'
|
||||||
directory: "/"
|
directory: '/'
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: 'weekly'
|
||||||
|
|||||||
4
.github/renovate.json
vendored
4
.github/renovate.json
vendored
@@ -1,6 +1,4 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"extends": [
|
"extends": ["local>ivuorinen/.github:renovate-config"]
|
||||||
"local>ivuorinen/.github:renovate-config"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
.github/screenshots/tmux-nvim.png
vendored
Normal file
BIN
.github/screenshots/tmux-nvim.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
17
.github/tag-changelog-config.js
vendored
17
.github/tag-changelog-config.js
vendored
@@ -7,20 +7,21 @@ module.exports = {
|
|||||||
{ types: ['build', 'ci'], label: '🏗️ Build System' },
|
{ types: ['build', 'ci'], label: '🏗️ Build System' },
|
||||||
{ types: ['refactor'], label: '🪚 Refactors' },
|
{ types: ['refactor'], label: '🪚 Refactors' },
|
||||||
{ types: ['doc', 'docs'], label: '📚 Documentation Changes' },
|
{ types: ['doc', 'docs'], label: '📚 Documentation Changes' },
|
||||||
|
{ types: ['config'], label: '🪛 Configuration Changes' },
|
||||||
{ types: ['test', 'tests'], label: '🔍 Tests' },
|
{ types: ['test', 'tests'], label: '🔍 Tests' },
|
||||||
{ types: ['style', 'codestyle'], label: '💅 Code Style Changes' },
|
{ types: ['style', 'codestyle', 'lint'], label: '💅 Code Style Changes' },
|
||||||
{ types: ['chore', 'Chore'], label: '🧹 Chores' },
|
{ types: ['chore', 'Chore', 'deps', 'Deps'], label: '🧹 Chores' },
|
||||||
{ types: ['other', 'Other'], label: 'Other Changes' },
|
{ types: ['other', 'Other'], label: 'Other Changes' },
|
||||||
],
|
],
|
||||||
|
|
||||||
excludeTypes: [],
|
excludeTypes: [],
|
||||||
|
|
||||||
renderTypeSection: function (label, commits) {
|
renderTypeSection: function (label, commits) {
|
||||||
let text = `\n## ${ label }\n\n`
|
let text = `\n## ${label}\n\n`
|
||||||
|
|
||||||
commits.forEach((commit) => {
|
commits.forEach(commit => {
|
||||||
const scope = commit.scope ? `**${ commit.scope }:** ` : ''
|
const scope = commit.scope ? `**${commit.scope}:** ` : ''
|
||||||
text += `- ${ scope }${ commit.subject }\n`
|
text += `- ${scope}${commit.subject}\n`
|
||||||
})
|
})
|
||||||
|
|
||||||
return text
|
return text
|
||||||
@@ -28,8 +29,8 @@ module.exports = {
|
|||||||
|
|
||||||
renderChangelog: function (release, changes) {
|
renderChangelog: function (release, changes) {
|
||||||
const now = new Date()
|
const now = new Date()
|
||||||
const d = now.toISOString().substring(0, 10);
|
const d = now.toISOString().substring(0, 10)
|
||||||
const header = `# ${ release } - ${ d }\n`;
|
const header = `# ${release} - ${d}\n`
|
||||||
return header + changes + '\n\n'
|
return header + changes + '\n\n'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
2
.github/workflows/changelog.yml
vendored
2
.github/workflows/changelog.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
config_file: .github/tag-changelog-config.js
|
config_file: .github/tag-changelog-config.js
|
||||||
- name: "Echo results"
|
- name: 'Echo results'
|
||||||
id: output-changelog
|
id: output-changelog
|
||||||
run: |
|
run: |
|
||||||
echo "${{ steps.changelog.outputs.changes }}"
|
echo "${{ steps.changelog.outputs.changes }}"
|
||||||
|
|||||||
2
.github/workflows/new-release.yml
vendored
2
.github/workflows/new-release.yml
vendored
@@ -2,7 +2,7 @@ name: Release Daily State # Workflow name displayed on GitHub
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch: # Trigger manually
|
workflow_dispatch: # Trigger manually
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "30 20 * * *" # UTC is 2-3 hours behind Europe/Helsinki, my timezone
|
- cron: '30 20 * * *' # UTC is 2-3 hours behind Europe/Helsinki, my timezone
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
2
.github/workflows/update-submodules.yml
vendored
2
.github/workflows/update-submodules.yml
vendored
@@ -1,6 +1,6 @@
|
|||||||
name: Update submodules
|
name: Update submodules
|
||||||
on:
|
on:
|
||||||
schedule: [{cron: 0 3 * * *}]
|
schedule: [{ cron: 0 3 * * * }]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -13,4 +13,6 @@ ssh/local.d/*
|
|||||||
!ssh/local.d/.gitkeep
|
!ssh/local.d/.gitkeep
|
||||||
!.gitkeep
|
!.gitkeep
|
||||||
.env
|
.env
|
||||||
|
local/share/fonts/*
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
|||||||
9
.gitmodules
vendored
9
.gitmodules
vendored
@@ -44,3 +44,12 @@
|
|||||||
[submodule "tmux/tmux-yank"]
|
[submodule "tmux/tmux-yank"]
|
||||||
path = config/tmux/plugins/tmux-yank
|
path = config/tmux/plugins/tmux-yank
|
||||||
url = https://github.com/tmux-plugins/tmux-yank.git
|
url = https://github.com/tmux-plugins/tmux-yank.git
|
||||||
|
[submodule "tmux/tmux-window-name"]
|
||||||
|
path = config/tmux/plugins/tmux-window-name
|
||||||
|
url = https://github.com/ofirgall/tmux-window-name.git
|
||||||
|
[submodule "dotbot-snap"]
|
||||||
|
path = tools/dotbot-snap
|
||||||
|
url = https://github.com/DrDynamic/dotbot-snap.git
|
||||||
|
[submodule "dotbot-pip"]
|
||||||
|
path = tools/dotbot-pip
|
||||||
|
url = https://github.com/sobolevn/dotbot-pip.git
|
||||||
|
|||||||
2
.ignore
2
.ignore
@@ -3,4 +3,4 @@ config/cheat/cheatsheets/community/**
|
|||||||
tools/dotbot/**
|
tools/dotbot/**
|
||||||
tools/dotbot-brew/**
|
tools/dotbot-brew/**
|
||||||
tools/dotbot-include/**
|
tools/dotbot-include/**
|
||||||
|
node_modules
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"extends": "markdownlint/style/prettier",
|
"extends": "@ivuorinen/markdownlint-config",
|
||||||
"code-block-style": {
|
"code-block-style": {
|
||||||
"style": "fenced"
|
"style": "fenced"
|
||||||
},
|
},
|
||||||
|
|||||||
6
.markdownlintignore
Normal file
6
.markdownlintignore
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# only care about files that are under our control
|
||||||
|
config/cheat/cheatsheets/community/*
|
||||||
|
config/tmux/plugins/*
|
||||||
|
tools/*
|
||||||
|
node_modules/*
|
||||||
|
|
||||||
8
.prettierignore
Normal file
8
.prettierignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.mypy_cache/*
|
||||||
|
tools/dotbot*
|
||||||
|
local/bin/antigen.zsh
|
||||||
|
config/cheat/cheatsheets/community
|
||||||
|
config/tmux/plugins/*
|
||||||
|
lazy-lock.json
|
||||||
|
Brewfile.lock.json
|
||||||
|
|
||||||
14
.prettierrc.js
Normal file
14
.prettierrc.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
module.exports = {
|
||||||
|
...require('@ivuorinen/prettier-config'),
|
||||||
|
trailingComma: 'all',
|
||||||
|
// Add custom options below:
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: '*.md',
|
||||||
|
options: {
|
||||||
|
printWidth: 120,
|
||||||
|
proseWrap: 'preserve',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
22
.yamlfmt
22
.yamlfmt
@@ -1,22 +0,0 @@
|
|||||||
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/**
|
|
||||||
- ./config/nvim/**
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# .yamlignore
|
|
||||||
|
|
||||||
@@ -1,9 +1,22 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
git submodule add --name dotbot -f https://github.com/anishathalye/dotbot.git tools/dotbot
|
# dotbot and plugins
|
||||||
git submodule add --name dotbot-brew -f https://github.com/wren/dotbot-brew.git tools/dotbot-brew
|
git submodule add --name dotbot \
|
||||||
git submodule add --name dotbot-include -f https://gitlab.com/gnfzdz/dotbot-include.git tools/dotbot-include
|
-f https://github.com/anishathalye/dotbot.git tools/dotbot
|
||||||
git submodule add --name cheat-community -f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
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 dotbot-crontab \
|
||||||
|
-f https://github.com/codekansas/dotbot-crontab.git tools/dotbot-crontab
|
||||||
|
git submodule add --name dotbot-snap \
|
||||||
|
-f https://github.com/DrDynamic/dotbot-snap.git tools/dotbot-snap
|
||||||
|
git submodule add --name dotbot-pip \
|
||||||
|
-f https://github.com/sobolevn/dotbot-pip.git tools/dotbot-pip
|
||||||
|
|
||||||
|
# other repos
|
||||||
|
git submodule add --name cheat-community \
|
||||||
|
-f https://github.com/cheat/cheatsheets.git config/cheat/cheatsheets/community
|
||||||
|
|
||||||
# tmux plugin manager and plugins
|
# tmux plugin manager and plugins
|
||||||
git submodule add --name tmux/tpm \
|
git submodule add --name tmux/tpm \
|
||||||
@@ -20,5 +33,7 @@ git submodule add --name tmux/tmux-sensible \
|
|||||||
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
|
-f https://github.com/tmux-plugins/tmux-sensible.git config/tmux/plugins/tmux-sensible
|
||||||
git submodule add --name tmux/tmux-sessionist \
|
git submodule add --name tmux/tmux-sessionist \
|
||||||
-f https://github.com/tmux-plugins/tmux-sessionist.git config/tmux/plugins/tmux-sessionist
|
-f https://github.com/tmux-plugins/tmux-sessionist.git config/tmux/plugins/tmux-sessionist
|
||||||
|
git submodule add --name tmux/tmux-window-name \
|
||||||
|
-f https://github.com/ofirgall/tmux-window-name.git config/tmux/plugins/tmux-window-name
|
||||||
git submodule add --name tmux/tmux-yank \
|
git submodule add --name tmux/tmux-yank \
|
||||||
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
|
-f https://github.com/tmux-plugins/tmux-yank.git config/tmux/plugins/tmux-yank
|
||||||
|
|||||||
23
base/bashrc
Normal file → Executable file
23
base/bashrc
Normal file → Executable file
@@ -3,24 +3,13 @@
|
|||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
|
export DOTFILES_SHARED_LOADED=""
|
||||||
|
export DOTFILES_CURRENT_SHELL="bash"
|
||||||
|
# shellcheck source=scripts/shared.sh
|
||||||
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
|
path_prepend "$DOTFILES/local/bin"
|
||||||
|
|
||||||
# Run x-load-configs in your terminal to reload the files.
|
|
||||||
function x-load-configs()
|
|
||||||
{
|
|
||||||
HOST="$(hostname -s)"
|
|
||||||
# Load the shell dotfiles, and then some:
|
|
||||||
for file in $DOTFILES/config/{exports,alias,functions}; do
|
|
||||||
[ -r "$file" ] && source "$file"
|
|
||||||
[ -r "$file-secret" ] && source "$file-secret"
|
|
||||||
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
|
||||||
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
x-load-configs
|
x-load-configs
|
||||||
|
|
||||||
# Import ssh keys in keychain
|
# Import ssh keys in keychain
|
||||||
ssh-add -A 2>/dev/null;
|
ssh-add -A 2>/dev/null
|
||||||
|
|
||||||
# shellcheck source=../config/fzf/fzf.bash
|
|
||||||
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] \
|
|
||||||
&& source "${DOTFILES}/config/fzf/fzf.bash"
|
|
||||||
|
|||||||
87
base/zshrc
Normal file → Executable file
87
base/zshrc
Normal file → Executable file
@@ -3,66 +3,78 @@
|
|||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
|
export DOTFILES_CURRENT_SHELL="zsh"
|
||||||
# shellcheck source=scripts/shared.sh
|
# shellcheck source=scripts/shared.sh
|
||||||
source "$DOTFILES/scripts/shared.sh"
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
|
path_prepend "$DOTFILES/local/bin"
|
||||||
|
|
||||||
export COMPLETION_WAITING_DOTS=true
|
export COMPLETION_WAITING_DOTS=true
|
||||||
|
|
||||||
# Run x-load-configs in your terminal to reload the files.
|
|
||||||
function x-load-configs()
|
|
||||||
{
|
|
||||||
# Load the shell dotfiles, and then some:
|
|
||||||
for file in $DOTFILES/config/{exports,alias,functions}; do
|
|
||||||
HOST="$(hostname -s)"
|
|
||||||
# global (exports|alias|functions) file for all hosts
|
|
||||||
# shellcheck source=../config/exports
|
|
||||||
[ -r "$file" ] && source "$file"
|
|
||||||
# global secret file, git ignored
|
|
||||||
# shellcheck source=../config/exports-secret
|
|
||||||
[ -r "$file-secret" ] && source "$file-secret"
|
|
||||||
# host specific (exports|alias|functions) file
|
|
||||||
# shellcheck source=../config/exports
|
|
||||||
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
|
||||||
# host specific (exports|alias|functions) file, git ignored
|
|
||||||
# shellcheck source=../config/exports
|
|
||||||
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
x-load-configs
|
x-load-configs
|
||||||
|
|
||||||
export HISTFILE="$XDG_STATE_HOME"/zsh/history
|
|
||||||
|
|
||||||
autoload -U colors zsh/terminfo
|
|
||||||
colors
|
|
||||||
|
|
||||||
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
|
export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion"
|
||||||
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
|
x-dc "$ZSH_CUSTOM_COMPLETION_PATH"
|
||||||
|
|
||||||
# Add completion scripts to zsh path
|
# Add completion scripts to zsh path
|
||||||
FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH"
|
FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH"
|
||||||
autoload -Uz compinit
|
|
||||||
|
|
||||||
if type brew &>/dev/null
|
if type brew &> /dev/null; then
|
||||||
then
|
FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}"
|
||||||
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
|
||||||
|
|
||||||
# Try to load antigen, if present
|
# Try to load antigen, if present
|
||||||
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
|
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
|
||||||
# shellcheck source=../../.local/bin/antigen.zsh
|
# shellcheck source=../../.local/bin/antigen.zsh
|
||||||
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
|
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
|
||||||
|
|
||||||
# antigen is present
|
# antigen is present
|
||||||
have antigen && {
|
antigen use oh-my-zsh
|
||||||
antigen use oh-my-zsh
|
|
||||||
|
|
||||||
# config/functions
|
export ZSH_TMUX_AUTOSTART=false
|
||||||
x-default-antigen-bundles
|
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
|
||||||
|
export ZSH_TMUX_UNICODE=true
|
||||||
|
export ZSH_TMUX_AUTOQUIT=false
|
||||||
|
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
|
||||||
|
|
||||||
antigen apply
|
export NVM_DIR="$XDG_CONFIG_HOME/nvm"
|
||||||
}
|
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
|
||||||
|
|
||||||
|
# z, the zsh version
|
||||||
|
export ZSHZ_DATA="$XDG_STATE_HOME/z"
|
||||||
|
antigen bundle z
|
||||||
|
|
||||||
|
# these should be always available
|
||||||
|
antigen bundle tmux
|
||||||
|
antigen bundle colored-man-pages
|
||||||
|
antigen bundle command-not-found
|
||||||
|
antigen bundle ssh-agent
|
||||||
|
antigen bundle jreese/zsh-titles
|
||||||
|
antigen bundle unixorn/autoupdate-antigen.zshplugin
|
||||||
|
antigen bundle zsh-users/zsh-completions
|
||||||
|
|
||||||
|
# prettier history search
|
||||||
|
antigen bundle zsh-history-substring-search
|
||||||
|
bindkey "${terminfo[kcuu1]}" history-substring-search-up
|
||||||
|
bindkey "${terminfo[kcud1]}" history-substring-search-down
|
||||||
|
bindkey -M vicmd 'k' history-substring-search-up
|
||||||
|
bindkey -M vicmd 'j' history-substring-search-down
|
||||||
|
|
||||||
|
# these should be available if there's need
|
||||||
|
have brew && antigen bundle brew
|
||||||
|
have php && antigen bundle php
|
||||||
|
have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
|
||||||
|
|
||||||
|
# nvm is a strange beast
|
||||||
|
zstyle ':omz:plugins:nvm' autoload yes
|
||||||
|
antigen bundle nvm
|
||||||
|
# antigen bundle "$DOTFILES/config/zsh/plugins/nvm-auto-use"
|
||||||
|
|
||||||
|
# nice to have stuff
|
||||||
|
antigen bundle gcloud
|
||||||
|
|
||||||
|
# this needs to be the last item
|
||||||
|
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||||
|
antigen apply
|
||||||
|
|
||||||
# shellcheck source=../config/fzf/fzf.zsh
|
# shellcheck source=../config/fzf/fzf.zsh
|
||||||
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
|
[ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \
|
||||||
@@ -70,4 +82,3 @@ have antigen && {
|
|||||||
|
|
||||||
# Start starship
|
# Start starship
|
||||||
eval "$(starship init zsh)"
|
eval "$(starship init zsh)"
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
---
|
||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
# Configuration for Alacritty, the GPU enhanced terminal emulator
|
||||||
|
|
||||||
# Any items in the `env` entry below will be added as
|
# Any items in the `env` entry below will be added as
|
||||||
@@ -16,6 +17,7 @@ env:
|
|||||||
# Window dimensions in character columns and lines
|
# Window dimensions in character columns and lines
|
||||||
# (changes require restart)
|
# (changes require restart)
|
||||||
window:
|
window:
|
||||||
|
dynamic_title: true
|
||||||
dimensions:
|
dimensions:
|
||||||
columns: 130
|
columns: 130
|
||||||
lines: 40
|
lines: 40
|
||||||
@@ -38,19 +40,19 @@ draw_bold_text_with_bright_colors: true
|
|||||||
font:
|
font:
|
||||||
# The normal (roman) font face to use.
|
# The normal (roman) font face to use.
|
||||||
normal:
|
normal:
|
||||||
family: JetBrainsMono Nerd Font
|
family: JetBrainsMonoNL Nerd Font Mono
|
||||||
# Style can be specified to pick a specific face.
|
# Style can be specified to pick a specific face.
|
||||||
# style: Regular
|
style: ExtraLight
|
||||||
|
|
||||||
# The bold font face
|
# The bold font face
|
||||||
bold:
|
bold:
|
||||||
family: JetBrainsMono Nerd Font
|
family: JetBrainsMonoNL Nerd Font Mono
|
||||||
# Style can be specified to pick a specific face.
|
# Style can be specified to pick a specific face.
|
||||||
style: Bold
|
style: Bold
|
||||||
|
|
||||||
# The italic font face
|
# The italic font face
|
||||||
italic:
|
italic:
|
||||||
family: JetBrainsMono Nerd Font
|
family: JetBrainsMonoNL Nerd Font Mono
|
||||||
# Style can be specified to pick a specific face.
|
# Style can be specified to pick a specific face.
|
||||||
style: Italic
|
style: Italic
|
||||||
|
|
||||||
@@ -76,82 +78,82 @@ debug.render_timer: false
|
|||||||
# https://github.com/catppuccin/alacritty
|
# https://github.com/catppuccin/alacritty
|
||||||
colors:
|
colors:
|
||||||
primary:
|
primary:
|
||||||
background: "#1E1E2E" # base
|
background: '#1E1E2E' # base
|
||||||
foreground: "#CDD6F4" # text
|
foreground: '#CDD6F4' # text
|
||||||
# Bright and dim foreground colors
|
# Bright and dim foreground colors
|
||||||
dim_foreground: "#CDD6F4" # text
|
dim_foreground: '#CDD6F4' # text
|
||||||
bright_foreground: "#CDD6F4" # text
|
bright_foreground: '#CDD6F4' # text
|
||||||
|
|
||||||
# Cursor colors
|
# Cursor colors
|
||||||
cursor:
|
cursor:
|
||||||
text: "#1E1E2E" # base
|
text: '#1E1E2E' # base
|
||||||
cursor: "#F5E0DC" # rosewater
|
cursor: '#F5E0DC' # rosewater
|
||||||
vi_mode_cursor:
|
vi_mode_cursor:
|
||||||
text: "#1E1E2E" # base
|
text: '#1E1E2E' # base
|
||||||
cursor: "#B4BEFE" # lavender
|
cursor: '#B4BEFE' # lavender
|
||||||
|
|
||||||
# Search colors
|
# Search colors
|
||||||
search:
|
search:
|
||||||
matches:
|
matches:
|
||||||
foreground: "#1E1E2E" # base
|
foreground: '#1E1E2E' # base
|
||||||
background: "#A6ADC8" # subtext0
|
background: '#A6ADC8' # subtext0
|
||||||
focused_match:
|
focused_match:
|
||||||
foreground: "#1E1E2E" # base
|
foreground: '#1E1E2E' # base
|
||||||
background: "#A6E3A1" # green
|
background: '#A6E3A1' # green
|
||||||
footer_bar:
|
footer_bar:
|
||||||
foreground: "#1E1E2E" # base
|
foreground: '#1E1E2E' # base
|
||||||
background: "#A6ADC8" # subtext0
|
background: '#A6ADC8' # subtext0
|
||||||
|
|
||||||
# Keyboard regex hints
|
# Keyboard regex hints
|
||||||
hints:
|
hints:
|
||||||
start:
|
start:
|
||||||
foreground: "#1E1E2E" # base
|
foreground: '#1E1E2E' # base
|
||||||
background: "#F9E2AF" # yellow
|
background: '#F9E2AF' # yellow
|
||||||
end:
|
end:
|
||||||
foreground: "#1E1E2E" # base
|
foreground: '#1E1E2E' # base
|
||||||
background: "#A6ADC8" # subtext0
|
background: '#A6ADC8' # subtext0
|
||||||
|
|
||||||
# Selection colors
|
# Selection colors
|
||||||
selection:
|
selection:
|
||||||
text: "#1E1E2E" # base
|
text: '#1E1E2E' # base
|
||||||
background: "#F5E0DC" # rosewater
|
background: '#F5E0DC' # rosewater
|
||||||
|
|
||||||
# Normal colors
|
# Normal colors
|
||||||
normal:
|
normal:
|
||||||
black: "#45475A" # surface1
|
black: '#45475A' # surface1
|
||||||
red: "#F38BA8" # red
|
red: '#F38BA8' # red
|
||||||
green: "#A6E3A1" # green
|
green: '#A6E3A1' # green
|
||||||
yellow: "#F9E2AF" # yellow
|
yellow: '#F9E2AF' # yellow
|
||||||
blue: "#89B4FA" # blue
|
blue: '#89B4FA' # blue
|
||||||
magenta: "#F5C2E7" # pink
|
magenta: '#F5C2E7' # pink
|
||||||
cyan: "#94E2D5" # teal
|
cyan: '#94E2D5' # teal
|
||||||
white: "#BAC2DE" # subtext1
|
white: '#BAC2DE' # subtext1
|
||||||
|
|
||||||
# Bright colors
|
# Bright colors
|
||||||
bright:
|
bright:
|
||||||
black: "#585B70" # surface2
|
black: '#585B70' # surface2
|
||||||
red: "#F38BA8" # red
|
red: '#F38BA8' # red
|
||||||
green: "#A6E3A1" # green
|
green: '#A6E3A1' # green
|
||||||
yellow: "#F9E2AF" # yellow
|
yellow: '#F9E2AF' # yellow
|
||||||
blue: "#89B4FA" # blue
|
blue: '#89B4FA' # blue
|
||||||
magenta: "#F5C2E7" # pink
|
magenta: '#F5C2E7' # pink
|
||||||
cyan: "#94E2D5" # teal
|
cyan: '#94E2D5' # teal
|
||||||
white: "#A6ADC8" # subtext0
|
white: '#A6ADC8' # subtext0
|
||||||
|
|
||||||
# Dim colors
|
# Dim colors
|
||||||
dim:
|
dim:
|
||||||
black: "#45475A" # surface1
|
black: '#45475A' # surface1
|
||||||
red: "#F38BA8" # red
|
red: '#F38BA8' # red
|
||||||
green: "#A6E3A1" # green
|
green: '#A6E3A1' # green
|
||||||
yellow: "#F9E2AF" # yellow
|
yellow: '#F9E2AF' # yellow
|
||||||
blue: "#89B4FA" # blue
|
blue: '#89B4FA' # blue
|
||||||
magenta: "#F5C2E7" # pink
|
magenta: '#F5C2E7' # pink
|
||||||
cyan: "#94E2D5" # teal
|
cyan: '#94E2D5' # teal
|
||||||
white: "#BAC2DE" # subtext1
|
white: '#BAC2DE' # subtext1
|
||||||
|
|
||||||
indexed_colors:
|
indexed_colors:
|
||||||
- { index: 16, color: "#FAB387" }
|
- { index: 16, color: '#FAB387' }
|
||||||
- { index: 17, color: "#F5E0DC" }
|
- { index: 17, color: '#F5E0DC' }
|
||||||
|
|
||||||
# Visual Bell
|
# Visual Bell
|
||||||
#
|
#
|
||||||
@@ -260,7 +262,7 @@ key_bindings:
|
|||||||
- { key: F10, chars: "\e[21~" }
|
- { key: F10, chars: "\e[21~" }
|
||||||
- { key: F11, chars: "\e[23~" }
|
- { key: F11, chars: "\e[23~" }
|
||||||
- { key: F12, chars: "\e[24~" }
|
- { key: F12, chars: "\e[24~" }
|
||||||
- { key: Back, chars: "" }
|
- { key: Back, chars: '' }
|
||||||
- { key: Back, mods: Alt, chars: "\e" }
|
- { key: Back, mods: Alt, chars: "\e" }
|
||||||
- { key: Insert, chars: "\e[2~" }
|
- { key: Insert, chars: "\e[2~" }
|
||||||
- { key: Delete, chars: "\e[3~" }
|
- { key: Delete, chars: "\e[3~" }
|
||||||
@@ -298,7 +300,6 @@ mouse:
|
|||||||
|
|
||||||
selection:
|
selection:
|
||||||
semantic_escape_chars: ',│`|:"'' ()[]{}<>'
|
semantic_escape_chars: ',│`|:"'' ()[]{}<>'
|
||||||
|
|
||||||
# Shell
|
# Shell
|
||||||
#
|
#
|
||||||
# You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
|
# You can set shell.program to the path of your favorite shell, e.g. /bin/fish.
|
||||||
|
|||||||
60
config/alias
60
config/alias
@@ -8,7 +8,7 @@ function x-set-php-aliases
|
|||||||
{
|
{
|
||||||
have brew && {
|
have brew && {
|
||||||
local php_versions=()
|
local php_versions=()
|
||||||
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew list | grep '^php')
|
while IFS="" read -r line; do php_versions+=("$line"); done < <(brew_installed | grep '^php')
|
||||||
|
|
||||||
php_error_reporting='-d error_reporting=22527'
|
php_error_reporting='-d error_reporting=22527'
|
||||||
|
|
||||||
@@ -55,6 +55,60 @@ if [[ $(uname) == 'Darwin' ]]; then
|
|||||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
|
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv ~/.Trash; sudo rm -rfv /private/var/log/asl/*.asl"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Be nice
|
||||||
|
alias please="sudo "
|
||||||
|
|
||||||
|
# Color the grep output
|
||||||
|
alias grep='grep --color'
|
||||||
|
|
||||||
|
! have eza && alias ls='ls --color=auto'
|
||||||
|
have eza && {
|
||||||
|
alias ls='eza -h -s=type --git --icons --group-directories-first'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Easier navigation: .., ..., ....
|
||||||
|
alias ..="cd .."
|
||||||
|
alias ...="cd ../.."
|
||||||
|
alias ....="cd ../../.."
|
||||||
|
|
||||||
|
# cd to git root directory
|
||||||
|
alias cdgr='cd "$(git root)"'
|
||||||
|
|
||||||
|
# Shortcuts for listing
|
||||||
|
alias ll="ls -la"
|
||||||
|
alias l="ls -a"
|
||||||
|
|
||||||
|
# Prevent common typos
|
||||||
|
alias cd..="cd .."
|
||||||
|
alias sl="ls"
|
||||||
|
|
||||||
|
# List only directories
|
||||||
|
alias lsd="ls -lF | grep '^d'"
|
||||||
|
|
||||||
|
# IP addresses
|
||||||
|
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
|
||||||
|
alias localip="ipconfig getifaddr en1"
|
||||||
|
alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'"
|
||||||
|
|
||||||
|
# Show/hide hidden files in Finder
|
||||||
|
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true; killall Finder"
|
||||||
|
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder"
|
||||||
|
|
||||||
|
# Pipe public key to clipboard.
|
||||||
|
alias pubkey="more ~/.ssh/id_rsa.pub | pbcopy | echo '=> Public key copied to pasteboard.'"
|
||||||
|
|
||||||
|
# Flush Directory Service cache
|
||||||
|
alias flush="dscacheutil -flushcache"
|
||||||
|
|
||||||
|
# Update locatedb
|
||||||
|
alias updatedb="sudo /usr/libexec/locate.updatedb"
|
||||||
|
|
||||||
|
# Always return full history
|
||||||
|
alias history="history 1"
|
||||||
|
|
||||||
|
alias pip="pip3 "
|
||||||
|
alias python="python3 "
|
||||||
|
|
||||||
# tmux: automatically attach or create session with name 'main'
|
# tmux: automatically attach or create session with name 'main'
|
||||||
alias tmux='tmux new-session -A -s main'
|
alias tmux='tmux new-session -A -s main'
|
||||||
# tmux: attach or create new session
|
# tmux: attach or create new session
|
||||||
@@ -64,6 +118,10 @@ alias ta='tmux attach || tmux'
|
|||||||
alias watchx='watch -dpbc'
|
alias watchx='watch -dpbc'
|
||||||
# delete .DS_Store files
|
# delete .DS_Store files
|
||||||
alias zapds='find . -name ".DS_Store" -print -delete'
|
alias zapds='find . -name ".DS_Store" -print -delete'
|
||||||
|
# Recursively delete `.pyc` files
|
||||||
|
alias zappyc="find . -type f -name '*.pyc' -ls -delete"
|
||||||
|
# Run all zaps
|
||||||
|
alias zapall="zapds && zappyc"
|
||||||
# tail with follow flag on
|
# tail with follow flag on
|
||||||
alias t='tail -f'
|
alias t='tail -f'
|
||||||
# directory usage, return only the total
|
# directory usage, return only the total
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ colorize: true
|
|||||||
# Which 'chroma' colorscheme should be applied to the output?
|
# Which 'chroma' colorscheme should be applied to the output?
|
||||||
# Options are available here:
|
# Options are available here:
|
||||||
# https://github.com/alecthomas/chroma/tree/master/styles
|
# https://github.com/alecthomas/chroma/tree/master/styles
|
||||||
style: "catppuccin"
|
style: 'catppuccin'
|
||||||
# Which 'chroma' "formatter" should be applied?
|
# Which 'chroma' "formatter" should be applied?
|
||||||
# One of: "terminal", "terminal256", "terminal16m"
|
# One of: "terminal", "terminal256", "terminal16m"
|
||||||
formatter: terminal256
|
formatter: terminal256
|
||||||
@@ -74,7 +74,6 @@ cheatpaths:
|
|||||||
path: ~/.dotfiles/config/cheat/cheatsheets/tldr
|
path: ~/.dotfiles/config/cheat/cheatsheets/tldr
|
||||||
tags: [tldr]
|
tags: [tldr]
|
||||||
readonly: true
|
readonly: true
|
||||||
|
|
||||||
# While it requires no configuration here, it's also worth noting that
|
# While it requires no configuration here, it's also worth noting that
|
||||||
# cheat will automatically append directories named '.cheat' within the
|
# cheat will automatically append directories named '.cheat' within the
|
||||||
# current working directory to the 'cheatpath'. This can be very useful if
|
# current working directory to the 'cheatpath'. This can be very useful if
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
source "$DOTFILES/scripts/shared.sh"
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
path_append "$DOTFILES/local/bin"
|
path_prepend "$DOTFILES/local/bin"
|
||||||
|
|
||||||
# Explicitly set XDG folders
|
# Explicitly set XDG folders
|
||||||
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
# https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||||
@@ -21,12 +21,7 @@ path_append "/opt/homebrew/bin"
|
|||||||
have brew && eval "$(brew shellenv)"
|
have brew && eval "$(brew shellenv)"
|
||||||
|
|
||||||
path_append "/usr/local/bin"
|
path_append "/usr/local/bin"
|
||||||
path_append "$XDG_BIN_HOME"
|
path_prepend "$XDG_BIN_HOME"
|
||||||
|
|
||||||
# brew, https://brew.sh
|
|
||||||
have brew && {
|
|
||||||
have_brew python && path_append "$(brew --prefix python)/bin"
|
|
||||||
}
|
|
||||||
|
|
||||||
source "$DOTFILES/config/exports-shell"
|
source "$DOTFILES/config/exports-shell"
|
||||||
source "$DOTFILES/config/exports-apps"
|
source "$DOTFILES/config/exports-apps"
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# shellcheck enable=external-sources
|
# shellcheck enable=external-sources
|
||||||
# shellcheck disable=1091,2139
|
# shellcheck disable=1091,2139
|
||||||
# vim: filetype=zsh
|
# vim: filetype=bash
|
||||||
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
source "$DOTFILES/scripts/shared.sh"
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
|
|
||||||
@@ -17,41 +18,34 @@ export ANTIGEN_PLUGIN_RECEIPT_F=".local/share/antigen/antigen_plugin_lastupdate"
|
|||||||
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
|
export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible"
|
||||||
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
|
export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg"
|
||||||
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
|
export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
|
||||||
have ansible && {
|
x-dc "$ANSIBLE_HOME"
|
||||||
x-dc "$ANSIBLE_HOME"
|
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
||||||
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
export ANDROID_HOME="$XDG_DATA_HOME/android"
|
||||||
|
|
||||||
|
# bob manages nvim versions
|
||||||
|
have bob && {
|
||||||
|
path_prepend "$XDG_DATA_HOME/bob/nvim-bin"
|
||||||
|
have nvim && export EDITOR="nvim"
|
||||||
|
}
|
||||||
|
|
||||||
export HOMEBREW_NO_ENV_HINTS=true
|
export HOMEBREW_NO_ENV_HINTS=true
|
||||||
|
|
||||||
# composer, https://getcomposer.org/
|
# composer, https://getcomposer.org/
|
||||||
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
export COMPOSER_HOME="$XDG_STATE_HOME/composer"
|
||||||
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
|
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
|
||||||
have composer && {
|
path_append "$COMPOSER_BIN"
|
||||||
export PATH="$COMPOSER_BIN:$PATH"
|
|
||||||
}
|
|
||||||
|
|
||||||
# docker, https://docs.docker.com/engine/reference/commandline/cli/
|
# docker, https://docs.docker.com/engine/reference/commandline/cli/
|
||||||
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
|
||||||
have docker && {
|
x-dc "$DOCKER_CONFIG"
|
||||||
x-dc "$DOCKER_CONFIG"
|
# Docker: Disable snyk ad
|
||||||
# Docker: Disable snyk ad
|
export DOCKER_SCAN_SUGGEST=false
|
||||||
export DOCKER_SCAN_SUGGEST=false
|
|
||||||
}
|
|
||||||
|
|
||||||
# ffmpeg
|
# ffmpeg
|
||||||
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
|
||||||
have ffmpeg && x-dc "$FFMPEG_DATADIR"
|
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
|
# GnuPG
|
||||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||||
|
|
||||||
@@ -71,17 +65,7 @@ have irssi && {
|
|||||||
export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
|
export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
|
||||||
export NB_DIR="$XDG_STATE_HOME/nb"
|
export NB_DIR="$XDG_STATE_HOME/nb"
|
||||||
|
|
||||||
# nvm, the node version manager
|
# NPM: Add npm packages to path
|
||||||
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 && {
|
have node && {
|
||||||
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
|
NVM_NODE_BIN_DIR="$(dirname "$(which node)")"
|
||||||
path_append "$NVM_NODE_BIN_DIR"
|
path_append "$NVM_NODE_BIN_DIR"
|
||||||
@@ -90,8 +74,10 @@ have node && {
|
|||||||
# op (1Password cli) is present
|
# op (1Password cli) is present
|
||||||
export OP_CACHE="$XDG_STATE_HOME/1password"
|
export OP_CACHE="$XDG_STATE_HOME/1password"
|
||||||
have op && {
|
have op && {
|
||||||
eval "$(op completion zsh)"
|
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && {
|
||||||
compdef _op op
|
eval "$(op completion zsh)"
|
||||||
|
compdef _op op
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
@@ -100,8 +86,7 @@ have op && {
|
|||||||
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
|
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
|
||||||
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
|
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
|
||||||
have pyenv && {
|
have pyenv && {
|
||||||
path_append "$(pyenv root)/shims"
|
path_append "$PYENV_ROOT/shims"
|
||||||
path_append "$PYENV_ROOT/bin"
|
|
||||||
eval "$(pyenv init -)"
|
eval "$(pyenv init -)"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,10 +100,14 @@ export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
|
|||||||
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
|
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
|
||||||
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
|
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
|
||||||
x-dc "$RBENV_ROOT"
|
x-dc "$RBENV_ROOT"
|
||||||
have gem && path_append "$(gem environment gemdir)/bin"
|
have gem && path_append "${GEM_HOME}/bin"
|
||||||
have rbenv && eval "$(rbenv init - zsh)"
|
have rbenv && {
|
||||||
|
[ "$DOTFILES_CURRENT_SHELL" = "zsh" ] && eval "$(rbenv init - zsh)"
|
||||||
|
[ "$DOTFILES_CURRENT_SHELL" = "bash" ] && eval "$(rbenv init - bash)"
|
||||||
|
}
|
||||||
|
|
||||||
# Rust / cargo
|
# Rust / cargo
|
||||||
|
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
|
||||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||||
path_append "$CARGO_HOME/bin"
|
path_append "$CARGO_HOME/bin"
|
||||||
|
|
||||||
@@ -138,10 +127,6 @@ export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
|
|||||||
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"
|
export WAKATIME_HOME="$XDG_STATE_HOME/wakatime"
|
||||||
x-dc "$WAKATIME_HOME"
|
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
|
# Misc
|
||||||
export BAT_THEME="ansi"
|
export BAT_THEME="ansi"
|
||||||
export CHEAT_USE_FZF=true
|
export CHEAT_USE_FZF=true
|
||||||
|
|||||||
20
config/exports-lakka
Normal file
20
config/exports-lakka
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# lakka exports
|
||||||
|
|
||||||
|
## LUA
|
||||||
|
have luarocks && $(luarocks path --bin)
|
||||||
|
|
||||||
|
path_append "$HOME/.local/go/bin"
|
||||||
|
|
||||||
|
alias logrotate='/usr/sbin/logrotate -s $HOME/logs/state'
|
||||||
|
alias nano='nano -wS -$'
|
||||||
|
alias gpg=gpg2
|
||||||
|
|
||||||
|
ACME_PATH="$HOME/.acme.sh"
|
||||||
|
# shellcheck source=$HOME/.acme.sh/acme.sh.env
|
||||||
|
[[ -s "$ACME_PATH/acme.sh.env" ]] && . "$ACME_PATH/acme.sh.env"
|
||||||
|
|
||||||
|
export RVM_PATH="$HOME/.rvm"
|
||||||
|
export PATH="$RVM_PATH/bin:$PATH"
|
||||||
|
# shellcheck source=$HOME/.rvm/scripts/rvm
|
||||||
|
[[ -s "$RVM_PATH/scripts/rvm" ]] && source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function*
|
||||||
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
# shellcheck disable=1091,2046
|
# shellcheck disable=1091,2046
|
||||||
# vim: filetype=zsh
|
# vim: filetype=zsh
|
||||||
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
source "$DOTFILES/scripts/shared.sh"
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
|
|
||||||
@@ -23,9 +24,16 @@ export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"
|
|||||||
# And include the parameter for ZSH
|
# And include the parameter for ZSH
|
||||||
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
|
export HISTORY_IGNORE="(ls|cd|cd -|pwd|exit|date|* --help)"
|
||||||
|
|
||||||
|
# Less history location
|
||||||
|
export LESSHISTFILE="$XDG_STATE_HOME"/less/history
|
||||||
|
|
||||||
# Highlight section titles in manual pages
|
# Highlight section titles in manual pages
|
||||||
export LESS_TERMCAP_md="$ORANGE"
|
export LESS_TERMCAP_md="$ORANGE"
|
||||||
|
|
||||||
|
# zsh autoloaded terminfo
|
||||||
|
export TERMINFO="$XDG_DATA_HOME"/terminfo
|
||||||
|
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo
|
||||||
|
|
||||||
# Don’t clear the screen after quitting a manual page
|
# Don’t clear the screen after quitting a manual page
|
||||||
export MANPAGER="less -X"
|
export MANPAGER="less -X"
|
||||||
|
|
||||||
@@ -36,16 +44,15 @@ export GREP_OPTIONS="--color=auto"
|
|||||||
# update the values of LINES and COLUMNS.
|
# update the values of LINES and COLUMNS.
|
||||||
hash shopt 2> /dev/null && shopt -s checkwinsize
|
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
|
# Set dircolors based on the file, if it exists
|
||||||
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
|
have dircolors && eval $(dircolors "$XDG_CONFIG_HOME/dircolors")
|
||||||
|
|
||||||
# If we are using zsh, color our dir lists and such
|
# If we are using zsh, color our dir lists and such
|
||||||
if [ "$SHELL" = "$(which zsh)" ]; then
|
if [ "$DOTFILES_CURRENT_SHELL" = "zsh" ]; then
|
||||||
|
autoload -U colors zsh/terminfo compinit
|
||||||
|
colors
|
||||||
|
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
||||||
|
|
||||||
x-dc "$XDG_CACHE_HOME/zsh"
|
x-dc "$XDG_CACHE_HOME/zsh"
|
||||||
x-dc "$XDG_STATE_HOME/zsh"
|
x-dc "$XDG_STATE_HOME/zsh"
|
||||||
export HISTFILE="$XDG_STATE_HOME/zsh/history"
|
export HISTFILE="$XDG_STATE_HOME/zsh/history"
|
||||||
@@ -55,10 +62,16 @@ if [ "$SHELL" = "$(which zsh)" ]; then
|
|||||||
# fzf
|
# fzf
|
||||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh ] \
|
||||||
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
|
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.zsh
|
||||||
|
|
||||||
|
# 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"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If we are using bash
|
# If we are using bash
|
||||||
if [ "$SHELL" = "$(which bash)" ]; then
|
if [ "$DOTFILES_CURRENT_SHELL" = "bash" ]; then
|
||||||
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] \
|
# shellcheck source=../config/fzf/fzf.bash
|
||||||
&& source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
|
[ -f "${DOTFILES}/config/fzf/fzf.bash" ] &&
|
||||||
|
source "${DOTFILES}/config/fzf/fzf.bash"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -6,6 +6,20 @@
|
|||||||
export DOTFILES="$HOME/.dotfiles"
|
export DOTFILES="$HOME/.dotfiles"
|
||||||
source "$DOTFILES/scripts/shared.sh"
|
source "$DOTFILES/scripts/shared.sh"
|
||||||
|
|
||||||
|
# Alacritty preexec hook to update dynamic title
|
||||||
|
preexec()
|
||||||
|
{
|
||||||
|
print -Pn "\e]0;$1%~\a"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update dotfiles
|
||||||
|
dfu()
|
||||||
|
{
|
||||||
|
(
|
||||||
|
cd "$DOTFILES" && git pull --ff-only && ./install -q
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
# Weather in Tampere, or other city
|
# Weather in Tampere, or other city
|
||||||
weather()
|
weather()
|
||||||
{
|
{
|
||||||
@@ -57,35 +71,3 @@ scheduler()
|
|||||||
sleep 60
|
sleep 60
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Defines default antigen bundles
|
|
||||||
x-default-antigen-bundles()
|
|
||||||
{
|
|
||||||
export ZSH_TMUX_AUTOSTART=false
|
|
||||||
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
|
|
||||||
export ZSH_TMUX_UNICODE=true
|
|
||||||
export ZSH_TMUX_AUTOQUIT=false
|
|
||||||
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
|
|
||||||
|
|
||||||
# Add keychain to ssh-agent args when on macOS
|
|
||||||
have brew && zstyle :omz:plugins:ssh-agent ssh-add-args --apple-load-keychain
|
|
||||||
|
|
||||||
# these should be always available
|
|
||||||
antigen bundle tmux
|
|
||||||
antigen bundle colored-man-pages
|
|
||||||
antigen bundle command-not-found
|
|
||||||
antigen bundle ssh-agent
|
|
||||||
# antigen bundle MichaelAquilina/zsh-you-should-use
|
|
||||||
antigen bundle 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
|
|
||||||
}
|
|
||||||
|
|||||||
19
config/gh-changelog/config.yaml
Normal file
19
config/gh-changelog/config.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
check_for_updates: true
|
||||||
|
excluded_labels:
|
||||||
|
- maintenance
|
||||||
|
- dependencies
|
||||||
|
file_name: CHANGELOG.md
|
||||||
|
logger: spinner
|
||||||
|
no_color: false
|
||||||
|
sections:
|
||||||
|
added:
|
||||||
|
- feature
|
||||||
|
- enhancement
|
||||||
|
changed:
|
||||||
|
- backwards-incompatible
|
||||||
|
fixed:
|
||||||
|
- bug
|
||||||
|
- bugfix
|
||||||
|
- documentation
|
||||||
|
show_unreleased: true
|
||||||
|
skip_entries_without_label: false
|
||||||
54
config/gh-dash/config.yml
Normal file
54
config/gh-dash/config.yml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
prSections:
|
||||||
|
- title: My Pull Requests
|
||||||
|
filters: is:open author:@me
|
||||||
|
- title: Needs My Review
|
||||||
|
filters: is:open review-requested:@me
|
||||||
|
- title: Involved
|
||||||
|
filters: is:open involves:@me -author:@me
|
||||||
|
issuesSections:
|
||||||
|
- title: My Issues
|
||||||
|
filters: is:open author:@me
|
||||||
|
- title: Assigned
|
||||||
|
filters: is:open assignee:@me
|
||||||
|
- title: Involved
|
||||||
|
filters: is:open involves:@me -author:@me
|
||||||
|
defaults:
|
||||||
|
preview:
|
||||||
|
open: true
|
||||||
|
width: 50
|
||||||
|
prsLimit: 20
|
||||||
|
issuesLimit: 20
|
||||||
|
view: prs
|
||||||
|
layout:
|
||||||
|
prs:
|
||||||
|
updatedAt:
|
||||||
|
width: 7
|
||||||
|
repo:
|
||||||
|
width: 15
|
||||||
|
author:
|
||||||
|
width: 15
|
||||||
|
assignees:
|
||||||
|
width: 20
|
||||||
|
hidden: true
|
||||||
|
base:
|
||||||
|
width: 15
|
||||||
|
hidden: true
|
||||||
|
lines:
|
||||||
|
width: 16
|
||||||
|
issues:
|
||||||
|
updatedAt:
|
||||||
|
width: 7
|
||||||
|
repo:
|
||||||
|
width: 15
|
||||||
|
creator:
|
||||||
|
width: 10
|
||||||
|
assignees:
|
||||||
|
width: 20
|
||||||
|
hidden: true
|
||||||
|
refetchIntervalMinutes: 30
|
||||||
|
keybindings:
|
||||||
|
issues: []
|
||||||
|
prs: []
|
||||||
|
repoPaths: {}
|
||||||
|
pager:
|
||||||
|
diff: ''
|
||||||
3
config/gh/hosts.yml
Normal file
3
config/gh/hosts.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
github.com:
|
||||||
|
user: ivuorinen
|
||||||
|
git_protocol: https
|
||||||
@@ -5,3 +5,9 @@
|
|||||||
name = Ismo Vuorinen
|
name = Ismo Vuorinen
|
||||||
email = ismo@ivuorinen.net
|
email = ismo@ivuorinen.net
|
||||||
|
|
||||||
|
[github]
|
||||||
|
user = ivuorinen
|
||||||
|
|
||||||
|
[include]
|
||||||
|
path = ~/.config/git/overrides/config
|
||||||
|
|
||||||
|
|||||||
2
config/git/overrides/.gitignore
vendored
Normal file
2
config/git/overrides/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
!.gitkeep
|
||||||
|
config
|
||||||
@@ -18,8 +18,6 @@ tap "xwmx/taps"
|
|||||||
brew "act"
|
brew "act"
|
||||||
# Mozilla CA certificate store
|
# Mozilla CA certificate store
|
||||||
brew "ca-certificates"
|
brew "ca-certificates"
|
||||||
# Cryptography and SSL/TLS Toolkit
|
|
||||||
brew "openssl@3"
|
|
||||||
# Interpreted, interactive, object-oriented programming language
|
# Interpreted, interactive, object-oriented programming language
|
||||||
brew "python@3.11"
|
brew "python@3.11"
|
||||||
# YAML Parser
|
# YAML Parser
|
||||||
@@ -68,6 +66,8 @@ brew "awscli"
|
|||||||
brew "bash"
|
brew "bash"
|
||||||
# Clone of cat(1) with syntax highlighting and Git integration
|
# Clone of cat(1) with syntax highlighting and Git integration
|
||||||
brew "bat"
|
brew "bat"
|
||||||
|
# C/C++ and Java libraries for Unicode and globalization
|
||||||
|
brew "icu4c"
|
||||||
# Yet another cross-platform graphical process/system monitor
|
# Yet another cross-platform graphical process/system monitor
|
||||||
brew "bottom"
|
brew "bottom"
|
||||||
# Switch Apache / Valet / CLI configs between PHP versions
|
# Switch Apache / Valet / CLI configs between PHP versions
|
||||||
@@ -102,8 +102,14 @@ brew "dnsmasq"
|
|||||||
brew "dog"
|
brew "dog"
|
||||||
# Lightning-fast linter for .env files written in Rust
|
# Lightning-fast linter for .env files written in Rust
|
||||||
brew "dotenv-linter"
|
brew "dotenv-linter"
|
||||||
|
# Tool to verify that your files are in harmony with your .editorconfig
|
||||||
|
brew "editorconfig-checker"
|
||||||
# Useful examples at the command-line
|
# Useful examples at the command-line
|
||||||
brew "eg-examples"
|
brew "eg-examples"
|
||||||
|
# OpenType text shaping engine
|
||||||
|
brew "harfbuzz"
|
||||||
|
# Development kit for the Java programming language
|
||||||
|
brew "openjdk"
|
||||||
# Run arbitrary commands when files change
|
# Run arbitrary commands when files change
|
||||||
brew "entr"
|
brew "entr"
|
||||||
# Perl lib for reading and writing EXIF metadata
|
# Perl lib for reading and writing EXIF metadata
|
||||||
@@ -152,10 +158,6 @@ brew "gpgme"
|
|||||||
brew "gpg-tui"
|
brew "gpg-tui"
|
||||||
# Image manipulation
|
# Image manipulation
|
||||||
brew "netpbm"
|
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
|
# Framework for layout and rendering of i18n text
|
||||||
brew "pango"
|
brew "pango"
|
||||||
# Library to render SVG files using Cairo
|
# Library to render SVG files using Cairo
|
||||||
@@ -198,8 +200,6 @@ brew "m-cli"
|
|||||||
brew "mas"
|
brew "mas"
|
||||||
# NCurses Disk Usage
|
# NCurses Disk Usage
|
||||||
brew "ncdu"
|
brew "ncdu"
|
||||||
# Ambitious Vim-fork focused on extensibility and agility
|
|
||||||
brew "neovim"
|
|
||||||
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
|
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
|
||||||
brew "nginx"
|
brew "nginx"
|
||||||
# Port scanning utility for large networks
|
# Port scanning utility for large networks
|
||||||
@@ -210,8 +210,6 @@ brew "nvm"
|
|||||||
brew "openjdk@11"
|
brew "openjdk@11"
|
||||||
# Generate clients, server & docs from an OpenAPI spec (v2, v3)
|
# Generate clients, server & docs from an OpenAPI spec (v2, v3)
|
||||||
brew "openapi-generator"
|
brew "openapi-generator"
|
||||||
# Development kit for the Java programming language
|
|
||||||
brew "openjdk"
|
|
||||||
# Swiss-army knife of markup format conversion
|
# Swiss-army knife of markup format conversion
|
||||||
brew "pandoc"
|
brew "pandoc"
|
||||||
# Highly capable, feature-rich programming language
|
# Highly capable, feature-rich programming language
|
||||||
@@ -278,6 +276,8 @@ brew "virtualenv"
|
|||||||
brew "wakatime-cli"
|
brew "wakatime-cli"
|
||||||
# Executes a program periodically, showing output fullscreen
|
# Executes a program periodically, showing output fullscreen
|
||||||
brew "watch"
|
brew "watch"
|
||||||
|
# Watch files and take action when they change
|
||||||
|
brew "watchman"
|
||||||
# Internet file retriever
|
# Internet file retriever
|
||||||
brew "wget"
|
brew "wget"
|
||||||
# Personal information dashboard for your terminal
|
# Personal information dashboard for your terminal
|
||||||
@@ -314,8 +314,10 @@ brew "shivammathur/php/php@7.4"
|
|||||||
brew "shivammathur/php/php@8.0"
|
brew "shivammathur/php/php@8.0"
|
||||||
# Ookla Speedtest
|
# Ookla Speedtest
|
||||||
brew "teamookla/speedtest/speedtest"
|
brew "teamookla/speedtest/speedtest"
|
||||||
# Command-line helper for the 1Password password manager
|
# Command-line interface for 1Password
|
||||||
cask "1password-cli"
|
cask "1password-cli"
|
||||||
|
# GPU-accelerated terminal emulator
|
||||||
|
cask "alacritty"
|
||||||
# Turn audio CDs and files into audiobooks
|
# Turn audio CDs and files into audiobooks
|
||||||
cask "audiobook-builder"
|
cask "audiobook-builder"
|
||||||
# Text editor
|
# Text editor
|
||||||
@@ -414,6 +416,7 @@ mas "Keynote", id: 409183694
|
|||||||
mas "LastPass", id: 926036361
|
mas "LastPass", id: 926036361
|
||||||
mas "Numbers", id: 409203825
|
mas "Numbers", id: 409203825
|
||||||
mas "Pages", id: 409201541
|
mas "Pages", id: 409201541
|
||||||
|
mas "Pixelmator Pro", id: 1289583905
|
||||||
mas "Tailscale", id: 1475387142
|
mas "Tailscale", id: 1475387142
|
||||||
mas "Xcode", id: 497799835
|
mas "Xcode", id: 497799835
|
||||||
vscode "akamud.vscode-theme-onelight"
|
vscode "akamud.vscode-theme-onelight"
|
||||||
@@ -435,6 +438,7 @@ vscode "esbenp.prettier-vscode"
|
|||||||
vscode "formulahendry.auto-close-tag"
|
vscode "formulahendry.auto-close-tag"
|
||||||
vscode "formulahendry.auto-rename-tag"
|
vscode "formulahendry.auto-rename-tag"
|
||||||
vscode "formulahendry.code-runner"
|
vscode "formulahendry.code-runner"
|
||||||
|
vscode "foxundermoon.shell-format"
|
||||||
vscode "gencer.html-slim-scss-css-class-completion"
|
vscode "gencer.html-slim-scss-css-class-completion"
|
||||||
vscode "github.vscode-github-actions"
|
vscode "github.vscode-github-actions"
|
||||||
vscode "GitHub.vscode-pull-request-github"
|
vscode "GitHub.vscode-pull-request-github"
|
||||||
@@ -473,6 +477,7 @@ vscode "phiter.phpstorm-snippets"
|
|||||||
vscode "sibiraj-s.vscode-scss-formatter"
|
vscode "sibiraj-s.vscode-scss-formatter"
|
||||||
vscode "SonarSource.sonarlint-vscode"
|
vscode "SonarSource.sonarlint-vscode"
|
||||||
vscode "stylelint.vscode-stylelint"
|
vscode "stylelint.vscode-stylelint"
|
||||||
|
vscode "sumneko.lua"
|
||||||
vscode "syler.sass-indented"
|
vscode "syler.sass-indented"
|
||||||
vscode "timonwong.shellcheck"
|
vscode "timonwong.shellcheck"
|
||||||
vscode "tootone.org-mode"
|
vscode "tootone.org-mode"
|
||||||
@@ -481,6 +486,7 @@ vscode "Vue.volar"
|
|||||||
vscode "Vue.vscode-typescript-vue-plugin"
|
vscode "Vue.vscode-typescript-vue-plugin"
|
||||||
vscode "WakaTime.vscode-wakatime"
|
vscode "WakaTime.vscode-wakatime"
|
||||||
vscode "wix.vscode-import-cost"
|
vscode "wix.vscode-import-cost"
|
||||||
|
vscode "XadillaX.viml"
|
||||||
vscode "xdebug.php-debug"
|
vscode "xdebug.php-debug"
|
||||||
vscode "xdebug.php-pack"
|
vscode "xdebug.php-pack"
|
||||||
vscode "yinfei.luahelper"
|
vscode "yinfei.luahelper"
|
||||||
|
|||||||
@@ -1,417 +1,410 @@
|
|||||||
{
|
{
|
||||||
"Badge Text" : "",
|
"Badge Text": "",
|
||||||
"Working Directory" : "\/Users\/ivuorinen\/Code",
|
"Working Directory": "/Users/ivuorinen/Code",
|
||||||
"Prompt Before Closing 2" : false,
|
"Prompt Before Closing 2": false,
|
||||||
"Selected Text Color" : {
|
"Selected Text Color": {
|
||||||
"Red Component" : 0.80392156862745101,
|
"Red Component": 0.80392156862745101,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.95686274509803926,
|
"Blue Component": 0.95686274509803926,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.83921568627450982
|
"Green Component": 0.83921568627450982
|
||||||
},
|
},
|
||||||
"Rows" : 25,
|
"Rows": 25,
|
||||||
"Ansi 11 Color" : {
|
"Ansi 11 Color": {
|
||||||
"Red Component" : 0.97647058823529409,
|
"Red Component": 0.97647058823529409,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.68627450980392157,
|
"Blue Component": 0.68627450980392157,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.88627450980392153
|
"Green Component": 0.88627450980392153
|
||||||
},
|
},
|
||||||
"Use Italic Font" : true,
|
"Use Italic Font": true,
|
||||||
"Foreground Color" : {
|
"Foreground Color": {
|
||||||
"Red Component" : 0.80392156862745101,
|
"Red Component": 0.80392156862745101,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.95686274509803926,
|
"Blue Component": 0.95686274509803926,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.83921568627450982
|
"Green Component": 0.83921568627450982
|
||||||
},
|
},
|
||||||
"Right Option Key Sends" : 0,
|
"Right Option Key Sends": 0,
|
||||||
"Character Encoding" : 4,
|
"Character Encoding": 4,
|
||||||
"Selection Color" : {
|
"Selection Color": {
|
||||||
"Red Component" : 0.34509803921568627,
|
"Red Component": 0.34509803921568627,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.4392156862745098,
|
"Blue Component": 0.4392156862745098,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.35686274509803922
|
"Green Component": 0.35686274509803922
|
||||||
},
|
},
|
||||||
"Blend" : 0.24709154211956524,
|
"Blend": 0.24709154211956524,
|
||||||
"Mouse Reporting" : true,
|
"Mouse Reporting": true,
|
||||||
"Cursor Boost" : 0,
|
"Cursor Boost": 0,
|
||||||
"Ansi 4 Color" : {
|
"Ansi 4 Color": {
|
||||||
"Red Component" : 0.53725490196078429,
|
"Red Component": 0.53725490196078429,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.98039215686274506,
|
"Blue Component": 0.98039215686274506,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.70588235294117652
|
"Green Component": 0.70588235294117652
|
||||||
},
|
},
|
||||||
"Non-ASCII Anti Aliased" : true,
|
"Non-ASCII Anti Aliased": true,
|
||||||
"Sync Title" : false,
|
"Sync Title": false,
|
||||||
"Badge Font" : "JetBrainsMonoNerdFontCompleteM-Bold",
|
"Badge Font": "JetBrainsMonoNerdFontCompleteM-Bold",
|
||||||
"Disable Window Resizing" : true,
|
"Disable Window Resizing": true,
|
||||||
"Description" : "Default",
|
"Description": "Default",
|
||||||
"Close Sessions On End" : true,
|
"Close Sessions On End": true,
|
||||||
"Jobs to Ignore" : [
|
"Jobs to Ignore": ["rlogin", "ssh", "slogin", "telnet"],
|
||||||
"rlogin",
|
"Scrollback Lines": 0,
|
||||||
"ssh",
|
"Draw Powerline Glyphs": true,
|
||||||
"slogin",
|
"Flashing Bell": true,
|
||||||
"telnet"
|
"Cursor Guide Color": {
|
||||||
],
|
"Red Component": 0.80392156862745101,
|
||||||
"Scrollback Lines" : 0,
|
"Color Space": "sRGB",
|
||||||
"Draw Powerline Glyphs" : true,
|
"Blue Component": 0.95686274509803926,
|
||||||
"Flashing Bell" : true,
|
"Alpha Component": 0.070000000000000007,
|
||||||
"Cursor Guide Color" : {
|
"Green Component": 0.83921568627450982
|
||||||
"Red Component" : 0.80392156862745101,
|
|
||||||
"Color Space" : "sRGB",
|
|
||||||
"Blue Component" : 0.95686274509803926,
|
|
||||||
"Alpha Component" : 0.070000000000000007,
|
|
||||||
"Green Component" : 0.83921568627450982
|
|
||||||
},
|
},
|
||||||
"BM Growl" : true,
|
"BM Growl": true,
|
||||||
"Ansi 3 Color" : {
|
"Ansi 3 Color": {
|
||||||
"Red Component" : 0.97647058823529409,
|
"Red Component": 0.97647058823529409,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.68627450980392157,
|
"Blue Component": 0.68627450980392157,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.88627450980392153
|
"Green Component": 0.88627450980392153
|
||||||
},
|
},
|
||||||
"Icon" : 1,
|
"Icon": 1,
|
||||||
"Use Non-ASCII Font" : false,
|
"Use Non-ASCII Font": false,
|
||||||
"Link Color" : {
|
"Link Color": {
|
||||||
"Red Component" : 0.53725490196078429,
|
"Red Component": 0.53725490196078429,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.92156862745098034,
|
"Blue Component": 0.92156862745098034,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.86274509803921573
|
"Green Component": 0.86274509803921573
|
||||||
},
|
},
|
||||||
"Shortcut" : "",
|
"Shortcut": "",
|
||||||
"Background Image Location" : "",
|
"Background Image Location": "",
|
||||||
"Bold Color" : {
|
"Bold Color": {
|
||||||
"Red Component" : 0.80392156862745101,
|
"Red Component": 0.80392156862745101,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.95686274509803926,
|
"Blue Component": 0.95686274509803926,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.83921568627450982
|
"Green Component": 0.83921568627450982
|
||||||
},
|
},
|
||||||
"Use Cursor Guide" : false,
|
"Use Cursor Guide": false,
|
||||||
"Unlimited Scrollback" : true,
|
"Unlimited Scrollback": true,
|
||||||
"Custom Command" : "No",
|
"Custom Command": "No",
|
||||||
"Title Components" : 512,
|
"Title Components": 512,
|
||||||
"Keyboard Map" : {
|
"Keyboard Map": {
|
||||||
"0xf700-0x260000" : {
|
"0xf700-0x260000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;6A"
|
"Text": "[1;6A"
|
||||||
},
|
},
|
||||||
"0x37-0x40000" : {
|
"0x37-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1f"
|
"Text": "0x1f"
|
||||||
},
|
},
|
||||||
"0x32-0x40000" : {
|
"0x32-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x00"
|
"Text": "0x00"
|
||||||
},
|
},
|
||||||
"0xf709-0x20000" : {
|
"0xf709-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[17;2~"
|
"Text": "[17;2~"
|
||||||
},
|
},
|
||||||
"0xf70c-0x20000" : {
|
"0xf70c-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[20;2~"
|
"Text": "[20;2~"
|
||||||
},
|
},
|
||||||
"0xf729-0x20000" : {
|
"0xf729-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2H"
|
"Text": "[1;2H"
|
||||||
},
|
},
|
||||||
"0xf72b-0x40000" : {
|
"0xf72b-0x40000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5F"
|
"Text": "[1;5F"
|
||||||
},
|
},
|
||||||
"0xf705-0x20000" : {
|
"0xf705-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2Q"
|
"Text": "[1;2Q"
|
||||||
},
|
},
|
||||||
"0xf703-0x260000" : {
|
"0xf703-0x260000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;6C"
|
"Text": "[1;6C"
|
||||||
},
|
},
|
||||||
"0xf700-0x220000" : {
|
"0xf700-0x220000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2A"
|
"Text": "[1;2A"
|
||||||
},
|
},
|
||||||
"0xf701-0x280000" : {
|
"0xf701-0x280000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1b 0x1b 0x5b 0x42"
|
"Text": "0x1b 0x1b 0x5b 0x42"
|
||||||
},
|
},
|
||||||
"0x38-0x40000" : {
|
"0x38-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x7f"
|
"Text": "0x7f"
|
||||||
},
|
},
|
||||||
"0x33-0x40000" : {
|
"0x33-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1b"
|
"Text": "0x1b"
|
||||||
},
|
},
|
||||||
"0xf703-0x220000" : {
|
"0xf703-0x220000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2C"
|
"Text": "[1;2C"
|
||||||
},
|
},
|
||||||
"0xf701-0x240000" : {
|
"0xf701-0x240000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5B"
|
"Text": "[1;5B"
|
||||||
},
|
},
|
||||||
"0xf70d-0x20000" : {
|
"0xf70d-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[21;2~"
|
"Text": "[21;2~"
|
||||||
},
|
},
|
||||||
"0xf702-0x260000" : {
|
"0xf702-0x260000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;6D"
|
"Text": "[1;6D"
|
||||||
},
|
},
|
||||||
"0xf729-0x40000" : {
|
"0xf729-0x40000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5H"
|
"Text": "[1;5H"
|
||||||
},
|
},
|
||||||
"0xf706-0x20000" : {
|
"0xf706-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2R"
|
"Text": "[1;2R"
|
||||||
},
|
},
|
||||||
"0x34-0x40000" : {
|
"0x34-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1c"
|
"Text": "0x1c"
|
||||||
},
|
},
|
||||||
"0xf700-0x280000" : {
|
"0xf700-0x280000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1b 0x1b 0x5b 0x41"
|
"Text": "0x1b 0x1b 0x5b 0x41"
|
||||||
},
|
},
|
||||||
"0x2d-0x40000" : {
|
"0x2d-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1f"
|
"Text": "0x1f"
|
||||||
},
|
},
|
||||||
"0xf70e-0x20000" : {
|
"0xf70e-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[23;2~"
|
"Text": "[23;2~"
|
||||||
},
|
},
|
||||||
"0xf702-0x220000" : {
|
"0xf702-0x220000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2D"
|
"Text": "[1;2D"
|
||||||
},
|
},
|
||||||
"0xf703-0x280000" : {
|
"0xf703-0x280000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1b 0x1b 0x5b 0x43"
|
"Text": "0x1b 0x1b 0x5b 0x43"
|
||||||
},
|
},
|
||||||
"0xf700-0x240000" : {
|
"0xf700-0x240000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5A"
|
"Text": "[1;5A"
|
||||||
},
|
},
|
||||||
"0xf707-0x20000" : {
|
"0xf707-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2S"
|
"Text": "[1;2S"
|
||||||
},
|
},
|
||||||
"0xf70a-0x20000" : {
|
"0xf70a-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[18;2~"
|
"Text": "[18;2~"
|
||||||
},
|
},
|
||||||
"0x35-0x40000" : {
|
"0x35-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1d"
|
"Text": "0x1d"
|
||||||
},
|
},
|
||||||
"0xf70f-0x20000" : {
|
"0xf70f-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[24;2~"
|
"Text": "[24;2~"
|
||||||
},
|
},
|
||||||
"0xf703-0x240000" : {
|
"0xf703-0x240000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5C"
|
"Text": "[1;5C"
|
||||||
},
|
},
|
||||||
"0xf701-0x260000" : {
|
"0xf701-0x260000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;6B"
|
"Text": "[1;6B"
|
||||||
},
|
},
|
||||||
"0xf702-0x280000" : {
|
"0xf702-0x280000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1b 0x1b 0x5b 0x44"
|
"Text": "0x1b 0x1b 0x5b 0x44"
|
||||||
},
|
},
|
||||||
"0xf72b-0x20000" : {
|
"0xf72b-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2F"
|
"Text": "[1;2F"
|
||||||
},
|
},
|
||||||
"0x36-0x40000" : {
|
"0x36-0x40000": {
|
||||||
"Action" : 11,
|
"Action": 11,
|
||||||
"Text" : "0x1e"
|
"Text": "0x1e"
|
||||||
},
|
},
|
||||||
"0xf708-0x20000" : {
|
"0xf708-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[15;2~"
|
"Text": "[15;2~"
|
||||||
},
|
},
|
||||||
"0xf701-0x220000" : {
|
"0xf701-0x220000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2B"
|
"Text": "[1;2B"
|
||||||
},
|
},
|
||||||
"0xf70b-0x20000" : {
|
"0xf70b-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[19;2~"
|
"Text": "[19;2~"
|
||||||
},
|
},
|
||||||
"0xf702-0x240000" : {
|
"0xf702-0x240000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;5D"
|
"Text": "[1;5D"
|
||||||
},
|
},
|
||||||
"0xf704-0x20000" : {
|
"0xf704-0x20000": {
|
||||||
"Action" : 10,
|
"Action": 10,
|
||||||
"Text" : "[1;2P"
|
"Text": "[1;2P"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Ansi 14 Color" : {
|
"Ansi 14 Color": {
|
||||||
"Red Component" : 0.58039215686274515,
|
"Red Component": 0.58039215686274515,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.83529411764705885,
|
"Blue Component": 0.83529411764705885,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.88627450980392153
|
"Green Component": 0.88627450980392153
|
||||||
},
|
},
|
||||||
"Ansi 2 Color" : {
|
"Ansi 2 Color": {
|
||||||
"Red Component" : 0.65098039215686276,
|
"Red Component": 0.65098039215686276,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.63137254901960782,
|
"Blue Component": 0.63137254901960782,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.8901960784313725
|
"Green Component": 0.8901960784313725
|
||||||
},
|
},
|
||||||
"Send Code When Idle" : false,
|
"Send Code When Idle": false,
|
||||||
"ASCII Anti Aliased" : true,
|
"ASCII Anti Aliased": true,
|
||||||
"Tags" : [
|
"Tags": [],
|
||||||
|
"Ansi 9 Color": {
|
||||||
],
|
"Red Component": 0.95294117647058818,
|
||||||
"Ansi 9 Color" : {
|
"Color Space": "sRGB",
|
||||||
"Red Component" : 0.95294117647058818,
|
"Blue Component": 0.6588235294117647,
|
||||||
"Color Space" : "sRGB",
|
"Alpha Component": 1,
|
||||||
"Blue Component" : 0.6588235294117647,
|
"Green Component": 0.54509803921568623
|
||||||
"Alpha Component" : 1,
|
|
||||||
"Green Component" : 0.54509803921568623
|
|
||||||
},
|
},
|
||||||
"Badge Right Margin" : 10,
|
"Badge Right Margin": 10,
|
||||||
"Use Bold Font" : true,
|
"Use Bold Font": true,
|
||||||
"Silence Bell" : false,
|
"Silence Bell": false,
|
||||||
"Ansi 12 Color" : {
|
"Ansi 12 Color": {
|
||||||
"Red Component" : 0.53725490196078429,
|
"Red Component": 0.53725490196078429,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.98039215686274506,
|
"Blue Component": 0.98039215686274506,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.70588235294117652
|
"Green Component": 0.70588235294117652
|
||||||
},
|
},
|
||||||
"Window Type" : 0,
|
"Window Type": 0,
|
||||||
"Use Bright Bold" : true,
|
"Use Bright Bold": true,
|
||||||
"Cursor Text Color" : {
|
"Cursor Text Color": {
|
||||||
"Red Component" : 0.80392156862745101,
|
"Red Component": 0.80392156862745101,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.95686274509803926,
|
"Blue Component": 0.95686274509803926,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.83921568627450982
|
"Green Component": 0.83921568627450982
|
||||||
},
|
},
|
||||||
"Default Bookmark" : "No",
|
"Default Bookmark": "No",
|
||||||
"Cursor Color" : {
|
"Cursor Color": {
|
||||||
"Red Component" : 0.96078431372549022,
|
"Red Component": 0.96078431372549022,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.86274509803921573,
|
"Blue Component": 0.86274509803921573,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.8784313725490196
|
"Green Component": 0.8784313725490196
|
||||||
},
|
},
|
||||||
"Ansi 1 Color" : {
|
"Ansi 1 Color": {
|
||||||
"Red Component" : 0.95294117647058818,
|
"Red Component": 0.95294117647058818,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.6588235294117647,
|
"Blue Component": 0.6588235294117647,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.54509803921568623
|
"Green Component": 0.54509803921568623
|
||||||
},
|
},
|
||||||
"Name" : "Default",
|
"Name": "Default",
|
||||||
"Blinking Cursor" : false,
|
"Blinking Cursor": false,
|
||||||
"Guid" : "82636119-EA17-4A26-9AA7-408172F4A9C8",
|
"Guid": "82636119-EA17-4A26-9AA7-408172F4A9C8",
|
||||||
"Badge Max Width" : 0.45000000000000001,
|
"Badge Max Width": 0.45000000000000001,
|
||||||
"Idle Code" : 0,
|
"Idle Code": 0,
|
||||||
"Ansi 10 Color" : {
|
"Ansi 10 Color": {
|
||||||
"Red Component" : 0.65098039215686276,
|
"Red Component": 0.65098039215686276,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.63137254901960782,
|
"Blue Component": 0.63137254901960782,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.8901960784313725
|
"Green Component": 0.8901960784313725
|
||||||
},
|
},
|
||||||
"Ansi 8 Color" : {
|
"Ansi 8 Color": {
|
||||||
"Red Component" : 0.34509803921568627,
|
"Red Component": 0.34509803921568627,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.4392156862745098,
|
"Blue Component": 0.4392156862745098,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.35686274509803922
|
"Green Component": 0.35686274509803922
|
||||||
},
|
},
|
||||||
"Badge Color" : {
|
"Badge Color": {
|
||||||
"Red Component" : 1,
|
"Red Component": 1,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0,
|
"Blue Component": 0,
|
||||||
"Alpha Component" : 0.5,
|
"Alpha Component": 0.5,
|
||||||
"Green Component" : 0.14910030364990234
|
"Green Component": 0.14910030364990234
|
||||||
},
|
},
|
||||||
"Smart Cursor Color" : true,
|
"Smart Cursor Color": true,
|
||||||
"Ambiguous Double Width" : false,
|
"Ambiguous Double Width": false,
|
||||||
"Blur Radius" : 9.5927277260638313,
|
"Blur Radius": 9.5927277260638313,
|
||||||
"Badge Max Height" : 0.10000000000000001,
|
"Badge Max Height": 0.10000000000000001,
|
||||||
"Ansi 0 Color" : {
|
"Ansi 0 Color": {
|
||||||
"Red Component" : 0.27058823529411763,
|
"Red Component": 0.27058823529411763,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.35294117647058826,
|
"Blue Component": 0.35294117647058826,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.27843137254901962
|
"Green Component": 0.27843137254901962
|
||||||
},
|
},
|
||||||
"Blur" : true,
|
"Blur": true,
|
||||||
"Normal Font" : "JetBrainsMonoNerdFontCompleteM-Light 15",
|
"Normal Font": "JetBrainsMonoNerdFontCompleteM-Light 15",
|
||||||
"Vertical Spacing" : 1,
|
"Vertical Spacing": 1,
|
||||||
"Ansi 7 Color" : {
|
"Ansi 7 Color": {
|
||||||
"Red Component" : 0.72941176470588232,
|
"Red Component": 0.72941176470588232,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.87058823529411766,
|
"Blue Component": 0.87058823529411766,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.76078431372549016
|
"Green Component": 0.76078431372549016
|
||||||
},
|
},
|
||||||
"Command" : "",
|
"Command": "",
|
||||||
"Terminal Type" : "xterm-256color",
|
"Terminal Type": "xterm-256color",
|
||||||
"Horizontal Spacing" : 1,
|
"Horizontal Spacing": 1,
|
||||||
"Option Key Sends" : 0,
|
"Option Key Sends": 0,
|
||||||
"Only The Default BG Color Uses Transparency" : true,
|
"Only The Default BG Color Uses Transparency": true,
|
||||||
"Minimum Contrast" : 0.14973958333333334,
|
"Minimum Contrast": 0.14973958333333334,
|
||||||
"Ansi 15 Color" : {
|
"Ansi 15 Color": {
|
||||||
"Red Component" : 0.65098039215686276,
|
"Red Component": 0.65098039215686276,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.78431372549019607,
|
"Blue Component": 0.78431372549019607,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.67843137254901964
|
"Green Component": 0.67843137254901964
|
||||||
},
|
},
|
||||||
"Ansi 6 Color" : {
|
"Ansi 6 Color": {
|
||||||
"Red Component" : 0.58039215686274515,
|
"Red Component": 0.58039215686274515,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.83529411764705885,
|
"Blue Component": 0.83529411764705885,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.88627450980392153
|
"Green Component": 0.88627450980392153
|
||||||
},
|
},
|
||||||
"Badge Top Margin" : 10,
|
"Badge Top Margin": 10,
|
||||||
"Transparency" : 0.10293218085106381,
|
"Transparency": 0.10293218085106381,
|
||||||
"Background Color" : {
|
"Background Color": {
|
||||||
"Red Component" : 0.11764705882352941,
|
"Red Component": 0.11764705882352941,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.1803921568627451,
|
"Blue Component": 0.1803921568627451,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.11764705882352941
|
"Green Component": 0.11764705882352941
|
||||||
},
|
},
|
||||||
"Screen" : -2,
|
"Screen": -2,
|
||||||
"Non Ascii Font" : "Monaco 12",
|
"Non Ascii Font": "Monaco 12",
|
||||||
"Ansi 13 Color" : {
|
"Ansi 13 Color": {
|
||||||
"Red Component" : 0.96078431372549022,
|
"Red Component": 0.96078431372549022,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.90588235294117647,
|
"Blue Component": 0.90588235294117647,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.76078431372549016
|
"Green Component": 0.76078431372549016
|
||||||
},
|
},
|
||||||
"Columns" : 120,
|
"Columns": 120,
|
||||||
"Visual Bell" : true,
|
"Visual Bell": true,
|
||||||
"ASCII Ligatures" : false,
|
"ASCII Ligatures": false,
|
||||||
"Ansi 5 Color" : {
|
"Ansi 5 Color": {
|
||||||
"Red Component" : 0.96078431372549022,
|
"Red Component": 0.96078431372549022,
|
||||||
"Color Space" : "sRGB",
|
"Color Space": "sRGB",
|
||||||
"Blue Component" : 0.90588235294117647,
|
"Blue Component": 0.90588235294117647,
|
||||||
"Alpha Component" : 1,
|
"Alpha Component": 1,
|
||||||
"Green Component" : 0.76078431372549016
|
"Green Component": 0.76078431372549016
|
||||||
},
|
},
|
||||||
"Custom Directory" : "Yes"
|
"Custom Directory": "Yes"
|
||||||
}
|
}
|
||||||
|
|||||||
5
config/nvim/.luarc.json
Normal file
5
config/nvim/.luarc.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"diagnostics.globals": [
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,64 +1,68 @@
|
|||||||
{
|
{
|
||||||
"LazyVim": { "branch": "main", "commit": "a72a84972d85e5bbc6b9d60a0983b37efef21b8a" },
|
"LazyVim": { "branch": "main", "commit": "274649e92321d615888f889476c9329f8d831e8e" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "3657c3f3cb2214a681fc7e95b6ffb509d076ebfb" },
|
"LuaSnip": { "branch": "master", "commit": "480b032f6708573334f4437d3f83307d143f1a72" },
|
||||||
"SchemaStore.nvim": { "branch": "main", "commit": "2a6a5d3e2bc8a5727b6d083d2920d12a392ed05b" },
|
"SchemaStore.nvim": { "branch": "main", "commit": "c422bf8a6955028713692506e9119862370c529f" },
|
||||||
"alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" },
|
"alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" },
|
||||||
"animation.nvim": { "branch": "main", "commit": "fb77091ab72ec9971aee0562e7081182527aaa6a" },
|
"animation.nvim": { "branch": "main", "commit": "fb77091ab72ec9971aee0562e7081182527aaa6a" },
|
||||||
"bufdelete.nvim": { "branch": "master", "commit": "07d1f8ba79dec59d42b975a4df1c732b2e4e37b4" },
|
"bufdelete.nvim": { "branch": "master", "commit": "07d1f8ba79dec59d42b975a4df1c732b2e4e37b4" },
|
||||||
"bufferline.nvim": { "branch": "main", "commit": "9961d87bb3ec008213c46ba14b3f384a5f520eb5" },
|
"bufferline.nvim": { "branch": "main", "commit": "6ecd37e0fa8b156099daedd2191130e083fb1490" },
|
||||||
"catppuccin": { "branch": "main", "commit": "85e93601e0f0b48aa2c6bbfae4d0e9d7a1898280" },
|
"catppuccin": { "branch": "main", "commit": "3d9a5ed556e289bce6c1fb0af89ec838360641b2" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
|
"cmp-emoji": { "branch": "main", "commit": "19075c36d5820253d32e2478b6aaf3734aeaafa0" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
|
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
|
||||||
"comment-box.nvim": { "branch": "main", "commit": "dd1a48f8d06102e9b87ae1e0069bc365c006979b" },
|
"comment-box.nvim": { "branch": "main", "commit": "dd1a48f8d06102e9b87ae1e0069bc365c006979b" },
|
||||||
"dressing.nvim": { "branch": "master", "commit": "c1e1d5fa44fe08811b6ef4aadac2b50e602f9504" },
|
"dressing.nvim": { "branch": "master", "commit": "c1e1d5fa44fe08811b6ef4aadac2b50e602f9504" },
|
||||||
"flash.nvim": { "branch": "main", "commit": "8a8e74922a383c253b7f92e042b749150140c8d1" },
|
"edgy.nvim": { "branch": "main", "commit": "4ccc1c67ae2b1a0c55f18c83d03b714e2bb1bae4" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "0256d8ecab33a9aa69fdaaf885db22e1103e2a3a" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "ebf6d6e83494cdd88a54a429340256f4dbb6a052" },
|
"friendly-snippets": { "branch": "main", "commit": "ebf6d6e83494cdd88a54a429340256f4dbb6a052" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "bce4576a9047085a528c479a7fe1e2f6b787b6c1" },
|
"gitsigns.nvim": { "branch": "main", "commit": "bdeba1cec3faddd89146690c10b9a87949c0ee66" },
|
||||||
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "f5335ef7493bd6adf5f2ae21d67240709a514408" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" },
|
"lazy.nvim": { "branch": "main", "commit": "7ca3bdb566c3ba4492f2d22b37c2c9e26f09470f" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "3ad55ae678876516156cca2f361c51f7952a924b" },
|
|
||||||
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "f014db32437aa61c86fc0ef1067cd2bc6a37205c" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "2451adb9bdb0fd32140bf3aa8dbc17ff60050db3" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
"mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" },
|
||||||
"middleclass": { "branch": "master", "commit": "9fab4d5bca67262614960960ca35c4740eb2be2c" },
|
"middleclass": { "branch": "master", "commit": "9fab4d5bca67262614960960ca35c4740eb2be2c" },
|
||||||
"mini.ai": { "branch": "main", "commit": "7ae226f331885e6f30e9a8229e113debc59308ae" },
|
"mini.ai": { "branch": "main", "commit": "7ae226f331885e6f30e9a8229e113debc59308ae" },
|
||||||
"mini.animate": { "branch": "main", "commit": "230140aa0b06af87c9d345573aab1aaf50d8b539" },
|
"mini.animate": { "branch": "main", "commit": "989ac014933ab5cd14ab83f2fce4b9a08ca6d81e" },
|
||||||
"mini.bufremove": { "branch": "main", "commit": "7821606e35c1ac931b56d8e3155f45ffe76ee7e5" },
|
"mini.bufremove": { "branch": "main", "commit": "7821606e35c1ac931b56d8e3155f45ffe76ee7e5" },
|
||||||
"mini.comment": { "branch": "main", "commit": "877acea5b2a32ff55f808fc0ebe9aa898648318c" },
|
"mini.comment": { "branch": "main", "commit": "877acea5b2a32ff55f808fc0ebe9aa898648318c" },
|
||||||
"mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" },
|
"mini.indentscope": { "branch": "main", "commit": "f60e9b51a6214c73a170ffc5445ce91560981031" },
|
||||||
"mini.pairs": { "branch": "main", "commit": "dfa9f6e2576bb8853be277d96b735af59d9be7c2" },
|
"mini.pairs": { "branch": "main", "commit": "dfa9f6e2576bb8853be277d96b735af59d9be7c2" },
|
||||||
"mini.surround": { "branch": "main", "commit": "9d1956b576d7051da3a483b251dfc778121c60db" },
|
"mini.surround": { "branch": "main", "commit": "9d1956b576d7051da3a483b251dfc778121c60db" },
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "2d89ca96e08eb6e9c8e50e1bb4738bc5125c9f12" },
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "71f1841ba6c652908678cece623f52c1fea8a6cd" },
|
||||||
"neoconf.nvim": { "branch": "main", "commit": "a4eb3675cb87be2e2dcb283dddc8c7aabd2c50ca" },
|
"neoconf.nvim": { "branch": "main", "commit": "2b2af4c35b4f5e85e81a567412ba31e1643a2c02" },
|
||||||
"neodev.nvim": { "branch": "main", "commit": "471324e6c746284dbbdc1d357799d1911bb7e120" },
|
"neodev.nvim": { "branch": "main", "commit": "f4abc72add7d2d986371c9d619f7b6f8297aa5ee" },
|
||||||
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
|
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "74c2902146b080035beb19944baf6f014a954720" },
|
"noice.nvim": { "branch": "main", "commit": "396f9146529130904e07c45e90ecdbfa607534f3" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
"nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" },
|
||||||
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
"nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "cc388d3f6b9c7c943ae2b2dcd46ad470fd257f91" },
|
"nvim-lspconfig": { "branch": "master", "commit": "68b23c06132cb1ef8d5690111c112388fbcf1c30" },
|
||||||
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
|
||||||
"nvim-notify": { "branch": "master", "commit": "94859430020f5cf32a1b97ddd9e596fed9db7981" },
|
"nvim-notify": { "branch": "master", "commit": "94859430020f5cf32a1b97ddd9e596fed9db7981" },
|
||||||
"nvim-regexplainer": { "branch": "main", "commit": "4250c8f3c1307876384e70eeedde5149249e154f" },
|
"nvim-regexplainer": { "branch": "main", "commit": "4250c8f3c1307876384e70eeedde5149249e154f" },
|
||||||
"nvim-spectre": { "branch": "master", "commit": "97cfd1b0f5a6ab35979ce1bee6c17f54745fd1e5" },
|
"nvim-spectre": { "branch": "master", "commit": "97cfd1b0f5a6ab35979ce1bee6c17f54745fd1e5" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "c0170e1e2c713341805ce13fe53fe4933e8471d8" },
|
"nvim-treesitter": { "branch": "master", "commit": "cc2f94ed1dfa008c23e16bbd17f56b967ceb6740" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "bd103502252027434ec42f628d2dbf54821d4ce6" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "95e9ba9de4289d221666b66fd930d157c7ca08c6" },
|
"nvim-ts-context-commentstring": { "branch": "main", "commit": "95e9ba9de4289d221666b66fd930d157c7ca08c6" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "973ab742f143a796a779af4d786ec409116a0d87" },
|
"nvim-ufo": { "branch": "main", "commit": "6f2ccdf2da390d62f8f9e15fc5ddbcbd312e1e66" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" },
|
||||||
"persistence.nvim": { "branch": "main", "commit": "4b8051c01f696d8849a5cb8afa9767be8db16e40" },
|
"persistence.nvim": { "branch": "main", "commit": "4b8051c01f696d8849a5cb8afa9767be8db16e40" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
"plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" },
|
||||||
"stickybuf.nvim": { "branch": "master", "commit": "4c667bc837e5e3fec5a8857ee99f1a229fc76df9" },
|
"promise-async": { "branch": "main", "commit": "e94f35161b8c5d4a4ca3b6ff93dd073eb9214c0e" },
|
||||||
"tabnine": { "branch": "master", "commit": "cceef1024aa1d8a17698a77c499a124fe85f1f79" },
|
"stickybuf.nvim": { "branch": "master", "commit": "e3db41f2c1bb2df3ee6ff964ee74fe991f6f9566" },
|
||||||
|
"symbols-outline.nvim": { "branch": "master", "commit": "512791925d57a61c545bc303356e8a8f7869763c" },
|
||||||
|
"tabnine": { "branch": "master", "commit": "2c06b4865415701dc638549032824664e114ee23" },
|
||||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
|
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
|
||||||
"telescope.nvim": { "branch": "master", "commit": "b543aaa2c9cf8123ed2fe7dbb6c211a9cd415124" },
|
"telescope.nvim": { "branch": "master", "commit": "84d53dfdbefbdf84e861a288abc71ef8ccafd04e" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" },
|
"todo-comments.nvim": { "branch": "main", "commit": "3094ead8edfa9040de2421deddec55d3762f64d1" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "9a01eada39558dc3243278e6805d90e8dff45dc0" },
|
"tokyonight.nvim": { "branch": "main", "commit": "e89caa3ad6d8da9d0dd981ec74a82c55adc61ffd" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "3f85d8ed30e97ceeddbbcf80224245d347053711" },
|
"trouble.nvim": { "branch": "main", "commit": "3f85d8ed30e97ceeddbbcf80224245d347053711" },
|
||||||
"typescript.nvim": { "branch": "main", "commit": "4de85ef699d7e6010528dcfbddc2ed4c2c421467" },
|
"typescript.nvim": { "branch": "main", "commit": "4de85ef699d7e6010528dcfbddc2ed4c2c421467" },
|
||||||
"venv-selector.nvim": { "branch": "main", "commit": "14d6e866070f759e9014a8053954f835294f56f9" },
|
"venv-selector.nvim": { "branch": "main", "commit": "14d6e866070f759e9014a8053954f835294f56f9" },
|
||||||
"vim-illuminate": { "branch": "master", "commit": "8c910b2f84ae6acd9b4b17330bb94dd783c0c11a" },
|
"vim-illuminate": { "branch": "master", "commit": "1b5d70332a51a1de05f281069851865a2bb1e6d7" },
|
||||||
"vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
|
"vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
|
||||||
"vim-wakatime": { "branch": "master", "commit": "0d2efa2daff34b27b0d227d4c3b136811c93db93" },
|
"vim-wakatime": { "branch": "master", "commit": "0d2efa2daff34b27b0d227d4c3b136811c93db93" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" },
|
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" },
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
-- Keymaps are automatically loaded on the VeryLazy event
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
-- Add any additional keymaps here
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
local keymap = vim.keymap.set
|
||||||
|
|
||||||
|
-- ╭──────────────────────────────────────────────────────────╮
|
||||||
|
-- │ Comment box │
|
||||||
|
-- ╰──────────────────────────────────────────────────────────╯
|
||||||
|
local cb = require("comment-box")
|
||||||
|
|
||||||
|
-- left aligned fixed size box with left aligned text
|
||||||
|
keymap({ "n", "v" }, "<Leader>bcb", cb.lbox, { desc = "Comment: Left aligned" })
|
||||||
|
-- centered adapted box with centered text
|
||||||
|
keymap({ "n", "v" }, "<Leader>bcc", cb.ccbox, { desc = "Comment: Centered" })
|
||||||
|
|
||||||
|
-- centered line
|
||||||
|
keymap("n", "<Leader>bcl", cb.cline, { desc = "Comment: Centered line" })
|
||||||
|
keymap("i", "<M-l>", cb.cline, { desc = "Comment: Centered line" })
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ require("lazy").setup({
|
|||||||
{
|
{
|
||||||
"LazyVim/LazyVim",
|
"LazyVim/LazyVim",
|
||||||
import = "lazyvim.plugins",
|
import = "lazyvim.plugins",
|
||||||
opts = {
|
|
||||||
colorscheme = "catppuccin",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
-- import any extras modules here
|
-- import any extras modules here
|
||||||
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||||
@@ -27,6 +24,7 @@ require("lazy").setup({
|
|||||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||||
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||||
{ import = "lazyvim.plugins.extras.linting.eslint" },
|
{ import = "lazyvim.plugins.extras.linting.eslint" },
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.edgy" },
|
||||||
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
|
{ import = "lazyvim.plugins.extras.ui.mini-animate" },
|
||||||
-- import/override with your plugins
|
-- import/override with your plugins
|
||||||
{ import = "plugins" },
|
{ import = "plugins" },
|
||||||
@@ -40,7 +38,7 @@ require("lazy").setup({
|
|||||||
version = false, -- always use the latest git commit
|
version = false, -- always use the latest git commit
|
||||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
},
|
},
|
||||||
install = { colorscheme = { "catppuccin", "tokyonight", "habamax" } },
|
install = { colorscheme = { "tokyonight" } },
|
||||||
checker = { enabled = true }, -- automatically check for plugin updates
|
checker = { enabled = true }, -- automatically check for plugin updates
|
||||||
performance = {
|
performance = {
|
||||||
rtp = {
|
rtp = {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ local opt = vim.opt
|
|||||||
|
|
||||||
opt.number = true
|
opt.number = true
|
||||||
opt.relativenumber = true
|
opt.relativenumber = true
|
||||||
|
opt.modeline = true
|
||||||
|
|
||||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||||
-- vim: ts=2 sts=2 sw=2 et
|
-- vim: ts=2 sts=2 sw=2 et
|
||||||
|
|||||||
@@ -65,25 +65,34 @@ return {
|
|||||||
auto = true,
|
auto = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Clarify and beautify your comments using boxes and lines.
|
-- Clarify and beautify your comments using boxes and lines.
|
||||||
-- https://github.com/LudoPinelli/comment-box.nvim
|
-- https://github.com/LudoPinelli/comment-box.nvim
|
||||||
{ "LudoPinelli/comment-box.nvim", opts = {} },
|
{ "LudoPinelli/comment-box.nvim", opts = {} },
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"stylua",
|
||||||
|
"shellcheck",
|
||||||
|
"shfmt",
|
||||||
|
"flake8",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
-- Tabnine Client for Neovim
|
-- Tabnine Client for Neovim
|
||||||
-- https://github.com/codota/tabnine-nvim
|
-- https://github.com/codota/tabnine-nvim
|
||||||
{
|
{
|
||||||
"codota/tabnine-nvim",
|
"codota/tabnine-nvim",
|
||||||
name = "tabnine",
|
name = "tabnine",
|
||||||
|
-- enabled = false,
|
||||||
build = vim.loop.os_uname().sysname == "Windows_NT" and "pwsh.exe -file .\\dl_binaries.ps1" or "./dl_binaries.sh",
|
build = vim.loop.os_uname().sysname == "Windows_NT" and "pwsh.exe -file .\\dl_binaries.ps1" or "./dl_binaries.sh",
|
||||||
cmd = { "TabnineStatus", "TabnineDisable", "TabnineEnable", "TabnineToggle" },
|
cmd = { "TabnineStatus", "TabnineDisable", "TabnineEnable", "TabnineToggle" },
|
||||||
event = "User",
|
event = "User",
|
||||||
opts = {
|
opts = {
|
||||||
accept_keymap = "<C-CR>",
|
accept_keymap = "<C-e>",
|
||||||
dismiss_keymap = "<C-Esc>",
|
dismiss_keymap = "<C-Esc>",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Vim plugin for automatic time tracking and metrics generated from your programming activity.
|
-- Vim plugin for automatic time tracking and metrics generated from your programming activity.
|
||||||
-- https://github.com/wakatime/vim-wakatime
|
-- https://github.com/wakatime/vim-wakatime
|
||||||
{ "wakatime/vim-wakatime", lazy = false, enabled = true },
|
{ "wakatime/vim-wakatime", lazy = false, enabled = true },
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ return {
|
|||||||
init = function()
|
init = function()
|
||||||
require("lazyvim.util").on_attach(function(_, buffer)
|
require("lazyvim.util").on_attach(function(_, buffer)
|
||||||
-- stylua: ignore
|
-- stylua: ignore
|
||||||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
vim.keymap.set("n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
|
|||||||
47
config/nvim/lua/plugins/lang-php.lua
Normal file
47
config/nvim/lua/plugins/lang-php.lua
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = function(_, opts)
|
||||||
|
vim.list_extend(opts.ensure_installed, {
|
||||||
|
"php",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
vim.list_extend(opts.ensure_installed, {
|
||||||
|
"phpactor",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
servers = {
|
||||||
|
phpactor = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mfussenegger/nvim-dap",
|
||||||
|
optional = true,
|
||||||
|
dependencies = {
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
if type(opts.ensure_installed) == "table" then
|
||||||
|
table.insert(opts.ensure_installed, "php-debug-adapter")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
local dap = require("dap")
|
||||||
|
local path = require("mason-registry").get_package("php-debug-adapter"):get_install_path()
|
||||||
|
dap.adapters.php = {
|
||||||
|
type = "executable",
|
||||||
|
command = "node",
|
||||||
|
args = { path .. "/extension/out/phpDebug.js" },
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
return {
|
return {
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
servers = { eslint = {} },
|
servers = {
|
||||||
|
eslint = {},
|
||||||
|
tflint = {},
|
||||||
|
},
|
||||||
setup = {
|
setup = {
|
||||||
eslint = function()
|
eslint = function()
|
||||||
require("lazyvim.util").on_attach(function(client)
|
require("lazyvim.util").on_attach(function(client)
|
||||||
|
|||||||
53
config/nvim/lua/plugins/supertab.lua
Normal file
53
config/nvim/lua/plugins/supertab.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
return {
|
||||||
|
-- Use <tab> for completion and snippets (supertab)
|
||||||
|
-- first: disable default <tab> and <s-tab> behavior in LuaSnip
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
keys = function()
|
||||||
|
return {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- then: setup supertab in cmp
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = {
|
||||||
|
"hrsh7th/cmp-emoji",
|
||||||
|
},
|
||||||
|
---@param opts cmp.ConfigSchema
|
||||||
|
opts = function(_, opts)
|
||||||
|
local has_words_before = function()
|
||||||
|
unpack = unpack or table.unpack
|
||||||
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
|
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local luasnip = require("luasnip")
|
||||||
|
local cmp = require("cmp")
|
||||||
|
|
||||||
|
opts.mapping = vim.tbl_extend("force", opts.mapping, {
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
|
||||||
|
-- this way you will only jump inside the snippet region
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
elseif has_words_before() then
|
||||||
|
cmp.complete()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
24
config/nvim/lua/plugins/tools.lua
Normal file
24
config/nvim/lua/plugins/tools.lua
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"actionlint",
|
||||||
|
"ansible-lint",
|
||||||
|
"bash-language-server",
|
||||||
|
"commitlint",
|
||||||
|
"flake8",
|
||||||
|
"intelephense",
|
||||||
|
"jsonlint",
|
||||||
|
"luacheck",
|
||||||
|
"phpcs",
|
||||||
|
"phpmd",
|
||||||
|
"shellcheck",
|
||||||
|
"shfmt",
|
||||||
|
"stylelint",
|
||||||
|
"stylua",
|
||||||
|
"yamllint",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
23
config/nvim/lua/plugins/treesitter.lua
Normal file
23
config/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"bash",
|
||||||
|
"html",
|
||||||
|
"javascript",
|
||||||
|
"json",
|
||||||
|
"lua",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"python",
|
||||||
|
"query",
|
||||||
|
"regex",
|
||||||
|
"tsx",
|
||||||
|
"typescript",
|
||||||
|
"vim",
|
||||||
|
"yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,22 +1,92 @@
|
|||||||
-- luacheck: globals vim
|
-- luacheck: globals vim
|
||||||
return {
|
return {
|
||||||
-- The theme of choise, catppuccin
|
|
||||||
-- https://github.com/catppuccin/nvim
|
|
||||||
{
|
{
|
||||||
"catppuccin/nvim",
|
"folke/tokyonight.nvim",
|
||||||
name = "catppuccin",
|
|
||||||
priority = 1000,
|
|
||||||
enabled = true,
|
|
||||||
config = function()
|
|
||||||
vim.cmd.colorscheme("catppuccin")
|
|
||||||
end,
|
|
||||||
opts = {
|
opts = {
|
||||||
flavour = "mocha",
|
transparent = true,
|
||||||
|
styles = {
|
||||||
|
sidebars = "transparent",
|
||||||
|
floats = "transparent",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
-- Getting you where you want with the fewest keystrokes.
|
-- Not UFO in the sky, but an ultra fold in Neovim.
|
||||||
-- https://github.com/ThePrimeagen/harpoon
|
-- https://github.com/kevinhwang91/nvim-ufo/
|
||||||
{ "ThePrimeagen/harpoon" },
|
{
|
||||||
|
"kevinhwang91/nvim-ufo",
|
||||||
|
lazy = false,
|
||||||
|
enabled = true,
|
||||||
|
dependencies = {
|
||||||
|
"kevinhwang91/promise-async",
|
||||||
|
{ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" },
|
||||||
|
},
|
||||||
|
init = function()
|
||||||
|
vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
|
||||||
|
vim.o.foldcolumn = "1" -- '0' is not bad
|
||||||
|
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
|
||||||
|
vim.o.foldlevelstart = 99
|
||||||
|
vim.o.foldenable = true
|
||||||
|
end,
|
||||||
|
opts = {
|
||||||
|
open_fold_hl_timeout = 150,
|
||||||
|
close_fold_kinds = { "imports", "comment" },
|
||||||
|
preview = {
|
||||||
|
win_config = {
|
||||||
|
border = { "", "─", "", "", "", "─", "", "" },
|
||||||
|
winhighlight = "Normal:Folded",
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
scrollU = "<C-u>",
|
||||||
|
scrollD = "<C-d>",
|
||||||
|
jumpTop = "[",
|
||||||
|
jumpBot = "]",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
provider_selector = function(_, _, _) -- bufnr, filetype, buftype
|
||||||
|
return { "treesitter", "indent" }
|
||||||
|
end,
|
||||||
|
fold_virt_text_handler = function(virtText, lnum, endLnum, width, truncate)
|
||||||
|
local newVirtText = {}
|
||||||
|
local suffix = (" %d "):format(endLnum - lnum)
|
||||||
|
local sufWidth = vim.fn.strdisplaywidth(suffix)
|
||||||
|
local targetWidth = width - sufWidth
|
||||||
|
local curWidth = 0
|
||||||
|
for _, chunk in ipairs(virtText) do
|
||||||
|
local chunkText = chunk[1]
|
||||||
|
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||||
|
if targetWidth > curWidth + chunkWidth then
|
||||||
|
table.insert(newVirtText, chunk)
|
||||||
|
else
|
||||||
|
chunkText = truncate(chunkText, targetWidth - curWidth)
|
||||||
|
local hlGroup = chunk[2]
|
||||||
|
table.insert(newVirtText, { chunkText, hlGroup })
|
||||||
|
chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
||||||
|
-- str width returned from truncate() may less than 2nd argument, need padding
|
||||||
|
if curWidth + chunkWidth < targetWidth then
|
||||||
|
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end
|
||||||
|
curWidth = curWidth + chunkWidth
|
||||||
|
end
|
||||||
|
table.insert(newVirtText, { suffix, "MoreMsg" })
|
||||||
|
return newVirtText
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"simrat39/symbols-outline.nvim",
|
||||||
|
cmd = "SymbolsOutline",
|
||||||
|
keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
|
||||||
|
config = true,
|
||||||
|
},
|
||||||
|
-- Indent guides for Neovim
|
||||||
|
-- https://github.com/lukas-reineke/indent-blankline.nvim
|
||||||
|
{ "lukas-reineke/indent-blankline.nvim" },
|
||||||
|
-- Git integration for buffers
|
||||||
|
-- https://github.com/lewis6991/gitsigns.nvim
|
||||||
|
{ "lewis6991/gitsigns.nvim" },
|
||||||
-- Close buffer without messing up with the window.
|
-- Close buffer without messing up with the window.
|
||||||
-- https://github.com/famiu/bufdelete.nvim
|
-- https://github.com/famiu/bufdelete.nvim
|
||||||
{ "famiu/bufdelete.nvim" },
|
{ "famiu/bufdelete.nvim" },
|
||||||
@@ -33,7 +103,7 @@ return {
|
|||||||
"anuvyklack/animation.nvim",
|
"anuvyklack/animation.nvim",
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
vim.o.winwidth = 10
|
vim.o.winwidth = 15
|
||||||
vim.o.winminwidth = 10
|
vim.o.winminwidth = 10
|
||||||
vim.o.equalalways = false
|
vim.o.equalalways = false
|
||||||
require("windows").setup()
|
require("windows").setup()
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ $directory\
|
|||||||
$git_branch\
|
$git_branch\
|
||||||
$git_state\
|
$git_state\
|
||||||
$git_status\
|
$git_status\
|
||||||
$fill\
|
$fill \
|
||||||
$battery\
|
$battery\
|
||||||
$username\
|
$username\
|
||||||
$hostname\
|
$hostname\
|
||||||
@@ -23,7 +23,7 @@ $line_break\
|
|||||||
$character"""
|
$character"""
|
||||||
|
|
||||||
# Timeout for commands executed by starship (in milliseconds).
|
# Timeout for commands executed by starship (in milliseconds).
|
||||||
# command_timeout = 1000
|
command_timeout = 1500
|
||||||
|
|
||||||
[character]
|
[character]
|
||||||
success_symbol = "[→](bold green)"
|
success_symbol = "[→](bold green)"
|
||||||
@@ -40,19 +40,23 @@ disabled = true
|
|||||||
[directory]
|
[directory]
|
||||||
read_only = " "
|
read_only = " "
|
||||||
style = "blue"
|
style = "blue"
|
||||||
|
before_repo_root_style = "white"
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
|
||||||
[docker_context]
|
[docker_context]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
format = '[$symbol$context]($style) '
|
||||||
|
|
||||||
[fill]
|
[fill]
|
||||||
symbol = '·'
|
symbol = '·'
|
||||||
style = 'bold black'
|
style = 'bold black'
|
||||||
|
|
||||||
[gcloud]
|
[gcloud]
|
||||||
format = ' [($symbol)$account(@$domain)(\($region\))]($style) '
|
format = '[($symbol)$account(@$domain)(\($region\))]($style) '
|
||||||
|
|
||||||
[git_branch]
|
[git_branch]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
format = '[$symbol$branch(:$remote_branch)]($style) '
|
||||||
truncation_length = 20
|
truncation_length = 20
|
||||||
truncation_symbol = '…'
|
truncation_symbol = '…'
|
||||||
ignore_branches = ['master', 'main']
|
ignore_branches = ['master', 'main']
|
||||||
@@ -72,9 +76,15 @@ disabled = false
|
|||||||
|
|
||||||
[golang]
|
[golang]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
|
format = '[$symbol($version )]($style) '
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
ssh_symbol = " "
|
ssh_symbol = " "
|
||||||
|
ssh_only = false
|
||||||
|
format = '[$ssh_symbol](bold blue)[$hostname](bold red) '
|
||||||
|
|
||||||
|
[lua]
|
||||||
|
format = '[$symbol($version )]($style)'
|
||||||
|
|
||||||
[nodejs]
|
[nodejs]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
@@ -139,5 +149,7 @@ version_format = '${major}.${minor}'
|
|||||||
[python]
|
[python]
|
||||||
symbol = " "
|
symbol = " "
|
||||||
format = "[$virtualenv]($style) "
|
format = "[$virtualenv]($style) "
|
||||||
style = "bright-black"
|
|
||||||
|
[username]
|
||||||
|
format = "[$user]($style) "
|
||||||
|
|
||||||
|
|||||||
1
config/tmux/plugins/tmux-window-name
Submodule
1
config/tmux/plugins/tmux-window-name
Submodule
Submodule config/tmux/plugins/tmux-window-name added at f89e9c9d71
@@ -67,6 +67,9 @@ bind p paste-buffer
|
|||||||
# │ Settings │
|
# │ Settings │
|
||||||
# ╰──────────────────────────────────────────────────────────╯
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
# Expose window title
|
||||||
|
set-option -g set-titles on
|
||||||
|
|
||||||
# Mouse support
|
# Mouse support
|
||||||
set -g mouse on
|
set -g mouse on
|
||||||
|
|
||||||
@@ -94,6 +97,7 @@ set -g @tpm_plugins ' \
|
|||||||
catppuccin/tmux \
|
catppuccin/tmux \
|
||||||
tmux-plugins/tmux-continuum \
|
tmux-plugins/tmux-continuum \
|
||||||
jaclu/tmux-menus \
|
jaclu/tmux-menus \
|
||||||
|
ofirgall/tmux-window-name \
|
||||||
tmux-plugins/tmux-resurrect \
|
tmux-plugins/tmux-resurrect \
|
||||||
tmux-plugins/tmux-sensible \
|
tmux-plugins/tmux-sensible \
|
||||||
tmux-plugins/tmux-sessionist \
|
tmux-plugins/tmux-sessionist \
|
||||||
@@ -108,6 +112,13 @@ set -g @tpm_plugins ' \
|
|||||||
## https://github.com/jaclu/tmux-menus
|
## https://github.com/jaclu/tmux-menus
|
||||||
set -g @menus_trigger 'm'
|
set -g @menus_trigger 'm'
|
||||||
|
|
||||||
|
## A plugin to name your tmux windows smartly.
|
||||||
|
## https://github.com/ofirgall/tmux-window-name
|
||||||
|
### Maximum name length of a window
|
||||||
|
set -g @tmux_window_name_max_name_len "20"
|
||||||
|
### Replace $HOME with ~ in window names
|
||||||
|
set -g @tmux_window_name_use_tilde "True"
|
||||||
|
|
||||||
## https://github.com/catppuccin/tmux
|
## https://github.com/catppuccin/tmux
|
||||||
set -g @catppuccin_flavour "mocha" # latte/frappe/macchiato/mocha
|
set -g @catppuccin_flavour "mocha" # latte/frappe/macchiato/mocha
|
||||||
set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs
|
set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs
|
||||||
@@ -129,6 +140,7 @@ set -g @continuum-boot 'on'
|
|||||||
|
|
||||||
## https://github.com/tmux-plugins/tmux-resurrect
|
## https://github.com/tmux-plugins/tmux-resurrect
|
||||||
set -g @resurrect-strategy-nvim 'session'
|
set -g @resurrect-strategy-nvim 'session'
|
||||||
|
set -g @resurrect-dir '$HOME/.local/state/tmux/tmux-resurrect'
|
||||||
|
|
||||||
# Finally run the tmux plugin manager
|
# Finally run the tmux plugin manager
|
||||||
run '~/.dotfiles/config/tmux/plugins/tpm/tpm'
|
run '~/.dotfiles/config/tmux/plugins/tpm/tpm'
|
||||||
|
|||||||
@@ -20,62 +20,62 @@ wtf:
|
|||||||
# that support ten line of text and one of four.
|
# that support ten line of text and one of four.
|
||||||
rows: [10, 10, 10, 20, 10, 4]
|
rows: [10, 10, 10, 20, 10, 4]
|
||||||
refreshInterval: 1
|
refreshInterval: 1
|
||||||
openFileUtil: "open"
|
openFileUtil: 'open'
|
||||||
mods:
|
mods:
|
||||||
# You can have multiple widgets of the same type.
|
# You can have multiple widgets of the same type.
|
||||||
# The "key" is the name of the widget and the type is the actual
|
# The "key" is the name of the widget and the type is the actual
|
||||||
# widget you want to implement.
|
# widget you want to implement.
|
||||||
europe_time:
|
europe_time:
|
||||||
title: "Europe"
|
title: 'Europe'
|
||||||
type: clocks
|
type: clocks
|
||||||
colors:
|
colors:
|
||||||
rows:
|
rows:
|
||||||
even: "lightblue"
|
even: 'lightblue'
|
||||||
odd: "white"
|
odd: 'white'
|
||||||
enabled: true
|
enabled: true
|
||||||
locations:
|
locations:
|
||||||
GMT: "Etc/GMT"
|
GMT: 'Etc/GMT'
|
||||||
Amsterdam: "Europe/Amsterdam"
|
Amsterdam: 'Europe/Amsterdam'
|
||||||
Berlin: "Europe/Berlin"
|
Berlin: 'Europe/Berlin'
|
||||||
Barcelona: "Europe/Madrid"
|
Barcelona: 'Europe/Madrid'
|
||||||
Copenhagen: "Europe/Copenhagen"
|
Copenhagen: 'Europe/Copenhagen'
|
||||||
London: "Europe/London"
|
London: 'Europe/London'
|
||||||
Rome: "Europe/Rome"
|
Rome: 'Europe/Rome'
|
||||||
Stockholm: "Europe/Stockholm"
|
Stockholm: 'Europe/Stockholm'
|
||||||
position:
|
position:
|
||||||
top: 0
|
top: 0
|
||||||
left: 0
|
left: 0
|
||||||
height: 1
|
height: 1
|
||||||
width: 1
|
width: 1
|
||||||
refreshInterval: 15
|
refreshInterval: 15
|
||||||
sort: "alphabetical"
|
sort: 'alphabetical'
|
||||||
americas_time:
|
americas_time:
|
||||||
title: "Americas"
|
title: 'Americas'
|
||||||
type: clocks
|
type: clocks
|
||||||
colors:
|
colors:
|
||||||
rows:
|
rows:
|
||||||
even: "lightblue"
|
even: 'lightblue'
|
||||||
odd: "white"
|
odd: 'white'
|
||||||
enabled: true
|
enabled: true
|
||||||
locations:
|
locations:
|
||||||
UTC: "Etc/UTC"
|
UTC: 'Etc/UTC'
|
||||||
Vancouver: "America/Vancouver"
|
Vancouver: 'America/Vancouver'
|
||||||
New_York: "America/New_York"
|
New_York: 'America/New_York'
|
||||||
Sao_Paulo: "America/Sao_Paulo"
|
Sao_Paulo: 'America/Sao_Paulo'
|
||||||
Denver: "America/Denver"
|
Denver: 'America/Denver'
|
||||||
Iqaluit: "America/Iqaluit"
|
Iqaluit: 'America/Iqaluit'
|
||||||
Bahamas: "America/Nassau"
|
Bahamas: 'America/Nassau'
|
||||||
Chicago: "America/Chicago"
|
Chicago: 'America/Chicago'
|
||||||
position:
|
position:
|
||||||
top: 0
|
top: 0
|
||||||
left: 1
|
left: 1
|
||||||
height: 1
|
height: 1
|
||||||
width: 1
|
width: 1
|
||||||
refreshInterval: 15
|
refreshInterval: 15
|
||||||
sort: "alphabetical"
|
sort: 'alphabetical'
|
||||||
battery:
|
battery:
|
||||||
type: power
|
type: power
|
||||||
title: "⚡️"
|
title: '⚡️'
|
||||||
enabled: true
|
enabled: true
|
||||||
position:
|
position:
|
||||||
top: 1
|
top: 1
|
||||||
@@ -85,14 +85,14 @@ wtf:
|
|||||||
refreshInterval: 15
|
refreshInterval: 15
|
||||||
todolist:
|
todolist:
|
||||||
type: todo
|
type: todo
|
||||||
checkedIcon: "X"
|
checkedIcon: 'X'
|
||||||
colors:
|
colors:
|
||||||
checked: gray
|
checked: gray
|
||||||
highlight:
|
highlight:
|
||||||
fore: "black"
|
fore: 'black'
|
||||||
back: "orange"
|
back: 'orange'
|
||||||
enabled: true
|
enabled: true
|
||||||
filename: "todo.yml"
|
filename: 'todo.yml'
|
||||||
position:
|
position:
|
||||||
top: 1
|
top: 1
|
||||||
left: 0
|
left: 0
|
||||||
@@ -101,10 +101,10 @@ wtf:
|
|||||||
refreshInterval: 3600
|
refreshInterval: 3600
|
||||||
ip:
|
ip:
|
||||||
type: ipinfo
|
type: ipinfo
|
||||||
title: "My IP"
|
title: 'My IP'
|
||||||
colors:
|
colors:
|
||||||
name: "lightblue"
|
name: 'lightblue'
|
||||||
value: "white"
|
value: 'white'
|
||||||
enabled: true
|
enabled: true
|
||||||
position:
|
position:
|
||||||
top: 0
|
top: 0
|
||||||
@@ -114,7 +114,7 @@ wtf:
|
|||||||
refreshInterval: 150
|
refreshInterval: 150
|
||||||
security_info:
|
security_info:
|
||||||
type: security
|
type: security
|
||||||
title: "Staying safe"
|
title: 'Staying safe'
|
||||||
enabled: true
|
enabled: true
|
||||||
position:
|
position:
|
||||||
top: 1
|
top: 1
|
||||||
@@ -126,9 +126,9 @@ wtf:
|
|||||||
type: textfile
|
type: textfile
|
||||||
enabled: true
|
enabled: true
|
||||||
filePaths:
|
filePaths:
|
||||||
- "~/.config/wtf/config.yml"
|
- '~/.config/wtf/config.yml'
|
||||||
format: true
|
format: true
|
||||||
formatStyle: "monokai"
|
formatStyle: 'monokai'
|
||||||
position:
|
position:
|
||||||
top: 3
|
top: 3
|
||||||
left: 0
|
left: 0
|
||||||
@@ -137,7 +137,7 @@ wtf:
|
|||||||
refreshInterval: 15
|
refreshInterval: 15
|
||||||
news:
|
news:
|
||||||
type: hackernews
|
type: hackernews
|
||||||
title: "HackerNews"
|
title: 'HackerNews'
|
||||||
enabled: true
|
enabled: true
|
||||||
numberOfStories: 10
|
numberOfStories: 10
|
||||||
position:
|
position:
|
||||||
@@ -159,7 +159,7 @@ wtf:
|
|||||||
uptime:
|
uptime:
|
||||||
type: cmdrunner
|
type: cmdrunner
|
||||||
args: []
|
args: []
|
||||||
cmd: "uptime"
|
cmd: 'uptime'
|
||||||
enabled: true
|
enabled: true
|
||||||
position:
|
position:
|
||||||
top: 5
|
top: 5
|
||||||
@@ -169,8 +169,8 @@ wtf:
|
|||||||
refreshInterval: 30
|
refreshInterval: 30
|
||||||
disks:
|
disks:
|
||||||
type: cmdrunner
|
type: cmdrunner
|
||||||
cmd: "df"
|
cmd: 'df'
|
||||||
args: ["-h"]
|
args: ['-h']
|
||||||
enabled: true
|
enabled: true
|
||||||
position:
|
position:
|
||||||
top: 4
|
top: 4
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# nvim keybindings
|
# nvim keybindings
|
||||||
|
|
||||||
```md
|
```
|
||||||
n ! * <Cmd>lua require("which-key").show("!", {mode = "n", auto = true})<CR>
|
n ! * <Cmd>lua require("which-key").show("!", {mode = "n", auto = true})<CR>
|
||||||
n ' * <Cmd>lua require("which-key").show("'", {mode = "n", auto = true})<CR>
|
n ' * <Cmd>lua require("which-key").show("'", {mode = "n", auto = true})<CR>
|
||||||
n " * <Cmd>lua require("which-key").show("\"", {mode = "n", auto = true})<CR>
|
n " * <Cmd>lua require("which-key").show("\"", {mode = "n", auto = true})<CR>
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
# tmux keybindings
|
# tmux keybindings
|
||||||
|
|
||||||
|
|
||||||
Leader: `<ctrl><space>`
|
Leader: `<ctrl><space>`
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
bind-key -T copy-mode C-Space send-keys -X begin-selection
|
bind-key -T copy-mode C-Space send-keys -X begin-selection
|
||||||
bind-key -T copy-mode C-a send-keys -X start-of-line
|
bind-key -T copy-mode C-a send-keys -X start-of-line
|
||||||
@@ -31,7 +29,7 @@ bind-key -T copy-mode P send-keys -X toggle-position
|
|||||||
bind-key -T copy-mode R send-keys -X rectangle-toggle
|
bind-key -T copy-mode R send-keys -X rectangle-toggle
|
||||||
bind-key -T copy-mode T command-prompt -1 -p "(jump to backward)" { send-keys -X jump-to-backward "%%" }
|
bind-key -T copy-mode T command-prompt -1 -p "(jump to backward)" { send-keys -X jump-to-backward "%%" }
|
||||||
bind-key -T copy-mode X send-keys -X set-mark
|
bind-key -T copy-mode X send-keys -X set-mark
|
||||||
bind-key -T copy-mode Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer -p"
|
bind-key -T copy-mode Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer"
|
||||||
bind-key -T copy-mode f command-prompt -1 -p "(jump forward)" { send-keys -X jump-forward "%%" }
|
bind-key -T copy-mode f command-prompt -1 -p "(jump forward)" { send-keys -X jump-forward "%%" }
|
||||||
bind-key -T copy-mode g command-prompt -p "(goto line)" { send-keys -X goto-line "%%" }
|
bind-key -T copy-mode g command-prompt -p "(goto line)" { send-keys -X goto-line "%%" }
|
||||||
bind-key -T copy-mode n send-keys -X search-again
|
bind-key -T copy-mode n send-keys -X search-again
|
||||||
@@ -41,7 +39,7 @@ bind-key -T copy-mode t command-prompt -1 -p "(jump to
|
|||||||
bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel pbcopy
|
bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel pbcopy
|
||||||
bind-key -T copy-mode MouseDown1Pane select-pane
|
bind-key -T copy-mode MouseDown1Pane select-pane
|
||||||
bind-key -T copy-mode MouseDrag1Pane select-pane \; send-keys -X begin-selection
|
bind-key -T copy-mode MouseDrag1Pane select-pane \; send-keys -X begin-selection
|
||||||
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel pbcopy
|
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel
|
||||||
bind-key -T copy-mode WheelUpPane select-pane \; send-keys -X -N 5 scroll-up
|
bind-key -T copy-mode WheelUpPane select-pane \; send-keys -X -N 5 scroll-up
|
||||||
bind-key -T copy-mode WheelDownPane select-pane \; send-keys -X -N 5 scroll-down
|
bind-key -T copy-mode WheelDownPane select-pane \; send-keys -X -N 5 scroll-down
|
||||||
bind-key -T copy-mode DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
|
bind-key -T copy-mode DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
|
||||||
@@ -75,7 +73,7 @@ bind-key -T copy-mode M-r send-keys -X middle-line
|
|||||||
bind-key -T copy-mode M-v send-keys -X page-up
|
bind-key -T copy-mode M-v send-keys -X page-up
|
||||||
bind-key -T copy-mode M-w send-keys -X copy-pipe-and-cancel
|
bind-key -T copy-mode M-w send-keys -X copy-pipe-and-cancel
|
||||||
bind-key -T copy-mode M-x send-keys -X jump-to-mark
|
bind-key -T copy-mode M-x send-keys -X jump-to-mark
|
||||||
bind-key -T copy-mode M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer -p"
|
bind-key -T copy-mode M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer"
|
||||||
bind-key -T copy-mode "M-{" send-keys -X previous-paragraph
|
bind-key -T copy-mode "M-{" send-keys -X previous-paragraph
|
||||||
bind-key -T copy-mode "M-}" send-keys -X next-paragraph
|
bind-key -T copy-mode "M-}" send-keys -X next-paragraph
|
||||||
bind-key -T copy-mode M-Up send-keys -X halfpage-up
|
bind-key -T copy-mode M-Up send-keys -X halfpage-up
|
||||||
@@ -87,16 +85,13 @@ bind-key -T copy-mode-vi C-c send-keys -X cancel
|
|||||||
bind-key -T copy-mode-vi C-d send-keys -X halfpage-down
|
bind-key -T copy-mode-vi C-d send-keys -X halfpage-down
|
||||||
bind-key -T copy-mode-vi C-e send-keys -X scroll-down
|
bind-key -T copy-mode-vi C-e send-keys -X scroll-down
|
||||||
bind-key -T copy-mode-vi C-f send-keys -X page-down
|
bind-key -T copy-mode-vi C-f send-keys -X page-down
|
||||||
bind-key -T copy-mode-vi C-h select-pane -L
|
bind-key -T copy-mode-vi C-h send-keys -X cursor-left
|
||||||
bind-key -T copy-mode-vi C-j select-pane -D
|
bind-key -T copy-mode-vi C-j send-keys -X copy-pipe-and-cancel
|
||||||
bind-key -T copy-mode-vi C-k select-pane -U
|
|
||||||
bind-key -T copy-mode-vi C-l select-pane -R
|
|
||||||
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel
|
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel
|
||||||
bind-key -T copy-mode-vi C-u send-keys -X halfpage-up
|
bind-key -T copy-mode-vi C-u send-keys -X halfpage-up
|
||||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||||
bind-key -T copy-mode-vi C-y send-keys -X scroll-up
|
bind-key -T copy-mode-vi C-y send-keys -X scroll-up
|
||||||
bind-key -T copy-mode-vi Escape send-keys -X clear-selection
|
bind-key -T copy-mode-vi Escape send-keys -X clear-selection
|
||||||
bind-key -T copy-mode-vi C-\ select-pane -l
|
|
||||||
bind-key -T copy-mode-vi Space send-keys -X begin-selection
|
bind-key -T copy-mode-vi Space send-keys -X begin-selection
|
||||||
bind-key -T copy-mode-vi ! send-keys -X copy-pipe-and-cancel "tr -d '
|
bind-key -T copy-mode-vi ! send-keys -X copy-pipe-and-cancel "tr -d '
|
||||||
' | pbcopy"
|
' | pbcopy"
|
||||||
@@ -136,7 +131,7 @@ bind-key -T copy-mode-vi T command-prompt -1 -p "(jump to
|
|||||||
bind-key -T copy-mode-vi V send-keys -X select-line
|
bind-key -T copy-mode-vi V send-keys -X select-line
|
||||||
bind-key -T copy-mode-vi W send-keys -X next-space
|
bind-key -T copy-mode-vi W send-keys -X next-space
|
||||||
bind-key -T copy-mode-vi X send-keys -X set-mark
|
bind-key -T copy-mode-vi X send-keys -X set-mark
|
||||||
bind-key -T copy-mode-vi Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer -p"
|
bind-key -T copy-mode-vi Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer"
|
||||||
bind-key -T copy-mode-vi ^ send-keys -X back-to-indentation
|
bind-key -T copy-mode-vi ^ send-keys -X back-to-indentation
|
||||||
bind-key -T copy-mode-vi b send-keys -X previous-word
|
bind-key -T copy-mode-vi b send-keys -X previous-word
|
||||||
bind-key -T copy-mode-vi e send-keys -X next-word-end
|
bind-key -T copy-mode-vi e send-keys -X next-word-end
|
||||||
@@ -158,7 +153,7 @@ bind-key -T copy-mode-vi \{ send-keys -X previous-paragraph
|
|||||||
bind-key -T copy-mode-vi \} send-keys -X next-paragraph
|
bind-key -T copy-mode-vi \} send-keys -X next-paragraph
|
||||||
bind-key -T copy-mode-vi MouseDown1Pane select-pane
|
bind-key -T copy-mode-vi MouseDown1Pane select-pane
|
||||||
bind-key -T copy-mode-vi MouseDrag1Pane select-pane \; send-keys -X begin-selection
|
bind-key -T copy-mode-vi MouseDrag1Pane select-pane \; send-keys -X begin-selection
|
||||||
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel pbcopy
|
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel
|
||||||
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 5 scroll-up
|
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 5 scroll-up
|
||||||
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 5 scroll-down
|
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 5 scroll-down
|
||||||
bind-key -T copy-mode-vi DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
|
bind-key -T copy-mode-vi DoubleClick1Pane select-pane \; send-keys -X select-word \; run-shell -d 0.3 \; send-keys -X copy-pipe-and-cancel
|
||||||
@@ -171,24 +166,15 @@ bind-key -T copy-mode-vi Down send-keys -X cursor-down
|
|||||||
bind-key -T copy-mode-vi Left send-keys -X cursor-left
|
bind-key -T copy-mode-vi Left send-keys -X cursor-left
|
||||||
bind-key -T copy-mode-vi Right send-keys -X cursor-right
|
bind-key -T copy-mode-vi Right send-keys -X cursor-right
|
||||||
bind-key -T copy-mode-vi M-x send-keys -X jump-to-mark
|
bind-key -T copy-mode-vi M-x send-keys -X jump-to-mark
|
||||||
bind-key -T copy-mode-vi M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer -p"
|
bind-key -T copy-mode-vi M-y send-keys -X copy-pipe-and-cancel "pbcopy; tmux paste-buffer"
|
||||||
bind-key -T copy-mode-vi C-Up send-keys -X scroll-up
|
bind-key -T copy-mode-vi C-Up send-keys -X scroll-up
|
||||||
bind-key -T copy-mode-vi C-Down send-keys -X scroll-down
|
bind-key -T copy-mode-vi C-Down send-keys -X scroll-down
|
||||||
bind-key -T join-pane \" run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-v'"
|
bind-key -T prefix C-Space send-prefix
|
||||||
bind-key -T join-pane \% run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-h'"
|
|
||||||
bind-key -T join-pane - run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-v'"
|
|
||||||
bind-key -T join-pane @ run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-b'"
|
|
||||||
bind-key -T join-pane f run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-b'"
|
|
||||||
bind-key -T join-pane h run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-h'"
|
|
||||||
bind-key -T join-pane v run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-v'"
|
|
||||||
bind-key -T join-pane | run-shell "'/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh' 'join-pane' '-b' '-h'"
|
|
||||||
bind-key -T prefix C-Space run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/promote_window.sh '#{session_name}' '#{window_id}' '#{window_name}' '#{pane_current_path}'"
|
|
||||||
bind-key -T prefix Enter run-shell -b "/Users/ivuorinen/.config/tmux/plugins/tmux-notify/scripts/notify.sh false true"
|
|
||||||
bind-key -T prefix C-n next-window
|
bind-key -T prefix C-n next-window
|
||||||
bind-key -T prefix C-o rotate-window
|
bind-key -T prefix C-o rotate-window
|
||||||
bind-key -T prefix C-p previous-window
|
bind-key -T prefix C-p previous-window
|
||||||
bind-key -T prefix C-r run-shell /Users/ivuorinen/.config/tmux/plugins/tmux-resurrect/scripts/restore.sh
|
bind-key -T prefix C-r run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/scripts/restore.sh
|
||||||
bind-key -T prefix C-s run-shell /Users/ivuorinen/.config/tmux/plugins/tmux-resurrect/scripts/save.sh
|
bind-key -T prefix C-s run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-resurrect/scripts/save.sh
|
||||||
bind-key -T prefix C-z suspend-client
|
bind-key -T prefix C-z suspend-client
|
||||||
bind-key -T prefix Escape copy-mode
|
bind-key -T prefix Escape copy-mode
|
||||||
bind-key -T prefix Space next-layout
|
bind-key -T prefix Space next-layout
|
||||||
@@ -196,7 +182,7 @@ bind-key -T prefix ! split-window -h -c "#{pane_curr
|
|||||||
bind-key -T prefix \" split-window -v -c "#{pane_current_path}"
|
bind-key -T prefix \" split-window -v -c "#{pane_current_path}"
|
||||||
bind-key -T prefix \# list-buffers
|
bind-key -T prefix \# list-buffers
|
||||||
bind-key -T prefix \$ command-prompt -I "#S" { rename-session "%%" }
|
bind-key -T prefix \$ command-prompt -I "#S" { rename-session "%%" }
|
||||||
bind-key -T prefix \% split-window -h -c "#{pane_current_path}"
|
bind-key -T prefix \% split-window -h
|
||||||
bind-key -T prefix & confirm-before -p "kill-window #W? (y/n)" kill-window
|
bind-key -T prefix & confirm-before -p "kill-window #W? (y/n)" kill-window
|
||||||
bind-key -T prefix \' command-prompt -T window-target -p index { select-window -t ":%%" }
|
bind-key -T prefix \' command-prompt -T window-target -p index { select-window -t ":%%" }
|
||||||
bind-key -T prefix ( switch-client -p
|
bind-key -T prefix ( switch-client -p
|
||||||
@@ -221,40 +207,42 @@ bind-key -T prefix < display-menu -T "#[align=centre
|
|||||||
bind-key -T prefix = choose-buffer -Z
|
bind-key -T prefix = choose-buffer -Z
|
||||||
bind-key -T prefix > display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
|
bind-key -T prefix > display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -x P -y P "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
|
||||||
bind-key -T prefix ? list-keys -N
|
bind-key -T prefix ? list-keys -N
|
||||||
bind-key -T prefix @ run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/promote_pane.sh '#{session_name}' '#{pane_id}' '#{pane_current_path}'"
|
bind-key -T prefix @ run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/promote_pane.sh '#{session_name}' '#{pane_id}' '#{pane_current_path}'"
|
||||||
bind-key -T prefix C run-shell /Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/new_session_prompt.sh
|
bind-key -T prefix C run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/new_session_prompt.sh
|
||||||
bind-key -T prefix D choose-client -Z
|
bind-key -T prefix D choose-client -Z
|
||||||
bind-key -T prefix E select-layout -E
|
bind-key -T prefix E select-layout -E
|
||||||
bind-key -T prefix I run-shell /Users/ivuorinen/.config/tmux/plugins/tpm/bindings/install_plugins
|
bind-key -T prefix I run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/install_plugins
|
||||||
bind-key -T prefix L switch-client -l
|
bind-key -T prefix L switch-client -l
|
||||||
bind-key -T prefix M run-shell -b /Users/ivuorinen/.config/tmux/plugins/tmux-notify/scripts/cancel.sh
|
bind-key -T prefix M select-pane -M
|
||||||
bind-key -T prefix N new-window
|
bind-key -T prefix N new-window
|
||||||
bind-key -T prefix R run-shell " tmux source-file /Users/ivuorinen/.config/tmux/tmux.conf > /dev/null; tmux display-message 'Sourced /Users/ivuorinen/.config/tmux/tmux.conf!'"
|
bind-key -T prefix R run-shell " \
|
||||||
|
tmux source-file ~/.tmux.conf > /dev/null; \
|
||||||
|
tmux display-message \"Sourced .tmux.conf!\""
|
||||||
bind-key -T prefix S switch-client -l
|
bind-key -T prefix S switch-client -l
|
||||||
bind-key -T prefix U run-shell /Users/ivuorinen/.config/tmux/plugins/tpm/bindings/update_plugins
|
bind-key -T prefix U run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/update_plugins
|
||||||
bind-key -T prefix X run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/kill_session_prompt.sh '#{session_name}' '#{session_id}'"
|
bind-key -T prefix X run-shell "$HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/kill_session_prompt.sh '#{session_name}' '#{session_id}'"
|
||||||
bind-key -T prefix Y run-shell -b /Users/ivuorinen/.config/tmux/plugins/tmux-yank/scripts/copy_pane_pwd.sh
|
bind-key -T prefix Y run-shell -b $HOME/.dotfiles/config/tmux/plugins/tmux-yank/scripts/copy_pane_pwd.sh
|
||||||
bind-key -T prefix ] paste-buffer -p
|
bind-key -T prefix ] paste-buffer -p
|
||||||
bind-key -T prefix c new-window
|
bind-key -T prefix c new-window
|
||||||
bind-key -T prefix d detach-client
|
bind-key -T prefix d detach-client
|
||||||
bind-key -T prefix f command-prompt { find-window -Z "%%" }
|
bind-key -T prefix f command-prompt { find-window -Z "%%" }
|
||||||
bind-key -T prefix g run-shell /Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/goto_session.sh
|
bind-key -T prefix g run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-sessionist/scripts/goto_session.sh
|
||||||
bind-key -T prefix h select-pane -L
|
bind-key -T prefix h select-pane -L
|
||||||
bind-key -T prefix i display-message
|
bind-key -T prefix i display-message
|
||||||
bind-key -T prefix j select-pane -D
|
bind-key -T prefix j select-pane -D
|
||||||
bind-key -T prefix k select-pane -U
|
bind-key -T prefix k select-pane -U
|
||||||
bind-key -T prefix l run-shell -b /Users/ivuorinen/.config/tmux/plugins/tmux-fzf/main.sh
|
bind-key -T prefix l select-pane -R
|
||||||
bind-key -T prefix m run-shell /Users/ivuorinen/.config/tmux/plugins/tmux-menus/items/main.sh
|
bind-key -T prefix m run-shell $HOME/.dotfiles/config/tmux/plugins/tmux-menus/items/main.sh
|
||||||
bind-key -T prefix n next-window
|
bind-key -T prefix n next-window
|
||||||
bind-key -T prefix o select-pane -t :.+
|
bind-key -T prefix o select-pane -t :.+
|
||||||
bind-key -T prefix p paste-buffer
|
bind-key -T prefix p paste-buffer
|
||||||
bind-key -T prefix q display-panes
|
bind-key -T prefix q display-panes
|
||||||
bind-key -T prefix r source-file /Users/ivuorinen/.dotfiles/config/tmux/tmux.conf \; display-message "tmux cfg reloaded!"
|
bind-key -T prefix r source-file $HOME/.dotfiles/config/tmux/tmux.conf \; display-message "tmux cfg reloaded!"
|
||||||
bind-key -T prefix s choose-tree -Zs
|
bind-key -T prefix s choose-tree -Zs
|
||||||
bind-key -T prefix t run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-sessionist/scripts/join_pane.sh 'join-pane' '-b'"
|
bind-key -T prefix t clock-mode
|
||||||
bind-key -T prefix w choose-tree -Zw
|
bind-key -T prefix w choose-tree -Zw
|
||||||
bind-key -T prefix x run-shell "tmux split-window -l 10 \"/Users/ivuorinen/.config/tmux/plugins/tmux-1password/scripts/main.sh '#{pane_id}'\""
|
bind-key -T prefix x confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
||||||
bind-key -T prefix y run-shell -b /Users/ivuorinen/.config/tmux/plugins/tmux-yank/scripts/copy_line.sh
|
bind-key -T prefix y run-shell -b $HOME/.dotfiles/config/tmux/plugins/tmux-yank/scripts/copy_line.sh
|
||||||
bind-key -T prefix z resize-pane -Z
|
bind-key -T prefix z resize-pane -Z
|
||||||
bind-key -T prefix \{ swap-pane -U
|
bind-key -T prefix \{ swap-pane -U
|
||||||
bind-key -T prefix \} swap-pane -D
|
bind-key -T prefix \} swap-pane -D
|
||||||
@@ -265,17 +253,16 @@ bind-key -r -T prefix Up select-pane -U
|
|||||||
bind-key -r -T prefix Down select-pane -D
|
bind-key -r -T prefix Down select-pane -D
|
||||||
bind-key -r -T prefix Left select-pane -L
|
bind-key -r -T prefix Left select-pane -L
|
||||||
bind-key -r -T prefix Right select-pane -R
|
bind-key -r -T prefix Right select-pane -R
|
||||||
bind-key -T prefix M-Enter run-shell -b "/Users/ivuorinen/.config/tmux/plugins/tmux-notify/scripts/notify.sh true true"
|
|
||||||
bind-key -T prefix M-1 select-layout even-horizontal
|
bind-key -T prefix M-1 select-layout even-horizontal
|
||||||
bind-key -T prefix M-2 select-layout even-vertical
|
bind-key -T prefix M-2 select-layout even-vertical
|
||||||
bind-key -T prefix M-3 select-layout main-horizontal
|
bind-key -T prefix M-3 select-layout main-horizontal
|
||||||
bind-key -T prefix M-4 select-layout main-vertical
|
bind-key -T prefix M-4 select-layout main-vertical
|
||||||
bind-key -T prefix M-5 select-layout tiled
|
bind-key -T prefix M-5 select-layout tiled
|
||||||
bind-key -T prefix M-m run-shell -b "/Users/ivuorinen/.config/tmux/plugins/tmux-notify/scripts/notify.sh true"
|
bind-key -T prefix M-c attach-session -c "#{pane_current_path}"
|
||||||
bind-key -T prefix M-n next-window -a
|
bind-key -T prefix M-n next-window -a
|
||||||
bind-key -T prefix M-o rotate-window -D
|
bind-key -T prefix M-o rotate-window -D
|
||||||
bind-key -T prefix M-p previous-window -a
|
bind-key -T prefix M-p previous-window -a
|
||||||
bind-key -T prefix M-u run-shell /Users/ivuorinen/.config/tmux/plugins/tpm/bindings/clean_plugins
|
bind-key -T prefix M-u run-shell $HOME/.dotfiles/config/tmux/plugins/tpm/bindings/clean_plugins
|
||||||
bind-key -r -T prefix M-Up resize-pane -U 5
|
bind-key -r -T prefix M-Up resize-pane -U 5
|
||||||
bind-key -r -T prefix M-Down resize-pane -D 5
|
bind-key -r -T prefix M-Down resize-pane -D 5
|
||||||
bind-key -r -T prefix M-Left resize-pane -L 5
|
bind-key -r -T prefix M-Left resize-pane -L 5
|
||||||
@@ -288,11 +275,6 @@ bind-key -r -T prefix S-Up refresh-client -U 10
|
|||||||
bind-key -r -T prefix S-Down refresh-client -D 10
|
bind-key -r -T prefix S-Down refresh-client -D 10
|
||||||
bind-key -r -T prefix S-Left refresh-client -L 10
|
bind-key -r -T prefix S-Left refresh-client -L 10
|
||||||
bind-key -r -T prefix S-Right refresh-client -R 10
|
bind-key -r -T prefix S-Right refresh-client -R 10
|
||||||
bind-key -T root C-h if-shell "ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\S+\/)?g?(view|l?n?vim?x?)(diff)?$'" "send-keys C-h" "select-pane -L"
|
|
||||||
bind-key -T root C-j if-shell "ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\S+\/)?g?(view|l?n?vim?x?)(diff)?$'" "send-keys C-j" "select-pane -D"
|
|
||||||
bind-key -T root C-k if-shell "ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\S+\/)?g?(view|l?n?vim?x?)(diff)?$'" "send-keys C-k" "select-pane -U"
|
|
||||||
bind-key -T root C-l if-shell "ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\S+\/)?g?(view|l?n?vim?x?)(diff)?$'" "send-keys C-l" "select-pane -R"
|
|
||||||
bind-key -T root C-\ if-shell "ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(S+/)?g?(view|l?n?vim?x?)(diff)?$'" "send-keys C-\\" "select-pane -l"
|
|
||||||
bind-key -T root MouseDown1Pane select-pane -t = \; send-keys -M
|
bind-key -T root MouseDown1Pane select-pane -t = \; send-keys -M
|
||||||
bind-key -T root MouseDown1Status select-window -t =
|
bind-key -T root MouseDown1Status select-window -t =
|
||||||
bind-key -T root MouseDown2Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { paste-buffer -p }
|
bind-key -T root MouseDown2Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { paste-buffer -p }
|
||||||
@@ -306,16 +288,11 @@ bind-key -T root WheelUpStatus previous-window
|
|||||||
bind-key -T root WheelDownStatus next-window
|
bind-key -T root WheelDownStatus next-window
|
||||||
bind-key -T root DoubleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-word ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
|
bind-key -T root DoubleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-word ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
|
||||||
bind-key -T root TripleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-line ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
|
bind-key -T root TripleClick1Pane select-pane -t = \; if-shell -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" { send-keys -M } { copy-mode -H ; send-keys -X select-line ; run-shell -d 0.3 ; send-keys -X copy-pipe-and-cancel }
|
||||||
bind-key -T root F12 run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-suspend/scripts/suspend.sh \"\" \" @mode_indicator_custom_prompt:: ---- , @mode_indicator_custom_mode_style::bg=brightblack\,fg=black, \""
|
|
||||||
bind-key -T root M-H previous-window
|
|
||||||
bind-key -T root M-L next-window
|
|
||||||
bind-key -T root M-MouseDown3Pane display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -t = -x M -y M "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
|
bind-key -T root M-MouseDown3Pane display-menu -T "#[align=centre]#{pane_index} (#{pane_id})" -t = -x M -y M "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}" < { send-keys -X history-top } "#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Bottom,}" > { send-keys -X history-bottom } '' "#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}" C-r { if-shell -F "#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}" "copy-mode -t=" ; send-keys -X -t = search-backward "#{q:mouse_word}" } "#{?mouse_word,Type #[underscore]#{=/9/...:mouse_word},}" C-y { copy-mode -q ; send-keys -l "#{q:mouse_word}" } "#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}" c { copy-mode -q ; set-buffer "#{q:mouse_word}" } "#{?mouse_line,Copy Line,}" l { copy-mode -q ; set-buffer "#{q:mouse_line}" } '' "Horizontal Split" h { split-window -h } "Vertical Split" v { split-window -v } '' "#{?#{>:#{window_panes},1},,-}Swap Up" u { swap-pane -U } "#{?#{>:#{window_panes},1},,-}Swap Down" d { swap-pane -D } "#{?pane_marked_set,,-}Swap Marked" s { swap-pane } '' Kill X { kill-pane } Respawn R { respawn-pane -k } "#{?pane_marked,Unmark,Mark}" m { select-pane -m } "#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}" z { resize-pane -Z }
|
||||||
bind-key -T root M-Up select-pane -U
|
bind-key -T root M-Up select-pane -U
|
||||||
bind-key -T root M-Down select-pane -D
|
bind-key -T root M-Down select-pane -D
|
||||||
bind-key -T root M-Left select-pane -L
|
bind-key -T root M-Left select-pane -L
|
||||||
bind-key -T root M-Right select-pane -R
|
bind-key -T root M-Right select-pane -R
|
||||||
bind-key -T root S-Left previous-window
|
bind-key -T root C-Tab previous-window
|
||||||
bind-key -T root S-Right next-window
|
bind-key -T root C-S-Tab next-window
|
||||||
bind-key -T suspended F12 run-shell "/Users/ivuorinen/.config/tmux/plugins/tmux-suspend/scripts/resume.sh \"\""
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- include: "tools/dotbot-defaults.yaml"
|
- include: 'tools/dotbot-defaults.yaml'
|
||||||
- shell:
|
- shell:
|
||||||
- echo "Configuring air"
|
- echo "Configuring air"
|
||||||
- brewfile:
|
- brewfile:
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
force: true
|
force: true
|
||||||
glob: true
|
glob: true
|
||||||
path: hosts/air/base/**
|
path: hosts/air/base/**
|
||||||
prefix: "."
|
prefix: '.'
|
||||||
~/.config/:
|
~/.config/:
|
||||||
glob: true
|
glob: true
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
# Lakka zsh configuration.
|
|
||||||
#
|
|
||||||
# shellcheck shell=bash
|
|
||||||
export PATH="$HOME/bin:/usr/local/bin:/usr/bin:/usr/sbin:$PATH"
|
|
||||||
|
|
||||||
# Defaults
|
|
||||||
export DOTFILES="$HOME/.dotfiles"
|
|
||||||
|
|
||||||
# Run x-load-configs in your terminal to reload the files.
|
|
||||||
function x-load-configs()
|
|
||||||
{
|
|
||||||
HOST="$(hostname -s)"
|
|
||||||
# Load the shell dotfiles, and then some:
|
|
||||||
for file in $DOTFILES/config/{exports,alias,functions}; do
|
|
||||||
# global (exports|alias|functions) file for all hosts
|
|
||||||
# shellcheck source=../../../config/exports
|
|
||||||
[ -r "$file" ] && source "$file"
|
|
||||||
# shellcheck source=../../../config/exports
|
|
||||||
[ -r "$file-secret" ] && source "$file-secret"
|
|
||||||
# shellcheck source=../../../config/exports
|
|
||||||
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
|
||||||
# shellcheck source=../../../config/exports
|
|
||||||
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
x-load-configs
|
|
||||||
|
|
||||||
export PATH="$XDG_BIN_HOME:$PATH"
|
|
||||||
export LC_ALL=fi_FI.utf8
|
|
||||||
|
|
||||||
export RVM_PATH="$HOME/.rvm"
|
|
||||||
export PATH="$RVM_PATH/bin:$PATH"
|
|
||||||
# shellcheck source=$HOME/.rvm/scripts/rvm
|
|
||||||
[[ -s "$RVM_PATH/scripts/rvm" ]] && source "$RVM_PATH/scripts/rvm" # Load RVM into a shell session *as a function*
|
|
||||||
|
|
||||||
# Try to load antigen, if present
|
|
||||||
ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh"
|
|
||||||
# shellcheck source=$HOME/.local/bin/antigen.zsh
|
|
||||||
[[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH"
|
|
||||||
|
|
||||||
# If antigen was loaded
|
|
||||||
if command -v antigen &>/dev/null; then
|
|
||||||
antigen use oh-my-zsh
|
|
||||||
|
|
||||||
# config/functions
|
|
||||||
x-default-antigen-bundles
|
|
||||||
|
|
||||||
antigen theme oskarkrawczyk/honukai-iterm-zsh honukai
|
|
||||||
|
|
||||||
antigen apply
|
|
||||||
fi
|
|
||||||
|
|
||||||
alias logrotate='/usr/sbin/logrotate -s $HOME/logs/state'
|
|
||||||
alias nano='nano -wS -$'
|
|
||||||
alias gpg=gpg2
|
|
||||||
|
|
||||||
ACME_PATH="$HOME/.acme.sh"
|
|
||||||
# shellcheck source=$HOME/.acme.sh/acme.sh.env
|
|
||||||
[[ -s "$ACME_PATH/acme.sh.env" ]] && . "$ACME_PATH/acme.sh.env"
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
- include: "tools/dotbot-defaults.yaml"
|
- include: 'tools/dotbot-defaults.yaml'
|
||||||
- shell:
|
- shell:
|
||||||
- echo "Configuring lakka"
|
- echo "Configuring lakka"
|
||||||
- link:
|
- link:
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
force: true
|
force: true
|
||||||
glob: true
|
glob: true
|
||||||
path: hosts/lakka/base/**
|
path: hosts/lakka/base/**
|
||||||
prefix: "."
|
prefix: '.'
|
||||||
~/.config/:
|
~/.config/:
|
||||||
glob: true
|
glob: true
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- include: "tools/dotbot-defaults.yaml"
|
- include: 'tools/dotbot-defaults.yaml'
|
||||||
- shell:
|
- shell:
|
||||||
- echo "Configuring tunkki"
|
- echo "Configuring tunkki"
|
||||||
- link:
|
- link:
|
||||||
@@ -6,8 +6,11 @@
|
|||||||
force: true
|
force: true
|
||||||
glob: true
|
glob: true
|
||||||
path: hosts/tunkki/base/**
|
path: hosts/tunkki/base/**
|
||||||
prefix: "."
|
prefix: '.'
|
||||||
~/.config/:
|
~/.config/:
|
||||||
glob: true
|
glob: true
|
||||||
force: true
|
force: true
|
||||||
path: hosts/tunkki/config/**
|
path: hosts/tunkki/config/**
|
||||||
|
- snap:
|
||||||
|
- nvim:
|
||||||
|
classic: true
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
- include: "tools/dotbot-defaults.yaml"
|
- include: 'tools/dotbot-defaults.yaml'
|
||||||
- shell:
|
- shell:
|
||||||
- echo "Configuring v"
|
- echo "Configuring v"
|
||||||
- brewfile:
|
|
||||||
- Brewfile
|
|
||||||
- link:
|
- link:
|
||||||
~/:
|
~/:
|
||||||
force: true
|
force: true
|
||||||
glob: true
|
glob: true
|
||||||
path: hosts/v/base/**
|
path: hosts/v/base/**
|
||||||
prefix: "."
|
prefix: '.'
|
||||||
~/.config/:
|
~/.config/:
|
||||||
glob: true
|
glob: true
|
||||||
force: true
|
force: true
|
||||||
|
|||||||
6
install
6
install
@@ -18,6 +18,9 @@ git submodule update --init --recursive "${DOTBOT_DIR}"
|
|||||||
-d "${BASEDIR}" \
|
-d "${BASEDIR}" \
|
||||||
--plugin-dir=tools/dotbot-brew \
|
--plugin-dir=tools/dotbot-brew \
|
||||||
--plugin-dir=tools/dotbot-include \
|
--plugin-dir=tools/dotbot-include \
|
||||||
|
--plugin-dir=tools/dotbot-crontab \
|
||||||
|
--plugin-dir=tools/dotbot-snap \
|
||||||
|
--plugin-dir=tools/dotbot-pip \
|
||||||
-c "${CONFIG}" \
|
-c "${CONFIG}" \
|
||||||
"${@}"
|
"${@}"
|
||||||
|
|
||||||
@@ -30,6 +33,9 @@ if [ "${DOTBOT_HOST}" != "" ]; then
|
|||||||
-d "$BASEDIR" \
|
-d "$BASEDIR" \
|
||||||
--plugin-dir=tools/dotbot-brew \
|
--plugin-dir=tools/dotbot-brew \
|
||||||
--plugin-dir=tools/dotbot-include \
|
--plugin-dir=tools/dotbot-include \
|
||||||
|
--plugin-dir=tools/dotbot-crontab \
|
||||||
|
--plugin-dir=tools/dotbot-snap \
|
||||||
|
--plugin-dir=tools/dotbot-pip \
|
||||||
-c "$DOTBOT_HOST_CONFIG" \
|
-c "$DOTBOT_HOST_CONFIG" \
|
||||||
"${@}"
|
"${@}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,40 +1,58 @@
|
|||||||
- include: "tools/dotbot-defaults.yaml"
|
- include: 'tools/dotbot-defaults.yaml'
|
||||||
- clean:
|
- clean:
|
||||||
~/:
|
~/:
|
||||||
~/.config:
|
~/.config:
|
||||||
recursive: true
|
recursive: true
|
||||||
~/.local:
|
~/.local:
|
||||||
recursive: true
|
recursive: true
|
||||||
|
~/.ssh:
|
||||||
|
recursive: true
|
||||||
- create:
|
- create:
|
||||||
~/.cache:
|
~/.cache:
|
||||||
~/.cache/git:
|
~/.cache/git:
|
||||||
~/.config:
|
~/.config:
|
||||||
~/.config/cheat/cheatsheets/personal:
|
|
||||||
~/.config/cheat/cheatsheets/pure-bash-bible:
|
|
||||||
~/.config/cheat/cheatsheets/tldr:
|
|
||||||
~/.local:
|
~/.local:
|
||||||
|
~/.local/bin:
|
||||||
~/.local/run:
|
~/.local/run:
|
||||||
~/.local/share:
|
~/.local/share:
|
||||||
~/.local/state:
|
~/.local/state:
|
||||||
~/.ssh:
|
~/.ssh:
|
||||||
mode: 0700
|
mode: 0700
|
||||||
|
~/.ssh/local.d:
|
||||||
|
mode: 0700
|
||||||
~/Code:
|
~/Code:
|
||||||
- link:
|
- link:
|
||||||
~/:
|
~/:
|
||||||
force: true
|
force: true
|
||||||
glob: true
|
glob: true
|
||||||
path: base/**
|
path: base/*
|
||||||
prefix: "."
|
prefix: '.'
|
||||||
~/.config/:
|
~/.config/:
|
||||||
glob: true
|
glob: true
|
||||||
path: config/**
|
relink: true
|
||||||
~/.local/:
|
path: config/*
|
||||||
|
exclude: [config/nvm]
|
||||||
|
~/.config/nvm/default-packages:
|
||||||
|
create: true
|
||||||
|
relink: true
|
||||||
|
path: config/nvm/default-packages
|
||||||
|
~/.local/bin:
|
||||||
glob: true
|
glob: true
|
||||||
path: local/**
|
path: local/bin/*
|
||||||
|
~/.local/man:
|
||||||
|
glob: true
|
||||||
|
path: local/man/**
|
||||||
|
~/.local/share:
|
||||||
|
glob: true
|
||||||
|
path: local/share/*
|
||||||
~/.ssh/:
|
~/.ssh/:
|
||||||
glob: true
|
glob: true
|
||||||
mode: 0600
|
mode: 0600
|
||||||
path: ssh/**
|
path: ssh/*
|
||||||
- shell:
|
- shell:
|
||||||
- git submodule update --init --recursive --force
|
- git submodule update --init --recursive --force
|
||||||
- bash local/bin/dfm install all
|
- bash local/bin/dfm install all
|
||||||
|
- pipx:
|
||||||
|
file: tools/requirements-pipx.txt
|
||||||
|
stdout: false
|
||||||
|
stderr: true
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Some problematic code has been fixed per `shellcheck` suggestions.
|
|||||||
## Sourced
|
## Sourced
|
||||||
|
|
||||||
| Script | Source |
|
| Script | Source |
|
||||||
|-------------------------|-------------------|
|
| ----------------------- | ----------------- |
|
||||||
| `x-dupes` | skx/sysadmin-util |
|
| `x-dupes` | skx/sysadmin-util |
|
||||||
| `x-foreach` | mvdan/dotfiles |
|
| `x-foreach` | mvdan/dotfiles |
|
||||||
| `x-multi-ping` | skx/sysadmin-util |
|
| `x-multi-ping` | skx/sysadmin-util |
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
: "${VERBOSE:=0}"
|
: "${VERBOSE:=0}"
|
||||||
: "${DOTFILES:=$HOME/.dotfiles}"
|
: "${DOTFILES:=$HOME/.dotfiles}"
|
||||||
: "${SHARED_SCRIPT:=$DOTFILES/scripts/shared.sh}"
|
: "${SHARED_SCRIPT:=$DOTFILES/scripts/shared.sh}"
|
||||||
: "${INSTALL_SCRIPT:=$DOTFILES/scripts/install-dotfiles.sh}"
|
|
||||||
: "${BREWFILE:=$DOTFILES/config/homebrew/Brewfile}"
|
: "${BREWFILE:=$DOTFILES/config/homebrew/Brewfile}"
|
||||||
: "${HOSTFILES:=$DOTFILES/hosts}"
|
: "${HOSTFILES:=$DOTFILES/hosts}"
|
||||||
|
|
||||||
@@ -18,9 +17,13 @@ SCRIPT=$(basename "$0")
|
|||||||
|
|
||||||
VERSION_NVM="v0.39.5"
|
VERSION_NVM="v0.39.5"
|
||||||
|
|
||||||
|
export DOTFILES_SHARED_LOADED=""
|
||||||
# shellcheck source=./../../scripts/shared.sh
|
# shellcheck source=./../../scripts/shared.sh
|
||||||
source "$SHARED_SCRIPT"
|
source "$SHARED_SCRIPT"
|
||||||
|
|
||||||
|
# Loads configs for better installation experience
|
||||||
|
x-load-configs
|
||||||
|
|
||||||
function section_install
|
function section_install
|
||||||
{
|
{
|
||||||
USAGE_PREFIX="$SCRIPT install <command>"
|
USAGE_PREFIX="$SCRIPT install <command>"
|
||||||
@@ -28,9 +31,11 @@ function section_install
|
|||||||
MENU=(
|
MENU=(
|
||||||
"all:Installs everything in the correct order"
|
"all:Installs everything in the correct order"
|
||||||
"antigen:Updates the antigen.zsh file"
|
"antigen:Updates the antigen.zsh file"
|
||||||
|
"cargo:Install rust/cargo packages"
|
||||||
"cheat-databases:Install cheat external cheatsheet databases"
|
"cheat-databases:Install cheat external cheatsheet databases"
|
||||||
"composer:Install composer"
|
"composer:Install composer"
|
||||||
"dotenv:Install dotenv-linter"
|
"dotenv:Install dotenv-linter"
|
||||||
|
"fonts:Install programming fonts"
|
||||||
"gh:Install GitHub CLI Extensions"
|
"gh:Install GitHub CLI Extensions"
|
||||||
"go:Install Go Packages"
|
"go:Install Go Packages"
|
||||||
"imagick:Install ImageMagick CLI"
|
"imagick:Install ImageMagick CLI"
|
||||||
@@ -40,14 +45,20 @@ function section_install
|
|||||||
"nvm:Install Node Version Manager (nvm)"
|
"nvm:Install Node Version Manager (nvm)"
|
||||||
"npm:Install NPM Packages"
|
"npm:Install NPM Packages"
|
||||||
"ntfy:Install ntfy"
|
"ntfy:Install ntfy"
|
||||||
|
"pip:Install pip/python packages"
|
||||||
"z:Install z"
|
"z:Install z"
|
||||||
)
|
)
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
all)
|
all)
|
||||||
|
msgr msg "Starting to install all and reloading configurations..."
|
||||||
|
x-load-configs
|
||||||
$0 install macos
|
$0 install macos
|
||||||
|
$0 install fonts
|
||||||
$0 install antigen
|
$0 install antigen
|
||||||
$0 brew install
|
$0 brew install
|
||||||
|
$0 install pip
|
||||||
|
$0 install cargo
|
||||||
$0 install composer
|
$0 install composer
|
||||||
$0 install dotenv
|
$0 install dotenv
|
||||||
$0 install fzf
|
$0 install fzf
|
||||||
@@ -60,11 +71,18 @@ function section_install
|
|||||||
$0 install npm
|
$0 install npm
|
||||||
$0 install ntfy
|
$0 install ntfy
|
||||||
$0 install z
|
$0 install z
|
||||||
|
msgr msg "Reloading configurations again..."
|
||||||
|
x-load-configs
|
||||||
|
msgr yay "All done!"
|
||||||
;;
|
;;
|
||||||
antigen)
|
antigen)
|
||||||
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
|
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
|
||||||
&& msg_yay "New antigen installed!"
|
&& msg_yay "New antigen installed!"
|
||||||
;;
|
;;
|
||||||
|
cargo)
|
||||||
|
bash "$DOTFILES/scripts/install-cargo-packages.sh" \
|
||||||
|
&& msg_yay "cargo packages installed!"
|
||||||
|
;;
|
||||||
cheat-databases)
|
cheat-databases)
|
||||||
for database in "$DOTFILES"/scripts/install-cheat-*; do
|
for database in "$DOTFILES"/scripts/install-cheat-*; do
|
||||||
bash "$database" \
|
bash "$database" \
|
||||||
@@ -81,6 +99,10 @@ function section_install
|
|||||||
| sh -s -- -b "$XDG_BIN_HOME" \
|
| sh -s -- -b "$XDG_BIN_HOME" \
|
||||||
&& msg_yay "dotenv-linter installed!"
|
&& msg_yay "dotenv-linter installed!"
|
||||||
;;
|
;;
|
||||||
|
fonts)
|
||||||
|
bash "$DOTFILES/scripts/install-fonts.sh" \
|
||||||
|
&& msg_yay "Installed fonts!"
|
||||||
|
;;
|
||||||
fzf)
|
fzf)
|
||||||
bash "$DOTFILES/scripts/install-fzf.sh" \
|
bash "$DOTFILES/scripts/install-fzf.sh" \
|
||||||
&& msg_yay "fzf installed!"
|
&& msg_yay "fzf installed!"
|
||||||
@@ -126,6 +148,7 @@ function section_install
|
|||||||
bash "$DOTFILES/scripts/install-ntfy.sh" \
|
bash "$DOTFILES/scripts/install-ntfy.sh" \
|
||||||
&& msg_yay "ntfy installed!"
|
&& msg_yay "ntfy installed!"
|
||||||
;;
|
;;
|
||||||
|
pip) bash "$DOTFILES/scripts/install-pip-packages.sh" ;;
|
||||||
z)
|
z)
|
||||||
bash "$DOTFILES/scripts/install-z.sh" \
|
bash "$DOTFILES/scripts/install-z.sh" \
|
||||||
&& msg_yay "z has been installed!"
|
&& msg_yay "z has been installed!"
|
||||||
@@ -232,10 +255,8 @@ function section_dotfiles
|
|||||||
~/.local/share/nvim \
|
~/.local/share/nvim \
|
||||||
~/.local/state/nvim \
|
~/.local/state/nvim \
|
||||||
~/.cache/nvim \
|
~/.cache/nvim \
|
||||||
~/.config/astronvim \
|
|
||||||
~/.config/nvim
|
~/.config/nvim
|
||||||
msg_ok "Deleted old nvim files"
|
msg_ok "Deleted old nvim files (share, state and cache + config)"
|
||||||
ln -s "$DOTFILES/config/astronvim" ~/.config/astronvim
|
|
||||||
ln -s "$DOTFILES/config/nvim" ~/.config/nvim
|
ln -s "$DOTFILES/config/nvim" ~/.config/nvim
|
||||||
msg_ok "Linked nvim and astronvim"
|
msg_ok "Linked nvim and astronvim"
|
||||||
have npm && $0 install npm
|
have npm && $0 install npm
|
||||||
@@ -249,18 +270,9 @@ function section_dotfiles
|
|||||||
;;
|
;;
|
||||||
shfmt)
|
shfmt)
|
||||||
# Format shell scripts according to following rules.
|
# Format shell scripts according to following rules.
|
||||||
find "$DOTFILES" \
|
fd --full-path "$DOTFILES" -tx \
|
||||||
-type f -executable \
|
-E '*.pl' -E '*.php' -E '*.py' -E '*.zsh' -E 'plugins' -E 'fzf' -E 'dotbot' \
|
||||||
-not -path '*/.git/*' \
|
-x shfmt \
|
||||||
-not -path '*dotbot*' \
|
|
||||||
-not -path '*config/fzf*' \
|
|
||||||
-not -path '*bin/fzf*' \
|
|
||||||
-not -path '*tmux/plugins*' \
|
|
||||||
-not -name '*.pl' \
|
|
||||||
-not -name '*.py' \
|
|
||||||
-not -name '*.php' \
|
|
||||||
-not -name '*.zsh' \
|
|
||||||
-exec shfmt \
|
|
||||||
--language-dialect bash \
|
--language-dialect bash \
|
||||||
--func-next-line --list --write \
|
--func-next-line --list --write \
|
||||||
--indent 2 --case-indent --space-redirects \
|
--indent 2 --case-indent --space-redirects \
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
# fzf-tmux: starts fzf in a tmux pane
|
# fzf-tmux: starts fzf in a tmux pane
|
||||||
# usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
|
# usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
|
||||||
|
|
||||||
fail() {
|
fail()
|
||||||
>&2 echo "$1"
|
{
|
||||||
|
echo >&2 "$1"
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,8 +20,9 @@ term=""
|
|||||||
[[ -n "$LINES" ]] && lines=$LINES || lines=$(tput lines) || lines=$(tmux display-message -p "#{pane_height}")
|
[[ -n "$LINES" ]] && lines=$LINES || lines=$(tput lines) || lines=$(tmux display-message -p "#{pane_height}")
|
||||||
[[ -n "$COLUMNS" ]] && columns=$COLUMNS || columns=$(tput cols) || columns=$(tmux display-message -p "#{pane_width}")
|
[[ -n "$COLUMNS" ]] && columns=$COLUMNS || columns=$(tput cols) || columns=$(tmux display-message -p "#{pane_width}")
|
||||||
|
|
||||||
help() {
|
help()
|
||||||
>&2 echo 'usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
|
{
|
||||||
|
echo >&2 'usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
|
||||||
|
|
||||||
LAYOUT OPTIONS:
|
LAYOUT OPTIONS:
|
||||||
(default layout: -d 50%)
|
(default layout: -d 50%)
|
||||||
@@ -55,7 +57,7 @@ while [[ $# -gt 0 ]]; do
|
|||||||
echo "fzf-tmux (with fzf $("$fzf" --version))"
|
echo "fzf-tmux (with fzf $("$fzf" --version))"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
-p*|-w*|-h*|-x*|-y*|-d*|-u*|-r*|-l*)
|
-p* | -w* | -h* | -x* | -y* | -d* | -u* | -r* | -l*)
|
||||||
if [[ "$arg" =~ ^-[pwhxy] ]]; then
|
if [[ "$arg" =~ ^-[pwhxy] ]]; then
|
||||||
[[ "$opt" =~ "-E" ]] || opt="-E"
|
[[ "$opt" =~ "-E" ]] || opt="-E"
|
||||||
elif [[ "$arg" =~ ^.[lr] ]]; then
|
elif [[ "$arg" =~ ^.[lr] ]]; then
|
||||||
@@ -93,9 +95,9 @@ while [[ $# -gt 0 ]]; do
|
|||||||
elif [[ "$arg" =~ ^-[whxy] ]]; then
|
elif [[ "$arg" =~ ^-[whxy] ]]; then
|
||||||
opt="$opt ${arg:0:2}$size"
|
opt="$opt ${arg:0:2}$size"
|
||||||
elif [[ "$size" =~ %$ ]]; then
|
elif [[ "$size" =~ %$ ]]; then
|
||||||
size=${size:0:((${#size}-1))}
|
size=${size:0:((${#size} - 1))}
|
||||||
if [[ -n "$swap" ]]; then
|
if [[ -n "$swap" ]]; then
|
||||||
opt="$opt -p $(( 100 - size ))"
|
opt="$opt -p $((100 - size))"
|
||||||
else
|
else
|
||||||
opt="$opt -p $size"
|
opt="$opt -p $size"
|
||||||
fi
|
fi
|
||||||
@@ -106,7 +108,7 @@ while [[ $# -gt 0 ]]; do
|
|||||||
else
|
else
|
||||||
max=$lines
|
max=$lines
|
||||||
fi
|
fi
|
||||||
size=$(( max - size ))
|
size=$((max - size))
|
||||||
[[ $size -lt 0 ]] && size=0
|
[[ $size -lt 0 ]] && size=0
|
||||||
opt="$opt -l $size"
|
opt="$opt -l $size"
|
||||||
else
|
else
|
||||||
@@ -152,13 +154,14 @@ fifo1="${TMPDIR:-/tmp}/fzf-fifo1-$id"
|
|||||||
fifo2="${TMPDIR:-/tmp}/fzf-fifo2-$id"
|
fifo2="${TMPDIR:-/tmp}/fzf-fifo2-$id"
|
||||||
fifo3="${TMPDIR:-/tmp}/fzf-fifo3-$id"
|
fifo3="${TMPDIR:-/tmp}/fzf-fifo3-$id"
|
||||||
if tmux_win_opts=$(tmux show-options -p remain-on-exit \; show-options -p synchronize-panes 2> /dev/null); then
|
if tmux_win_opts=$(tmux show-options -p remain-on-exit \; show-options -p synchronize-panes 2> /dev/null); then
|
||||||
tmux_win_opts=( $(sed '/ off/d; s/synchronize-panes/set-option -p synchronize-panes/; s/remain-on-exit/set-option -p remain-on-exit/; s/$/ \\;/' <<< "$tmux_win_opts") )
|
tmux_win_opts=($(sed '/ off/d; s/synchronize-panes/set-option -p synchronize-panes/; s/remain-on-exit/set-option -p remain-on-exit/; s/$/ \\;/' <<< "$tmux_win_opts"))
|
||||||
tmux_off_opts='; set-option -p synchronize-panes off ; set-option -p remain-on-exit off'
|
tmux_off_opts='; set-option -p synchronize-panes off ; set-option -p remain-on-exit off'
|
||||||
else
|
else
|
||||||
tmux_win_opts=( $(tmux show-window-options remain-on-exit \; show-window-options synchronize-panes | sed '/ off/d; s/^/set-window-option /; s/$/ \\;/') )
|
tmux_win_opts=($(tmux show-window-options remain-on-exit \; show-window-options synchronize-panes | sed '/ off/d; s/^/set-window-option /; s/$/ \\;/'))
|
||||||
tmux_off_opts='; set-window-option synchronize-panes off ; set-window-option remain-on-exit off'
|
tmux_off_opts='; set-window-option synchronize-panes off ; set-window-option remain-on-exit off'
|
||||||
fi
|
fi
|
||||||
cleanup() {
|
cleanup()
|
||||||
|
{
|
||||||
\rm -f $argsf $fifo1 $fifo2 $fifo3
|
\rm -f $argsf $fifo1 $fifo2 $fifo3
|
||||||
|
|
||||||
# Restore tmux window options
|
# Restore tmux window options
|
||||||
@@ -196,7 +199,7 @@ if [[ "$opt" =~ "-E" ]]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ -n "$FZF_DEFAULT_OPTS" ]] && envs="$envs FZF_DEFAULT_OPTS=$(printf %q "$FZF_DEFAULT_OPTS")"
|
[[ -n "$FZF_DEFAULT_OPTS" ]] && envs="$envs FZF_DEFAULT_OPTS=$(printf %q "$FZF_DEFAULT_OPTS")"
|
||||||
[[ -n "$FZF_DEFAULT_COMMAND" ]] && envs="$envs FZF_DEFAULT_COMMAND=$(printf %q "$FZF_DEFAULT_COMMAND")"
|
[[ -n "$FZF_DEFAULT_COMMAND" ]] && envs="$envs FZF_DEFAULT_COMMAND=$(printf %q "$FZF_DEFAULT_COMMAND")"
|
||||||
[[ -n "$RUNEWIDTH_EASTASIAN" ]] && envs="$envs RUNEWIDTH_EASTASIAN=$(printf %q "$RUNEWIDTH_EASTASIAN")"
|
[[ -n "$RUNEWIDTH_EASTASIAN" ]] && envs="$envs RUNEWIDTH_EASTASIAN=$(printf %q "$RUNEWIDTH_EASTASIAN")"
|
||||||
[[ -n "$BAT_THEME" ]] && envs="$envs BAT_THEME=$(printf %q "$BAT_THEME")"
|
[[ -n "$BAT_THEME" ]] && envs="$envs BAT_THEME=$(printf %q "$BAT_THEME")"
|
||||||
@@ -236,6 +239,9 @@ fi
|
|||||||
tmux \
|
tmux \
|
||||||
split-window -c "$PWD" $opt "bash -c 'exec -a fzf bash $argsf'" $swap \
|
split-window -c "$PWD" $opt "bash -c 'exec -a fzf bash $argsf'" $swap \
|
||||||
$tmux_off_opts \
|
$tmux_off_opts \
|
||||||
> /dev/null 2>&1 || { "$fzf" "${args[@]}"; exit $?; }
|
> /dev/null 2>&1 || {
|
||||||
|
"$fzf" "${args[@]}"
|
||||||
|
exit $?
|
||||||
|
}
|
||||||
cat $fifo2
|
cat $fifo2
|
||||||
exit "$(cat $fifo3)"
|
exit "$(cat $fifo3)"
|
||||||
|
|||||||
222
local/bin/msgr
Executable file
222
local/bin/msgr
Executable file
@@ -0,0 +1,222 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# msgr / Messanger helper
|
||||||
|
# Copyright (c) 2023 Ismo Vuorinen. All Rights Reserved.
|
||||||
|
# MIT License, https://opensource.org/license/mit/
|
||||||
|
|
||||||
|
# Modified from https://stackoverflow.com/a/28776166
|
||||||
|
(
|
||||||
|
[[ -n $ZSH_VERSION && $ZSH_EVAL_CONTEXT =~ :file$ ]] \
|
||||||
|
|| [[ -n $BASH_VERSION ]] && (return 0 2> /dev/null)
|
||||||
|
) && sourced=1 || sourced=0
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ Colors │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
CLR_RED="\033[1;31m"
|
||||||
|
CLR_YELLOW="\033[1;33m"
|
||||||
|
CLR_GREEN="\033[1;32m"
|
||||||
|
CLR_BLUE="\033[1;34m"
|
||||||
|
CLR_RESET="\033[0m"
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ Color functions │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
function __color_red()
|
||||||
|
{
|
||||||
|
local MSG="$1"
|
||||||
|
echo -e "${CLR_RED}${MSG}${CLR_RESET}"
|
||||||
|
}
|
||||||
|
function __color_yellow()
|
||||||
|
{
|
||||||
|
local MSG="$1"
|
||||||
|
echo -e "${CLR_YELLOW}${MSG}${CLR_RESET}"
|
||||||
|
}
|
||||||
|
function __color_green()
|
||||||
|
{
|
||||||
|
local MSG="$1"
|
||||||
|
echo -e "${CLR_GREEN}${MSG}${CLR_RESET}"
|
||||||
|
}
|
||||||
|
function __color_blue()
|
||||||
|
{
|
||||||
|
local MSG="$1"
|
||||||
|
echo -e "${CLR_BLUE}${MSG}${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ Helpers │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
function __log_marker()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_BLUE}➜${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_marker_ok()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_GREEN}✔${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_marker_ok_blue()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_BLUE}✔${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_marker_warn()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_YELLOW}⁕${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_marker_question()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_YELLOW}?${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_marker_err()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_RED}⛌${CLR_RESET}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function __log_indent()
|
||||||
|
{
|
||||||
|
echo " "
|
||||||
|
}
|
||||||
|
|
||||||
|
# ╭──────────────────────────────────────────────────────────╮
|
||||||
|
# │ Log functions │
|
||||||
|
# ╰──────────────────────────────────────────────────────────╯
|
||||||
|
|
||||||
|
function msg()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_yay()
|
||||||
|
{
|
||||||
|
echo -e "🎉 $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_yay_done()
|
||||||
|
{
|
||||||
|
echo -e "🎉 $1 ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_done()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker) $1 ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_done_suffix()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker) ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_prompt()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker_question) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_prompt_done()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker_question) $1 ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_nested()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_indent)$(__log_marker) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_nested_done()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_indent)$(__log_marker) $1 ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_run()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_GREEN}➜ $1${CLR_RESET} $2"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_run_done()
|
||||||
|
{
|
||||||
|
echo -e "${CLR_GREEN}➜ $1${CLR_RESET} $2 ...$(__log_marker_ok)"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_ok()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker_ok) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_warn()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker_warn) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
function msg_err()
|
||||||
|
{
|
||||||
|
echo -e "$(__log_marker_err) $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a prompt which you have to answer y/n to continue
|
||||||
|
ask()
|
||||||
|
{
|
||||||
|
while true; do
|
||||||
|
read -p "$1 ([y]/n) " -r
|
||||||
|
REPLY=${REPLY:-"y"}
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
return 1
|
||||||
|
elif [[ $REPLY =~ ^[Nn]$ ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# If this is being sourced, no need to run the next steps.
|
||||||
|
[ "$sourced" = 1 ] && return
|
||||||
|
|
||||||
|
function __tests()
|
||||||
|
{
|
||||||
|
msg "[ msg ]"
|
||||||
|
msg_done "[ done ]"
|
||||||
|
msg_done_suffix "[ done_suffix ]" && echo " ^-- (done_suffix)"
|
||||||
|
msg_err "[ err ]"
|
||||||
|
msg_nested "[ nested ]"
|
||||||
|
msg_nested_done "[ nested_done ]"
|
||||||
|
msg_ok "[ ok ]"
|
||||||
|
msg_prompt "[ prompt ]"
|
||||||
|
msg_prompt_done "[ prompt_done ]"
|
||||||
|
msg_run "[ run ]" "[ second_param ]"
|
||||||
|
msg_run_done "[ run_done ]" "[ second_param ]"
|
||||||
|
msg_warn "[ warn ]"
|
||||||
|
msg_yay "[ yay ]"
|
||||||
|
msg_yay_done "[ yay_done ]"
|
||||||
|
}
|
||||||
|
|
||||||
|
function usage()
|
||||||
|
{
|
||||||
|
echo "usage: msgr [type] [message] [optional second message]"
|
||||||
|
echo ""
|
||||||
|
echo "-- types and examples: --"
|
||||||
|
__tests
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# The main loop. first keyword after $0 triggers type, or help and usage examples.
|
||||||
|
case "$1" in
|
||||||
|
msg) msg "$2" ;;
|
||||||
|
done) msg_done "$2" ;;
|
||||||
|
done_suffix) msg_done_suffix "$2" ;;
|
||||||
|
err) msg_err "$2" ;;
|
||||||
|
nested) msg_nested "$2" ;;
|
||||||
|
nested_done) msg_nested_done "$2" ;;
|
||||||
|
ok) msg_ok "$2" ;;
|
||||||
|
prompt) msg_prompt "$2" ;;
|
||||||
|
prompt_done) msg_prompt_done "$2" ;;
|
||||||
|
run) msg_run "$2" ;;
|
||||||
|
run_done) msg_run_done "$2" "$3" ;;
|
||||||
|
warn) msg_warn "$2" ;;
|
||||||
|
yay) msg_yay "$2" ;;
|
||||||
|
yay_done) msg_yay_done "$2" ;;
|
||||||
|
tests) __tests "[first]" "[second]" ;;
|
||||||
|
*) usage && exit 0 ;;
|
||||||
|
esac
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
# Updates $HOME/.dotfiles/docs/tmux.md with my keybindings.
|
# Updates $HOME/.dotfiles/docs/tmux.md with my keybindings.
|
||||||
|
|
||||||
# shellcheck source=./../../scripts/shared.sh
|
# shellcheck source=./../../scripts/shared.sh
|
||||||
|
DOTFILES_SHARED_LOADED=""
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
have tmux || {
|
have tmux || {
|
||||||
@@ -15,7 +16,10 @@ TMUX_KEYBINDINGS_DOCS="$DOTFILES/docs/tmux-keybindings.md"
|
|||||||
CB="\n\`\`\`\n"
|
CB="\n\`\`\`\n"
|
||||||
KB=$(tmux list-keys)
|
KB=$(tmux list-keys)
|
||||||
H="# tmux keybindings\n"
|
H="# tmux keybindings\n"
|
||||||
L="\n\nLeader: \`<ctrl><space>\`\n\n"
|
L="\nLeader: \`<ctrl><space>\`\n"
|
||||||
|
|
||||||
|
# Generalize expanded $HOME to "$HOME"
|
||||||
|
KB="${KB//$HOME/\$HOME}"
|
||||||
|
|
||||||
msg "Outputting tmux keybindings to $TMUX_KEYBINDINGS_DOCS"
|
msg "Outputting tmux keybindings to $TMUX_KEYBINDINGS_DOCS"
|
||||||
echo -e "${H}${L}${CB}${KB}${CB}" > "$TMUX_KEYBINDINGS_DOCS"
|
echo -e "${H}${L}${CB}${KB}${CB}" > "$TMUX_KEYBINDINGS_DOCS"
|
||||||
|
|||||||
@@ -1,136 +1,195 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Python script to find the largest files in a git repository.
|
# Python script to find the largest files in a git repository.
|
||||||
# The general method is based on the script in this blog post:
|
# The general method is based on the script in this blog post:
|
||||||
# http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
|
# http://stubbisms.wordpress.com/2009/07/10/git-script-to-show-largest-pack-objects-and-trim-your-waist-line/
|
||||||
#
|
#
|
||||||
# The above script worked for me, but was very slow on my 11GB repository. This version has a bunch
|
# The above script worked for me, but was very slow on my 11GB repository.
|
||||||
# of changes to speed things up to a more reasonable time. It takes less than a minute on repos with 250K objects.
|
# This version has a bunch of changes to speed things up to a more
|
||||||
|
# reasonable time. It takes less than a minute on repos with 250K objects.
|
||||||
#
|
#
|
||||||
# The MIT License (MIT)
|
# The MIT License (MIT)
|
||||||
# Copyright (c) 2015 Nick Kocharhook
|
# Copyright (c) 2015 Nick Kocharhook
|
||||||
|
# Copyright (c) 2023 Ismo Vuorinen
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# associated documentation files (the "Software"), to deal in the Software without restriction,
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
# including without limitation the rights to use, copy, modify, merge, publish, distribute,
|
# in the Software without restriction, including without limitation the rights
|
||||||
# sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
# of the Software, and to permit persons to whom the Software is
|
||||||
# furnished to do so, subject to the following conditions:
|
# furnished to do so, subject to the following conditions:
|
||||||
#
|
#
|
||||||
# The above copyright notice and this permission notice shall be included in all copies or
|
# The above copyright notice and this permission notice shall be included in all copies
|
||||||
# substantial portions of the Software.
|
# or substantial portions of the Software.
|
||||||
#
|
#
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||||
# NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||||
# OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||||
|
# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
# vim:tw=120:ts=4:ft=python:norl:
|
||||||
|
|
||||||
from subprocess import check_output, CalledProcessError, Popen, PIPE
|
from subprocess import check_output, Popen, PIPE
|
||||||
import argparse
|
import argparse
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
sortByOnDiskSize = False
|
sortByOnDiskSize = False
|
||||||
|
|
||||||
|
class Blob(object):
|
||||||
|
sha1 = ''
|
||||||
|
size = 0
|
||||||
|
packedSize = 0
|
||||||
|
path = ''
|
||||||
|
|
||||||
|
def __init__(self, line):
|
||||||
|
cols = line.split()
|
||||||
|
self.sha1, self.size, self.packedSize = cols[0], int(cols[2]), int(cols[3])
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '{} - {} - {} - {}'.format(
|
||||||
|
self.sha1, self.size, self.packedSize, self.path)
|
||||||
|
|
||||||
|
def __lt__(self, other):
|
||||||
|
if (sortByOnDiskSize):
|
||||||
|
return self.size < other.size
|
||||||
|
else:
|
||||||
|
return self.packedSize < other.packedSize
|
||||||
|
|
||||||
|
def csv_line(self):
|
||||||
|
return "{},{},{},{}".format(
|
||||||
|
self.size/1024, self.packedSize/1024, self.sha1, self.path)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
global sortByOnDiskSize
|
global sortByOnDiskSize
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, signal_handler)
|
signal.signal(signal.SIGINT, signal_handler)
|
||||||
|
|
||||||
args = parseArguments()
|
|
||||||
sortByOnDiskSize = args.sortByOnDiskSize
|
|
||||||
sizeLimit = 1024*args.filesExceeding
|
|
||||||
|
|
||||||
if args.filesExceeding > 0:
|
args = parse_arguments()
|
||||||
print "Finding objects larger than {}kB…".format(args.filesExceeding)
|
sortByOnDiskSize = args.sortByOnDiskSize
|
||||||
else:
|
sizeLimit = 1024*args.filesExceeding
|
||||||
print "Finding the {} largest objects…".format(args.matchCount)
|
|
||||||
|
|
||||||
blobs = getTopBlobs(args.matchCount, sizeLimit)
|
if args.filesExceeding > 0:
|
||||||
|
print("Finding objects larger than {}kB…".format(args.filesExceeding))
|
||||||
|
else:
|
||||||
|
print("Finding the {} largest objects…".format(args.matchCount))
|
||||||
|
|
||||||
populateBlobPaths(blobs)
|
blobs = get_top_blobs(args.matchCount, sizeLimit)
|
||||||
printOutBlobs(blobs)
|
|
||||||
|
|
||||||
def getTopBlobs(count, sizeLimit):
|
populate_blob_paths(blobs)
|
||||||
sortColumn = 4
|
print_out_blobs(blobs)
|
||||||
|
|
||||||
if sortByOnDiskSize:
|
|
||||||
sortColumn = 3
|
|
||||||
|
|
||||||
verifyPack = "git verify-pack -v `git rev-parse --git-dir`/objects/pack/pack-*.idx | grep blob | sort -k{}nr".format(sortColumn)
|
|
||||||
output = check_output(verifyPack, shell=True).split("\n")[:-1]
|
|
||||||
|
|
||||||
blobs = dict()
|
|
||||||
compareBlob = Blob("a b {} {} c".format(sizeLimit, sizeLimit)) # use __lt__ to do the appropriate comparison
|
|
||||||
|
|
||||||
for objLine in output:
|
|
||||||
blob = Blob(objLine)
|
|
||||||
|
|
||||||
if sizeLimit > 0:
|
|
||||||
if compareBlob < blob:
|
|
||||||
blobs[blob.sha1] = blob
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
blobs[blob.sha1] = blob
|
|
||||||
|
|
||||||
if len(blobs) == count:
|
|
||||||
break
|
|
||||||
|
|
||||||
return blobs
|
|
||||||
|
|
||||||
|
|
||||||
def populateBlobPaths(blobs):
|
def get_top_blobs(count, sizeLimit):
|
||||||
if len(blobs):
|
"""Get top blobs from git repository
|
||||||
print "Finding object paths…"
|
|
||||||
|
|
||||||
# Only include revs which have a path. Other revs aren't blobs.
|
Args:
|
||||||
revList = "git rev-list --all --objects | awk '$2 {print}'"
|
count (int): How many items to return
|
||||||
allObjectLines = check_output(revList, shell=True).split("\n")[:-1]
|
sizeLimit (int): What is the size limit
|
||||||
|
|
||||||
outstandingKeys = blobs.keys()
|
Returns:
|
||||||
|
dict: Dictionary of Blobs
|
||||||
|
"""
|
||||||
|
sortColumn = 4
|
||||||
|
|
||||||
for line in allObjectLines:
|
if sortByOnDiskSize:
|
||||||
cols = line.split()
|
sortColumn = 3
|
||||||
sha1, path = cols[0], " ".join(cols[1:])
|
|
||||||
|
|
||||||
if (sha1 in outstandingKeys):
|
verifyPack = "git verify-pack -v `git rev-parse --git-dir`/objects/pack/pack-*.idx | grep blob | sort -k{}nr".format(sortColumn) # noqa: E501
|
||||||
outstandingKeys.remove(sha1)
|
output = check_output(verifyPack, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
|
||||||
blobs[sha1].path = path
|
|
||||||
|
|
||||||
# short-circuit the search if we're done
|
blobs = dict()
|
||||||
if not len(outstandingKeys):
|
# use __lt__ to do the appropriate comparison
|
||||||
break
|
compareBlob = Blob("a b {} {} c".format(sizeLimit, sizeLimit))
|
||||||
|
for objLine in output:
|
||||||
|
blob = Blob(objLine)
|
||||||
|
|
||||||
|
if sizeLimit > 0:
|
||||||
|
if compareBlob < blob:
|
||||||
|
blobs[blob.sha1] = blob
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
blobs[blob.sha1] = blob
|
||||||
|
|
||||||
|
if len(blobs) == count:
|
||||||
|
break
|
||||||
|
|
||||||
|
return blobs
|
||||||
|
|
||||||
|
|
||||||
def printOutBlobs(blobs):
|
def populate_blob_paths(blobs):
|
||||||
if len(blobs):
|
"""Populate blob paths that only have a path
|
||||||
csvLines = ["size,pack,hash,path"]
|
|
||||||
|
|
||||||
for blob in sorted(blobs.values(), reverse=True):
|
Args:
|
||||||
csvLines.append(blob.csvLine())
|
blobs (Blob, dict): Dictionary of Blobs
|
||||||
|
"""
|
||||||
|
if len(blobs):
|
||||||
|
print("Finding object paths…")
|
||||||
|
|
||||||
p = Popen(["column", "-t", "-s", "','"], stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
# Only include revs which have a path. Other revs aren't blobs.
|
||||||
stdout, stderr = p.communicate("\n".join(csvLines)+"\n")
|
revList = "git rev-list --all --objects | awk '$2 {print}'"
|
||||||
|
all_object_lines = check_output(revList, shell=True).decode('utf-8').strip().split("\n")[:-1] # noqa: E501
|
||||||
|
outstanding_keys = list(blobs.keys())
|
||||||
|
|
||||||
print "\nAll sizes in kB. The pack column is the compressed size of the object inside the pack file.\n"
|
for line in all_object_lines:
|
||||||
print stdout.rstrip('\n')
|
cols = line.split()
|
||||||
else:
|
sha1, path = cols[0], " ".join(cols[1:])
|
||||||
print "No files found which match those criteria."
|
|
||||||
|
if (sha1 in outstanding_keys):
|
||||||
|
outstanding_keys.remove(sha1)
|
||||||
|
blobs[sha1].path = path
|
||||||
|
|
||||||
|
# short-circuit the search if we're done
|
||||||
|
if not len(outstanding_keys):
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
def parseArguments():
|
def print_out_blobs(blobs):
|
||||||
parser = argparse.ArgumentParser(description='List the largest files in a git repository')
|
if len(blobs):
|
||||||
parser.add_argument('-c', '--match-count', dest='matchCount', type=int, default=10,
|
csvLines = ["size,pack,hash,path"]
|
||||||
help='The number of files to return. Default is 10. Ignored if --files-exceeding is used.')
|
|
||||||
parser.add_argument('--files-exceeding', dest='filesExceeding', type=int, default=0,
|
|
||||||
help='The cutoff amount, in KB. Files with a pack size (or pyhsical size, with -p) larger than this will be printed.')
|
|
||||||
parser.add_argument('-p', '--physical-sort', dest='sortByOnDiskSize', action='store_true', default=False,
|
|
||||||
help='Sort by the on-disk size of the files. Default is to sort by the pack size.')
|
|
||||||
|
|
||||||
return parser.parse_args()
|
for blob in sorted(blobs.values(), reverse=True):
|
||||||
|
csvLines.append(blob.csv_line())
|
||||||
|
|
||||||
|
command = ["column", "-t", "-s", ","]
|
||||||
|
p = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
||||||
|
|
||||||
|
# Encode the input as bytes
|
||||||
|
input_data = ("\n".join(csvLines) + "\n").encode()
|
||||||
|
|
||||||
|
stdout, _ = p.communicate(input_data)
|
||||||
|
|
||||||
|
print("\nAll sizes in kB. The pack column is the compressed size of the object inside the pack file.\n") # noqa: E501
|
||||||
|
|
||||||
|
print(stdout.decode("utf-8").rstrip('\n'))
|
||||||
|
else:
|
||||||
|
print("No files found which match those criteria.")
|
||||||
|
|
||||||
|
|
||||||
|
def parse_arguments():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='List the largest files in a git repository'
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'-c', '--match-count', dest='matchCount', type=int, default=10,
|
||||||
|
help='Files to return. Default is 10. Ignored if --files-exceeding is used.'
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--files-exceeding', dest='filesExceeding', type=int, default=0,
|
||||||
|
help='The cutoff amount, in KB. Files with a pack size (or physical size, with -p) larger than this will be printed.' # noqa: E501
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'-p', '--physical-sort', dest='sortByOnDiskSize',
|
||||||
|
action='store_true', default=False,
|
||||||
|
help='Sort by the on-disk size. Default is to sort by the pack size.'
|
||||||
|
)
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def signal_handler(signal, frame):
|
def signal_handler(signal, frame):
|
||||||
@@ -138,29 +197,6 @@ def signal_handler(signal, frame):
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
class Blob(object):
|
|
||||||
sha1 = ''
|
|
||||||
size = 0
|
|
||||||
packedSize = 0
|
|
||||||
path = ''
|
|
||||||
|
|
||||||
def __init__(self, line):
|
|
||||||
cols = line.split()
|
|
||||||
self.sha1, self.size, self.packedSize = cols[0], int(cols[2]), int(cols[3])
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return '{} - {} - {} - {}'.format(self.sha1, self.size, self.packedSize, self.path)
|
|
||||||
|
|
||||||
def __lt__(self, other):
|
|
||||||
if (sortByOnDiskSize):
|
|
||||||
return self.size < other.size
|
|
||||||
else:
|
|
||||||
return self.packedSize < other.packedSize
|
|
||||||
|
|
||||||
def csvLine(self):
|
|
||||||
return "{},{},{},{}".format(self.size/1024, self.packedSize/1024, self.sha1, self.path)
|
|
||||||
|
|
||||||
|
|
||||||
# Default function is main()
|
# Default function is main()
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
# Modified by Ismo Vuorinen <https://github.com/ivuorinen> 2023
|
# Modified by Ismo Vuorinen <https://github.com/ivuorinen> 2023
|
||||||
|
|
||||||
# Determine width of terminal
|
# Determine width of terminal
|
||||||
hr_col_count="$( (tput cols - 4) )"
|
hr_col_count="$( (tput cols - 4))"
|
||||||
if [ -z "${hr_col_count+set}" ] || [ "$hr_col_count" -lt 1 ]; then
|
if [ -z "${hr_col_count+set}" ] || [ "$hr_col_count" -lt 1 ]; then
|
||||||
hr_col_count="${COLUMNS:-80}"
|
hr_col_count="${COLUMNS:-80}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
@@ -21,20 +21,21 @@ hr_color="${hr_color:=$CLR_RED}"
|
|||||||
hr_reset="\033[0m"
|
hr_reset="\033[0m"
|
||||||
|
|
||||||
# Prints the HR line
|
# Prints the HR line
|
||||||
hr_draw_char() {
|
hr_draw_char()
|
||||||
local CHAR="$1"
|
{
|
||||||
local LINE=""
|
local CHAR="$1"
|
||||||
LINE=$(printf "%*s" "$((hr_col_count - 3))" " ")
|
local LINE=""
|
||||||
LINE="${LINE// /${CHAR}}"
|
LINE=$(printf "%*s" "$((hr_col_count - 3))" " ")
|
||||||
echo -e "${hr_color}${LINE:0:${hr_col_count}}${hr_reset}"
|
LINE="${LINE// /${CHAR}}"
|
||||||
|
echo -e "${hr_color}${LINE:0:${hr_col_count}}${hr_reset}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Passes param and calls hr()
|
# Passes param and calls hr()
|
||||||
hr() {
|
hr()
|
||||||
for WORD in "${@:--}"; do
|
{
|
||||||
hr_draw_char "$WORD"
|
for WORD in "${@:--}"; do
|
||||||
done
|
hr_draw_char "$WORD"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
hr "$@"
|
hr "$@"
|
||||||
|
|
||||||
|
|||||||
@@ -16,21 +16,22 @@ COLOR_S='\033[0;36m'
|
|||||||
RESET='\033[0m'
|
RESET='\033[0m'
|
||||||
|
|
||||||
# Print time-based personalized message, using figlet & lolcat if availible
|
# Print time-based personalized message, using figlet & lolcat if availible
|
||||||
function welcome_greeting () {
|
function welcome_greeting()
|
||||||
|
{
|
||||||
h=$(date +%H)
|
h=$(date +%H)
|
||||||
if [ "$h" -lt 04 ] || [ "$h" -gt 22 ];
|
if [ "$h" -lt 04 ] || [ "$h" -gt 22 ]; then
|
||||||
then greeting="Good Night"
|
greeting="Good Night"
|
||||||
elif [ "$h" -lt 12 ];
|
elif [ "$h" -lt 12 ]; then
|
||||||
then greeting="Good morning"
|
greeting="Good morning"
|
||||||
elif [ "$h" -lt 18 ];
|
elif [ "$h" -lt 18 ]; then
|
||||||
then greeting="Good afternoon"
|
greeting="Good afternoon"
|
||||||
elif [ "$h" -lt 22 ];
|
elif [ "$h" -lt 22 ]; then
|
||||||
then greeting="Good evening"
|
greeting="Good evening"
|
||||||
else
|
else
|
||||||
greeting="Hello"
|
greeting="Hello"
|
||||||
fi
|
fi
|
||||||
WELCOME_MSG="$greeting $USER!"
|
WELCOME_MSG="$greeting $USER!"
|
||||||
if hash lolcat 2>/dev/null && hash figlet 2>/dev/null; then
|
if hash lolcat 2> /dev/null && hash figlet 2> /dev/null; then
|
||||||
echo "${WELCOME_MSG}" | figlet | lolcat
|
echo "${WELCOME_MSG}" | figlet | lolcat
|
||||||
else
|
else
|
||||||
echo -e "$COLOR_P${WELCOME_MSG}${RESET}\n"
|
echo -e "$COLOR_P${WELCOME_MSG}${RESET}\n"
|
||||||
@@ -38,8 +39,9 @@ function welcome_greeting () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Print system information with neofetch, if it's installed
|
# Print system information with neofetch, if it's installed
|
||||||
function welcome_sysinfo () {
|
function welcome_sysinfo()
|
||||||
if hash neofetch 2>/dev/null; then
|
{
|
||||||
|
if hash neofetch 2> /dev/null; then
|
||||||
neofetch --shell_version off \
|
neofetch --shell_version off \
|
||||||
--disable kernel distro shell resolution cpu gpu de wm wm_theme theme icons terminal \
|
--disable kernel distro shell resolution cpu gpu de wm wm_theme theme icons terminal \
|
||||||
--backend off \
|
--backend off \
|
||||||
@@ -50,7 +52,8 @@ function welcome_sysinfo () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Print todays info: Date, IP, weather, etc
|
# Print todays info: Date, IP, weather, etc
|
||||||
function welcome_today () {
|
function welcome_today()
|
||||||
|
{
|
||||||
timeout=1
|
timeout=1
|
||||||
echo -e "\033[1;34mToday\n------"
|
echo -e "\033[1;34mToday\n------"
|
||||||
|
|
||||||
@@ -62,7 +65,7 @@ function welcome_today () {
|
|||||||
echo -e "${RESET}"
|
echo -e "${RESET}"
|
||||||
|
|
||||||
# Print IP address
|
# Print IP address
|
||||||
if hash ip 2>/dev/null; then
|
if hash ip 2> /dev/null; then
|
||||||
ip_address=$(ip route get 8.8.8.8 | awk -F"src " 'NR==1{split($2,a," ");print a[1]}')
|
ip_address=$(ip route get 8.8.8.8 | awk -F"src " 'NR==1{split($2,a," ");print a[1]}')
|
||||||
ip_interface=$(ip route get 8.8.8.8 | awk -F"dev " 'NR==1{split($2,a," ");print a[1]}')
|
ip_interface=$(ip route get 8.8.8.8 | awk -F"dev " 'NR==1{split($2,a," ");print a[1]}')
|
||||||
echo -e "${COLOR_S}🌐 IP: $(curl -s -m $timeout 'https://ipinfo.io/ip') (${ip_address} on ${ip_interface})"
|
echo -e "${COLOR_S}🌐 IP: $(curl -s -m $timeout 'https://ipinfo.io/ip') (${ip_address} on ${ip_interface})"
|
||||||
@@ -71,23 +74,11 @@ function welcome_today () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Putting it all together
|
# Putting it all together
|
||||||
function welcome() {
|
function welcome()
|
||||||
|
{
|
||||||
welcome_greeting
|
welcome_greeting
|
||||||
welcome_sysinfo
|
welcome_sysinfo
|
||||||
welcome_today
|
welcome_today
|
||||||
}
|
}
|
||||||
|
|
||||||
# Determine if file is being run directly or sourced
|
welcome "$@"
|
||||||
([[ -n $ZSH_EVAL_CONTEXT && $ZSH_EVAL_CONTEXT =~ :file$ ]] \
|
|
||||||
|| [[ -n $KSH_VERSION && $(cd "$(dirname -- "$0")" \
|
|
||||||
&& printf '%s' "${PWD%/}/")$(basename -- "$0") != "${.sh.file}" ]] \
|
|
||||||
|| [[ -n $BASH_VERSION ]] && (return 0 2>/dev/null)
|
|
||||||
) && sourced=1 || sourced=0
|
|
||||||
|
|
||||||
# If script being called directly run immediately
|
|
||||||
if [ "$sourced" -eq 0 ]; then
|
|
||||||
welcome "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# EOF
|
|
||||||
|
|
||||||
|
|||||||
36
package.json
Normal file
36
package.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "ivuorinen-dotfiles",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "ivuorinen's dotfiles, this is for linting and formatters",
|
||||||
|
"main": "index.js",
|
||||||
|
"directories": {
|
||||||
|
"doc": "docs"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"lint:markdown": "npx markdownlint -d .",
|
||||||
|
"fix:markdown": "npx markdownlint -df .",
|
||||||
|
"lint:prettier": "npx prettier . --check",
|
||||||
|
"fix:prettier": "npx prettier . --write",
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 0"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/ivuorinen/dotfiles.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"dotfiles",
|
||||||
|
"ivuorinen"
|
||||||
|
],
|
||||||
|
"author": "Ismo Vuorinen",
|
||||||
|
"license": "ISC",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/ivuorinen/dotfiles/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/ivuorinen/dotfiles#readme",
|
||||||
|
"devDependencies": {
|
||||||
|
"@ivuorinen/commitlint-config": "^0.1.10",
|
||||||
|
"@ivuorinen/eslint-config": "^0.2.13",
|
||||||
|
"@ivuorinen/markdownlint-config": "^0.1.6",
|
||||||
|
"@ivuorinen/prettier-config": "^0.1.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
58
scripts/install-cargo-packages.sh
Executable file
58
scripts/install-cargo-packages.sh
Executable file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Install cargo/rust packages.
|
||||||
|
#
|
||||||
|
# shellcheck source=shared.sh
|
||||||
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg "Starting to install rust/cargo packages"
|
||||||
|
|
||||||
|
! have cargo && {
|
||||||
|
msg "cargo could not be found. installing cargo with rustup.rs"
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path
|
||||||
|
}
|
||||||
|
|
||||||
|
source "$CARGO_HOME/env"
|
||||||
|
|
||||||
|
packages=(
|
||||||
|
# An incremental parsing system for programming tools
|
||||||
|
"tree-sitter-cli"
|
||||||
|
# a subprocess caching utility
|
||||||
|
"bkt"
|
||||||
|
# a structural diff that understands syntax
|
||||||
|
"difftastic"
|
||||||
|
# a modern replacement for ‘ls’.
|
||||||
|
"eza"
|
||||||
|
# A simple, fast and user-friendly alternative to 'find'
|
||||||
|
"fd-find"
|
||||||
|
# A cargo subcommand for checking and applying
|
||||||
|
# updates to installed executables
|
||||||
|
"cargo-update"
|
||||||
|
# recursively searches directories for a
|
||||||
|
# regex pattern while respecting your gitignore
|
||||||
|
"ripgrep"
|
||||||
|
# A version manager for neovim
|
||||||
|
"bob-nvim"
|
||||||
|
)
|
||||||
|
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
# Trim spaces
|
||||||
|
pkg=${pkg// /}
|
||||||
|
# Skip comments
|
||||||
|
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
|
msg_run "Installing cargo package $pkg"
|
||||||
|
cargo install "$pkg"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
done
|
||||||
|
|
||||||
|
msg_done "Installed cargo packages!"
|
||||||
|
|
||||||
|
msg_run "Now doing the next steps for cargo packages"
|
||||||
|
|
||||||
|
# use bob to install nvim
|
||||||
|
have bob && {
|
||||||
|
bob use stable && path_append "$XDG_DATA_HOME/bob/nvim-bin"
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_done "All next steps done!"
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
||||||
# shellcheck source=shared.sh
|
# shellcheck source=shared.sh
|
||||||
|
DOTFILES_SHARED_LOADED=""
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
PBB_REQUIRED_TOOLS=(basename git mkdir cheat ls grep head awk cp echo rm)
|
PBB_REQUIRED_TOOLS=(git cheat)
|
||||||
for t in ${PBB_REQUIRED_TOOLS[@]}; do
|
for t in ${PBB_REQUIRED_TOOLS[@]}; do
|
||||||
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
# shellcheck disable=SC2231,SC2034,SC2181,SC2068
|
||||||
# shellcheck source=shared.sh
|
# shellcheck source=shared.sh
|
||||||
|
DOTFILES_SHARED_LOADED=""
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
TLDR_REQUIRED_TOOLS=(basename git mkdir cheat ls grep head awk cp echo rm)
|
TLDR_REQUIRED_TOOLS=(git cheat)
|
||||||
for t in ${TLDR_REQUIRED_TOOLS[@]}; do
|
for t in ${TLDR_REQUIRED_TOOLS[@]}; do
|
||||||
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
! have "$t" && echo "(!) $t is missing, can't continue..." && exit 1
|
||||||
done
|
done
|
||||||
@@ -38,6 +39,9 @@ for d in "$TLDR_TEMP_DIR"/pages/*; do
|
|||||||
# echo "-> $DIRNAME ($d)"
|
# echo "-> $DIRNAME ($d)"
|
||||||
|
|
||||||
SECTION_DIR="${TLDR_CHEAT_DEST}/$DIRNAME"
|
SECTION_DIR="${TLDR_CHEAT_DEST}/$DIRNAME"
|
||||||
|
|
||||||
|
[ "$DIRNAME" = "common" ] && SECTION_DIR="${TLDR_CHEAT_DEST}"
|
||||||
|
|
||||||
TLDR_TAGS="tags: [$DIRNAME]"
|
TLDR_TAGS="tags: [$DIRNAME]"
|
||||||
|
|
||||||
if [ ! -d "$SECTION_DIR" ]; then
|
if [ ! -d "$SECTION_DIR" ]; then
|
||||||
@@ -48,7 +52,7 @@ for d in "$TLDR_TEMP_DIR"/pages/*; do
|
|||||||
BASENAME=$(basename "$FILE" .md)
|
BASENAME=$(basename "$FILE" .md)
|
||||||
FILENAME="${BASENAME%%.*}"
|
FILENAME="${BASENAME%%.*}"
|
||||||
# echo "-> $FILE = $FILENAME"
|
# echo "-> $FILE = $FILENAME"
|
||||||
TLDR_FILE="$SECTION_DIR/${FILENAME}"
|
TLDR_FILE="$SECTION_DIR/${BASENAME}"
|
||||||
# echo "-> dest: $TLDR_FILE"
|
# echo "-> dest: $TLDR_FILE"
|
||||||
|
|
||||||
# Update the original file for making the replacable value comparable
|
# Update the original file for making the replacable value comparable
|
||||||
|
|||||||
44
scripts/install-fonts.sh
Executable file
44
scripts/install-fonts.sh
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Install NerdFonts
|
||||||
|
#
|
||||||
|
# shellcheck source="shared.sh"
|
||||||
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
GIT_REPO="https://github.com/ryanoasis/nerd-fonts.git"
|
||||||
|
TMP_PATH="$XDG_CACHE_HOME/nerd-fonts"
|
||||||
|
|
||||||
|
msg "-- NerdFonts --"
|
||||||
|
|
||||||
|
fonts=(
|
||||||
|
Hack
|
||||||
|
IntelOneMono
|
||||||
|
JetBrainsMono
|
||||||
|
OpenDyslexic
|
||||||
|
SpaceMono
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ ! -d "$TMP_PATH" ]; then
|
||||||
|
git clone --filter=blob:none --sparse "$GIT_REPO" "$TMP_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$TMP_PATH" || {
|
||||||
|
msg_err "No such folder $TMP_PATH"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
for ext in "${fonts[@]}"; do
|
||||||
|
# Trim spaces
|
||||||
|
ext=${ext// /}
|
||||||
|
# Skip comments
|
||||||
|
if [[ ${ext:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
|
msg_run "Adding $ext to sparse-checkout"
|
||||||
|
git sparse-checkout add "patched-fonts/$ext"
|
||||||
|
echo ""
|
||||||
|
done
|
||||||
|
|
||||||
|
msg "Starting to install NerdFonts..."
|
||||||
|
|
||||||
|
./install.sh -s ${fonts[*]}
|
||||||
|
|
||||||
|
msg_ok "Done"
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
# shellcheck source="shared.sh"
|
# shellcheck source="shared.sh"
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg_run "Installing gh (GitHub Client) extensions"
|
||||||
|
|
||||||
! have gh \
|
! have gh \
|
||||||
&& msg_err "gh (GitHub Client) could not be found, please install it first" \
|
&& msg_err "gh (GitHub Client) could not be found, please install it first" \
|
||||||
&& exit 0
|
&& exit 0
|
||||||
@@ -28,15 +30,13 @@ extensions=(
|
|||||||
rsese/gh-actions-status
|
rsese/gh-actions-status
|
||||||
)
|
)
|
||||||
|
|
||||||
msg "Starting to install GitHub CLI extensions..."
|
|
||||||
|
|
||||||
for ext in "${extensions[@]}"; do
|
for ext in "${extensions[@]}"; do
|
||||||
# Trim spaces
|
# Trim spaces
|
||||||
ext=${ext// /}
|
ext=${ext// /}
|
||||||
# Skip comments
|
# Skip comments
|
||||||
if [[ ${ext:0:1} == "#" ]]; then continue; fi
|
if [[ ${ext:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
msg_run "Installing $ext"
|
msg_nested "Installing $ext"
|
||||||
gh extensions install "$ext"
|
gh extensions install "$ext"
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# shellcheck source=shared.sh
|
# shellcheck source=shared.sh
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
msg "Installing git-crypt"
|
msg_run "Installing git-crypt"
|
||||||
|
|
||||||
! have git-crypt && {
|
! have git-crypt && {
|
||||||
|
|
||||||
@@ -25,4 +25,3 @@ msg "Installing git-crypt"
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
msg_done "Done installing git-crypt"
|
msg_done "Done installing git-crypt"
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# shellcheck source=shared.sh
|
# shellcheck source=shared.sh
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg_run "Installing go packages"
|
||||||
|
|
||||||
! have go && msg "go hasn't been installed yet." && exit 0
|
! have go && msg "go hasn't been installed yet." && exit 0
|
||||||
|
|
||||||
packages=(
|
packages=(
|
||||||
@@ -33,16 +35,17 @@ for pkg in "${packages[@]}"; do
|
|||||||
# Skip comments
|
# Skip comments
|
||||||
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
msg_run "Installing go package:" "$pkg"
|
msg_nested "Installing go package: $pkg"
|
||||||
go install "$pkg"
|
go install "$pkg"
|
||||||
echo ""
|
echo ""
|
||||||
done
|
done
|
||||||
|
|
||||||
msg "Installing completions for selected packages"
|
msg_run "Installing completions for selected packages"
|
||||||
|
|
||||||
have git-profile && {
|
have git-profile && {
|
||||||
git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/git-profile" \
|
git-profile completion zsh > "$ZSH_CUSTOM_COMPLETION_PATH/_git-profile" \
|
||||||
&& msg_yay "Installed completions for git-profile"
|
&& msg_ok "Installed completions for git-profile"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo ""
|
||||||
msg_ok "Done"
|
msg_ok "Done"
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
# shellcheck source=shared.sh
|
# shellcheck source=shared.sh
|
||||||
source "$HOME/.dotfiles/scripts/shared.sh"
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg "Starting to install npm packages"
|
||||||
|
|
||||||
! have npm && msg_err "npm could not be found." && exit 0
|
! have npm && msg_err "npm could not be found." && exit 0
|
||||||
|
|
||||||
packages=(
|
packages=(
|
||||||
|
|||||||
31
scripts/install-pip-packages.sh
Executable file
31
scripts/install-pip-packages.sh
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Install python/pip packages.
|
||||||
|
#
|
||||||
|
# shellcheck source=shared.sh
|
||||||
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg "Starting to install pip packages"
|
||||||
|
|
||||||
|
! have python3 && {
|
||||||
|
msg_err "Could not find python3, something really terrible is going on." && exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
packages=(
|
||||||
|
"pipx"
|
||||||
|
"libtmux"
|
||||||
|
"ensurepath"
|
||||||
|
)
|
||||||
|
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
# Trim spaces
|
||||||
|
pkg=${pkg// /}
|
||||||
|
# Skip comments
|
||||||
|
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
||||||
|
|
||||||
|
msg_nested "Installing pip package: $pkg"
|
||||||
|
python3 -m pip install --user "$pkg"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
done
|
||||||
|
|
||||||
|
msg_yay "Run pip package installations"
|
||||||
@@ -8,6 +8,11 @@
|
|||||||
|
|
||||||
[ "$(uname)" != "Darwin" ] && echo "Not a macOS system" && exit 0
|
[ "$(uname)" != "Darwin" ] && echo "Not a macOS system" && exit 0
|
||||||
|
|
||||||
|
# shellcheck source=shared.sh
|
||||||
|
source "$HOME/.dotfiles/scripts/shared.sh"
|
||||||
|
|
||||||
|
msg_run "Starting to set macOS defaults, these require sudo privileges:"
|
||||||
|
|
||||||
# Ask for the administrator password upfront
|
# Ask for the administrator password upfront
|
||||||
sudo -v
|
sudo -v
|
||||||
|
|
||||||
@@ -19,6 +24,8 @@ while true; do
|
|||||||
kill -0 "$$" || exit
|
kill -0 "$$" || exit
|
||||||
done 2> /dev/null &
|
done 2> /dev/null &
|
||||||
|
|
||||||
|
msg_nested "Change user shell to zsh if it is available and not the current"
|
||||||
|
|
||||||
# Change user shell to zsh if not that already.
|
# Change user shell to zsh if not that already.
|
||||||
if hash zsh 2> /dev/null; then
|
if hash zsh 2> /dev/null; then
|
||||||
[[ "$SHELL" != $(which zsh) ]] && chsh -s "$(which zsh)"
|
[[ "$SHELL" != $(which zsh) ]] && chsh -s "$(which zsh)"
|
||||||
@@ -28,6 +35,8 @@ fi
|
|||||||
# General UI/UX #
|
# General UI/UX #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Setting General UI/UX settings"
|
||||||
|
|
||||||
# Disable the sound effects on boot
|
# Disable the sound effects on boot
|
||||||
sudo nvram SystemAudioVolume=" "
|
sudo nvram SystemAudioVolume=" "
|
||||||
|
|
||||||
@@ -80,6 +89,8 @@ defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
|
|||||||
# SSD-specific tweaks #
|
# SSD-specific tweaks #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Setting SSD-specific tweaks"
|
||||||
|
|
||||||
# Disable hibernation (speeds up entering sleep mode)
|
# Disable hibernation (speeds up entering sleep mode)
|
||||||
sudo pmset -a hibernatemode 0
|
sudo pmset -a hibernatemode 0
|
||||||
|
|
||||||
@@ -90,6 +101,8 @@ sudo pmset -a sms 0
|
|||||||
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
|
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Trackpad, mouse, keyboard, Bluetooth accessories, and input"
|
||||||
|
|
||||||
# Increase sound quality for Bluetooth headphones/headsets
|
# Increase sound quality for Bluetooth headphones/headsets
|
||||||
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Max (editable)" 80
|
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Max (editable)" 80
|
||||||
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" 80
|
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" 80
|
||||||
@@ -124,6 +137,8 @@ defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
|
|||||||
# Screen #
|
# Screen #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Screen"
|
||||||
|
|
||||||
# Require password immediately after sleep or screen saver begins
|
# Require password immediately after sleep or screen saver begins
|
||||||
defaults write com.apple.screensaver askForPassword -int 1
|
defaults write com.apple.screensaver askForPassword -int 1
|
||||||
defaults write com.apple.screensaver askForPasswordDelay -int 0
|
defaults write com.apple.screensaver askForPasswordDelay -int 0
|
||||||
@@ -132,6 +147,8 @@ defaults write com.apple.screensaver askForPasswordDelay -int 0
|
|||||||
# Finder #
|
# Finder #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Finder"
|
||||||
|
|
||||||
# Set Desktop as the default location for new Finder windows
|
# Set Desktop as the default location for new Finder windows
|
||||||
# For other paths, use `PfLo` and `file:///full/path/here/`
|
# For other paths, use `PfLo` and `file:///full/path/here/`
|
||||||
defaults write com.apple.finder NewWindowTarget -string "PfDe"
|
defaults write com.apple.finder NewWindowTarget -string "PfDe"
|
||||||
@@ -190,6 +207,8 @@ defaults write com.apple.finder FXInfoPanesExpanded -dict \
|
|||||||
# Screenshots #
|
# Screenshots #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Screenshots"
|
||||||
|
|
||||||
# Set default screenshot location
|
# Set default screenshot location
|
||||||
mkdir -p "$HOME/Documents/Screenshots"
|
mkdir -p "$HOME/Documents/Screenshots"
|
||||||
defaults write com.apple.screencapture "location" -string "$HOME/Documents/Screenshots"
|
defaults write com.apple.screencapture "location" -string "$HOME/Documents/Screenshots"
|
||||||
@@ -204,6 +223,8 @@ defaults write com.apple.screencapture "name" -string "screenshot"
|
|||||||
# Dock, Dashboard, and hot corners #
|
# Dock, Dashboard, and hot corners #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Dock, Dashboard, and hot corners"
|
||||||
|
|
||||||
# Prevent applications from bouncing in Dock
|
# Prevent applications from bouncing in Dock
|
||||||
defaults write com.apple.dock no-bouncing -bool true
|
defaults write com.apple.dock no-bouncing -bool true
|
||||||
|
|
||||||
@@ -234,6 +255,8 @@ defaults write com.apple.dock showhidden -bool true
|
|||||||
# Safari & WebKit #
|
# Safari & WebKit #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Safari & WebKit"
|
||||||
|
|
||||||
# Enable Safari’s debug menu
|
# Enable Safari’s debug menu
|
||||||
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
|
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
|
||||||
|
|
||||||
@@ -258,6 +281,8 @@ defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
|
|||||||
# Activity Monitor #
|
# Activity Monitor #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for ActivityMonitor"
|
||||||
|
|
||||||
# Show the main window when launching Activity Monitor
|
# Show the main window when launching Activity Monitor
|
||||||
defaults write com.apple.ActivityMonitor OpenMainWindow -bool true
|
defaults write com.apple.ActivityMonitor OpenMainWindow -bool true
|
||||||
|
|
||||||
@@ -275,6 +300,8 @@ defaults write com.apple.ActivityMonitor SortDirection -int 0
|
|||||||
# Address Book, Dashboard, iCal, TextEdit, and Disk Utility #
|
# Address Book, Dashboard, iCal, TextEdit, and Disk Utility #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Address Book, Dashboard, iCal, TextEdit, and Disk Utility"
|
||||||
|
|
||||||
# Use plain text mode for new TextEdit documents
|
# Use plain text mode for new TextEdit documents
|
||||||
defaults write com.apple.TextEdit RichText -int 0
|
defaults write com.apple.TextEdit RichText -int 0
|
||||||
|
|
||||||
@@ -286,6 +313,8 @@ defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
|
|||||||
# Messages #
|
# Messages #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
msg_nested "Settings for Messages"
|
||||||
|
|
||||||
# Disable smart quotes as it’s annoying for messages that contain code
|
# Disable smart quotes as it’s annoying for messages that contain code
|
||||||
defaults write com.apple.messageshelper.MessageController \
|
defaults write com.apple.messageshelper.MessageController \
|
||||||
SOInputLineSettings \
|
SOInputLineSettings \
|
||||||
@@ -298,6 +327,8 @@ defaults write com.apple.messageshelper.MessageController \
|
|||||||
-dict-add "continuousSpellCheckingEnabled" \
|
-dict-add "continuousSpellCheckingEnabled" \
|
||||||
-bool false
|
-bool false
|
||||||
|
|
||||||
|
msg_nested "Restarting applications to apply changes"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Kill affected applications #
|
# Kill affected applications #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -307,4 +338,5 @@ for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
|
|||||||
"Terminal" "Transmission" "Twitter" "iCal"; do
|
"Terminal" "Transmission" "Twitter" "iCal"; do
|
||||||
killall "${app}" > /dev/null 2>&1
|
killall "${app}" > /dev/null 2>&1
|
||||||
done
|
done
|
||||||
echo "Done. Note that some of these changes require a logout/restart to take effect."
|
|
||||||
|
msg_yay "Done. Note that some of these changes require a logout/restart to take effect."
|
||||||
|
|||||||
@@ -6,140 +6,27 @@
|
|||||||
# Helper env variables. Use like this: VERBOSE=1 ./script.sh
|
# Helper env variables. Use like this: VERBOSE=1 ./script.sh
|
||||||
: "${VERBOSE:=0}"
|
: "${VERBOSE:=0}"
|
||||||
|
|
||||||
# -- Colors -- #
|
source "$DOTFILES/local/bin/msgr"
|
||||||
CLR_RED="\033[1;31m"
|
|
||||||
CLR_YELLOW="\033[1;33m"
|
|
||||||
CLR_GREEN="\033[1;32m"
|
|
||||||
CLR_BLUE="\033[1;34m"
|
|
||||||
CLR_RESET="\033[0m"
|
|
||||||
|
|
||||||
# -- Color functions -- #
|
# Run x-load-configs in your terminal to reload the files.
|
||||||
function __color_red()
|
function x-load-configs()
|
||||||
{
|
{
|
||||||
local MSG="$1"
|
# Load the shell dotfiles, and then some:
|
||||||
echo -e "${CLR_RED}${MSG}${CLR_RESET}"
|
for file in $DOTFILES/config/{exports,alias,functions}; do
|
||||||
}
|
HOST="$(hostname -s)"
|
||||||
function __color_yellow()
|
# global (exports|alias|functions) file for all hosts
|
||||||
{
|
# shellcheck source=../config/exports
|
||||||
local MSG="$1"
|
[ -r "$file" ] && source "$file"
|
||||||
echo -e "${CLR_YELLOW}${MSG}${CLR_RESET}"
|
# global secret file, git ignored
|
||||||
}
|
# shellcheck source=../config/exports-secret
|
||||||
function __color_green()
|
[ -r "$file-secret" ] && source "$file-secret"
|
||||||
{
|
# host specific (exports|alias|functions) file
|
||||||
local MSG="$1"
|
# shellcheck source=../config/exports
|
||||||
echo -e "${CLR_GREEN}${MSG}${CLR_RESET}"
|
[ -r "$file-$HOST" ] && source "$file-$HOST"
|
||||||
}
|
# host specific (exports|alias|functions) file, git ignored
|
||||||
function __color_blue()
|
# shellcheck source=../config/exports
|
||||||
{
|
[ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret"
|
||||||
local MSG="$1"
|
done
|
||||||
echo -e "${CLR_BLUE}${MSG}${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# -- Helpers -- #
|
|
||||||
function __log_marker()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_BLUE}➜${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_marker_ok()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_GREEN}✔${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_marker_ok_blue()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_BLUE}✔${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_marker_warn()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_YELLOW}⁕${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_marker_question()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_YELLOW}?${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_marker_err()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_RED}⛌${CLR_RESET}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function __log_indent()
|
|
||||||
{
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
|
|
||||||
# -- Log -- #
|
|
||||||
function msg()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker) $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_yay()
|
|
||||||
{
|
|
||||||
echo -e "🎉 $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_yay_done()
|
|
||||||
{
|
|
||||||
echo -e "🎉 $1 ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_done()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker) $1 ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_done_suffix()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker) ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_prompt()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker_question) $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_prompt_done()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker_question) $1 ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_nested()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_indent)$(__log_marker) $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_nested_done()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_indent)$(__log_marker) $1 ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_run()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_GREEN}➜ $1${CLR_RESET} $2"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_run_done()
|
|
||||||
{
|
|
||||||
echo -e "${CLR_GREEN}➜ $1${CLR_RESET} $2 ...$(__log_marker_ok)"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_ok()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker_ok) $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_warn()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker_warn) $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
function msg_err()
|
|
||||||
{
|
|
||||||
echo -e "$(__log_marker_err) $1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# -- Menu builder -- #
|
# -- Menu builder -- #
|
||||||
@@ -197,11 +84,41 @@ function menu_usage()
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# shorthand for checking if the system has the bin in path.
|
# Cache commands using bkt if installed
|
||||||
|
if command -v bkt >&/dev/null; then
|
||||||
|
bkt()
|
||||||
|
{
|
||||||
|
command bkt --cache-dir="$XDG_CACHE_HOME/bkt" "$@"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
# If bkt isn't installed skip its arguments and just execute directly.
|
||||||
|
# Optionally write a msg to stderr suggesting users install bkt.
|
||||||
|
bkt()
|
||||||
|
{
|
||||||
|
while [[ "$1" == --* ]]; do shift; done
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shorthand for checking if the system has the bin in path,
|
||||||
|
# this version does not use caching
|
||||||
|
# usage: have_command php && php -v
|
||||||
|
function have_command
|
||||||
|
{
|
||||||
|
command -v "$1" >&/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# shorthand for checking if the system has the bin in path,
|
||||||
|
# this version uses caching
|
||||||
# usage: have php && php -v
|
# usage: have php && php -v
|
||||||
function have
|
function have
|
||||||
{
|
{
|
||||||
command -v "$1" >&/dev/null
|
bkt -- which -s "$1" >&/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
function brew_installed
|
||||||
|
{
|
||||||
|
bkt -- brew list
|
||||||
}
|
}
|
||||||
|
|
||||||
# shorthand for checking if brew package is installed
|
# shorthand for checking if brew package is installed
|
||||||
@@ -210,7 +127,7 @@ function have_brew
|
|||||||
{
|
{
|
||||||
! have brew && return 125
|
! have brew && return 125
|
||||||
|
|
||||||
if brew list "$1" &> /dev/null; then
|
if bkt -- brew list "$1" &> /dev/null; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@@ -323,16 +240,8 @@ silent()
|
|||||||
"$@" >&/dev/null
|
"$@" >&/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a prompt which you have to answer y/n to continue
|
# Check if a file contains non-ascii characters
|
||||||
ask()
|
nonascii()
|
||||||
{
|
{
|
||||||
while true; do
|
LC_ALL=C grep -n '[^[:print:][:space:]]' "${@}"
|
||||||
read -p "$1 ([y]/n) " -r
|
|
||||||
REPLY=${REPLY:-"y"}
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
return 1
|
|
||||||
elif [[ $REPLY =~ ^[Nn]$ ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|||||||
1
tools/dotbot-pip
Submodule
1
tools/dotbot-pip
Submodule
Submodule tools/dotbot-pip added at 42e6a8f3be
1
tools/dotbot-snap
Submodule
1
tools/dotbot-snap
Submodule
Submodule tools/dotbot-snap added at 5722c4e5af
1
tools/requirements-pipx.txt
Normal file
1
tools/requirements-pipx.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
openapi-python-client
|
||||||
Reference in New Issue
Block a user