Compare commits
No commits in common. "main" and "v0.1.0" have entirely different histories.
189 changed files with 4914 additions and 12775 deletions
|
|
@ -1,50 +0,0 @@
|
||||||
name: Check and mirror to GitHub
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
checks:
|
|
||||||
runs-on: ${{ vars.CI_RUNNER_LABEL || 'docker' }}
|
|
||||||
container: node:22-bookworm
|
|
||||||
timeout-minutes: 20
|
|
||||||
steps:
|
|
||||||
- name: Prepare CI tools
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y --no-install-recommends python3 git ca-certificates
|
|
||||||
- name: Checkout
|
|
||||||
uses: https://github.com/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Set up Go
|
|
||||||
uses: https://github.com/actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
|
|
||||||
with:
|
|
||||||
go-version: '1.26.7'
|
|
||||||
cache: false
|
|
||||||
- name: Check code and bundled assets
|
|
||||||
run: python3 tools/ci/check.py
|
|
||||||
|
|
||||||
github-mirror:
|
|
||||||
needs: checks
|
|
||||||
if: github.event_name != 'pull_request' && github.repository == 'fiwdev/Fiw-Gentoo-Dots'
|
|
||||||
runs-on: ${{ vars.CI_RUNNER_LABEL || 'docker' }}
|
|
||||||
container: node:22-bookworm
|
|
||||||
timeout-minutes: 10
|
|
||||||
steps:
|
|
||||||
- name: Prepare mirror tools
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y --no-install-recommends python3 git openssh-client ca-certificates
|
|
||||||
- name: Checkout
|
|
||||||
uses: https://github.com/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Publish branches and tags to GitHub
|
|
||||||
env:
|
|
||||||
GH_MIRROR_SSH_KEY: ${{ secrets.GH_MIRROR_SSH_KEY }}
|
|
||||||
MIRROR_SOURCE_REF: ${{ github.ref }}
|
|
||||||
MIRROR_SOURCE_SHA: ${{ github.sha }}
|
|
||||||
run: python3 tools/ci/mirror.py
|
|
||||||
31
.github/workflows/ci.yml
vendored
31
.github/workflows/ci.yml
vendored
|
|
@ -1,31 +0,0 @@
|
||||||
name: Checks
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
checks:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: node:22-bookworm
|
|
||||||
timeout-minutes: 20
|
|
||||||
steps:
|
|
||||||
- name: Prepare CI tools
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y --no-install-recommends python3 git ca-certificates
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- name: Set up Go
|
|
||||||
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
|
|
||||||
with:
|
|
||||||
go-version: '1.26.7'
|
|
||||||
cache: false
|
|
||||||
- name: Check code and bundled assets
|
|
||||||
run: python3 tools/ci/check.py
|
|
||||||
179
README.md
179
README.md
|
|
@ -9,111 +9,164 @@
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|
|
||||||
[Setup](docs/setup.md) · [Shortcuts](docs/shortcuts.md) · [Styling](docs/kde-style.md) · [Packages](#packages)
|
[KDE styling](docs/kde-style.md) · [Shortcuts](docs/shortcuts.md) · [Packages](#package-sections) · [Setup](docs/setup.md)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## About
|
---
|
||||||
|
|
||||||
My personal Gentoo restoration kit, mainly for my own devices:
|
## Overview
|
||||||
|
|
||||||
- KDE colours, fonts, cursor, window styling and my exact keybinds.
|
A personal Gentoo rice and restoration kit: my Plasma styling, current
|
||||||
- Separate package lists and individually optional app configs.
|
shortcuts, package lists and the app preferences I use every day. Built
|
||||||
- Fish, Kitty and Neovim preferences that work across compositors.
|
mainly for my own devices, with deliberate updates and a preview before
|
||||||
- Binaries preferred, with a small deliberate source-build list.
|
anything is applied.
|
||||||
- A Bubble Tea chooser with a final preview, conflict prompts and backups.
|
|
||||||
|
|
||||||
Stock and Fiw's Ryzen have been installed and checked in Gentoo QEMU/KVM.
|
- **KDE first:** colours, fonts, cursor, window styling and current keybinds.
|
||||||
The full TUI restore, KDE presets, optional apps, GRUB/Limine and ext4/Btrfs
|
- **Pick what you want:** package sections and individually optional app configs.
|
||||||
booting passed. See [tested scope and hardware limits](docs/setup.md#current-scope).
|
- **Portable terminals:** Fish, Kitty and Neovim work across compositors.
|
||||||
|
- **Binaries preferred:** a small source list, with a choice before extra builds.
|
||||||
|
- **Keep your edits:** conflict prompts, backups and `.new` proposals on updates.
|
||||||
|
|
||||||
## Screenshots
|
**Work in progress:** configuration restoration and the TUI are ready for review.
|
||||||
|
Package and boot execution need a supervised first run on a fresh Gentoo system.
|
||||||
### Desktop
|
The existing installation has not been changed by creating this repo.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
My running desktop. Wallpapers and panels stay local; the saved Fastfetch
|
|
||||||
preset uses the built-in Gentoo logo.
|
|
||||||
|
|
||||||
### Installer
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Start
|
## Start
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git clone https://git.fiwlabs.dev/fiwdev/Fiw-Gentoo-Dots.git
|
git clone --branch v0.1.0 https://git.fiwlabs.dev/fiwdev/Fiw-Gentoo-Dots.git
|
||||||
cd Fiw-Gentoo-Dots
|
cd Fiw-Gentoo-Dots
|
||||||
./install
|
./install
|
||||||
```
|
```
|
||||||
|
|
||||||
Start from an installed Gentoo system. Linux amd64 includes a prebuilt TUI;
|
The Bubble Tea interface offers a preset, package sections, individual app
|
||||||
Git and Python 3.11+ are enough. Go 1.24+ is needed only for source builds.
|
configs, kernel/bootloader choices, individual Flatpaks, optional services and
|
||||||
Choose your packages/configs, review the plan, then select an action.
|
a final preview. Enter saves without applying. `r` runs the full restore;
|
||||||
Enter saves your choices without applying them.
|
`a` restores configs, `i` installs Portage packages, `f` installs Flatpaks,
|
||||||
|
`v` enables selected services and `b` deploys the selected bootloader.
|
||||||
|
`u` opens config backups for preview and restoration. Apply actions finish
|
||||||
|
with a [combined report](docs/reports.md) of outcomes and remaining setup.
|
||||||
|
Linux amd64 includes a verified prebuilt TUI; Git and Python 3.11+ are enough.
|
||||||
|
Go 1.24+ is the source fallback for changed frontend code or other platforms.
|
||||||
|
Saved selections are reused on subsequent launches. See the
|
||||||
|
[v0.1.0 snapshot and build instructions](docs/releases.md).
|
||||||
|
|
||||||
See [setup and TUI keys](docs/setup.md), [tagged snapshots](docs/releases.md),
|
For a preview without building the TUI:
|
||||||
[saved devices](docs/devices.md), [config updates](docs/updates.md) and
|
|
||||||
[backup restoration](docs/backups.md).
|
```sh
|
||||||
|
./install --plan --profile stock
|
||||||
|
./install --plan --profile fiw-ryzen
|
||||||
|
```
|
||||||
|
|
||||||
|
See [setup](docs/setup.md) for installation steps and draft limitations.
|
||||||
|
|
||||||
## Presets
|
## Presets
|
||||||
|
|
||||||
| Preset | Build settings | Kernel |
|
| Preset | Build settings | Kernel |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Stock | Portable settings, binaries preferred | Generic Gentoo binary kernel |
|
| Stock | Portable compiler settings; binary packages preferred | Generic Gentoo binary kernel |
|
||||||
| Fiw's Ryzen | Ryzen 9900X / Zen 5 tuning and NVIDIA | Custom kernel + binary fallback |
|
| Fiw's Ryzen | Current Ryzen 9900X/Zen 5 tuning and NVIDIA configuration | Tested custom kernel plus generic binary fallback |
|
||||||
|
|
||||||
Both compile Fastfetch, jq and zip. Selected custom kernels and modules also
|
Both deliberately compile Fastfetch, jq and zip. Custom kernels and their
|
||||||
compile. Other source builds require a compile-or-skip choice; missing/skipped
|
matching external modules compile when selected. Other packages prefer
|
||||||
packages appear in the [final report](docs/reports.md).
|
Portage binaries or upstream `-bin` packages. Additional source builds
|
||||||
|
require a compile-or-skip choice, with compilation recommended; skipped
|
||||||
|
dependencies also cause dependent requested applications to be skipped.
|
||||||
|
|
||||||
## Packages
|
The custom kernel snapshot currently targets 7.2.8 with the tested
|
||||||
|
CachyOS 7.2.7-1 patch. Refresh it explicitly when updating the snapshot.
|
||||||
|
|
||||||
|
## Package sections
|
||||||
|
|
||||||
| List | Contents |
|
| List | Contents |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [kde](packages/kde.list) | Plasma, Plasma Login Manager and desktop components |
|
| [kde](packages/kde.list) | Plasma, Plasma Login Manager, desktop components and supporting fonts |
|
||||||
| [fiw-apps](packages/fiw-apps.list) | Everyday apps, including Dolphin, Ark, Gwenview and Spectacle |
|
| [fiw-apps](packages/fiw-apps.list) | Everyday apps including Dolphin, Ark, Gwenview and Spectacle |
|
||||||
| [cli](packages/cli.list) | Shell and terminal utilities |
|
| [cli](packages/cli.list) | Shell, terminal utilities and FFmpeg |
|
||||||
| [dev](packages/dev.list) | Languages and development tools |
|
| [dev](packages/dev.list) | Languages and development tools |
|
||||||
| [gaming](packages/gaming.list) | Steam, Proton, Prism, MangoHud and r2modman |
|
| [gaming](packages/gaming.list) | Steam, Proton, Prism, MangoHud and r2modman; Sober is in flatpaks/gaming.list |
|
||||||
| [system](packages/system.list) | System utilities; kernels follow your selection |
|
| [system](packages/system.list) | System utilities; the selected kernels are added by the installer |
|
||||||
| [fiw-tools](packages/fiw-tools.list) | FiwNode, Apdatifier Gentoo, OpenDeck and Music Presence |
|
| [fiw-tools](packages/fiw-tools.list) | FiwNode binary release, Apdatifier Gentoo, OpenDeck and Music Presence |
|
||||||
| [tidewm](packages/tidewm.list) | Optional compositor and supporting tools |
|
| [tidewm](packages/tidewm.list) | Optional compositor and supporting utilities |
|
||||||
|
|
||||||
Filelight, NVIDIA and Btrfs tools are separate extras. Sober and LocalSend are
|
Filelight, NVIDIA drivers and Btrfs tools are separate extras. Ext4 does not
|
||||||
individually optional Flatpaks. Limine and GRUB are optional; keeping the
|
require Btrfs tools. LocalSend and Sober are individually optional Flatpaks
|
||||||
existing bootloader is the default. See [boot setup](docs/boot.md).
|
in the TUI, grouped with apps and gaming respectively.
|
||||||
|
Limine and GRUB are optional alternatives; retaining the current loader is
|
||||||
|
the default. Kernel choice is independent of bootloader choice. Deployment
|
||||||
|
previews the target ESP and firmware choices; see [boot setup](docs/boot.md).
|
||||||
|
The [package audit](docs/package-audit.md) accounts for all current explicit
|
||||||
|
selections. [TideWM](docs/tidewm.md) remains an optional source build.
|
||||||
|
|
||||||
## Configs
|
## Configs
|
||||||
|
|
||||||
Every [app config](docs/app-configs.md) is independently optional. KDE styling
|
Every config is independently selectable, even when its package section is
|
||||||
includes matching GTK preferences; autostart has its own checkbox.
|
unchecked—for example, to configure apps already installed. KDE appearance covers
|
||||||
Neovim's Catppuccin theme, VS Code's ayu MiDas theme, fonts and cursor assets
|
colours, fonts, cursor and window decorations, with matching GTK preferences.
|
||||||
are bundled with their licences. Accounts and sessions stay local.
|
Dolphin styling has its own checkbox. Panels, widgets and
|
||||||
|
wallpapers are excluded. All portable current shortcut assignments,
|
||||||
|
including disabled defaults, are captured with their launchers and helpers;
|
||||||
|
unused machine-specific activity IDs are omitted.
|
||||||
|
|
||||||
Local edits are preserved on updates, with proposed changes saved as `.new`
|
Fish, Kitty and Neovim are usable without KDE or KWin. Fastfetch keeps the
|
||||||
for review. Replaced files get backups. Spotify stays stock;
|
tree layout and purple colours with the built-in Gentoo logo. MangoHud and
|
||||||
[customization](docs/spotify.md) and [Firefox-Privacy](docs/firefox.md) are
|
Vesktop preferences are included; browser profiles, chat sessions and account
|
||||||
explicit optional steps.
|
data are excluded. App autostart is a separate optional selection.
|
||||||
|
Ark, Gwenview and Prism preferences are individually optional too; see
|
||||||
|
[app configs and requirements](docs/app-configs.md). Each config's required
|
||||||
|
packages appear in the final preview without changing package selections.
|
||||||
|
|
||||||
|
Spotify is stock by default. The existing customization scripts remain an
|
||||||
|
[explicit optional step](docs/spotify.md). [Firefox-Privacy](docs/firefox.md)
|
||||||
|
is also optional.
|
||||||
|
|
||||||
|
Existing differences prompt apply-or-keep and get backups when replaced.
|
||||||
|
Updates leave locally edited configs intact and write the proposal to `.new`.
|
||||||
|
KConfig patches preserve unrelated keys and groups; JSON patches preserve
|
||||||
|
unrelated preferences and login data already on the target device.
|
||||||
|
The TUI can [restore user config backups](docs/backups.md), with a preview,
|
||||||
|
confirmation and a new backup of the replaced current files.
|
||||||
|
|
||||||
|
## Project layout
|
||||||
|
|
||||||
|
```text
|
||||||
|
cmd/dots/ Bubble Tea selection interface
|
||||||
|
configs/ Optional KDE and app configs
|
||||||
|
packages/ Categorized Portage package lists
|
||||||
|
presets/ Stock and Fiw's Ryzen defaults
|
||||||
|
portage/ Build settings and binary preferences
|
||||||
|
overlay/ Selected additional packages
|
||||||
|
optional/ Kernel, boot and app helpers
|
||||||
|
flatpaks/ Separate optional Flatpak lists
|
||||||
|
docs/ Setup, decisions and asset credits
|
||||||
|
```
|
||||||
|
|
||||||
## Maintenance
|
## Maintenance
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
python3 tools/capture.py --config kde-shortcuts
|
python3 tools/capture.py # recapture only the explicit allowlist
|
||||||
python3 tools/capture.py --config kitty neovim
|
|
||||||
python3 tools/check-private.py
|
python3 tools/check-private.py
|
||||||
|
python3 -m unittest discover -s tests
|
||||||
|
go test ./...
|
||||||
```
|
```
|
||||||
|
|
||||||
Review `git diff` before committing. See [capture options](docs/capture.md)
|
Missing selected overlays are staged before package resolution. Optional
|
||||||
and [helper commands](docs/scripts.md). Device choices and local files are
|
service presets enable audio, networking, Bluetooth and power profiles for
|
||||||
gitignored. Forgejo is primary; [GitHub](https://github.com/Fi3w0/Fiw-Gentoo-Dots)
|
the next boot/login. See [setup](docs/setup.md) and the [helper list](docs/scripts.md).
|
||||||
receives branches and tags automatically after [CI checks](docs/ci.md).
|
|
||||||
|
Review captures before committing. `local/` and built binaries are ignored.
|
||||||
|
This repo starts with fresh history. Third-party theme/cursor assets retain
|
||||||
|
their licence notices; overlay ebuilds retain their original notices.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Original code and configs: [MIT](LICENSE). Bundled third-party assets keep
|
Original code and configuration contributions are licensed under [MIT](LICENSE).
|
||||||
their own licences; see [credits](docs/assets.md).
|
Bundled third-party assets, fonts, patches and ebuilds keep their own licences
|
||||||
|
and attribution; see [asset credits](docs/assets.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
<div align="center">A personal Gentoo setup by Fiw.</div>
|
<div align="center">A personal Gentoo setup by Fiw.</div>
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.1.2
|
0.1.0
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 335 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.5 MiB |
|
|
@ -1 +1 @@
|
||||||
98b963755ac7137176b07fa9a94cd340acd1f65d4de9f8d173aea7ea02862548 fiw-dots-linux-amd64.gz
|
767c35da0b46eaa785fa20b2d008e8403aa64e46223e116228d6b4be91e6dfb5 fiw-dots-linux-amd64.gz
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"version": "0.1.2",
|
"version": "0.1.0",
|
||||||
"source_sha256": "fec416b33a93e3de28faf388d69d6b86c39296715a1a87a6ed32d6fb51c4a36c",
|
"source_sha256": "df16d0f9960968f191147aa7c45ff1161b30616f7e545f7a28bae9dc038d026e",
|
||||||
"binaries": {
|
"binaries": {
|
||||||
"linux-amd64": {
|
"linux-amd64": {
|
||||||
"file": "fiw-dots-linux-amd64.gz",
|
"file": "fiw-dots-linux-amd64.gz",
|
||||||
"sha256": "c2856c93808c16c1d9003891beffd368e0c80b7ca965f4ca4e8849912fcfedaa",
|
"sha256": "32e133786d350016085741f1e4f15fae174977cb7cd63eae7999f97d3715c59b",
|
||||||
"gzip_sha256": "98b963755ac7137176b07fa9a94cd340acd1f65d4de9f8d173aea7ea02862548",
|
"gzip_sha256": "767c35da0b46eaa785fa20b2d008e8403aa64e46223e116228d6b4be91e6dfb5",
|
||||||
"size": 3567778
|
"size": 3555490
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,147 +0,0 @@
|
||||||
{
|
|
||||||
"catppuccin": {
|
|
||||||
"upstream": "https://github.com/catppuccin/nvim",
|
|
||||||
"commit": "edefef779ab08ce1a4a404713e3012b0d202bd35",
|
|
||||||
"root": "configs/neovim/files/.config/nvim/pack/themes/start/catppuccin",
|
|
||||||
"license": "MIT",
|
|
||||||
"note": "Runtime colors, lua, after and original LICENSE.md; development files omitted.",
|
|
||||||
"sha256": {
|
|
||||||
"LICENSE.md": "814096d2c34cc216c624738a49356f32b7237733b4f7edb0685f4e50ef5074ba",
|
|
||||||
"after/queries/css/highlights.scm": "9ef978da67df48bd10f63a7e16a3a94786a52fad8623fde6abeb60c15711de9c",
|
|
||||||
"after/queries/javascript/highlights.scm": "db58666e2f5bd6e4198c600976c4a663a9bcc98b7f971d9e317ea2378d204d0d",
|
|
||||||
"after/queries/typescript/highlights.scm": "db58666e2f5bd6e4198c600976c4a663a9bcc98b7f971d9e317ea2378d204d0d",
|
|
||||||
"colors/catppuccin-frappe.lua": "d0b770fdea4ac6f7cf691c4fb7a66d231fc4c135de8fc91cf746d92bc7f7d4bf",
|
|
||||||
"colors/catppuccin-latte.lua": "90d0000a70dd909847cf453c779eb1175540a3a4a58e1aa2cce85a2b18f86ec4",
|
|
||||||
"colors/catppuccin-macchiato.lua": "d5f0982bfebce1414a44dcff86167504c3a806d0a69fa335aaa719a80de2269e",
|
|
||||||
"colors/catppuccin-mocha.lua": "74fb39acf4d305f83bc6bda410f131efb7af3aa3ce386f35ba893e1ad0f47f2c",
|
|
||||||
"colors/catppuccin-nvim.vim": "d3155fd94ee3859bf085ee68e3e169d9990cfd3d5a96384128b774a15cf20dba",
|
|
||||||
"colors/catppuccin.lua": "1e1018f7bcdf93d0bb0caedb7ed78968415b4034d9c6a7a677e97d93a33d262c",
|
|
||||||
"lua/barbecue/theme/catppuccin-frappe.lua": "42bcd5254df562dce48c50abd4064fb47b43f96b87fae770a40be25b8a0999b2",
|
|
||||||
"lua/barbecue/theme/catppuccin-latte.lua": "b8fe0214831c704a7e6a23a449a439db55bd8763bc3d97574b3f5b1d9001d40e",
|
|
||||||
"lua/barbecue/theme/catppuccin-macchiato.lua": "21d784621c89fee7f65c1e0487b53cd4714657c53ec6cc8b58a34d32eb6f4b06",
|
|
||||||
"lua/barbecue/theme/catppuccin-mocha.lua": "0cc2c282aea656e569730e3e46109385cfdb5c134b05f0b9d31fcf6a1881ccb3",
|
|
||||||
"lua/barbecue/theme/catppuccin-nvim.lua": "83945477aa880778ff313fe8fc57d486886c53629809471a27a2d8253feb400e",
|
|
||||||
"lua/catppuccin/groups/editor.lua": "34ee0baf52cff0bdc9fe667b80ff92f14bd8664695e96bcea5857c5ac36cf018",
|
|
||||||
"lua/catppuccin/groups/integrations/aerial.lua": "cb2599cbeb02012a01ff86f153ba71a6512d179a56356f9e752792faaad50331",
|
|
||||||
"lua/catppuccin/groups/integrations/alpha.lua": "20ffa273938f47611c54af9464da4fcd75e0cf19c9f64e5e57541c662b276f1e",
|
|
||||||
"lua/catppuccin/groups/integrations/artio.lua": "402c306b0bb6ecc8e65c77c90e7b0d7b883fb5a7f14c0e8299defdfbac9cb93f",
|
|
||||||
"lua/catppuccin/groups/integrations/avante.lua": "d035a3f0ced7e5a585999d83947ec27b8b2720130d1056d8c5ca13173db97fa7",
|
|
||||||
"lua/catppuccin/groups/integrations/barbar.lua": "a8c74328e4cd4c1cfc8fb28fd57e986fec4622b822b91a854d98d53b134ec5ca",
|
|
||||||
"lua/catppuccin/groups/integrations/beacon.lua": "22af2a39673f000c34d1a2151e0f11722e3834b74e9b07f9a79a791b5cdbf2e9",
|
|
||||||
"lua/catppuccin/groups/integrations/blink_cmp.lua": "8bedb10753b941cfa08514f81d7483e1688faf98b446f2a4ee01aa5645836ecc",
|
|
||||||
"lua/catppuccin/groups/integrations/blink_indent.lua": "2baacb882dad63b237fb13d4c80f7af5a857167475d0fab3aba2eb48d31d3334",
|
|
||||||
"lua/catppuccin/groups/integrations/blink_pairs.lua": "48b261f4437d99c39b307cdf81bc2b7606d1be378717cd8e4ba8cbfc6267e14f",
|
|
||||||
"lua/catppuccin/groups/integrations/buffon.lua": "376cd4344432dd65c3471863ba91a26530a31b064e3e1a53510e3c3c60374e03",
|
|
||||||
"lua/catppuccin/groups/integrations/cmp.lua": "d2aeff85075583e8427c0e4ddbe4463c1f3e31bd3435603fb6dc0efca79e3cd7",
|
|
||||||
"lua/catppuccin/groups/integrations/coc_nvim.lua": "19e3ae3a57be79b55d6ea361f40c47acc3bf759d13aaac775881727ae6d3823a",
|
|
||||||
"lua/catppuccin/groups/integrations/colorful_winsep.lua": "150e5862f68bf758eec4caf7a8e879afae8d7e8919d3888620c5fb2863d3f0e4",
|
|
||||||
"lua/catppuccin/groups/integrations/copilot_vim.lua": "97fb547d540e7a6bfb151472feac9ceb4f8ac476e41a1b2edb13a9a022381f07",
|
|
||||||
"lua/catppuccin/groups/integrations/dadbod_ui.lua": "039b52e1a60cf50b6c409a54dcfcb014d6b5e8630a04e26741d9f30bd31caa81",
|
|
||||||
"lua/catppuccin/groups/integrations/dap.lua": "3bce98869a5cf1dc74b764a489ebda0a0a2dcae74601beaa4b1b6089aa5ec69e",
|
|
||||||
"lua/catppuccin/groups/integrations/dap_ui.lua": "f85c73431892360006cd83203e261a1047101b4865268092878d331d488b450b",
|
|
||||||
"lua/catppuccin/groups/integrations/dashboard.lua": "830ce29d174ed6b97e0a4371002f62898639ce40a6705e88e92e496c80b78403",
|
|
||||||
"lua/catppuccin/groups/integrations/diffview.lua": "9331d113de7cb5f29bd3bb7b968c0c3d25e985aee67031a47c6efeff36ea3697",
|
|
||||||
"lua/catppuccin/groups/integrations/dropbar.lua": "1ecd99800619649aabb821070a909de0179a71da928d9db6352b183ef2c0835b",
|
|
||||||
"lua/catppuccin/groups/integrations/fern.lua": "8bb40443fb4894cc387eed3774909e00d829c03817432200b01983a5bb557935",
|
|
||||||
"lua/catppuccin/groups/integrations/fidget.lua": "61dde6fcfff3f7a28c99cae55ca073485136519c644bf4f72a0be37a8673e6bd",
|
|
||||||
"lua/catppuccin/groups/integrations/flash.lua": "1655696967541d4affece5542d751e5c75f8905c3a57d31df17b7947a269a601",
|
|
||||||
"lua/catppuccin/groups/integrations/fzf.lua": "15e3baceb760257106fd2eda566ee0c6264f94647d2f81ff3ee18f22db32f66c",
|
|
||||||
"lua/catppuccin/groups/integrations/gitgraph.lua": "8e48914515cb256d4c2739837f081956285ef045f8d5a774f53a56341ed673d0",
|
|
||||||
"lua/catppuccin/groups/integrations/gitgutter.lua": "65c6addaa60723ebbac45b0fc3d9ea01826b31c1f466a96b10b6d169c5c5a2a6",
|
|
||||||
"lua/catppuccin/groups/integrations/gitsigns.lua": "a9d6bbce752198a2dd4f4fae8fab8896bb84dd5ae7c03d1b09e919df1e0d0e23",
|
|
||||||
"lua/catppuccin/groups/integrations/grug_far.lua": "09f1e23be01d7e9175638e62387f42f0f928f1c82f69f090b58055eb9f674e52",
|
|
||||||
"lua/catppuccin/groups/integrations/harpoon.lua": "555387b4a0de62be54264e2adc438cf65ab5509fe0eaee7313306a82debc12ba",
|
|
||||||
"lua/catppuccin/groups/integrations/headlines.lua": "10f01ab32094733f09dda3c5f7a0effbc57b5e5b995d827899e88d53bb53ca48",
|
|
||||||
"lua/catppuccin/groups/integrations/hop.lua": "18a9568ca191cf4b9f9f77113d09c101d4f31b7c456ae0da7c0b47068f96b8bf",
|
|
||||||
"lua/catppuccin/groups/integrations/illuminate.lua": "d886f4d5275849101da9bacdbb4fc9180c2f658251694c63dc16c7bc50fbfcce",
|
|
||||||
"lua/catppuccin/groups/integrations/indent_blankline.lua": "0c0d72ea4117dc9ca2ecebbd1edb31111521d978a72dc8a93ca2df2cab931d11",
|
|
||||||
"lua/catppuccin/groups/integrations/leap.lua": "bb972bc3e7249a24a6a9023683070f1af4617bab3e32109621b41218655c6352",
|
|
||||||
"lua/catppuccin/groups/integrations/lightspeed.lua": "68f3239d64c6d3bd244c03973ff1b80643d9ca0545f8619e037cf6813fb44752",
|
|
||||||
"lua/catppuccin/groups/integrations/lir.lua": "bd386a9559d87e503a90348ec0dbb4351516c39a58c1eeb97204e33370fba14e",
|
|
||||||
"lua/catppuccin/groups/integrations/lsp_saga.lua": "eae83c1941bb7b90e1bfb0ac1db5aa130e2c9ada55124175c14b6cb9e8f4b819",
|
|
||||||
"lua/catppuccin/groups/integrations/lsp_trouble.lua": "7dff289346e6c0e6d82823b4b1ff55f0e7205a109c80f93cf1d74b4c774ec485",
|
|
||||||
"lua/catppuccin/groups/integrations/markview.lua": "ad1260c16e1b8913e4fb23372c4551d7bfeaa872cd7649adb0c99b71c11f6b14",
|
|
||||||
"lua/catppuccin/groups/integrations/mason.lua": "9b43638900613003456c515689c80f0d18cfd53daf632e103a21a194c7526277",
|
|
||||||
"lua/catppuccin/groups/integrations/mini.lua": "b44ea384e1bd8631b86717c6d45dc306abbf3154ab155e6d92a89ffac5bd1d7e",
|
|
||||||
"lua/catppuccin/groups/integrations/navic.lua": "975b5f57fc26688bf950f10938ac7d9a71c3632d22ffe14c261fc53ca9a1313e",
|
|
||||||
"lua/catppuccin/groups/integrations/neogit.lua": "31793ba38044ed119d392e03c3b62225400f4a38e6f1d9aad9e6adc0cdf5a67b",
|
|
||||||
"lua/catppuccin/groups/integrations/neotest.lua": "3f923cc1746f153b1c7ea8522b85cbf2a2e383c1d1f6e75abe2e2d7bc14b858a",
|
|
||||||
"lua/catppuccin/groups/integrations/neotree.lua": "26a7c4b63f954b4d7241adf4ef6b5ede9d52a34447ebf9bec421292bdcdbfb97",
|
|
||||||
"lua/catppuccin/groups/integrations/noice.lua": "582c9ecbe0aa3156bc22f9a76d1c160feea0ee895732c43c29552b3c4284028f",
|
|
||||||
"lua/catppuccin/groups/integrations/notifier.lua": "308faefafbd20d211f4c10a594bebaa3ed4c6c3e904b9eac99bf0fa08c23e36d",
|
|
||||||
"lua/catppuccin/groups/integrations/notify.lua": "753dd004bceeda176ca14798e369a7f214fbfd78258fb1e52d586d5f2770f4b2",
|
|
||||||
"lua/catppuccin/groups/integrations/nvim_surround.lua": "eb7ee6e25095af66b95fcd4edb0da68533bbcde73a032c8dcd94a8b80b17a94b",
|
|
||||||
"lua/catppuccin/groups/integrations/nvimtree.lua": "9fd02398db64403160a0dd74efb312f07c02a9e16780d33057f975eda0017d4f",
|
|
||||||
"lua/catppuccin/groups/integrations/octo.lua": "aa5e6cd0c0d8212c8bae0552caf3a585cb23694e97f693318b87331a0130b708",
|
|
||||||
"lua/catppuccin/groups/integrations/overseer.lua": "92bc318a88e5defdb2bcba933f259f15a2110777c7e4369baef02e30631c794a",
|
|
||||||
"lua/catppuccin/groups/integrations/pounce.lua": "9cea987d67ed8be8b96a44ad033aa891db28e2efd071969f73c1729fed7cddc4",
|
|
||||||
"lua/catppuccin/groups/integrations/rainbow_delimiters.lua": "1a62382dc80d7229beb0b3856fc398c2cfca7966556540694f6359e1ba4279a1",
|
|
||||||
"lua/catppuccin/groups/integrations/render_markdown.lua": "214d1d388e3b9042cae9d1115c7c26b443a1914fab64eed1f5a336c3c31fa37e",
|
|
||||||
"lua/catppuccin/groups/integrations/sandwich.lua": "ae4d4dedf4bd8e28e98055b02ef2f45d3a4386314028399142805d6d8fffba1e",
|
|
||||||
"lua/catppuccin/groups/integrations/signify.lua": "b614ae4abfd8db355c0b4be5d35d97eb07b46f20705962c4c086024bf0c5581b",
|
|
||||||
"lua/catppuccin/groups/integrations/snacks.lua": "9d505961e771340009d4d2f8727d6e4ad0d210db35860d48c4c1a310f3e1fcdf",
|
|
||||||
"lua/catppuccin/groups/integrations/symbols_outline.lua": "f23afaea70c8af25af5cc3e484b61f0addcc223612119dc06f82ed22d4e60895",
|
|
||||||
"lua/catppuccin/groups/integrations/telekasten.lua": "3ee8c1253c232c9541f932c07fc14164371d10248278378b5a2a37f1b9f83471",
|
|
||||||
"lua/catppuccin/groups/integrations/telescope.lua": "92f86988ac114c2b8bc985df034223306c486b1998cf8b829f35bc131f55568d",
|
|
||||||
"lua/catppuccin/groups/integrations/treesitter_context.lua": "e34887fc9eb755d2b2a205c650dac452bcd626777d58060fd863b8a3501a8fd9",
|
|
||||||
"lua/catppuccin/groups/integrations/ts_rainbow.lua": "14c47153066db7402dd8746aa1f220d13c05a6851f5baf60b883238bec8a542f",
|
|
||||||
"lua/catppuccin/groups/integrations/ts_rainbow2.lua": "0653536e22b227b80cb91b5019382cb088436c0aaf20ee7cb12f38263c47d184",
|
|
||||||
"lua/catppuccin/groups/integrations/ufo.lua": "8defc9c1cda22e12a6159c9d5ef877791395d503b46f3f31598bac89ced44a67",
|
|
||||||
"lua/catppuccin/groups/integrations/vim_sneak.lua": "e9bbfa98082602cd3ad5dac35b82599004b843810d2630c6ba9a061a99b4abf3",
|
|
||||||
"lua/catppuccin/groups/integrations/vimwiki.lua": "74c4368d697672c7785b7067e3f0c4295820e7bd26bfa6270c64e0f5e0d79706",
|
|
||||||
"lua/catppuccin/groups/integrations/which_key.lua": "231cfd466f8ad2daf9924bf4fe51a8f511e755bbc99bc093e156b40f4143ffb5",
|
|
||||||
"lua/catppuccin/groups/integrations/window_picker.lua": "937409a7c27fbf684b16bb7cc9f70873883a81c8d27c34c36414e91dbc566be8",
|
|
||||||
"lua/catppuccin/groups/lsp.lua": "9652febc3ed5114357f264b699d1a3ee820f05a781654674518b884ea9618d4c",
|
|
||||||
"lua/catppuccin/groups/semantic_tokens.lua": "ffcda7ae73b7ce6220a44bf43d013aea2be26c4870d0fd76a7beaf558afd60fd",
|
|
||||||
"lua/catppuccin/groups/syntax.lua": "7f1d30a72e2dca94a38ab35aff861953082c8012a41217abf349c1799f0b989c",
|
|
||||||
"lua/catppuccin/groups/terminal.lua": "2625a84419e9001a93256d7cd1bb1279d62c6a8a29c1ba2c05718b213801ee71",
|
|
||||||
"lua/catppuccin/groups/treesitter.lua": "5b5b0ca4da48f0650d9ec3866fd6b0805526dfc26c7fb88d5dff6a1752d428a0",
|
|
||||||
"lua/catppuccin/init.lua": "967b784814cfe5bea69a32b0c7d582f57485281290fc83faaa3a1defb2a7cfec",
|
|
||||||
"lua/catppuccin/lib/compiler.lua": "596f6331c052fec9999b8ef59c3159eba4bc5dfb40c4ca9c1c8c6b512c953161",
|
|
||||||
"lua/catppuccin/lib/detect_integrations.lua": "3bc529be585cd3c2dbffbc03d08fce8e209fa2eb06d27846d411c9a621c8a6e7",
|
|
||||||
"lua/catppuccin/lib/hashing.lua": "16a43b210468c5b37bd472036e776c110dba472be2cbcb0cf7d87368a7ac01a7",
|
|
||||||
"lua/catppuccin/lib/highlighter.lua": "03f3e558454d7e875fb9c9d157d7adc31999b168cf2ad73e2d974831baef482d",
|
|
||||||
"lua/catppuccin/lib/hsluv.lua": "d6835861b08b504e1c928d129adc2b7005a6553c2ed3207ec73e7c05909f6671",
|
|
||||||
"lua/catppuccin/lib/mapper.lua": "35993d791f42451b2f51d8eba03b28a5083b92585ea9f179c0dd38ad9419cc96",
|
|
||||||
"lua/catppuccin/palettes/frappe.lua": "9c07fdf3dda5bea178c0d7d9d7c7c1902517aeb56d924888935c51520bfa0e04",
|
|
||||||
"lua/catppuccin/palettes/init.lua": "8a3bf0ac9f2b9ff0f6f77f904d593e7da6b6b6132e93b8e824b4c20dcc0f6323",
|
|
||||||
"lua/catppuccin/palettes/latte.lua": "77972e16f8e73209e4a493469eddcc7532d5a9c767f446646ebab2736d125ab1",
|
|
||||||
"lua/catppuccin/palettes/macchiato.lua": "c7fcca540b7216137dc02e434f5b735332ccd30be8a2f4199237664acefcca66",
|
|
||||||
"lua/catppuccin/palettes/mocha.lua": "28963db88a817fb69a658c9859b2638e18d1175423e3d82df747b9a10660274c",
|
|
||||||
"lua/catppuccin/special/bufferline.lua": "56d7ac16d4f20580a288095bf6a4fa662f1334ffaa3c1f292576d8841da53340",
|
|
||||||
"lua/catppuccin/special/feline.lua": "30ce5edb9a2bfe18afe6243dee3e674003853c0cbc831ea0fc35825f5523a789",
|
|
||||||
"lua/catppuccin/types.lua": "27d70ce2a5e910b24a7b703647218c9066985928ad8c7a13d3c33bb5d6cd2558",
|
|
||||||
"lua/catppuccin/utils/barbecue.lua": "a967d799a795320b4ffcb33509d561900a50c352aae8d9fa356110b117b77530",
|
|
||||||
"lua/catppuccin/utils/colors.lua": "ce2ca2fd987bcaca257cc279b2df1c3b0ba484158e05ff3b8ae1f6a5ed4e6ae3",
|
|
||||||
"lua/catppuccin/utils/integration_mappings.lua": "38bdeb2cf7f7ca82a247b2a00da3560c2f855028b1c3394802b09414f3f41774",
|
|
||||||
"lua/catppuccin/utils/lualine.lua": "232ff22bbf79fff54af9395700a77ea45539a701a7d31886f729eaa7b2d2e957",
|
|
||||||
"lua/catppuccin/utils/reactive.lua": "05041a21d60ccbe02d9708c36831b796b6fb9b7a5c4347b636fc11293ee167ad",
|
|
||||||
"lua/lualine/themes/catppuccin-frappe.lua": "3249e12158dd4d8d747cb4fc276091374d323bc3a3d8dd8ea063c0cc09972dcf",
|
|
||||||
"lua/lualine/themes/catppuccin-latte.lua": "7b0dd2b09f33210d3d5b40b975de308f911754927b9d42b25dd3677b13f933bb",
|
|
||||||
"lua/lualine/themes/catppuccin-macchiato.lua": "39bd6d9ee7ffac4f8ffa1a3ed4f7306f3528ea6e25747d1ee4130ab8d1dc81c4",
|
|
||||||
"lua/lualine/themes/catppuccin-mocha.lua": "a0d78b086265ef72a5b9bce9cd0d77ff6aa5d792c4e05c6327adbb220b1608f1",
|
|
||||||
"lua/lualine/themes/catppuccin-nvim.lua": "7b16272fc6edf1e4f523073282d6a7ed22946f634392979d9aae5e8bfd050a71",
|
|
||||||
"lua/reactive/presets/catppuccin-frappe-cursor.lua": "5b784baca79d58766d45e24628105142c4578bfe609aef439cee2e50106f7e82",
|
|
||||||
"lua/reactive/presets/catppuccin-frappe-cursorline.lua": "98c9bd0d187ca3447185f1d29793d80aa30ed301483bdd7343b22feb23e989de",
|
|
||||||
"lua/reactive/presets/catppuccin-latte-cursor.lua": "d497c9d390114965a6cb470d2ab8e30117bee89d9abb1e8200e654dbdf510e4e",
|
|
||||||
"lua/reactive/presets/catppuccin-latte-cursorline.lua": "faa2da25887b83075bf87a32309e7653dc04405f659d0b48ab240bacb2d40b09",
|
|
||||||
"lua/reactive/presets/catppuccin-macchiato-cursor.lua": "513447dbe885e313bff1aa0d0f2acb06cdc5d6c833a3751092491259d77d1c7d",
|
|
||||||
"lua/reactive/presets/catppuccin-macchiato-cursorline.lua": "0d8061edc51c62fa302645724916857655e788c1d5e6f2419f550410280f9780",
|
|
||||||
"lua/reactive/presets/catppuccin-mocha-cursor.lua": "1e8f2afaee7d5a1a7bf2388931fa5e83338045e49231a905cef1837ead401f82",
|
|
||||||
"lua/reactive/presets/catppuccin-mocha-cursorline.lua": "313422042f9872b2533ced2b0ff8b79de46cb0b03454a4537b390b0762912750"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ayu-midas": {
|
|
||||||
"upstream": "https://github.com/qyurila/ayu-midas-vscode",
|
|
||||||
"commit": "8ce96d6002e7327be1aaf41a01f6106041517c8e",
|
|
||||||
"root": "configs/vscode/files/.vscode/extensions/qyurila.ayu-midas-1.1.0",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"note": "Original theme JSON and LICENSE with a runtime-only extension manifest; no JavaScript entry point.",
|
|
||||||
"sha256": {
|
|
||||||
"LICENSE": "e0af0e0d1754c18ca075649d42f5c6d9a60f8bdc03c20dfd97105f2253a94173",
|
|
||||||
"ayu-midas.json": "72dea34c4cfc7c5e993e95fd3c412277dc72bbb386584a1c69812c0c6beb5e5f",
|
|
||||||
"package.json": "05dedf22ea1d4ac7949370412b6c9b180a233c518105383f2fd80f7dc8eb7491"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
193
cmd/dots/main.go
193
cmd/dots/main.go
|
|
@ -48,7 +48,6 @@ type catalog struct {
|
||||||
Services map[string]setupOption `json:"services"`
|
Services map[string]setupOption `json:"services"`
|
||||||
Stock selection `json:"stock"`
|
Stock selection `json:"stock"`
|
||||||
Ryzen selection `json:"ryzen"`
|
Ryzen selection `json:"ryzen"`
|
||||||
Devices map[string]selection `json:"devices"`
|
|
||||||
}
|
}
|
||||||
type row struct {
|
type row struct {
|
||||||
id, label string
|
id, label string
|
||||||
|
|
@ -66,15 +65,6 @@ type backupsMsg struct {
|
||||||
choices []backupChoice
|
choices []backupChoice
|
||||||
err error
|
err error
|
||||||
}
|
}
|
||||||
type proposalChoice struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Target string `json:"target"`
|
|
||||||
Status string `json:"status"`
|
|
||||||
}
|
|
||||||
type proposalsMsg struct {
|
|
||||||
choices []proposalChoice
|
|
||||||
err error
|
|
||||||
}
|
|
||||||
type model struct {
|
type model struct {
|
||||||
repo string
|
repo string
|
||||||
catalog catalog
|
catalog catalog
|
||||||
|
|
@ -83,9 +73,6 @@ type model struct {
|
||||||
stage, cursor, height, width, scroll int
|
stage, cursor, height, width, scroll int
|
||||||
preview, errorText, action, backupID string
|
preview, errorText, action, backupID string
|
||||||
done, loading bool
|
done, loading bool
|
||||||
proposalID, proposalStatus string
|
|
||||||
proposals []proposalChoice
|
|
||||||
deviceName string
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func contains(values []string, target string) bool {
|
func contains(values []string, target string) bool {
|
||||||
|
|
@ -106,21 +93,6 @@ func (m *model) prepare() {
|
||||||
if m.selection.Profile == "fiw-ryzen" {
|
if m.selection.Profile == "fiw-ryzen" {
|
||||||
m.cursor = 1
|
m.cursor = 1
|
||||||
}
|
}
|
||||||
ids := make([]string, 0, len(m.catalog.Devices))
|
|
||||||
for id := range m.catalog.Devices {
|
|
||||||
ids = append(ids, id)
|
|
||||||
}
|
|
||||||
sort.Strings(ids)
|
|
||||||
for _, id := range ids {
|
|
||||||
selected := m.selection.Name == id
|
|
||||||
m.rows = append(m.rows, row{"device:" + id, "Device: " + id + " (" + m.catalog.Devices[id].Profile + ")", selected})
|
|
||||||
if selected {
|
|
||||||
for i := range m.rows[:len(m.rows)-1] {
|
|
||||||
m.rows[i].checked = false
|
|
||||||
}
|
|
||||||
m.cursor = len(m.rows) - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 1:
|
case 1:
|
||||||
for _, id := range m.catalog.Groups {
|
for _, id := range m.catalog.Groups {
|
||||||
label := id
|
label := id
|
||||||
|
|
@ -170,17 +142,6 @@ func (m *model) prepare() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m *model) choosePreset() {
|
|
||||||
id := m.rows[m.cursor].id
|
|
||||||
switch id {
|
|
||||||
case "stock":
|
|
||||||
m.selection = m.catalog.Stock
|
|
||||||
case "fiw-ryzen":
|
|
||||||
m.selection = m.catalog.Ryzen
|
|
||||||
default:
|
|
||||||
m.selection = m.catalog.Devices[strings.TrimPrefix(id, "device:")]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func (m *model) remember() {
|
func (m *model) remember() {
|
||||||
switch m.stage {
|
switch m.stage {
|
||||||
case 1:
|
case 1:
|
||||||
|
|
@ -285,24 +246,6 @@ func (m model) backupPreview() tea.Cmd {
|
||||||
return previewMsg{string(output), err}
|
return previewMsg{string(output), err}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (m model) loadProposals() tea.Cmd {
|
|
||||||
return func() tea.Msg {
|
|
||||||
output, err := exec.Command("python3", filepath.Join(m.repo, "lib", "rice.py"), "--list-proposals").CombinedOutput()
|
|
||||||
var choices []proposalChoice
|
|
||||||
if err == nil {
|
|
||||||
err = json.Unmarshal(output, &choices)
|
|
||||||
} else {
|
|
||||||
err = fmt.Errorf("%s", strings.TrimSpace(string(output)))
|
|
||||||
}
|
|
||||||
return proposalsMsg{choices, err}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func (m model) proposalPreview() tea.Cmd {
|
|
||||||
return func() tea.Msg {
|
|
||||||
output, err := exec.Command("python3", filepath.Join(m.repo, "lib", "rice.py"), "--proposal-plan", m.proposalID).CombinedOutput()
|
|
||||||
return previewMsg{string(output), err}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func (m model) previewLines() []string {
|
func (m model) previewLines() []string {
|
||||||
width := m.width
|
width := m.width
|
||||||
if width == 0 {
|
if width == 0 {
|
||||||
|
|
@ -324,13 +267,6 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
case previewMsg:
|
case previewMsg:
|
||||||
m.loading = false
|
m.loading = false
|
||||||
m.preview = v.content
|
m.preview = v.content
|
||||||
if m.stage == 9 && v.err == nil {
|
|
||||||
lines := strings.SplitN(v.content, "\n", 4)
|
|
||||||
m.proposalStatus = ""
|
|
||||||
if len(lines) > 2 {
|
|
||||||
m.proposalStatus = strings.TrimPrefix(lines[2], "Status: ")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if v.err != nil {
|
if v.err != nil {
|
||||||
m.errorText = v.err.Error()
|
m.errorText = v.err.Error()
|
||||||
}
|
}
|
||||||
|
|
@ -343,52 +279,15 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
for _, choice := range v.choices {
|
for _, choice := range v.choices {
|
||||||
m.rows = append(m.rows, row{choice.ID, fmt.Sprintf("%s — %d files", choice.ID, choice.Count), false})
|
m.rows = append(m.rows, row{choice.ID, fmt.Sprintf("%s — %d files", choice.ID, choice.Count), false})
|
||||||
}
|
}
|
||||||
case proposalsMsg:
|
|
||||||
m.loading = false
|
|
||||||
m.rows = nil
|
|
||||||
m.proposals = v.choices
|
|
||||||
if v.err != nil {
|
|
||||||
m.errorText = v.err.Error()
|
|
||||||
}
|
|
||||||
for _, choice := range v.choices {
|
|
||||||
m.rows = append(m.rows, row{choice.ID, choice.ID + " [" + choice.Status + "]", false})
|
|
||||||
}
|
|
||||||
case tea.KeyMsg:
|
case tea.KeyMsg:
|
||||||
key := v.String()
|
key := v.String()
|
||||||
if key == "ctrl+c" || (key == "q" && m.stage != 10) {
|
if key == "ctrl+c" || key == "q" {
|
||||||
return m, tea.Quit
|
return m, tea.Quit
|
||||||
}
|
}
|
||||||
if m.loading {
|
if m.loading {
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
if m.stage == 10 {
|
if m.stage == 5 || m.stage == 7 {
|
||||||
switch v.Type {
|
|
||||||
case tea.KeyEsc:
|
|
||||||
m.stage = 5
|
|
||||||
m.errorText = ""
|
|
||||||
case tea.KeyBackspace, tea.KeyDelete:
|
|
||||||
if len(m.deviceName) > 0 {
|
|
||||||
m.deviceName = m.deviceName[:len(m.deviceName)-1]
|
|
||||||
}
|
|
||||||
case tea.KeyRunes:
|
|
||||||
for _, character := range strings.ToLower(string(v.Runes)) {
|
|
||||||
if len(m.deviceName) < 48 && ((character >= 'a' && character <= 'z') || (character >= '0' && character <= '9') || (len(m.deviceName) > 0 && (character == '-' || character == '_'))) {
|
|
||||||
m.deviceName += string(character)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m.errorText = ""
|
|
||||||
case tea.KeyEnter:
|
|
||||||
if m.deviceName == "" {
|
|
||||||
m.errorText = "Enter a device preset name."
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
m.selection.Name = m.deviceName
|
|
||||||
m.action, m.done = "n", true
|
|
||||||
return m, tea.Quit
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
if m.stage == 5 || m.stage == 7 || m.stage == 9 {
|
|
||||||
switch key {
|
switch key {
|
||||||
case "up", "k":
|
case "up", "k":
|
||||||
if m.scroll > 0 {
|
if m.scroll > 0 {
|
||||||
|
|
@ -406,11 +305,6 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
m.errorText = ""
|
m.errorText = ""
|
||||||
return m, m.loadBackups()
|
return m, m.loadBackups()
|
||||||
}
|
}
|
||||||
if m.stage == 8 {
|
|
||||||
m.loading = true
|
|
||||||
m.errorText = ""
|
|
||||||
return m, m.loadProposals()
|
|
||||||
}
|
|
||||||
case "u":
|
case "u":
|
||||||
if m.stage == 5 {
|
if m.stage == 5 {
|
||||||
m.stage = 6
|
m.stage = 6
|
||||||
|
|
@ -419,20 +313,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
m.errorText = ""
|
m.errorText = ""
|
||||||
return m, m.loadBackups()
|
return m, m.loadBackups()
|
||||||
}
|
}
|
||||||
case "p":
|
case "enter", "s", "a", "i", "f", "v", "b", "r":
|
||||||
if m.stage == 5 {
|
|
||||||
m.stage = 8
|
|
||||||
m.prepare()
|
|
||||||
m.loading = true
|
|
||||||
m.errorText = ""
|
|
||||||
return m, m.loadProposals()
|
|
||||||
}
|
|
||||||
case "n":
|
|
||||||
if m.stage == 5 && m.errorText == "" {
|
|
||||||
m.stage = 10
|
|
||||||
m.deviceName = ""
|
|
||||||
}
|
|
||||||
case "enter", "s", "a", "e", "i", "f", "v", "b", "r":
|
|
||||||
if m.errorText == "" {
|
if m.errorText == "" {
|
||||||
if m.stage == 7 {
|
if m.stage == 7 {
|
||||||
if key != "enter" {
|
if key != "enter" {
|
||||||
|
|
@ -440,12 +321,6 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
}
|
}
|
||||||
key = "u"
|
key = "u"
|
||||||
}
|
}
|
||||||
if m.stage == 9 {
|
|
||||||
if key != "enter" || (m.proposalStatus != "ready" && m.proposalStatus != "unchanged") {
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
key = "p"
|
|
||||||
}
|
|
||||||
m.done = true
|
m.done = true
|
||||||
m.action = key
|
m.action = key
|
||||||
return m, tea.Quit
|
return m, tea.Quit
|
||||||
|
|
@ -453,7 +328,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
}
|
}
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
if m.stage == 6 || m.stage == 8 {
|
if m.stage == 6 {
|
||||||
switch key {
|
switch key {
|
||||||
case "up", "k":
|
case "up", "k":
|
||||||
if m.cursor > 0 {
|
if m.cursor > 0 {
|
||||||
|
|
@ -465,14 +340,6 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
}
|
}
|
||||||
case "enter":
|
case "enter":
|
||||||
if len(m.rows) > 0 && m.errorText == "" {
|
if len(m.rows) > 0 && m.errorText == "" {
|
||||||
if m.stage == 8 {
|
|
||||||
m.proposalID = m.rows[m.cursor].id
|
|
||||||
m.proposalStatus = m.proposals[m.cursor].Status
|
|
||||||
m.stage = 9
|
|
||||||
m.scroll = 0
|
|
||||||
m.loading = true
|
|
||||||
return m, m.proposalPreview()
|
|
||||||
}
|
|
||||||
m.backupID = m.rows[m.cursor].id
|
m.backupID = m.rows[m.cursor].id
|
||||||
m.stage = 7
|
m.stage = 7
|
||||||
m.scroll = 0
|
m.scroll = 0
|
||||||
|
|
@ -502,7 +369,11 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if m.stage == 0 {
|
if m.stage == 0 {
|
||||||
m.choosePreset()
|
if m.rows[m.cursor].id == "stock" {
|
||||||
|
m.selection = m.catalog.Stock
|
||||||
|
} else {
|
||||||
|
m.selection = m.catalog.Ryzen
|
||||||
|
}
|
||||||
m.prepare()
|
m.prepare()
|
||||||
} else {
|
} else {
|
||||||
id := m.rows[m.cursor].id
|
id := m.rows[m.cursor].id
|
||||||
|
|
@ -526,7 +397,11 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
}
|
}
|
||||||
case "enter":
|
case "enter":
|
||||||
if m.stage == 0 {
|
if m.stage == 0 {
|
||||||
m.choosePreset()
|
if m.rows[m.cursor].id == "stock" {
|
||||||
|
m.selection = m.catalog.Stock
|
||||||
|
} else {
|
||||||
|
m.selection = m.catalog.Ryzen
|
||||||
|
}
|
||||||
}
|
}
|
||||||
m.remember()
|
m.remember()
|
||||||
m.stage++
|
m.stage++
|
||||||
|
|
@ -550,16 +425,13 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
func (m model) View() string {
|
func (m model) View() string {
|
||||||
const purple = "\033[38;2;157;143;217m"
|
const purple = "\033[38;2;157;143;217m"
|
||||||
const reset = "\033[0m"
|
const reset = "\033[0m"
|
||||||
titles := []string{"Preset", "Package sections", "Optional app configs", "Kernel, bootloader and extras", "Flatpaks and optional services", "Final preview", "Config backups", "Restore backup preview", "Pending config updates", "Config update diff", "Save device preset"}
|
titles := []string{"Preset", "Package sections", "Optional app configs", "Kernel, bootloader and extras", "Flatpaks and optional services", "Final preview", "Config backups", "Restore backup preview"}
|
||||||
text := purple + " Fiw-Gentoo-Dots\n" + reset + " " + titles[m.stage] + " · " + m.selection.Name + "\n\n"
|
text := purple + " Fiw-Gentoo-Dots\n" + reset + " " + titles[m.stage] + " · " + m.selection.Name + "\n\n"
|
||||||
if m.stage == 10 {
|
|
||||||
return text + " Name: " + m.deviceName + "_\n\n Up to 48 lowercase letters, digits, hyphens or underscores.\n Saves your selection locally. Existing names ask before replacement.\n\n Enter save · Esc back · Ctrl+C cancel\n " + m.errorText + "\n"
|
|
||||||
}
|
|
||||||
budget := m.height - 10
|
budget := m.height - 10
|
||||||
if budget < 5 {
|
if budget < 5 {
|
||||||
budget = 5
|
budget = 5
|
||||||
}
|
}
|
||||||
if m.stage == 5 || m.stage == 7 || m.stage == 9 {
|
if m.stage == 5 || m.stage == 7 {
|
||||||
if m.loading {
|
if m.loading {
|
||||||
return text + " Preparing preview…\n"
|
return text + " Preparing preview…\n"
|
||||||
}
|
}
|
||||||
|
|
@ -573,27 +445,18 @@ func (m model) View() string {
|
||||||
}
|
}
|
||||||
if m.stage == 7 {
|
if m.stage == 7 {
|
||||||
text += "\n ↑/↓ scroll · Esc back · Enter restore with confirmation · q cancel\n"
|
text += "\n ↑/↓ scroll · Esc back · Enter restore with confirmation · q cancel\n"
|
||||||
} else if m.stage == 9 {
|
|
||||||
if m.proposalStatus == "stale" {
|
|
||||||
text += "\n Target changed: update configs again to create a fresh proposal.\n ↑/↓ scroll · Esc back · q cancel\n"
|
|
||||||
} else {
|
} else {
|
||||||
text += "\n ↑/↓ scroll · Esc back · Enter accept with confirmation · q cancel\n"
|
text += "\n ↑/↓ scroll · Esc back · Enter save · r full restore · a configs · i packages\n f Flatpaks · v services · b bootloader · u config backups · q cancel\n"
|
||||||
}
|
|
||||||
} else {
|
|
||||||
text += "\n ↑/↓ scroll · Esc back · Enter save · n save device · r full restore\n a configs · e update configs · i packages · f Flatpaks · v services\n b bootloader · p pending updates · u config backups · q cancel\n"
|
|
||||||
}
|
}
|
||||||
if m.errorText != "" {
|
if m.errorText != "" {
|
||||||
text += " " + m.errorText + "\n"
|
text += " " + m.errorText + "\n"
|
||||||
}
|
}
|
||||||
return text
|
return text
|
||||||
}
|
}
|
||||||
if (m.stage == 6 || m.stage == 8) && (m.loading || len(m.rows) == 0 || m.errorText != "") {
|
if m.stage == 6 && (m.loading || len(m.rows) == 0 || m.errorText != "") {
|
||||||
message := "No config backups yet. Backups are created when existing configs are replaced."
|
message := "No config backups yet. Backups are created when existing configs are replaced."
|
||||||
if m.stage == 8 {
|
|
||||||
message = "No pending config updates. Use e from the final preview to update configs."
|
|
||||||
}
|
|
||||||
if m.loading {
|
if m.loading {
|
||||||
message = "Loading files…"
|
message = "Loading config backups…"
|
||||||
}
|
}
|
||||||
if m.errorText != "" {
|
if m.errorText != "" {
|
||||||
message = m.errorText
|
message = m.errorText
|
||||||
|
|
@ -619,9 +482,6 @@ func (m model) View() string {
|
||||||
cursor = "› "
|
cursor = "› "
|
||||||
}
|
}
|
||||||
line := " " + cursor + mark + " " + r.label
|
line := " " + cursor + mark + " " + r.label
|
||||||
if m.stage == 8 && m.width > 10 {
|
|
||||||
line = ansi.Truncate(line, m.width-2, "…")
|
|
||||||
}
|
|
||||||
if m.cursor == i {
|
if m.cursor == i {
|
||||||
line = purple + line + reset
|
line = purple + line + reset
|
||||||
}
|
}
|
||||||
|
|
@ -630,9 +490,6 @@ func (m model) View() string {
|
||||||
if m.stage == 6 {
|
if m.stage == 6 {
|
||||||
return text + "\n ↑/↓ move · Enter preview backup · Esc back · q cancel\n"
|
return text + "\n ↑/↓ move · Enter preview backup · Esc back · q cancel\n"
|
||||||
}
|
}
|
||||||
if m.stage == 8 {
|
|
||||||
return text + "\n ↑/↓ move · Enter preview diff · Esc back · q cancel\n"
|
|
||||||
}
|
|
||||||
return text + "\n ↑/↓ move · Space select · Enter next · Esc back · q cancel\n"
|
return text + "\n ↑/↓ move · Space select · Enter next · Esc back · q cancel\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -726,21 +583,9 @@ func main() {
|
||||||
var actionErr error
|
var actionErr error
|
||||||
workflow := "restore"
|
workflow := "restore"
|
||||||
switch final.action {
|
switch final.action {
|
||||||
case "n":
|
|
||||||
if err := run("--save-device", false, final.deviceName); err != nil {
|
|
||||||
fmt.Fprintln(os.Stderr, err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
case "a":
|
case "a":
|
||||||
workflow = "configs"
|
workflow = "configs"
|
||||||
actionErr = run("--apply-configs", false)
|
actionErr = run("--apply-configs", false)
|
||||||
case "e":
|
|
||||||
workflow = "configs"
|
|
||||||
actionErr = run("--apply-configs", false, "--update")
|
|
||||||
case "p":
|
|
||||||
workflow = "proposal"
|
|
||||||
actionErr = run("--accept-proposal", false, final.proposalID)
|
|
||||||
case "i":
|
case "i":
|
||||||
workflow = "packages"
|
workflow = "packages"
|
||||||
actionErr = run("--install-packages", true)
|
actionErr = run("--install-packages", true)
|
||||||
|
|
|
||||||
117
cmd/dots/main_test.go
Normal file
117
cmd/dots/main_test.go
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
tea "github.com/charmbracelet/bubbletea"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRyzenSelectionSurvivesSpaceAndEnter(t *testing.T) {
|
||||||
|
c := catalog{Stock: selection{Name: "Stock", Profile: "stock"}, Ryzen: selection{Name: "Fiw's Ryzen", Profile: "fiw-ryzen"}}
|
||||||
|
m := model{catalog: c, selection: c.Stock}
|
||||||
|
m.prepare()
|
||||||
|
m.cursor = 1
|
||||||
|
next, _ := m.Update(tea.KeyMsg{Type: tea.KeySpace})
|
||||||
|
m = next.(model)
|
||||||
|
next, _ = m.Update(tea.KeyMsg{Type: tea.KeyEnter})
|
||||||
|
m = next.(model)
|
||||||
|
if m.selection.Profile != "fiw-ryzen" || m.stage != 1 {
|
||||||
|
t.Fatalf("selected wrong preset: %+v", m.selection)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBootloaderChoicesAreExclusive(t *testing.T) {
|
||||||
|
m := model{stage: 3, selection: selection{Kernel: "binary", Bootloader: "keep"}, catalog: catalog{Extras: map[string]string{}}}
|
||||||
|
m.prepare()
|
||||||
|
m.cursor = 4
|
||||||
|
next, _ := m.Update(tea.KeyMsg{Type: tea.KeySpace})
|
||||||
|
m = next.(model)
|
||||||
|
m.remember()
|
||||||
|
if m.selection.Bootloader != "grub" {
|
||||||
|
t.Fatal("GRUB was not selected")
|
||||||
|
}
|
||||||
|
selected := 0
|
||||||
|
for _, r := range m.rows {
|
||||||
|
if r.checked && (r.id == "keep" || r.id == "limine" || r.id == "grub") {
|
||||||
|
selected++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if selected != 1 {
|
||||||
|
t.Fatal("multiple bootloaders selected")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConfigsSelectableWithoutPackageGroups(t *testing.T) {
|
||||||
|
m := model{stage: 2, catalog: catalog{Configs: map[string]config{
|
||||||
|
"fish": {Label: "Fish", Group: "cli"},
|
||||||
|
"kitty": {Label: "Kitty", Group: "fiw-apps"},
|
||||||
|
}}, selection: selection{Configs: []string{"fish"}}}
|
||||||
|
m.prepare()
|
||||||
|
if len(m.rows) != 2 || !m.rows[0].checked {
|
||||||
|
t.Fatal("configs were hidden or deselected by package choices")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSetupCheckboxesSurviveFinalPreview(t *testing.T) {
|
||||||
|
m := model{stage: 4, catalog: catalog{
|
||||||
|
Flatpaks: map[string]setupOption{"org.vinegarhq.Sober": {Label: "Sober", Group: "gaming"}},
|
||||||
|
Services: map[string]setupOption{"audio": {Label: "Audio", Scope: "user"}},
|
||||||
|
}, selection: selection{}}
|
||||||
|
m.prepare()
|
||||||
|
for i := range m.rows {
|
||||||
|
m.rows[i].checked = true
|
||||||
|
}
|
||||||
|
next, command := m.Update(tea.KeyMsg{Type: tea.KeyEnter})
|
||||||
|
result := next.(model)
|
||||||
|
if result.stage != 5 || command == nil || !contains(result.selection.Flatpaks, "org.vinegarhq.Sober") || !contains(result.selection.Services, "audio") {
|
||||||
|
t.Fatalf("setup selections lost before preview: %+v", result.selection)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBackupNeedsSelectionPreviewAndExplicitRestoreAction(t *testing.T) {
|
||||||
|
m := model{stage: 5}
|
||||||
|
next, command := m.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'u'}})
|
||||||
|
m = next.(model)
|
||||||
|
if m.stage != 6 || command == nil || m.done {
|
||||||
|
t.Fatal("backup key did not open the chooser")
|
||||||
|
}
|
||||||
|
next, _ = m.Update(backupsMsg{choices: []backupChoice{{ID: "20260101T000000Z", Count: 1}}})
|
||||||
|
m = next.(model)
|
||||||
|
next, command = m.Update(tea.KeyMsg{Type: tea.KeyEnter})
|
||||||
|
m = next.(model)
|
||||||
|
if m.stage != 7 || command == nil || m.done {
|
||||||
|
t.Fatal("choosing a backup must only open its preview")
|
||||||
|
}
|
||||||
|
next, _ = m.Update(previewMsg{content: "preview"})
|
||||||
|
m = next.(model)
|
||||||
|
next, _ = m.Update(tea.KeyMsg{Type: tea.KeyRunes, Runes: []rune{'a'}})
|
||||||
|
m = next.(model)
|
||||||
|
if m.done {
|
||||||
|
t.Fatal("config application key triggered a restore from backup preview")
|
||||||
|
}
|
||||||
|
next, _ = m.Update(tea.KeyMsg{Type: tea.KeyEnter})
|
||||||
|
m = next.(model)
|
||||||
|
if !m.done || m.action != "u" || m.backupID != "20260101T000000Z" {
|
||||||
|
t.Fatal("explicit backup action was lost")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestEmptyBackupChooserDoesNotStartRestore(t *testing.T) {
|
||||||
|
m := model{stage: 6}
|
||||||
|
next, command := m.Update(tea.KeyMsg{Type: tea.KeyEnter})
|
||||||
|
m = next.(model)
|
||||||
|
if m.done || command != nil || m.stage != 6 {
|
||||||
|
t.Fatal("empty backup chooser started a restore")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPreviewCanScrollThroughLongRequirementLines(t *testing.T) {
|
||||||
|
m := model{stage: 5, height: 20, width: 40, preview: strings.Repeat("package [missing] ", 20)}
|
||||||
|
for range 3 {
|
||||||
|
next, _ := m.Update(tea.KeyMsg{Type: tea.KeyDown})
|
||||||
|
m = next.(model)
|
||||||
|
}
|
||||||
|
if m.scroll != 3 {
|
||||||
|
t.Fatal("wrapped requirements cannot be scrolled into view")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -61,10 +61,9 @@
|
||||||
"label": "Kitty lavender profiles",
|
"label": "Kitty lavender profiles",
|
||||||
"group": "fiw-apps",
|
"group": "fiw-apps",
|
||||||
"packages": [
|
"packages": [
|
||||||
"x11-terms/kitty",
|
"x11-terms/kitty"
|
||||||
"app-shells/fish"
|
|
||||||
],
|
],
|
||||||
"note": "Both profiles start Fish. Select fonts separately for the bundled JetBrainsMono Nerd Font."
|
"note": "Select fonts separately for the bundled JetBrainsMono Nerd Font."
|
||||||
},
|
},
|
||||||
"neovim": {
|
"neovim": {
|
||||||
"label": "Neovim transparent purple style",
|
"label": "Neovim transparent purple style",
|
||||||
|
|
@ -72,7 +71,7 @@
|
||||||
"packages": [
|
"packages": [
|
||||||
"app-editors/neovim"
|
"app-editors/neovim"
|
||||||
],
|
],
|
||||||
"note": "Pinned Catppuccin runtime is bundled; no plugin manager, download or KDE dependency. Purple highlights retain a built-in fallback."
|
"note": "Catppuccin is optional; the captured purple highlights also work with the built-in fallback."
|
||||||
},
|
},
|
||||||
"fastfetch": {
|
"fastfetch": {
|
||||||
"label": "Fastfetch tree layout with Gentoo logo",
|
"label": "Fastfetch tree layout with Gentoo logo",
|
||||||
|
|
@ -100,8 +99,7 @@
|
||||||
"group": "fiw-apps",
|
"group": "fiw-apps",
|
||||||
"packages": [
|
"packages": [
|
||||||
"app-editors/vscode"
|
"app-editors/vscode"
|
||||||
],
|
]
|
||||||
"note": "Pinned ayu MiDas colour theme is bundled as a user extension; no Marketplace download or compilation."
|
|
||||||
},
|
},
|
||||||
"autostart": {
|
"autostart": {
|
||||||
"label": "Optional application autostart",
|
"label": "Optional application autostart",
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ italic_font auto
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
font_size 11.0
|
font_size 11.0
|
||||||
|
|
||||||
shell fish
|
|
||||||
linux_display_server auto
|
linux_display_server auto
|
||||||
background_blur 32
|
background_blur 32
|
||||||
dynamic_background_opacity yes
|
dynamic_background_opacity yes
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
-- Colors
|
-- Colors
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
-- Load the bundled native theme package before applying the captured highlights.
|
-- catppuccin is a plugin (not bundled with Neovim); fall back to the built-in dark theme
|
||||||
pcall(vim.cmd.packadd, "catppuccin")
|
|
||||||
-- Keep a built-in fallback if the theme package is intentionally omitted.
|
|
||||||
if not pcall(vim.cmd.colorscheme, "catppuccin-mocha") then
|
if not pcall(vim.cmd.colorscheme, "catppuccin-mocha") then
|
||||||
vim.o.background = "dark"
|
vim.o.background = "dark"
|
||||||
vim.cmd.colorscheme "default"
|
vim.cmd.colorscheme "default"
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2021 Catppuccin
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
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:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
;; extends
|
|
||||||
[
|
|
||||||
(class_name)
|
|
||||||
] @property.class
|
|
||||||
|
|
||||||
[
|
|
||||||
(id_name)
|
|
||||||
] @property.id
|
|
||||||
|
|
||||||
[
|
|
||||||
(declaration
|
|
||||||
(plain_value) @string.plain)
|
|
||||||
]
|
|
||||||
[
|
|
||||||
(tag_name)
|
|
||||||
] @type.tag
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
;; extends
|
|
||||||
[
|
|
||||||
"export"
|
|
||||||
] @keyword.export
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
;; extends
|
|
||||||
[
|
|
||||||
"export"
|
|
||||||
] @keyword.export
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require("catppuccin").load "frappe"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require("catppuccin").load "latte"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require("catppuccin").load "macchiato"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require("catppuccin").load "mocha"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
lua require("catppuccin").load()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
require("catppuccin").load()
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
return require "catppuccin.utils.barbecue" "frappe"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
return require "catppuccin.utils.barbecue" "latte"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
return require "catppuccin.utils.barbecue" "macchiato"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
return require "catppuccin.utils.barbecue" "mocha"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
return require "catppuccin.utils.barbecue"()
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local pumsolid = O.float.solid
|
|
||||||
if vim.fn.has "nvim-0.12" == 1 then pumsolid = vim.o.pumborder == "solid" end
|
|
||||||
|
|
||||||
return {
|
|
||||||
ColorColumn = { bg = C.surface0 }, -- used for the columns set with 'colorcolumn'
|
|
||||||
Conceal = { fg = C.overlay1 }, -- placeholder characters substituted for concealed text (see 'conceallevel')
|
|
||||||
Cursor = { fg = C.base, bg = C.rosewater }, -- character under the cursor
|
|
||||||
lCursor = { fg = C.base, bg = C.rosewater }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
|
|
||||||
CursorIM = { fg = C.base, bg = C.rosewater }, -- like Cursor, but used when in IME mode |CursorIM|
|
|
||||||
CursorColumn = { bg = C.mantle }, -- Screen-column at the cursor, when 'cursorcolumn' is set.
|
|
||||||
CursorLine = {
|
|
||||||
bg = U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),
|
|
||||||
}, -- Screen-line at the cursor, when 'cursorline' is set. Low-priority if forecrust (ctermfg OR guifg) is not set.
|
|
||||||
Dimmed = { fg = C.overlay1 },
|
|
||||||
Directory = { fg = C.blue }, -- directory names (and other special names in listings)
|
|
||||||
EndOfBuffer = { fg = C.surface1 }, -- filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
|
|
||||||
ErrorMsg = { fg = C.red, style = { "bold", "italic" } }, -- error messages on the command line
|
|
||||||
VertSplit = { fg = O.transparent_background and C.surface1 or C.crust }, -- the column separating vertically split windows
|
|
||||||
Folded = { fg = C.blue, bg = O.transparent_background and C.none or C.surface1 }, -- line used for closed folds
|
|
||||||
FoldColumn = { fg = C.overlay0 }, -- 'foldcolumn'
|
|
||||||
SignColumn = { fg = C.surface1 }, -- column where |signs| are displayed
|
|
||||||
SignColumnSB = { bg = C.crust, fg = C.surface1 }, -- column where |signs| are displayed
|
|
||||||
Substitute = { bg = C.surface1, fg = U.vary_color({ latte = C.red }, C.pink) }, -- |:substitute| replacement text highlighting
|
|
||||||
LineNr = { fg = C.surface1 }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
|
|
||||||
CursorLineNr = { fg = C.lavender }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line. highlights the number in numberline.
|
|
||||||
MatchParen = { fg = C.peach, bg = U.darken(C.surface1, 0.70, C.base), style = { "bold" } }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
|
|
||||||
ModeMsg = { fg = C.text, style = { "bold" } }, -- 'showmode' message (e.g., "-- INSERT -- ")
|
|
||||||
-- MsgArea = { fg = C.text }, -- Area for messages and cmdline, don't set this highlight because of https://github.com/neovim/neovim/issues/17832
|
|
||||||
MsgSeparator = { link = "WinSeparator" }, -- Separator for scrolled messages, `msgsep` flag of 'display'
|
|
||||||
MoreMsg = { fg = C.blue }, -- |more-prompt|
|
|
||||||
NonText = { fg = C.overlay0 }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
|
|
||||||
Normal = { fg = C.text, bg = O.transparent_background and C.none or C.base }, -- normal text
|
|
||||||
NormalNC = {
|
|
||||||
fg = C.text,
|
|
||||||
bg = (O.transparent_background and O.dim_inactive.enabled and C.dim)
|
|
||||||
or (O.dim_inactive.enabled and C.dim)
|
|
||||||
or (O.transparent_background and C.none)
|
|
||||||
or C.base,
|
|
||||||
}, -- normal text in non-current windows
|
|
||||||
NormalSB = { fg = C.text, bg = C.crust }, -- normal text in non-current windows
|
|
||||||
NormalFloat = { fg = C.text, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Normal text in floating windows.
|
|
||||||
FloatBorder = O.float.solid
|
|
||||||
and ((O.float.transparent and vim.o.winblend == 0) and { fg = C.surface2, bg = C.none } or {
|
|
||||||
fg = C.mantle,
|
|
||||||
bg = C.mantle,
|
|
||||||
})
|
|
||||||
or { fg = C.blue, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },
|
|
||||||
FloatTitle = O.float.solid and {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.lavender,
|
|
||||||
} or { fg = C.subtext0, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle }, -- Title of floating windows
|
|
||||||
FloatShadow = { bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0, blend = 80 },
|
|
||||||
FloatShadowThrough = {
|
|
||||||
bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.overlay0,
|
|
||||||
blend = 100,
|
|
||||||
},
|
|
||||||
OkMsg = { fg = C.green }, -- success messages on the command line
|
|
||||||
Pmenu = {
|
|
||||||
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
|
|
||||||
fg = C.overlay2,
|
|
||||||
}, -- Popup menu: normal item.
|
|
||||||
PmenuBorder = {
|
|
||||||
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
|
|
||||||
fg = pumsolid and ((O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle) or C.blue,
|
|
||||||
}, -- Popup menu: border
|
|
||||||
PmenuSel = { bg = C.surface0, style = { "bold" } }, -- Popup menu: selected item.
|
|
||||||
PmenuMatch = { fg = C.text, style = { "bold" } }, -- Popup menu: matching text.
|
|
||||||
PmenuMatchSel = { style = { "bold" } }, -- Popup menu: matching text in selected item; is combined with |hl-PmenuMatch| and |hl-PmenuSel|.
|
|
||||||
PmenuSbar = { bg = C.surface0 }, -- Popup menu: scrollbar.
|
|
||||||
PmenuThumb = { bg = C.overlay0 }, -- Popup menu: Thumb of the scrollbar.
|
|
||||||
PmenuKind = {
|
|
||||||
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
|
|
||||||
fg = C.blue,
|
|
||||||
}, -- Popup menu: item kind. Background and style must match `Pmenu`.
|
|
||||||
PmenuKindSel = { bg = C.surface0, fg = C.blue, style = { "bold" } }, -- Popup menu: selected item kind. Background and style must match `PmenuSel`.
|
|
||||||
PmenuExtra = { fg = C.overlay0 }, -- Popup menu: normal item extra text.
|
|
||||||
PmenuExtraSel = {
|
|
||||||
bg = C.surface0,
|
|
||||||
fg = C.overlay0,
|
|
||||||
style = { "bold" },
|
|
||||||
}, -- Popup menu: selected item extra text.
|
|
||||||
ComplMatchIns = { link = "PreInsert" }, -- Matched text of the currently inserted completion.
|
|
||||||
PreInsert = { fg = C.overlay2 }, -- Text inserted when "preinsert" is in 'completeopt'.
|
|
||||||
ComplHint = { fg = C.subtext0 }, -- Virtual text of the currently selected completion.
|
|
||||||
ComplHintMore = { link = "Question" }, -- The additional information of the virtual text.
|
|
||||||
Question = { fg = C.blue }, -- |hit-enter| prompt and yes/no questions
|
|
||||||
QuickFixLine = { bg = U.darken(C.surface1, 0.70, C.base), style = { "bold" } }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
|
|
||||||
Search = { bg = U.darken(C.sky, 0.30, C.base), fg = C.text }, -- Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
|
|
||||||
IncSearch = { bg = U.darken(C.sky, 0.90, C.base), fg = C.mantle }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
|
|
||||||
CurSearch = { bg = C.red, fg = C.mantle }, -- 'cursearch' highlighting: highlights the current search you're on differently
|
|
||||||
SpecialKey = { link = "NonText" }, -- Unprintable characters: text displayed differently from what it really is. But not 'listchars' textspace. |hl-Whitespace|
|
|
||||||
SpellBad = { sp = C.red, style = { "undercurl" } }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
|
|
||||||
SpellCap = { sp = C.yellow, style = { "undercurl" } }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
|
|
||||||
SpellLocal = { sp = C.blue, style = { "undercurl" } }, -- Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
|
|
||||||
SpellRare = { sp = C.green, style = { "undercurl" } }, -- Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
|
|
||||||
StatusLine = { fg = C.text, bg = O.transparent_background and C.none or C.mantle }, -- status line of current window
|
|
||||||
StatusLineNC = { fg = C.surface1, bg = O.transparent_background and C.none or C.mantle }, -- status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window.
|
|
||||||
TabLine = { bg = C.crust, fg = C.overlay0 }, -- tab pages line, not active tab page label
|
|
||||||
TabLineFill = { bg = O.transparent_background and C.none or C.mantle }, -- tab pages line, where there are no labels
|
|
||||||
TabLineSel = { link = "Normal" }, -- tab pages line, active tab page label
|
|
||||||
TermCursor = { fg = C.base, bg = C.rosewater }, -- cursor in a focused terminal
|
|
||||||
TermCursorNC = { fg = C.base, bg = C.overlay2 }, -- cursor in unfocused terminals
|
|
||||||
Title = { fg = C.blue, style = { "bold" } }, -- titles for output from ":set all", ":autocmd" etc.
|
|
||||||
Visual = { bg = C.surface1, style = { "bold" } }, -- Visual mode selection
|
|
||||||
VisualNOS = { bg = C.surface1, style = { "bold" } }, -- Visual mode selection when vim is "Not Owning the Selection".
|
|
||||||
WarningMsg = { fg = C.yellow }, -- warning messages
|
|
||||||
Whitespace = { fg = C.surface1 }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
|
|
||||||
WildMenu = { bg = C.overlay0 }, -- current match in 'wildmenu' completion
|
|
||||||
WinBar = { fg = C.rosewater },
|
|
||||||
WinBarNC = { link = "WinBar" },
|
|
||||||
WinSeparator = { fg = O.transparent_background and C.surface1 or C.crust },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/stevearc/aerial.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
AerialLine = { fg = C.yellow, bg = C.none },
|
|
||||||
AerialGuide = { fg = C.overlay2 },
|
|
||||||
AerialBooleanIcon = { link = "@boolean" },
|
|
||||||
AerialClassIcon = { link = "@type" },
|
|
||||||
AerialConstantIcon = { link = "@constant" },
|
|
||||||
AerialConstructorIcon = { link = "@constructor" },
|
|
||||||
AerialFieldIcon = { link = "@field" },
|
|
||||||
AerialFunctionIcon = { link = "@function" },
|
|
||||||
AerialMethodIcon = { link = "@method" },
|
|
||||||
AerialNamespaceIcon = { link = "@namespace" },
|
|
||||||
AerialNumberIcon = { link = "@number" },
|
|
||||||
AerialOperatorIcon = { link = "@operator" },
|
|
||||||
AerialTypeParameterIcon = { link = "@type" },
|
|
||||||
AerialPropertyIcon = { link = "@property" },
|
|
||||||
AerialStringIcon = { link = "@string" },
|
|
||||||
AerialVariableIcon = { link = "@constant" },
|
|
||||||
AerialEnumMemberIcon = { link = "@field" },
|
|
||||||
AerialEnumIcon = { link = "@type" },
|
|
||||||
AerialFileIcon = { link = "@text.uri" },
|
|
||||||
AerialModuleIcon = { link = "@namespace" },
|
|
||||||
AerialPackageIcon = { link = "@namespace" },
|
|
||||||
AerialInterfaceIcon = { link = "@type" },
|
|
||||||
AerialStructIcon = { link = "@type" },
|
|
||||||
AerialEventIcon = { link = "@type" },
|
|
||||||
AerialArrayIcon = { link = "@constant" },
|
|
||||||
AerialObjectIcon = { link = "@type" },
|
|
||||||
AerialKeyIcon = { link = "@type" },
|
|
||||||
AerialNullIcon = { link = "@type" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/goolord/alpha-nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
AlphaShortcut = { fg = C.green },
|
|
||||||
AlphaHeader = { fg = C.blue },
|
|
||||||
AlphaHeaderLabel = { fg = C.peach },
|
|
||||||
AlphaButtons = { fg = C.lavender },
|
|
||||||
AlphaFooter = { fg = C.yellow, style = { "italic" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/comfysage/artio.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local transparent_background = O.transparent_background
|
|
||||||
|
|
||||||
return {
|
|
||||||
ArtioNormal = {
|
|
||||||
fg = C.text,
|
|
||||||
bg = transparent_background and "NONE" or C.mantle,
|
|
||||||
},
|
|
||||||
ArtioSel = {
|
|
||||||
fg = C.flamingo,
|
|
||||||
bg = C.surface0,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
ArtioMatch = { fg = C.blue },
|
|
||||||
ArtioPointer = { fg = C.flamingo },
|
|
||||||
ArtioPrompt = { fg = C.blue },
|
|
||||||
ArtioMark = { fg = C.yellow },
|
|
||||||
ArtioMarkLine = { link = "Visual" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/yetone/avante.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local rounded = O.integrations.avante.windows_sidebar_header_rounded
|
|
||||||
return {
|
|
||||||
-- titles
|
|
||||||
AvanteTitle = rounded and { bg = C.lavender, fg = C.base } or { fg = C.lavender },
|
|
||||||
AvanteReversedTitle = rounded and { bg = C.none, fg = C.lavender } or { fg = C.lavender },
|
|
||||||
|
|
||||||
AvanteSubtitle = rounded and { bg = C.peach, fg = C.base } or { fg = C.peach },
|
|
||||||
AvanteReversedSubtitle = rounded and { bg = C.none, fg = C.peach } or { fg = C.peach },
|
|
||||||
|
|
||||||
AvanteThirdTitle = rounded and { bg = C.blue, fg = C.base } or { fg = C.blue },
|
|
||||||
AvanteReversedThirdTitle = rounded and { bg = C.none, fg = C.blue } or { fg = C.blue },
|
|
||||||
|
|
||||||
-- hints
|
|
||||||
AvanteInlineHint = { fg = C.overlay0 },
|
|
||||||
AvantePopupHint = { fg = C.overlay0 },
|
|
||||||
AvanteAnnotation = { fg = C.overlay0 },
|
|
||||||
AvanteSuggestion = { fg = C.overlay0 },
|
|
||||||
|
|
||||||
-- conflicts
|
|
||||||
AvanteConflictCurrent = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.green,
|
|
||||||
},
|
|
||||||
AvanteConflictCurrentLabel = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.green,
|
|
||||||
},
|
|
||||||
|
|
||||||
AvanteConflictIncoming = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
AvanteConflictIncomingLabel = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
|
|
||||||
AvanteConflictAncestor = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.teal,
|
|
||||||
},
|
|
||||||
AvanteConflictAncestorLabel = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.teal,
|
|
||||||
},
|
|
||||||
|
|
||||||
AvanteToBeDeleted = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.red,
|
|
||||||
},
|
|
||||||
|
|
||||||
AvanteSidebarWinSeparator = {
|
|
||||||
link = "WinSeparator",
|
|
||||||
},
|
|
||||||
|
|
||||||
AvantePromptInput = {
|
|
||||||
link = "FloatNormal",
|
|
||||||
},
|
|
||||||
|
|
||||||
AvantePromptInputBorder = {
|
|
||||||
link = "FloatBorder",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/romgrk/barbar.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
BufferCurrent = { bg = C.surface1, fg = C.text },
|
|
||||||
BufferCurrentIndex = { bg = C.surface1, fg = C.blue },
|
|
||||||
BufferCurrentMod = { bg = C.surface1, fg = C.yellow },
|
|
||||||
BufferCurrentSign = { bg = C.surface1, fg = C.blue },
|
|
||||||
BufferCurrentTarget = { bg = C.surface1, fg = C.red },
|
|
||||||
BufferVisible = { bg = C.mantle, fg = C.text },
|
|
||||||
BufferVisibleIndex = { bg = C.mantle, fg = C.blue },
|
|
||||||
BufferVisibleMod = { bg = C.mantle, fg = C.yellow },
|
|
||||||
BufferVisibleSign = { bg = C.mantle, fg = C.blue },
|
|
||||||
BufferVisibleTarget = { bg = C.mantle, fg = C.red },
|
|
||||||
BufferInactive = { bg = C.mantle, fg = C.overlay0 },
|
|
||||||
BufferInactiveIndex = { bg = C.mantle, fg = C.overlay0 },
|
|
||||||
BufferInactiveMod = { bg = C.mantle, fg = C.yellow },
|
|
||||||
BufferInactiveSign = { bg = C.mantle, fg = C.blue },
|
|
||||||
BufferInactiveTarget = { bg = C.mantle, fg = C.red },
|
|
||||||
BufferTabpages = { bg = C.mantle, fg = C.none },
|
|
||||||
BufferTabpage = { bg = C.mantle, fg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/DanilaMihailov/beacon.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
Beacon = { bg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/saghen/blink.cmp"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local style = O.integrations.blink_cmp.style
|
|
||||||
|
|
||||||
local highlights = {
|
|
||||||
BlinkCmpLabel = { fg = C.overlay2 },
|
|
||||||
BlinkCmpLabelDeprecated = { fg = C.overlay0, style = { "strikethrough" } },
|
|
||||||
BlinkCmpKind = { fg = C.blue },
|
|
||||||
BlinkCmpMenu = { link = "Pmenu" },
|
|
||||||
BlinkCmpDoc = { link = "NormalFloat" },
|
|
||||||
BlinkCmpLabelMatch = { link = "PmenuMatch" },
|
|
||||||
BlinkCmpMenuSelection = { bg = C.surface1, style = { "bold" } },
|
|
||||||
BlinkCmpScrollBarGutter = { bg = C.surface1 },
|
|
||||||
BlinkCmpScrollBarThumb = { bg = C.overlay0 },
|
|
||||||
BlinkCmpLabelDescription = { link = "PmenuExtra" },
|
|
||||||
BlinkCmpLabelDetail = { link = "PmenuExtra" },
|
|
||||||
BlinkCmpSignatureHelpBorder = { link = "FloatBorder" },
|
|
||||||
|
|
||||||
BlinkCmpKindText = { fg = C.green },
|
|
||||||
BlinkCmpKindMethod = { fg = C.blue },
|
|
||||||
BlinkCmpKindFunction = { fg = C.blue },
|
|
||||||
BlinkCmpKindConstructor = { fg = C.blue },
|
|
||||||
BlinkCmpKindField = { fg = C.green },
|
|
||||||
BlinkCmpKindVariable = { fg = C.flamingo },
|
|
||||||
BlinkCmpKindClass = { fg = C.yellow },
|
|
||||||
BlinkCmpKindInterface = { fg = C.yellow },
|
|
||||||
BlinkCmpKindModule = { fg = C.blue },
|
|
||||||
BlinkCmpKindProperty = { fg = C.blue },
|
|
||||||
BlinkCmpKindUnit = { fg = C.green },
|
|
||||||
BlinkCmpKindValue = { fg = C.peach },
|
|
||||||
BlinkCmpKindEnum = { fg = C.yellow },
|
|
||||||
BlinkCmpKindKeyword = { fg = C.mauve },
|
|
||||||
BlinkCmpKindSnippet = { fg = C.flamingo },
|
|
||||||
BlinkCmpKindColor = { fg = C.red },
|
|
||||||
BlinkCmpKindFile = { fg = C.blue },
|
|
||||||
BlinkCmpKindReference = { fg = C.red },
|
|
||||||
BlinkCmpKindFolder = { fg = C.blue },
|
|
||||||
BlinkCmpKindEnumMember = { fg = C.teal },
|
|
||||||
BlinkCmpKindConstant = { fg = C.peach },
|
|
||||||
BlinkCmpKindStruct = { fg = C.blue },
|
|
||||||
BlinkCmpKindEvent = { fg = C.blue },
|
|
||||||
BlinkCmpKindOperator = { fg = C.sky },
|
|
||||||
BlinkCmpKindTypeParameter = { fg = C.maroon },
|
|
||||||
BlinkCmpKindCopilot = { fg = C.teal },
|
|
||||||
}
|
|
||||||
|
|
||||||
if style == "bordered" then
|
|
||||||
-- uses FloatBorder.fg and Pmenu.bg
|
|
||||||
highlights["BlinkCmpMenuBorder"] = {
|
|
||||||
fg = C.blue,
|
|
||||||
bg = (O.transparent_background and vim.o.pumblend == 0) and C.none or C.mantle,
|
|
||||||
}
|
|
||||||
highlights["BlinkCmpDocBorder"] = { link = "FloatBorder" }
|
|
||||||
end
|
|
||||||
|
|
||||||
return highlights
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/saghen/blink.indent"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
BlinkIndent = { fg = C.surface0 },
|
|
||||||
BlinkIndentScope = { fg = C.overlay2 },
|
|
||||||
|
|
||||||
BlinkIndentRed = { fg = C.red },
|
|
||||||
BlinkIndentOrange = { fg = C.peach },
|
|
||||||
BlinkIndentYellow = { fg = C.yellow },
|
|
||||||
BlinkIndentGreen = { fg = C.green },
|
|
||||||
BlinkIndentCyan = { fg = C.sky },
|
|
||||||
BlinkIndentBlue = { fg = C.blue },
|
|
||||||
BlinkIndentViolet = { fg = C.mauve },
|
|
||||||
|
|
||||||
BlinkIndentRedUnderline = { sp = C.red, style = { "underline" } },
|
|
||||||
BlinkIndentOrangeUnderline = { sp = C.peach, style = { "underline" } },
|
|
||||||
BlinkIndentYellowUnderline = { sp = C.yellow, style = { "underline" } },
|
|
||||||
BlinkIndentGreenUnderline = { sp = C.green, style = { "underline" } },
|
|
||||||
BlinkIndentCyanUnderline = { sp = C.sky, style = { "underline" } },
|
|
||||||
BlinkIndentBlueUnderline = { sp = C.blue, style = { "underline" } },
|
|
||||||
BlinkIndentVioletUnderline = { sp = C.mauve, style = { "underline" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/saghen/blink.pairs"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
BlinkPairsRed = { fg = C.red },
|
|
||||||
BlinkPairsYellow = { fg = C.yellow },
|
|
||||||
BlinkPairsBlue = { fg = C.blue },
|
|
||||||
BlinkPairsOrange = { fg = C.peach },
|
|
||||||
BlinkPairsGreen = { fg = C.green },
|
|
||||||
BlinkPairsPurple = { fg = C.mauve },
|
|
||||||
BlinkPairsCyan = { fg = C.teal },
|
|
||||||
BlinkPairsUnmatched = { fg = C.red },
|
|
||||||
BlinkPairsMatchParen = { link = "MatchParen" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/francescarpi/buffon.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
BuffonUnloadedBuffer = { fg = C.surface1 },
|
|
||||||
BuffonShortcut = { fg = C.peach },
|
|
||||||
BuffonLineActive = { fg = C.sapphire },
|
|
||||||
BuffonUnsavedIndicator = { fg = C.red },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/hrsh7th/nvim-cmp"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
CmpItemAbbr = { fg = C.overlay2 },
|
|
||||||
CmpItemAbbrDeprecated = { fg = C.overlay0, style = { "strikethrough" } },
|
|
||||||
CmpItemKind = { fg = C.blue },
|
|
||||||
CmpItemMenu = { fg = C.text },
|
|
||||||
CmpItemAbbrMatch = { fg = C.text, style = { "bold" } },
|
|
||||||
CmpItemAbbrMatchFuzzy = { fg = C.text, style = { "bold" } },
|
|
||||||
|
|
||||||
-- kind support
|
|
||||||
CmpItemKindSnippet = { fg = C.mauve },
|
|
||||||
CmpItemKindKeyword = { fg = C.red },
|
|
||||||
CmpItemKindText = { fg = C.teal },
|
|
||||||
CmpItemKindMethod = { fg = C.blue },
|
|
||||||
CmpItemKindConstructor = { fg = C.blue },
|
|
||||||
CmpItemKindFunction = { fg = C.blue },
|
|
||||||
CmpItemKindFolder = { fg = C.blue },
|
|
||||||
CmpItemKindModule = { fg = C.blue },
|
|
||||||
CmpItemKindConstant = { fg = C.peach },
|
|
||||||
CmpItemKindField = { fg = C.green },
|
|
||||||
CmpItemKindProperty = { fg = C.green },
|
|
||||||
CmpItemKindEnum = { fg = C.green },
|
|
||||||
CmpItemKindUnit = { fg = C.green },
|
|
||||||
CmpItemKindClass = { fg = C.yellow },
|
|
||||||
CmpItemKindVariable = { fg = C.flamingo },
|
|
||||||
CmpItemKindFile = { fg = C.blue },
|
|
||||||
CmpItemKindInterface = { fg = C.yellow },
|
|
||||||
CmpItemKindColor = { fg = C.red },
|
|
||||||
CmpItemKindReference = { fg = C.red },
|
|
||||||
CmpItemKindEnumMember = { fg = C.red },
|
|
||||||
CmpItemKindStruct = { fg = C.blue },
|
|
||||||
CmpItemKindValue = { fg = C.peach },
|
|
||||||
CmpItemKindEvent = { fg = C.blue },
|
|
||||||
CmpItemKindOperator = { fg = C.blue },
|
|
||||||
CmpItemKindTypeParameter = { fg = C.blue },
|
|
||||||
CmpItemKindCopilot = { fg = C.teal },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/neoclide/coc.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
-- These groups are for the coc.nvim, see ":h coc-highlights"
|
|
||||||
-- Custom popup menu since coc v0.0.82
|
|
||||||
CocMenuSel = { link = "PmenuSel" },
|
|
||||||
CocPumSearch = { fg = C.sky, style = { "bold" } },
|
|
||||||
|
|
||||||
-- Inlay hints
|
|
||||||
CocInlayHint = {
|
|
||||||
-- fg of `Comment`
|
|
||||||
fg = C.overlay0,
|
|
||||||
style = { "italic" },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-zh/colorful-winsep.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local color = U.select_color(O.integrations.colorful_winsep.color, "red")
|
|
||||||
|
|
||||||
return {
|
|
||||||
ColorfulWinSep = {
|
|
||||||
fg = color,
|
|
||||||
bg = O.transparent_background and C.none or C.base,
|
|
||||||
},
|
|
||||||
NvimSeparator = { link = "ColorfulWinSep" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/github/copilot.vim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
CopilotSuggestion = { fg = C.overlay0 },
|
|
||||||
CopilotAnnotation = { fg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/kristijanhusak/vim-dadbod-ui"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NotificationInfo = { fg = C.blue, bg = C.mantle },
|
|
||||||
NotificationWarning = { fg = C.yellow, bg = C.mantle },
|
|
||||||
NotificationError = { fg = C.red, bg = C.mantle },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/mfussenegger/nvim-dap"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
DapBreakpoint = { fg = C.red },
|
|
||||||
DapBreakpointCondition = { fg = C.yellow },
|
|
||||||
DapBreakpointRejected = { fg = C.mauve },
|
|
||||||
DapLogPoint = { fg = C.sky },
|
|
||||||
DapStopped = { fg = C.maroon },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/rcarriga/nvim-dap-ui"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
DapUIScope = { fg = C.sky },
|
|
||||||
DapUIType = { fg = C.mauve },
|
|
||||||
DapUIValue = { fg = C.sky },
|
|
||||||
DapUIVariable = { fg = C.text },
|
|
||||||
DapUIModifiedValue = { fg = C.peach },
|
|
||||||
DapUIDecoration = { fg = C.sky },
|
|
||||||
DapUIThread = { fg = C.green },
|
|
||||||
DapUIStoppedThread = { fg = C.sky },
|
|
||||||
DapUISource = { fg = C.lavender },
|
|
||||||
DapUILineNumber = { fg = C.sky },
|
|
||||||
DapUIFloatBorder = { link = "FloatBorder" },
|
|
||||||
|
|
||||||
DapUIWatchesEmpty = { fg = C.maroon },
|
|
||||||
DapUIWatchesValue = { fg = C.green },
|
|
||||||
DapUIWatchesError = { fg = C.maroon },
|
|
||||||
|
|
||||||
DapUIBreakpointsPath = { fg = C.sky },
|
|
||||||
DapUIBreakpointsInfo = { fg = C.green },
|
|
||||||
DapUIBreakpointsCurrentLine = { fg = C.green, style = { "bold" } },
|
|
||||||
DapUIBreakpointsDisabledLine = { fg = C.surface2 },
|
|
||||||
|
|
||||||
DapUIStepOver = { fg = C.blue },
|
|
||||||
DapUIStepOverNC = { link = "DapUIStepOver" },
|
|
||||||
DapUIStepInto = { fg = C.blue },
|
|
||||||
DapUIStepIntoNC = { link = "DapUIStepInto" },
|
|
||||||
DapUIStepBack = { fg = C.blue },
|
|
||||||
DapUIStepBackNC = { link = "DapUIStepBack" },
|
|
||||||
DapUIStepOut = { fg = C.blue },
|
|
||||||
DapUIStepOutNC = { link = "DapUIStepOut" },
|
|
||||||
DapUIStop = { fg = C.red },
|
|
||||||
DapUIStopNC = { link = "DapUIStop" },
|
|
||||||
DapUIPlayPause = { fg = C.green },
|
|
||||||
DapUIPlayPauseNC = { link = "DapUIPlayPause" },
|
|
||||||
DapUIRestart = { fg = C.green },
|
|
||||||
DapUIRestartNC = { link = "DapUIRestart" },
|
|
||||||
DapUIUnavailable = { fg = C.surface1 },
|
|
||||||
DapUIUnavailableNC = { link = "DapUIUnavailable" },
|
|
||||||
|
|
||||||
DapUIWinSelect = { fg = C.peach },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvimdev/dashboard-nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
DashboardShortCut = { fg = C.pink },
|
|
||||||
DashboardHeader = { fg = C.blue },
|
|
||||||
DashboardCenter = { fg = C.green },
|
|
||||||
DashboardFooter = { fg = C.yellow, style = { "italic" } },
|
|
||||||
DashboardMruTitle = { fg = C.sky },
|
|
||||||
DashboardProjectTitle = { fg = C.sky },
|
|
||||||
DashboardFiles = { fg = C.lavender },
|
|
||||||
DashboardKey = { fg = C.peach },
|
|
||||||
DashboardDesc = { fg = C.blue },
|
|
||||||
DashboardIcon = { fg = C.pink, bold = true },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/sindrets/diffview.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
DiffviewDim1 = { link = "Comment" },
|
|
||||||
DiffviewPrimary = { fg = C.blue },
|
|
||||||
DiffviewSecondary = { fg = C.green },
|
|
||||||
DiffviewNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
|
|
||||||
DiffviewWinSeparator = {
|
|
||||||
fg = O.transparent_background and C.surface1 or C.base,
|
|
||||||
bg = O.transparent_background and C.none or C.base,
|
|
||||||
},
|
|
||||||
DiffviewFilePanelTitle = { fg = C.blue, style = { "bold" } },
|
|
||||||
DiffviewFilePanelCounter = { fg = C.text },
|
|
||||||
DiffviewFilePanelRootPath = { fg = C.lavender, style = { "bold" } },
|
|
||||||
DiffviewFilePanelFileName = { fg = C.text },
|
|
||||||
DiffviewFilePanelSelected = { fg = C.yellow },
|
|
||||||
DiffviewFilePanelPath = { link = "Comment" },
|
|
||||||
DiffviewFilePanelInsertions = { fg = C.green },
|
|
||||||
DiffviewFilePanelDeletions = { fg = C.red },
|
|
||||||
DiffviewFilePanelConflicts = { fg = C.yellow },
|
|
||||||
DiffviewFolderName = { fg = C.blue, style = { "bold" } },
|
|
||||||
DiffviewFolderSign = { fg = C.blue },
|
|
||||||
DiffviewHash = { fg = C.flamingo },
|
|
||||||
DiffviewReference = { fg = C.blue, style = { "bold" } },
|
|
||||||
DiffviewReflogSelector = { fg = C.pink },
|
|
||||||
DiffviewStatusAdded = { fg = C.green },
|
|
||||||
DiffviewStatusUntracked = { fg = C.green },
|
|
||||||
DiffviewStatusModified = { fg = C.yellow },
|
|
||||||
DiffviewStatusRenamed = { fg = C.yellow },
|
|
||||||
DiffviewStatusCopied = { fg = C.yellow },
|
|
||||||
DiffviewStatusTypeChange = { fg = C.yellow },
|
|
||||||
DiffviewStatusUnmerged = { fg = C.yellow },
|
|
||||||
DiffviewStatusUnknown = { fg = C.red },
|
|
||||||
DiffviewStatusDeleted = { fg = C.red },
|
|
||||||
DiffviewStatusBroken = { fg = C.red },
|
|
||||||
DiffviewStatusIgnored = { fg = C.overlay0 },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/Bekaboo/dropbar.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local color = O.integrations.dropbar.color_mode
|
|
||||||
return {
|
|
||||||
DropBarMenuHoverEntry = { link = "Visual" },
|
|
||||||
DropBarMenuHoverIcon = { reverse = true },
|
|
||||||
DropBarMenuHoverSymbol = { bold = true },
|
|
||||||
DropBarIconUISeparator = { fg = C.overlay1 },
|
|
||||||
DropBarKindArray = color and { link = "DropBarIconKindArray" } or { fg = C.text },
|
|
||||||
DropBarKindBoolean = color and { link = "DropBarIconKindBoolean" } or { fg = C.text },
|
|
||||||
DropBarKindBreakStatement = color and { link = "DropBarIconKindBreakStatement" } or { fg = C.text },
|
|
||||||
DropBarKindCall = color and { link = "DropBarIconKindCall" } or { fg = C.text },
|
|
||||||
DropBarKindCaseStatement = color and { link = "DropBarIconKindCaseStatement" } or { fg = C.text },
|
|
||||||
DropBarKindClass = color and { link = "DropBarIconKindClass" } or { fg = C.text },
|
|
||||||
DropBarKindConstant = color and { link = "DropBarIconKindConstant" } or { fg = C.text },
|
|
||||||
DropBarKindConstructor = color and { link = "DropBarIconKindConstructor" } or { fg = C.text },
|
|
||||||
DropBarKindContinueStatement = color and { link = "DropBarIconKindContinueStatement" } or { fg = C.text },
|
|
||||||
DropBarKindDeclaration = color and { link = "DropBarIconKindDeclaration" } or { fg = C.text },
|
|
||||||
DropBarKindDelete = color and { link = "DropBarIconKindDelete" } or { fg = C.text },
|
|
||||||
DropBarKindDoStatement = color and { link = "DropBarIconKindDoStatement" } or { fg = C.text },
|
|
||||||
DropBarKindElseStatement = color and { link = "DropBarIconKindElseStatement" } or { fg = C.text },
|
|
||||||
DropBarKindEnum = color and { link = "DropBarIconKindEnum" } or { fg = C.text },
|
|
||||||
DropBarKindEnumMember = color and { link = "DropBarIconKindEnumMember" } or { fg = C.text },
|
|
||||||
DropBarKindEvent = color and { link = "DropBarIconKindEvent" } or { fg = C.text },
|
|
||||||
DropBarKindField = color and { link = "DropBarIconKindField" } or { fg = C.text },
|
|
||||||
DropBarKindFile = color and { link = "DropBarIconKindFile" } or { fg = C.text },
|
|
||||||
DropBarKindFolder = color and { link = "DropBarIconKindFolder" } or { fg = C.text },
|
|
||||||
DropBarKindForStatement = color and { link = "DropBarIconKindForStatement" } or { fg = C.text },
|
|
||||||
DropBarKindFunction = color and { link = "DropBarIconKindFunction" } or { fg = C.text },
|
|
||||||
DropBarKindIdentifier = color and { link = "DropBarIconKindIdentifier" } or { fg = C.text },
|
|
||||||
DropBarKindIfStatement = color and { link = "DropBarIconKindIfStatement" } or { fg = C.text },
|
|
||||||
DropBarKindInterface = color and { link = "DropBarIconKindInterface" } or { fg = C.text },
|
|
||||||
DropBarKindKeyword = color and { link = "DropBarIconKindKeyword" } or { fg = C.text },
|
|
||||||
DropBarKindList = color and { link = "DropBarIconKindList" } or { fg = C.text },
|
|
||||||
DropBarKindMacro = color and { link = "DropBarIconKindMacro" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH1 = color and { link = "DropBarIconKindMarkdownH1" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH2 = color and { link = "DropBarIconKindMarkdownH2" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH3 = color and { link = "DropBarIconKindMarkdownH3" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH4 = color and { link = "DropBarIconKindMarkdownH4" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH5 = color and { link = "DropBarIconKindMarkdownH5" } or { fg = C.text },
|
|
||||||
DropBarKindMarkdownH6 = color and { link = "DropBarIconKindMarkdownH6" } or { fg = C.text },
|
|
||||||
DropBarKindMethod = color and { link = "DropBarIconKindMethod" } or { fg = C.text },
|
|
||||||
DropBarKindModule = color and { link = "DropBarIconKindModule" } or { fg = C.text },
|
|
||||||
DropBarKindNamespace = color and { link = "DropBarIconKindNamespace" } or { fg = C.text },
|
|
||||||
DropBarKindNull = color and { link = "DropBarIconKindNull" } or { fg = C.text },
|
|
||||||
DropBarKindNumber = color and { link = "DropBarIconKindNumber" } or { fg = C.text },
|
|
||||||
DropBarKindObject = color and { link = "DropBarIconKindObject" } or { fg = C.text },
|
|
||||||
DropBarKindOperator = color and { link = "DropBarIconKindOperator" } or { fg = C.text },
|
|
||||||
DropBarKindPackage = color and { link = "DropBarIconKindPackage" } or { fg = C.text },
|
|
||||||
DropBarKindProperty = color and { link = "DropBarIconKindProperty" } or { fg = C.text },
|
|
||||||
DropBarKindReference = color and { link = "DropBarIconKindReference" } or { fg = C.text },
|
|
||||||
DropBarKindRepeat = color and { link = "DropBarIconKindRepeat" } or { fg = C.text },
|
|
||||||
DropBarKindScope = color and { link = "DropBarIconKindScope" } or { fg = C.text },
|
|
||||||
DropBarKindSpecifier = color and { link = "DropBarIconKindSpecifier" } or { fg = C.text },
|
|
||||||
DropBarKindStatement = color and { link = "DropBarIconKindStatement" } or { fg = C.text },
|
|
||||||
DropBarKindString = color and { link = "DropBarIconKindString" } or { fg = C.text },
|
|
||||||
DropBarKindStruct = color and { link = "DropBarIconKindStruct" } or { fg = C.text },
|
|
||||||
DropBarKindSwitchStatement = color and { link = "DropBarIconKindSwitchStatement" } or { fg = C.text },
|
|
||||||
DropBarKindType = color and { link = "DropBarIconKindType" } or { fg = C.text },
|
|
||||||
DropBarKindTypeParameter = color and { link = "DropBarIconKindTypeParameter" } or { fg = C.text },
|
|
||||||
DropBarKindUnit = color and { link = "DropBarIconKindUnit" } or { fg = C.text },
|
|
||||||
DropBarKindValue = color and { link = "DropBarIconKindValue" } or { fg = C.text },
|
|
||||||
DropBarKindVariable = color and { link = "DropBarIconKindVariable" } or { fg = C.text },
|
|
||||||
DropBarKindWhileStatement = color and { link = "DropBarIconKindWhileStatement" } or { fg = C.text },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/lambdalisue/vim-fern"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
FernBranchText = { fg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/j-hui/fidget.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
FidgetTask = {
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
fg = C.text,
|
|
||||||
},
|
|
||||||
FidgetTitle = { fg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/folke/flash.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local bg = O.transparent_background and C.none or C.base
|
|
||||||
return {
|
|
||||||
FlashBackdrop = { fg = C.overlay0 },
|
|
||||||
FlashLabel = { fg = C.green, bg = bg, style = { "bold" } },
|
|
||||||
FlashMatch = { fg = C.lavender, bg = bg },
|
|
||||||
FlashCurrent = { fg = C.peach, bg = bg },
|
|
||||||
FlashPrompt = { link = "NormalFloat" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/ibhagwan/fzf-lua"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
FzfLuaNormal = { link = "NormalFloat" },
|
|
||||||
FzfLuaBorder = { link = "FloatBorder" },
|
|
||||||
FzfLuaTitle = { link = "FloatTitle" },
|
|
||||||
FzfLuaHeaderBind = { fg = C.yellow },
|
|
||||||
FzfLuaHeaderText = { fg = C.peach },
|
|
||||||
FzfLuaDirPart = { link = "NonText" },
|
|
||||||
FzfLuaFzfMatch = { fg = C.blue },
|
|
||||||
FzfLuaFzfPrompt = { fg = C.blue },
|
|
||||||
FzfLuaPathColNr = { fg = C.blue },
|
|
||||||
FzfLuaPathLineNr = { fg = C.green },
|
|
||||||
FzfLuaBufName = { fg = C.mauve },
|
|
||||||
FzfLuaBufNr = { fg = C.yellow },
|
|
||||||
FzfLuaBufFlagCur = { fg = C.peach },
|
|
||||||
FzfLuaBufFlagAlt = { fg = C.blue },
|
|
||||||
FzfLuaTabTitle = { fg = C.sky },
|
|
||||||
FzfLuaTabMarker = { fg = C.yellow },
|
|
||||||
FzfLuaLiveSym = { fg = C.peach },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/isakbm/gitgraph.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
GitGraphHash = { fg = C.mauve },
|
|
||||||
GitGraphTimestamp = { fg = C.lavender },
|
|
||||||
GitGraphAuthor = { fg = C.flamingo },
|
|
||||||
GitGraphBranchName = { fg = C.teal },
|
|
||||||
GitGraphBranchTag = { fg = C.pink },
|
|
||||||
GitGraphBranchMsg = { fg = C.overlay2 },
|
|
||||||
GitGraphBranch1 = { fg = C.yellow },
|
|
||||||
GitGraphBranch2 = { fg = C.pink },
|
|
||||||
GitGraphBranch3 = { fg = C.sky },
|
|
||||||
GitGraphBranch4 = { fg = C.green },
|
|
||||||
GitGraphBranch5 = { fg = C.red },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/airblade/vim-gitgutter"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
GitGutterAdd = { fg = C.green },
|
|
||||||
GitGutterChange = { fg = C.yellow },
|
|
||||||
GitGutterDelete = { fg = C.red },
|
|
||||||
GitGutterAddLineNr = { fg = C.green },
|
|
||||||
GitGutterChangeLineNr = { fg = C.yellow },
|
|
||||||
GitGutterDeleteLineNr = { fg = C.red },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/lewis6991/gitsigns.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local transparent = U.nonnil(O.integrations.gitsigns.transparent, O.transparent_background)
|
|
||||||
|
|
||||||
if transparent then
|
|
||||||
return {
|
|
||||||
GitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|
|
|
||||||
GitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|
|
|
||||||
GitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|
|
|
||||||
|
|
||||||
GitSignsCurrentLineBlame = { fg = C.surface1 },
|
|
||||||
|
|
||||||
GitSignsAddPreview = { fg = C.green, bg = C.none },
|
|
||||||
GitSignsDeletePreview = { fg = C.red, bg = C.none },
|
|
||||||
|
|
||||||
-- for word diff in previews
|
|
||||||
GitSignsAddInline = { fg = C.base, bg = C.green, style = { "bold" } },
|
|
||||||
GitSignsDeleteInline = { fg = C.base, bg = C.red, style = { "bold" } },
|
|
||||||
GitSignsChangeInline = { fg = C.base, bg = C.blue, style = { "bold" } },
|
|
||||||
|
|
||||||
GitSignsDeleteVirtLn = { bg = C.none, fg = C.red },
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return {
|
|
||||||
GitSignsAdd = { fg = C.green }, -- diff mode: Added line |diff.txt|
|
|
||||||
GitSignsChange = { fg = C.yellow }, -- diff mode: Changed line |diff.txt|
|
|
||||||
GitSignsDelete = { fg = C.red }, -- diff mode: Deleted line |diff.txt|
|
|
||||||
|
|
||||||
GitSignsCurrentLineBlame = { fg = C.surface1 },
|
|
||||||
|
|
||||||
GitSignsAddPreview = { link = "DiffAdd" },
|
|
||||||
GitSignsDeletePreview = { link = "DiffDelete" },
|
|
||||||
|
|
||||||
GitSignsAddInline = { bg = U.darken(C.green, 0.36, C.base) },
|
|
||||||
GitSignsChangeInline = { bg = U.darken(C.blue, 0.14, C.base) },
|
|
||||||
GitSignsDeleteInline = { bg = U.darken(C.red, 0.36, C.base) },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/MagicDuck/grug-far.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
GrugFarResultsMatch = { link = "IncSearch" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/ThePrimeagen/harpoon"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
HarpoonWindow = { fg = C.text, bg = O.transparent_background and C.none or C.base },
|
|
||||||
HarpoonBorder = { fg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/lukas-reineke/headlines.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
Dash = { fg = C.overlay2, style = { "bold" } },
|
|
||||||
Quote = { link = "@markup.strong" },
|
|
||||||
CodeBlock = { bg = C.mantle },
|
|
||||||
Headline = { link = "Headline1" },
|
|
||||||
Headline1 = { bg = C.surface0, fg = C.red },
|
|
||||||
Headline2 = { bg = C.surface0, fg = C.peach },
|
|
||||||
Headline3 = { bg = C.surface0, fg = C.yellow },
|
|
||||||
Headline4 = { bg = C.surface0, fg = C.green },
|
|
||||||
Headline5 = { bg = C.surface0, fg = C.sapphire },
|
|
||||||
Headline6 = { bg = C.surface0, fg = C.lavender },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/hadronized/hop.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local bg = O.transparent_background and C.none or C.base
|
|
||||||
return {
|
|
||||||
HopNextKey = { bg = bg, fg = C.peach, style = { "bold", "underline" } },
|
|
||||||
HopNextKey1 = { bg = bg, fg = C.blue, style = { "bold" } },
|
|
||||||
HopNextKey2 = { bg = bg, fg = C.teal, style = { "bold", "italic" } },
|
|
||||||
HopUnmatched = { bg = bg, fg = C.overlay0 },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/RRethy/vim-illuminate"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
IlluminatedWordText = { bg = U.darken(C.surface1, 0.7, C.base) },
|
|
||||||
IlluminatedWordRead = { bg = U.darken(C.surface1, 0.7, C.base) },
|
|
||||||
IlluminatedWordWrite = {
|
|
||||||
bg = U.darken(C.surface1, 0.7, C.base),
|
|
||||||
style = O.integrations.illuminate.lsp and { "standout" } or {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/lukas-reineke/indent-blankline.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local scope_color = U.select_color(O.integrations.indent_blankline.scope_color, "overlay2")
|
|
||||||
|
|
||||||
local hi = {
|
|
||||||
IblIndent = { fg = C.surface0 },
|
|
||||||
IblScope = { fg = scope_color },
|
|
||||||
}
|
|
||||||
|
|
||||||
if O.integrations.indent_blankline.colored_indent_levels then
|
|
||||||
hi["RainbowRed"] = { blend = 0, fg = C.red }
|
|
||||||
hi["RainbowYellow"] = { blend = 0, fg = C.yellow }
|
|
||||||
hi["RainbowBlue"] = { blend = 0, fg = C.blue }
|
|
||||||
hi["RainbowOrange"] = { blend = 0, fg = C.peach }
|
|
||||||
hi["RainbowGreen"] = { blend = 0, fg = C.green }
|
|
||||||
hi["RainbowViolet"] = { blend = 0, fg = C.mauve }
|
|
||||||
hi["RainbowCyan"] = { blend = 0, fg = C.teal }
|
|
||||||
end
|
|
||||||
|
|
||||||
return hi
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/ggandor/leap.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
LeapMatch = {
|
|
||||||
fg = O.transparent_background and C.pink or U.vary_color({ latte = "#222222" }, U.brighten(C.green, 0.3)),
|
|
||||||
style = { "underline", "nocombine", O.transparent_background and "bold" or nil },
|
|
||||||
},
|
|
||||||
LeapLabel = {
|
|
||||||
fg = O.transparent_background and C.green or U.vary_color({ latte = "#222222" }, C.base),
|
|
||||||
bg = O.transparent_background and C.none
|
|
||||||
or U.vary_color({ latte = U.brighten(C.red, 0.4) }, U.brighten(C.green, 0.3)),
|
|
||||||
style = { "nocombine", O.transparent_background and "bold" or nil },
|
|
||||||
},
|
|
||||||
LeapBackdrop = { fg = O.transparent_background and C.overlay0 or C.none },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/ggandor/lightspeed.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
LightspeedLabel = { fg = C.red, style = { "bold", "underline" } },
|
|
||||||
LightspeedLabelDistant = {
|
|
||||||
fg = U.vary_color({ latte = C.blue }, C.sky),
|
|
||||||
style = { "bold", "underline" },
|
|
||||||
},
|
|
||||||
LightspeedShortcut = {
|
|
||||||
fg = "#ffffff",
|
|
||||||
bg = U.increase_saturation(C.red, 0.7),
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
LightspeedMaskedChar = {
|
|
||||||
fg = U.vary_color({ latte = U.lighten(C.pink, 0.7, C.text) }, U.darken(C.pink, 0.7, C.base)),
|
|
||||||
},
|
|
||||||
LightspeedUnlabeledMatch = { fg = C.text, style = { "bold" } },
|
|
||||||
LightspeedGreyWash = { link = "Comment" },
|
|
||||||
LightspeedUniqueChar = { link = "LightspeedUnlabeledMatch" },
|
|
||||||
LightspeedOneCharMatch = { link = "LightspeedShortcut" },
|
|
||||||
LightspeedPendingOpArea = { link = "IncSearch" },
|
|
||||||
LightspeedCursor = { link = "Cursor" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/tamago324/lir.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return vim.tbl_deep_extend("force", {}, {
|
|
||||||
LirFloatNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
|
|
||||||
LirFloatBorder = {
|
|
||||||
fg = O.transparent_background and C.surface1 or C.base,
|
|
||||||
bg = O.transparent_background and C.none or C.base,
|
|
||||||
},
|
|
||||||
LirFloatCursorLine = { link = "CursorLine" },
|
|
||||||
LirDir = { fg = C.blue },
|
|
||||||
LirSymLink = { fg = C.pink },
|
|
||||||
LirEmptyDirText = { fg = C.blue },
|
|
||||||
LirFloatCurdirWindowNormal = { fg = C.text },
|
|
||||||
LirFloatCurdirWindowDirName = { fg = C.lavender, style = { "bold" } },
|
|
||||||
}, ((O.integrations.lir and O.integrations.lir.git_status) and {
|
|
||||||
LirGitStatusBracket = { fg = C.overlay0 },
|
|
||||||
LirGitStatusIndex = { fg = C.blue },
|
|
||||||
LirGitStatusWorktree = { fg = C.yellow },
|
|
||||||
LirGitStatusUnmerged = { fg = C.red },
|
|
||||||
LirGitStatusUntracked = { fg = C.subtext0 },
|
|
||||||
LirGitStatusIgnored = { fg = C.subtext0 },
|
|
||||||
}) or {})
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,134 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvimdev/lspsaga.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
SagaTitle = { fg = C.teal, style = { "bold" } },
|
|
||||||
SagaBorder = { fg = C.blue, bg = C.none },
|
|
||||||
SagaNormal = { bg = O.transparent_background and C.none or C.base },
|
|
||||||
SagaToggle = { fg = C.green },
|
|
||||||
SagaCount = { fg = C.overlay1 },
|
|
||||||
SagaBeacon = { bg = U.darken(C.surface0, 0.8, C.crust) },
|
|
||||||
SagaVirtLine = { fg = C.surface2 },
|
|
||||||
SagaSpinner = { fg = C.mauve, style = { "bold" } },
|
|
||||||
SagaSpinnerTitle = { fg = C.mauve, style = { "bold" } },
|
|
||||||
SagaText = { fg = C.text },
|
|
||||||
SagaSelect = { fg = C.blue, style = { "bold" } },
|
|
||||||
SagaSearch = { link = "Search" },
|
|
||||||
SagaFinderFname = { fg = C.subtext0, style = { "bold" } },
|
|
||||||
ActionFix = { fg = C.pink },
|
|
||||||
ActionPreviewTitle = { fg = C.mauve, bg = O.transparent_background and C.none or C.base },
|
|
||||||
CodeActionText = { fg = C.green },
|
|
||||||
CodeActionNumber = { fg = C.pink },
|
|
||||||
SagaImpIcon = { fg = C.pink },
|
|
||||||
SagaLightBulb = { link = "DiagnosticSignHint" },
|
|
||||||
RenameNormal = { fg = C.text },
|
|
||||||
RenameMatch = { link = "Search" },
|
|
||||||
DiagnosticText = { fg = C.text },
|
|
||||||
SagaWinbarSep = { fg = C.flamingo },
|
|
||||||
SagaDetail = { link = "Comment" },
|
|
||||||
SagaFileName = { fg = C.overlay2, style = { "bold" } },
|
|
||||||
SagaFolderName = { fg = C.overlay2, style = { "bold" } },
|
|
||||||
SagaInCurrent = { fg = C.peach },
|
|
||||||
|
|
||||||
-- Lspkind icons support
|
|
||||||
LspKindClass = { fg = C.yellow },
|
|
||||||
LspKindConstant = { fg = C.peach },
|
|
||||||
LspKindConstructor = { fg = C.sapphire },
|
|
||||||
LspKindEnum = { fg = C.yellow },
|
|
||||||
LspKindEnumMember = { fg = C.teal },
|
|
||||||
LspKindEvent = { fg = C.yellow },
|
|
||||||
LspKindField = { fg = C.teal },
|
|
||||||
LspKindFile = { fg = C.rosewater },
|
|
||||||
LspKindFunction = { fg = C.blue },
|
|
||||||
LspKindInterface = { fg = C.yellow },
|
|
||||||
LspKindKey = { fg = C.red },
|
|
||||||
LspKindMethod = { fg = C.blue },
|
|
||||||
LspKindModule = { fg = C.blue },
|
|
||||||
LspKindNamespace = { fg = C.blue },
|
|
||||||
LspKindNumber = { fg = C.peach },
|
|
||||||
LspKindOperator = { fg = C.sky },
|
|
||||||
LspKindPackage = { fg = C.blue },
|
|
||||||
LspKindProperty = { fg = C.teal },
|
|
||||||
LspKindStruct = { fg = C.yellow },
|
|
||||||
LspKindTypeParameter = { fg = C.blue },
|
|
||||||
LspKindVariable = { fg = C.peach },
|
|
||||||
LspKindArray = { fg = C.peach },
|
|
||||||
LspKindBoolean = { fg = C.peach },
|
|
||||||
LspKindNull = { fg = C.yellow },
|
|
||||||
LspKindObject = { fg = C.yellow },
|
|
||||||
LspKindString = { fg = C.green },
|
|
||||||
-- ccls-specific icons.
|
|
||||||
LspKindTypeAlias = { fg = C.green },
|
|
||||||
LspKindParameter = { fg = C.blue },
|
|
||||||
LspKindStaticMethod = { fg = C.peach },
|
|
||||||
-- Microsoft-specific icons.
|
|
||||||
LspKindText = { fg = C.green },
|
|
||||||
LspKindSnippet = { fg = C.mauve },
|
|
||||||
LspKindFolder = { fg = C.blue },
|
|
||||||
LspKindUnit = { fg = C.green },
|
|
||||||
LspKindValue = { fg = C.peach },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
function M.custom_kind()
|
|
||||||
return {
|
|
||||||
File = { " ", "LspKindFile" },
|
|
||||||
Module = { " ", "LspKindModule" },
|
|
||||||
Namespace = { " ", "LspKindNamespace" },
|
|
||||||
Package = { " ", "LspKindPackage" },
|
|
||||||
Class = { " ", "LspKindClass" },
|
|
||||||
Method = { " ", "LspKindMethod" },
|
|
||||||
Property = { " ", "LspKindProperty" },
|
|
||||||
Field = { " ", "LspKindField" },
|
|
||||||
Constructor = { " ", "LspKindConstructor" },
|
|
||||||
Enum = { "", "LspKindEnum" },
|
|
||||||
Interface = { " ", "LspKindInterface" },
|
|
||||||
Function = { " ", "LspKindFunction" },
|
|
||||||
Variable = { " ", "LspKindVariable" },
|
|
||||||
Constant = { " ", "LspKindConstant" },
|
|
||||||
String = { " ", "LspKindString" },
|
|
||||||
Number = { " ", "LspKindNumber" },
|
|
||||||
Boolean = { " ", "LspKindBoolean" },
|
|
||||||
Array = { " ", "LspKindArray" },
|
|
||||||
Object = { " ", "LspKindObject" },
|
|
||||||
Key = { " ", "LspKindKey" },
|
|
||||||
Null = { " ", "LspKindNull" },
|
|
||||||
EnumMember = { " ", "LspKindEnumMember" },
|
|
||||||
Struct = { " ", "LspKindStruct" },
|
|
||||||
Event = { " ", "LspKindEvent" },
|
|
||||||
Operator = { " ", "LspKindOperator" },
|
|
||||||
TypeParameter = { " ", "LspKindTypeParameter" },
|
|
||||||
TypeAlias = { " ", "LspKindTypeAlias" },
|
|
||||||
Parameter = { " ", "LspKindParameter" },
|
|
||||||
StaticMethod = { " ", "LspKindStaticMethod" },
|
|
||||||
Macro = { " ", "LspKindMacro" },
|
|
||||||
Text = { " ", "LspKindText" },
|
|
||||||
Snippet = { " ", "LspKindSnippet" },
|
|
||||||
Folder = { " ", "LspKindFolder" },
|
|
||||||
Unit = { " ", "LspKindUnit" },
|
|
||||||
Value = { " ", "LspKindValue" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Backwards compatibility
|
|
||||||
function M.custom_colors()
|
|
||||||
local C = require("catppuccin.palettes").get_palette()
|
|
||||||
return {
|
|
||||||
normal_bg = C.base,
|
|
||||||
title_bg = C.green,
|
|
||||||
red = C.red,
|
|
||||||
magenta = C.maroon,
|
|
||||||
orange = C.peach,
|
|
||||||
yellow = C.yellow,
|
|
||||||
green = C.green,
|
|
||||||
cyan = C.sky,
|
|
||||||
blue = C.blue,
|
|
||||||
purple = C.mauve,
|
|
||||||
white = C.text,
|
|
||||||
black = C.crust,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/folke/trouble.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
TroubleText = { fg = C.green },
|
|
||||||
TroubleCount = { fg = C.pink, bg = O.transparent_background and C.none or C.surface1 },
|
|
||||||
TroubleNormal = { fg = C.text, bg = O.transparent_background and C.none or C.crust },
|
|
||||||
TroubleNormalNC = { link = "TroubleNormal" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/OXY2DEV/markview.nvim"
|
|
||||||
|
|
||||||
-- markview.nvim highlight groups:
|
|
||||||
-- https://github.com/OXY2DEV/markview.nvim#-highlight-groups
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095
|
|
||||||
|
|
||||||
local blockquote_bg = not O.transparent_background and C.mantle or nil
|
|
||||||
|
|
||||||
local groups = {
|
|
||||||
MarkviewBlockQuoteDefault = { fg = C.overlay2, bg = C.mantle },
|
|
||||||
MarkviewBlockQuoteError = { fg = C.red, bg = U.darken(C.red, darkening_percentage, blockquote_bg) },
|
|
||||||
MarkviewBlockQuoteNote = { fg = C.blue, bg = U.darken(C.blue, darkening_percentage, blockquote_bg) },
|
|
||||||
MarkviewBlockQuoteOk = { fg = C.green, bg = U.darken(C.green, darkening_percentage, blockquote_bg) },
|
|
||||||
MarkviewBlockQuoteSpecial = { fg = C.mauve, bg = U.darken(C.pink, darkening_percentage, blockquote_bg) },
|
|
||||||
MarkviewBlockQuoteWarn = { fg = C.yellow, bg = U.darken(C.yellow, darkening_percentage, blockquote_bg) },
|
|
||||||
|
|
||||||
MarkviewHyperlink = { link = "@markup.link.url" },
|
|
||||||
|
|
||||||
MarkviewCode = { bg = C.mantle },
|
|
||||||
MarkviewCodeFg = { fg = C.mantle },
|
|
||||||
MarkviewCodeInfo = { fg = C.overlay2, bg = C.mantle },
|
|
||||||
MarkviewInlineCode = { bg = C.surface0 },
|
|
||||||
|
|
||||||
MarkviewTableHeader = { fg = C.blue },
|
|
||||||
}
|
|
||||||
|
|
||||||
local rainbow = {
|
|
||||||
[0] = C.overlay2,
|
|
||||||
[7] = C.mauve,
|
|
||||||
}
|
|
||||||
|
|
||||||
local syntax = require("catppuccin.groups.syntax").get()
|
|
||||||
|
|
||||||
for i = 0, 7 do
|
|
||||||
local color = rainbow[i] or syntax["rainbow" .. i].fg
|
|
||||||
local bg = U.darken(color, darkening_percentage, C.base)
|
|
||||||
groups["MarkviewPalette" .. i] = { fg = color, bg = bg }
|
|
||||||
groups["MarkviewPalette" .. i .. "Fg"] = { fg = color }
|
|
||||||
groups["MarkviewPalette" .. i .. "Bg"] = { bg = bg }
|
|
||||||
groups["MarkviewIcon" .. i] = { fg = color, bg = C.mantle }
|
|
||||||
end
|
|
||||||
|
|
||||||
return groups
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/mason-org/mason.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local bg = O.transparent_background and C.none or C.lavender
|
|
||||||
local fg = O.transparent_background and C.lavender or C.base
|
|
||||||
|
|
||||||
local secondary_bg = O.transparent_background and C.none or C.blue
|
|
||||||
local secondary_fg = O.transparent_background and C.blue or C.base
|
|
||||||
|
|
||||||
local muted_bg = O.transparent_background and C.none or C.overlay0
|
|
||||||
local muted_fg = O.transparent_background and C.overlay0 or C.base
|
|
||||||
|
|
||||||
return {
|
|
||||||
MasonHeader = { fg = fg, bg = bg, style = { "bold" } },
|
|
||||||
MasonHeaderSecondary = { fg = secondary_fg, bg = secondary_bg, style = { "bold" } },
|
|
||||||
|
|
||||||
MasonHighlight = { fg = C.green },
|
|
||||||
MasonHighlightBlock = {
|
|
||||||
bg = O.transparent_background and C.none or C.green,
|
|
||||||
fg = O.transparent_background and C.green or C.base,
|
|
||||||
},
|
|
||||||
MasonHighlightBlockBold = { bg = secondary_bg, fg = secondary_fg, bold = true },
|
|
||||||
|
|
||||||
MasonHighlightSecondary = { fg = C.mauve },
|
|
||||||
MasonHighlightBlockSecondary = { fg = secondary_fg, bg = secondary_bg },
|
|
||||||
MasonHighlightBlockBoldSecondary = { fg = fg, bg = bg, bold = true },
|
|
||||||
|
|
||||||
MasonMuted = { fg = C.overlay0 },
|
|
||||||
MasonMutedBlock = { bg = muted_bg, fg = muted_fg },
|
|
||||||
MasonMutedBlockBold = { bg = C.yellow, fg = C.base, bold = true },
|
|
||||||
|
|
||||||
MasonError = { fg = C.red },
|
|
||||||
|
|
||||||
MasonHeading = { fg = C.lavender, bold = true },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,168 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/echasnovski/mini.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local transparent_background = O.transparent_background
|
|
||||||
local bg_highlight = transparent_background and "NONE" or C.base
|
|
||||||
|
|
||||||
local inactive_bg = transparent_background and "NONE" or C.mantle
|
|
||||||
|
|
||||||
local indentscope_color = U.select_color(O.integrations.mini.indentscope_color, "overlay2")
|
|
||||||
return {
|
|
||||||
MiniAnimateCursor = { style = { "reverse", "nocombine" } },
|
|
||||||
MiniAnimateNormalFloat = { link = "NormalFloat" },
|
|
||||||
|
|
||||||
MiniClueBorder = { link = "FloatBorder" },
|
|
||||||
MiniClueDescGroup = { link = "DiagnosticFloatingWarn" },
|
|
||||||
MiniClueDescSingle = { link = "NormalFloat" },
|
|
||||||
MiniClueNextKey = { link = "DiagnosticFloatingHint" },
|
|
||||||
MiniClueNextKeyWithPostkeys = { link = "DiagnosticFloatingError" },
|
|
||||||
MiniClueSeparator = { link = "DiagnosticFloatingInfo" },
|
|
||||||
MiniClueTitle = { link = "FloatTitle" },
|
|
||||||
|
|
||||||
MiniCompletionActiveParameter = { style = { "underline" } },
|
|
||||||
|
|
||||||
MiniCursorword = { style = { "underline" } },
|
|
||||||
MiniCursorwordCurrent = { style = { "underline" } },
|
|
||||||
|
|
||||||
MiniDepsChangeAdded = { link = "diffAdded" },
|
|
||||||
MiniDepsChangeRemoved = { link = "diffRemoved" },
|
|
||||||
MiniDepsHint = { link = "DiagnosticHint" },
|
|
||||||
MiniDepsInfo = { link = "DiagnosticInfo" },
|
|
||||||
MiniDepsMsgBreaking = { link = "DiagnosticWarn" },
|
|
||||||
MiniDepsPlaceholder = { link = "Comment" },
|
|
||||||
MiniDepsTitle = { link = "Title" },
|
|
||||||
MiniDepsTitleError = { bg = C.red, fg = C.base },
|
|
||||||
MiniDepsTitleSame = { link = "DiffText" },
|
|
||||||
MiniDepsTitleUpdate = { bg = C.green, fg = C.base },
|
|
||||||
|
|
||||||
MiniDiffSignAdd = { fg = C.green },
|
|
||||||
MiniDiffSignChange = { fg = C.yellow },
|
|
||||||
MiniDiffSignDelete = { fg = C.red },
|
|
||||||
MiniDiffOverAdd = { link = "DiffAdd" },
|
|
||||||
MiniDiffOverChange = { link = "DiffText" },
|
|
||||||
MiniDiffOverContext = { link = "DiffChange" },
|
|
||||||
MiniDiffOverDelete = { link = "DiffDelete" },
|
|
||||||
|
|
||||||
MiniFilesBorder = { link = "FloatBorder" },
|
|
||||||
MiniFilesBorderModified = { link = "DiagnosticFloatingWarn" },
|
|
||||||
MiniFilesCursorLine = { link = "CursorLine" },
|
|
||||||
MiniFilesDirectory = { link = "Directory" },
|
|
||||||
MiniFilesFile = { fg = C.text },
|
|
||||||
MiniFilesNormal = { link = "NormalFloat" },
|
|
||||||
MiniFilesTitle = { link = "FloatTitle" },
|
|
||||||
MiniFilesTitleFocused = O.float.solid and {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.mauve,
|
|
||||||
} or {
|
|
||||||
fg = C.subtext0,
|
|
||||||
bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
|
|
||||||
MiniHipatternsFixme = { fg = C.base, bg = C.red, style = { "bold" } },
|
|
||||||
MiniHipatternsHack = { fg = C.base, bg = C.yellow, style = { "bold" } },
|
|
||||||
MiniHipatternsNote = { fg = C.base, bg = C.sky, style = { "bold" } },
|
|
||||||
MiniHipatternsTodo = { fg = C.base, bg = C.teal, style = { "bold" } },
|
|
||||||
|
|
||||||
MiniIconsAzure = { fg = C.sapphire },
|
|
||||||
MiniIconsBlue = { fg = C.blue },
|
|
||||||
MiniIconsCyan = { fg = C.teal },
|
|
||||||
MiniIconsGreen = { fg = C.green },
|
|
||||||
MiniIconsGrey = { fg = C.text },
|
|
||||||
MiniIconsOrange = { fg = C.peach },
|
|
||||||
MiniIconsPurple = { fg = C.mauve },
|
|
||||||
MiniIconsRed = { fg = C.red },
|
|
||||||
MiniIconsYellow = { fg = C.yellow },
|
|
||||||
|
|
||||||
MiniIndentscopeSymbol = { fg = indentscope_color },
|
|
||||||
|
|
||||||
MiniJump = { fg = C.overlay2, bg = C.pink },
|
|
||||||
|
|
||||||
MiniJump2dDim = { fg = C.overlay0 },
|
|
||||||
MiniJump2dSpot = { bg = C.base, fg = C.peach, style = { "bold", "underline" } },
|
|
||||||
MiniJump2dSpotAhead = { bg = C.dim, fg = C.teal },
|
|
||||||
MiniJump2dSpotUnique = { bg = C.base, fg = C.sky, style = { "bold" } },
|
|
||||||
|
|
||||||
MiniMapNormal = { link = "NormalFloat" },
|
|
||||||
MiniMapSymbolCount = { link = "Special" },
|
|
||||||
MiniMapSymbolLine = { link = "Title" },
|
|
||||||
MiniMapSymbolView = { link = "Delimiter" },
|
|
||||||
|
|
||||||
MiniNotifyBorder = { link = "FloatBorder" },
|
|
||||||
MiniNotifyNormal = { link = "NormalFloat" },
|
|
||||||
MiniNotifyTitle = { link = "FloatTitle" },
|
|
||||||
|
|
||||||
MiniOperatorsExchangeFrom = { link = "IncSearch" },
|
|
||||||
|
|
||||||
MiniPickBorder = { link = "FloatBorder" },
|
|
||||||
MiniPickBorderBusy = { link = "DiagnosticFloatingWarn" },
|
|
||||||
MiniPickBorderText = O.float.solid and {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.mauve,
|
|
||||||
} or { fg = C.mauve, bg = (O.float.transparent and vim.o.winblend == 0) and C.none or C.mantle },
|
|
||||||
MiniPickIconDirectory = { link = "Directory" },
|
|
||||||
MiniPickIconFile = { link = "MiniPickNormal" },
|
|
||||||
MiniPickHeader = { link = "DiagnosticFloatingHint" },
|
|
||||||
MiniPickMatchCurrent = {
|
|
||||||
fg = C.flamingo,
|
|
||||||
bg = C.surface0,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
MiniPickMatchMarked = { link = "Visual" },
|
|
||||||
MiniPickMatchRanges = { link = "DiagnosticFloatingHint" },
|
|
||||||
MiniPickNormal = { link = "NormalFloat" },
|
|
||||||
MiniPickPreviewLine = { link = "CursorLine" },
|
|
||||||
MiniPickPreviewRegion = { link = "IncSearch" },
|
|
||||||
MiniPickPrompt = { fg = C.text, bg = O.float.transparent and C.none or C.mantle },
|
|
||||||
MiniPickPromptCaret = {
|
|
||||||
fg = C.flamingo,
|
|
||||||
bg = O.float.transparent and C.none or C.mantle,
|
|
||||||
},
|
|
||||||
MiniPickPromptPrefix = {
|
|
||||||
fg = C.flamingo,
|
|
||||||
bg = O.float.transparent and C.none or C.mantle,
|
|
||||||
},
|
|
||||||
|
|
||||||
MiniStarterCurrent = {},
|
|
||||||
MiniStarterFooter = { fg = C.yellow, style = { "italic" } },
|
|
||||||
MiniStarterHeader = { fg = C.blue },
|
|
||||||
MiniStarterInactive = { fg = C.surface2, style = O.styles.comments },
|
|
||||||
MiniStarterItem = { fg = C.text },
|
|
||||||
MiniStarterItemBullet = { fg = C.blue },
|
|
||||||
MiniStarterItemPrefix = { fg = C.pink },
|
|
||||||
MiniStarterSection = { fg = C.flamingo },
|
|
||||||
MiniStarterQuery = { fg = C.green },
|
|
||||||
|
|
||||||
MiniStatuslineDevinfo = { fg = C.subtext1, bg = C.surface1 },
|
|
||||||
MiniStatuslineFileinfo = { fg = C.subtext1, bg = C.surface1 },
|
|
||||||
MiniStatuslineFilename = { fg = C.text, bg = C.mantle },
|
|
||||||
MiniStatuslineInactive = { fg = C.blue, bg = C.mantle },
|
|
||||||
MiniStatuslineModeCommand = { fg = C.base, bg = C.peach, style = { "bold" } },
|
|
||||||
MiniStatuslineModeInsert = { fg = C.base, bg = C.green, style = { "bold" } },
|
|
||||||
MiniStatuslineModeNormal = { fg = C.mantle, bg = C.blue, style = { "bold" } },
|
|
||||||
MiniStatuslineModeOther = { fg = C.base, bg = C.teal, style = { "bold" } },
|
|
||||||
MiniStatuslineModeReplace = { fg = C.base, bg = C.red, style = { "bold" } },
|
|
||||||
MiniStatuslineModeVisual = { fg = C.base, bg = C.mauve, style = { "bold" } },
|
|
||||||
|
|
||||||
MiniSurround = { bg = C.pink, fg = C.surface1 },
|
|
||||||
|
|
||||||
MiniTablineCurrent = { fg = C.text, bg = C.base, sp = C.red, style = { "bold", "italic", "underline" } },
|
|
||||||
MiniTablineFill = { bg = bg_highlight },
|
|
||||||
MiniTablineHidden = { fg = C.text, bg = inactive_bg },
|
|
||||||
MiniTablineModifiedCurrent = { fg = C.red, bg = C.none, style = { "bold", "italic" } },
|
|
||||||
MiniTablineModifiedHidden = { fg = C.red, bg = C.none },
|
|
||||||
MiniTablineModifiedVisible = { fg = C.red, bg = C.none },
|
|
||||||
MiniTablineTabpagesection = { fg = C.surface1, bg = C.base },
|
|
||||||
MiniTablineVisible = { bg = C.none },
|
|
||||||
|
|
||||||
MiniTestEmphasis = { style = { "bold" } },
|
|
||||||
MiniTestFail = { fg = C.red, style = { "bold" } },
|
|
||||||
MiniTestPass = { fg = C.green, style = { "bold" } },
|
|
||||||
|
|
||||||
MiniTrailspace = { bg = C.red },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/SmiteshP/nvim-navic"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local background = O.integrations.navic.custom_bg or C.none
|
|
||||||
if O.integrations.navic.custom_bg == "lualine" then background = C.mantle end
|
|
||||||
if background ~= C.none and string.sub(background, 0, 1) ~= "#" then
|
|
||||||
background = U.select_color(background, "none")
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
|
||||||
NavicIconsFile = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsModule = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsNamespace = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsPackage = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsClass = { fg = C.yellow, bg = background },
|
|
||||||
NavicIconsMethod = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsProperty = { fg = C.green, bg = background },
|
|
||||||
NavicIconsField = { fg = C.green, bg = background },
|
|
||||||
NavicIconsConstructor = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsEnum = { fg = C.green, bg = background },
|
|
||||||
NavicIconsInterface = { fg = C.yellow, bg = background },
|
|
||||||
NavicIconsFunction = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsVariable = { fg = C.flamingo, bg = background },
|
|
||||||
NavicIconsConstant = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsString = { fg = C.green, style = O.styles.strings, bg = background },
|
|
||||||
NavicIconsNumber = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsBoolean = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsArray = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsObject = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsKey = { fg = C.pink, style = O.styles.keywords, bg = background },
|
|
||||||
NavicIconsNull = { fg = C.peach, bg = background },
|
|
||||||
NavicIconsEnumMember = { fg = C.red, bg = background },
|
|
||||||
NavicIconsStruct = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsEvent = { fg = C.blue, bg = background },
|
|
||||||
NavicIconsOperator = { fg = C.sky, bg = background },
|
|
||||||
NavicIconsTypeParameter = { fg = C.blue, bg = background },
|
|
||||||
NavicText = { fg = C.sapphire, bg = background },
|
|
||||||
NavicSeparator = { fg = C.text, bg = background },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,257 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/NeogitOrg/neogit"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NeogitBranch = {
|
|
||||||
fg = C.peach,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitRemote = {
|
|
||||||
fg = C.green,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUnmergedInto = {
|
|
||||||
link = "Function",
|
|
||||||
},
|
|
||||||
NeogitUnpulledFrom = {
|
|
||||||
link = "Function",
|
|
||||||
},
|
|
||||||
NeogitObjectId = {
|
|
||||||
link = "Comment",
|
|
||||||
},
|
|
||||||
NeogitStash = {
|
|
||||||
link = "Comment",
|
|
||||||
},
|
|
||||||
NeogitRebaseDone = {
|
|
||||||
link = "Comment",
|
|
||||||
},
|
|
||||||
NeogitHunkHeader = {
|
|
||||||
bg = U.darken(C.blue, 0.095, C.base),
|
|
||||||
fg = U.darken(C.blue, 0.5, C.base),
|
|
||||||
},
|
|
||||||
NeogitHunkHeaderHighlight = {
|
|
||||||
bg = U.darken(C.blue, 0.215, C.base),
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
NeogitDiffContextHighlight = {
|
|
||||||
bg = C.surface0,
|
|
||||||
},
|
|
||||||
NeogitDiffDeleteHighlight = {
|
|
||||||
bg = U.darken(C.red, 0.345, C.base),
|
|
||||||
fg = U.lighten(C.red, 0.850, C.text),
|
|
||||||
},
|
|
||||||
NeogitDiffAddHighlight = {
|
|
||||||
bg = U.darken(C.green, 0.345, C.base),
|
|
||||||
fg = U.lighten(C.green, 0.850, C.text),
|
|
||||||
},
|
|
||||||
NeogitDiffDelete = {
|
|
||||||
bg = U.darken(C.red, 0.095, C.base),
|
|
||||||
fg = U.darken(C.red, 0.800, C.base),
|
|
||||||
},
|
|
||||||
NeogitDiffDeleteInline = {
|
|
||||||
bg = U.darken(C.red, 0.500, C.base),
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitDiffAdd = {
|
|
||||||
bg = U.darken(C.green, 0.095, C.base),
|
|
||||||
fg = U.darken(C.green, 0.800, C.base),
|
|
||||||
},
|
|
||||||
NeogitDiffAddInline = {
|
|
||||||
bg = U.darken(C.green, 0.500, C.base),
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitCommitViewHeader = {
|
|
||||||
bg = U.darken(C.blue, 0.300, C.base),
|
|
||||||
fg = U.lighten(C.blue, 0.800, C.text),
|
|
||||||
},
|
|
||||||
NeogitChangeModified = {
|
|
||||||
fg = C.blue,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeDeleted = {
|
|
||||||
fg = C.red,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeAdded = {
|
|
||||||
fg = C.green,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeRenamed = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeUpdated = {
|
|
||||||
fg = C.peach,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeCopied = {
|
|
||||||
fg = C.pink,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeBothModified = {
|
|
||||||
fg = C.yellow,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitChangeNewFile = {
|
|
||||||
fg = C.green,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUntrackedfiles = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUnstagedchanges = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUnmergedchanges = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUnpulledchanges = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitRecentcommits = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitStagedchanges = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitStashes = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitRebasing = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitNotificationInfo = {
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
NeogitNotificationWarning = {
|
|
||||||
fg = C.yellow,
|
|
||||||
},
|
|
||||||
NeogitNotificationError = {
|
|
||||||
fg = C.red,
|
|
||||||
},
|
|
||||||
NeogitGraphRed = {
|
|
||||||
fg = C.red,
|
|
||||||
},
|
|
||||||
NeogitGraphWhite = {
|
|
||||||
fg = C.base,
|
|
||||||
},
|
|
||||||
NeogitGraphYellow = {
|
|
||||||
fg = C.yellow,
|
|
||||||
},
|
|
||||||
NeogitGraphGreen = {
|
|
||||||
fg = C.green,
|
|
||||||
},
|
|
||||||
NeogitGraphCyan = {
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
NeogitGraphBlue = {
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
NeogitGraphPurple = {
|
|
||||||
fg = C.lavender,
|
|
||||||
},
|
|
||||||
NeogitGraphGray = {
|
|
||||||
fg = C.subtext1,
|
|
||||||
},
|
|
||||||
NeogitGraphOrange = {
|
|
||||||
fg = C.peach,
|
|
||||||
},
|
|
||||||
NeogitGraphBoldRed = {
|
|
||||||
fg = C.red,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldWhite = {
|
|
||||||
fg = C.white,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldYellow = {
|
|
||||||
fg = C.yellow,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldGreen = {
|
|
||||||
fg = C.green,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldCyan = {
|
|
||||||
fg = C.blue,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldBlue = {
|
|
||||||
fg = C.blue,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldPurple = {
|
|
||||||
fg = C.lavender,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitGraphBoldGray = {
|
|
||||||
fg = C.subtext1,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitDiffContext = {
|
|
||||||
bg = C.base,
|
|
||||||
},
|
|
||||||
NeogitPopupBold = {
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitPopupSwitchKey = {
|
|
||||||
fg = C.lavender,
|
|
||||||
},
|
|
||||||
NeogitPopupOptionKey = {
|
|
||||||
fg = C.lavender,
|
|
||||||
},
|
|
||||||
NeogitPopupConfigKey = {
|
|
||||||
fg = C.lavender,
|
|
||||||
},
|
|
||||||
NeogitPopupActionKey = {
|
|
||||||
fg = C.lavender,
|
|
||||||
},
|
|
||||||
NeogitFilePath = {
|
|
||||||
fg = C.blue,
|
|
||||||
style = { "italic" },
|
|
||||||
},
|
|
||||||
NeogitDiffHeader = {
|
|
||||||
bg = C.base,
|
|
||||||
fg = C.blue,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitDiffHeaderHighlight = {
|
|
||||||
bg = C.base,
|
|
||||||
fg = C.peach,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitUnpushedTo = {
|
|
||||||
fg = C.lavender,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitFold = {
|
|
||||||
fg = C.none,
|
|
||||||
bg = C.none,
|
|
||||||
},
|
|
||||||
NeogitSectionHeader = {
|
|
||||||
fg = C.mauve,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
NeogitTagName = {
|
|
||||||
fg = C.yellow,
|
|
||||||
},
|
|
||||||
NeogitTagDistance = {
|
|
||||||
fg = C.blue,
|
|
||||||
},
|
|
||||||
NeogitWinSeparator = {
|
|
||||||
link = "WinSeparator",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-neotest/neotest"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NeotestPassed = { fg = C.green },
|
|
||||||
NeotestFailed = { fg = C.red },
|
|
||||||
NeotestRunning = { fg = C.yellow },
|
|
||||||
NeotestSkipped = { fg = C.blue },
|
|
||||||
NeotestTest = { fg = C.text },
|
|
||||||
NeotestNamespace = { fg = C.mauve },
|
|
||||||
NeotestFocused = { style = { "bold", "underline" } },
|
|
||||||
NeotestFile = { fg = C.blue },
|
|
||||||
NeotestDir = { fg = C.blue },
|
|
||||||
NeotestIndent = { fg = C.overlay1 },
|
|
||||||
NeotestExpandMarker = { fg = C.overlay1 },
|
|
||||||
NeotestAdapterName = { fg = C.maroon },
|
|
||||||
NeotestWinSelect = { fg = C.blue, style = { "bold" } },
|
|
||||||
NeotestMarked = { fg = C.peach, style = { "bold" } },
|
|
||||||
NeotestTarget = { fg = C.red },
|
|
||||||
NeotestUnknown = { fg = C.text },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-neo-tree/neo-tree.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local active_bg = O.transparent_background and C.none or C.mantle
|
|
||||||
local inactive_bg = O.transparent_background and C.none or C.base
|
|
||||||
return {
|
|
||||||
NeoTreeDirectoryName = { fg = C.blue },
|
|
||||||
NeoTreeDirectoryIcon = { fg = C.blue },
|
|
||||||
NeoTreeNormal = { fg = C.text, bg = active_bg },
|
|
||||||
NeoTreeNormalNC = { fg = C.text, bg = active_bg },
|
|
||||||
NeoTreeExpander = { fg = C.overlay0 },
|
|
||||||
NeoTreeIndentMarker = { fg = C.overlay0 },
|
|
||||||
NeoTreeRootName = { fg = C.blue, style = { "bold" } },
|
|
||||||
NeoTreeSymbolicLinkTarget = { fg = C.pink },
|
|
||||||
NeoTreeModified = { fg = C.peach },
|
|
||||||
|
|
||||||
NeoTreeGitAdded = { fg = C.green },
|
|
||||||
NeoTreeGitConflict = { fg = C.red },
|
|
||||||
NeoTreeGitDeleted = { fg = C.red },
|
|
||||||
NeoTreeGitIgnored = { fg = C.overlay0 },
|
|
||||||
NeoTreeGitModified = { fg = C.yellow },
|
|
||||||
NeoTreeGitUnstaged = { fg = C.red },
|
|
||||||
NeoTreeGitUntracked = { fg = C.mauve },
|
|
||||||
NeoTreeGitStaged = { fg = C.green },
|
|
||||||
|
|
||||||
NeoTreeFloatBorder = { link = "FloatBorder" },
|
|
||||||
NeoTreeFloatTitle = { link = "FloatTitle" },
|
|
||||||
NeoTreeTitleBar = { fg = C.mantle, bg = C.blue },
|
|
||||||
|
|
||||||
NeoTreeFileNameOpened = { fg = C.pink },
|
|
||||||
NeoTreeDimText = { fg = C.overlay1 },
|
|
||||||
NeoTreeFilterTerm = { fg = C.green, style = { "bold" } },
|
|
||||||
NeoTreeTabActive = { bg = active_bg, fg = C.lavender, style = { "bold" } },
|
|
||||||
NeoTreeTabInactive = { bg = inactive_bg, fg = C.overlay0 },
|
|
||||||
NeoTreeTabSeparatorActive = { fg = active_bg, bg = active_bg },
|
|
||||||
NeoTreeTabSeparatorInactive = { fg = inactive_bg, bg = inactive_bg },
|
|
||||||
NeoTreeVertSplit = { fg = C.base, bg = inactive_bg },
|
|
||||||
NeoTreeWinSeparator = {
|
|
||||||
fg = O.transparent_background and C.surface1 or C.base,
|
|
||||||
bg = O.transparent_background and C.none or C.base,
|
|
||||||
},
|
|
||||||
NeoTreeStatusLineNC = { fg = C.mantle, bg = C.mantle },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/folke/noice.nvim"
|
|
||||||
|
|
||||||
local virtual_text = O.lsp_styles.virtual_text
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return { -- Personally the default integration is already pretty good
|
|
||||||
NoiceCmdline = { fg = C.text },
|
|
||||||
NoiceCmdlineIcon = { fg = C.sky, style = virtual_text.information },
|
|
||||||
NoiceCmdlineIconSearch = { fg = C.yellow },
|
|
||||||
NoiceCmdlinePopupBorder = { fg = C.lavender },
|
|
||||||
NoiceCmdlinePopupBorderSearch = { fg = C.yellow },
|
|
||||||
NoiceConfirmBorder = { fg = C.blue },
|
|
||||||
NoiceMini = { fg = C.subtext0, blend = 0 },
|
|
||||||
NoiceFormatProgressDone = {
|
|
||||||
bg = O.transparent_background and C.none or U.darken(C.sky, 0.30, C.base),
|
|
||||||
fg = C.subtext0,
|
|
||||||
},
|
|
||||||
NoiceFormatProgressTodo = {
|
|
||||||
bg = O.transparent_background and C.none
|
|
||||||
or U.vary_color({ latte = U.lighten(C.mantle, 0.70, C.base) }, U.darken(C.surface0, 0.64, C.base)),
|
|
||||||
fg = C.subtext0,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/vigoux/notifier.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NotifierIcon = { fg = C.mauve },
|
|
||||||
NotifierContent = { fg = C.overlay2, blend = 0, style = { "italic" } },
|
|
||||||
NotifierContentDim = { fg = C.overlay1, blend = 0, style = { "italic" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/rcarriga/nvim-notify"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NotifyBackground = { bg = (O.transparent_background and vim.o.winblend == 0) and "#000000" or C.mantle },
|
|
||||||
|
|
||||||
NotifyERRORBorder = { fg = C.red },
|
|
||||||
NotifyERRORIcon = { fg = C.red },
|
|
||||||
NotifyERRORTitle = { fg = C.red, style = { "italic" } },
|
|
||||||
NotifyWARNBorder = { fg = C.yellow },
|
|
||||||
NotifyWARNIcon = { fg = C.yellow },
|
|
||||||
NotifyWARNTitle = { fg = C.yellow, style = { "italic" } },
|
|
||||||
NotifyINFOBorder = { fg = C.blue },
|
|
||||||
NotifyINFOIcon = { fg = C.blue },
|
|
||||||
NotifyINFOTitle = { fg = C.blue, style = { "italic" } },
|
|
||||||
NotifyDEBUGBorder = { fg = C.peach },
|
|
||||||
NotifyDEBUGIcon = { fg = C.peach },
|
|
||||||
NotifyDEBUGTitle = { fg = C.peach, style = { "italic" } },
|
|
||||||
NotifyTRACEBorder = { fg = C.rosewater },
|
|
||||||
NotifyTRACEIcon = { fg = C.rosewater },
|
|
||||||
NotifyTRACETitle = { fg = C.rosewater, style = { "italic" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/kylechui/nvim-surround"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NvimSurroundHighlight = { sp = C.peach, style = { "underline" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-tree/nvim-tree.lua"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
NvimTreeFolderName = { fg = C.blue },
|
|
||||||
NvimTreeFolderIcon = { fg = C.blue },
|
|
||||||
NvimTreeNormal = { fg = C.text, bg = O.transparent_background and C.none or C.mantle },
|
|
||||||
NvimTreeOpenedFolderName = { fg = C.blue },
|
|
||||||
NvimTreeEmptyFolderName = { fg = C.blue },
|
|
||||||
NvimTreeIndentMarker = { fg = C.overlay0 },
|
|
||||||
NvimTreeWinSeparator = {
|
|
||||||
fg = O.transparent_background and C.surface1 or C.base,
|
|
||||||
bg = O.transparent_background and C.none or C.base,
|
|
||||||
},
|
|
||||||
NvimTreeRootFolder = { fg = C.lavender, style = { "bold" } },
|
|
||||||
NvimTreeSymlink = { fg = C.pink },
|
|
||||||
NvimTreeStatuslineNc = { fg = C.mantle, bg = C.mantle },
|
|
||||||
NvimTreeGitDirty = { fg = C.yellow },
|
|
||||||
NvimTreeGitNew = { fg = C.blue },
|
|
||||||
NvimTreeGitDeleted = { fg = C.red },
|
|
||||||
NvimTreeSpecialFile = { fg = C.flamingo },
|
|
||||||
NvimTreeImageFile = { fg = C.text },
|
|
||||||
NvimTreeOpenedFile = { fg = C.pink },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/pwntester/octo.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
-- colors
|
|
||||||
OctoGrey = { fg = C.base },
|
|
||||||
OctoBlue = { fg = C.blue },
|
|
||||||
OctoGreen = { fg = C.green },
|
|
||||||
OctoRed = { fg = C.red },
|
|
||||||
OctoPurple = { fg = C.mauve },
|
|
||||||
OctoYellow = { fg = C.yellow },
|
|
||||||
-- highlight groups
|
|
||||||
OctoDirty = { link = "ErrorMsg" },
|
|
||||||
OctoIssueTitle = { link = "PreProc" },
|
|
||||||
OctoIssueId = { link = "Question" },
|
|
||||||
OctoEmpty = { link = "Comment" },
|
|
||||||
OctoFloat = { link = "NormalNC" },
|
|
||||||
OctoDate = { link = "Comment" },
|
|
||||||
OctoSymbol = { link = "Comment" },
|
|
||||||
OctoTimelineItemHeading = { link = "Comment" },
|
|
||||||
OctoDetailsLabel = { link = "Title" },
|
|
||||||
OctoMissingDetails = { link = "Comment" },
|
|
||||||
OctoDetailsValue = { link = "Identifier" },
|
|
||||||
OctoDiffHunkPosition = { link = "NormalFloat" },
|
|
||||||
OctoCommentLine = { link = "TabLineSel" },
|
|
||||||
OctoViewer = { fg = C.base, bg = C.blue },
|
|
||||||
OctoBubble = { fg = C.text, bg = C.base },
|
|
||||||
OctoBubbleGrey = { fg = C.text, bg = C.base },
|
|
||||||
OctoBubbleDelimiterGrey = { fg = C.base },
|
|
||||||
OctoBubbleGreen = { fg = C.base, bg = C.green },
|
|
||||||
OctoBubbleDelimiterGreen = { fg = C.green },
|
|
||||||
OctoBubbleBlue = { fg = C.base, bg = C.sky },
|
|
||||||
OctoBubbleDelimiterBlue = { fg = C.sky },
|
|
||||||
OctoBubbleYellow = { fg = C.base, bg = C.yellow },
|
|
||||||
OctoBubbleDelimiterYellow = { fg = C.yellow },
|
|
||||||
OctoBubbleRed = { fg = C.base, bg = C.red },
|
|
||||||
OctoBubbleDelimiterRed = { fg = C.red },
|
|
||||||
OctoBubblePurple = { fg = C.base, bg = C.mauve },
|
|
||||||
OctoBubbleDelimiterPurple = { fg = C.mauve },
|
|
||||||
OctoUser = { link = "OctoBubble" },
|
|
||||||
OctoUserViewer = { link = "OctoViewer" },
|
|
||||||
OctoReaction = { link = "OctoBubble" },
|
|
||||||
OctoReactionViewer = { link = "OctoViewer" },
|
|
||||||
OctoPassingTest = { link = "OctoGreen" },
|
|
||||||
OctoFailingTest = { link = "OctoRed" },
|
|
||||||
OctoPullAdditions = { link = "OctoGreen" },
|
|
||||||
OctoPullDeletions = { link = "OctoRed" },
|
|
||||||
OctoPullModifications = { fg = C.peach },
|
|
||||||
OctoStateOpen = { fg = C.green, bg = C.base },
|
|
||||||
OctoStateOpenFloat = { fg = C.green, bg = C.base },
|
|
||||||
OctoStateClosed = { fg = C.red, bg = C.base },
|
|
||||||
OctoStateClosedFloat = { fg = C.red, bg = C.base },
|
|
||||||
OctoStateMerged = { fg = C.mauve, bg = C.base },
|
|
||||||
OctoStateMergedFloat = { fg = C.mauve, bg = C.base },
|
|
||||||
OctoStatePending = { fg = C.peach, bg = C.base },
|
|
||||||
OctoStatePendingFloat = { fg = C.peach, bg = C.base },
|
|
||||||
OctoStateApproved = { link = "OctoStateOpen" },
|
|
||||||
OctoStateApprovedFloat = { link = "OctoStateOpen" },
|
|
||||||
OctoStateChangesRequested = { fg = C.maroon, bg = C.base },
|
|
||||||
OctoStateChangesRequestedFloat = { fg = C.maroon, bg = C.base },
|
|
||||||
OctoStateCommented = { link = "Normal" },
|
|
||||||
OctoStateCommentedFloat = { link = "Normal" },
|
|
||||||
OctoStateDismissed = { link = "OctoStateClosed" },
|
|
||||||
OctoStateDismissedFloat = { link = "OctoStateClosed" },
|
|
||||||
OctoStateSubmittedBubble = { link = "OctoBubbleGreen" },
|
|
||||||
OctoFilePanelCounter = { fg = C.blue, style = { "bold" } },
|
|
||||||
OctoFilePanelTitle = { fg = C.blue, style = { "bold" } },
|
|
||||||
OctoFilePanelFileName = {},
|
|
||||||
OctoNormalFront = { fg = C.text },
|
|
||||||
OctoYellowFloat = { fg = C.yellow, bg = C.base },
|
|
||||||
OctoPurpleFloat = { fg = C.mauve, bg = C.base },
|
|
||||||
OctoRedFloat = { fg = C.red, bg = C.base },
|
|
||||||
OctoGreenFloat = { fg = C.green, bg = C.base },
|
|
||||||
OctoGreyFloat = { fg = C.text, bg = C.base },
|
|
||||||
OctoBlueFloat = { fg = C.blue, bg = C.base },
|
|
||||||
OctoReviewDiffAddText = { bg = U.darken(C.green, 0.30, C.base) },
|
|
||||||
OctoReviewDiffDeleteText = { bg = U.darken(C.red, 0.30, C.base) },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/stevearc/overseer.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
OverseerPENDING = { fg = C.grey },
|
|
||||||
OverseerRUNNING = { fg = C.yellow },
|
|
||||||
OverseerSUCCESS = { fg = C.green },
|
|
||||||
OverseerCANCELED = { fg = C.overlay2 },
|
|
||||||
OverseerFAILURE = { fg = C.red },
|
|
||||||
OverseerTask = { fg = C.blue },
|
|
||||||
OverseerTaskBorder = { fg = C.sky },
|
|
||||||
OverseerOutput = { fg = C.text },
|
|
||||||
OverseerComponent = { fg = C.yellow },
|
|
||||||
OverseerField = { fg = C.green },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/rlane/pounce.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
PounceMatch = { bg = U.lighten(C.green, 0.7), fg = C.base, style = { "bold" } },
|
|
||||||
PounceGap = { bg = U.darken(C.green, 0.7), fg = C.base, style = { "bold" } },
|
|
||||||
PounceAccept = { bg = C.peach, fg = C.base, style = { "bold" } },
|
|
||||||
PounceAcceptBest = { bg = C.teal, fg = C.base, style = { "bold" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/HiPhish/rainbow-delimiters.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
RainbowDelimiterRed = { fg = C.red },
|
|
||||||
RainbowDelimiterYellow = { fg = C.yellow },
|
|
||||||
RainbowDelimiterBlue = { fg = C.blue },
|
|
||||||
RainbowDelimiterOrange = { fg = C.peach },
|
|
||||||
RainbowDelimiterGreen = { fg = C.green },
|
|
||||||
RainbowDelimiterViolet = { fg = C.mauve },
|
|
||||||
RainbowDelimiterCyan = { fg = C.teal },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/MeanderingProgrammer/render-markdown.nvim"
|
|
||||||
|
|
||||||
-- render-markdown.nvim highlight groups:
|
|
||||||
-- https://github.com/MeanderingProgrammer/render-markdown.nvim?tab=readme-ov-file#colors
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local groups = {
|
|
||||||
RenderMarkdownCode = { bg = C.mantle },
|
|
||||||
RenderMarkdownCodeInline = { bg = C.surface0 },
|
|
||||||
RenderMarkdownBullet = { fg = C.sky },
|
|
||||||
RenderMarkdownTableHead = { fg = C.blue },
|
|
||||||
RenderMarkdownTableRow = { fg = C.lavender },
|
|
||||||
RenderMarkdownSuccess = { fg = C.green },
|
|
||||||
RenderMarkdownInfo = { fg = C.sky },
|
|
||||||
RenderMarkdownHint = { fg = C.teal },
|
|
||||||
RenderMarkdownWarn = { fg = C.yellow },
|
|
||||||
RenderMarkdownError = { fg = C.red },
|
|
||||||
}
|
|
||||||
|
|
||||||
local syntax = require("catppuccin.groups.syntax").get()
|
|
||||||
local darkening_percentage = O.transparent_background and U.vary_color({ latte = 0.15 }, 0.28) or 0.095
|
|
||||||
|
|
||||||
for i = 1, 6 do
|
|
||||||
local color = syntax["rainbow" .. i].fg
|
|
||||||
groups["RenderMarkdownH" .. i] = { fg = color }
|
|
||||||
groups["RenderMarkdownH" .. i .. "Bg"] = { bg = U.darken(color, darkening_percentage, C.base) }
|
|
||||||
end
|
|
||||||
|
|
||||||
return groups
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/machakann/vim-sandwich"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
OperatorSandwichAdd = { bg = C.blue, fg = C.base },
|
|
||||||
OperatorSandwichBuns = { bg = C.blue, fg = C.base },
|
|
||||||
OperatorSandwichChange = { bg = C.blue, fg = C.base },
|
|
||||||
OperatorSandwichDelete = { bg = C.blue, fg = C.base },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/mhinz/vim-signify"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
SignifySignAdd = { fg = C.green },
|
|
||||||
SignifySignChange = { fg = C.yellow },
|
|
||||||
SignifySignDelete = { fg = C.red },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/folke/snacks.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local indent_scope_color = U.select_color(O.integrations.snacks.indent_scope_color, "overlay2")
|
|
||||||
|
|
||||||
local hlgroups = {
|
|
||||||
SnacksNormal = { link = "Normal" },
|
|
||||||
SnacksWinBar = { link = "Title" },
|
|
||||||
SnacksBackdrop = { link = "FloatShadow" },
|
|
||||||
SnacksNormalNC = { link = "NormalFloat" },
|
|
||||||
SnacksWinBarNC = { link = "SnacksWinBar" },
|
|
||||||
|
|
||||||
SnacksNotifierInfo = { fg = C.blue },
|
|
||||||
SnacksNotifierIconInfo = { fg = C.blue },
|
|
||||||
SnacksNotifierTitleInfo = { fg = C.blue, style = { "italic" } },
|
|
||||||
SnacksNotifierFooterInfo = { link = "DiagnosticInfo" },
|
|
||||||
SnacksNotifierBorderInfo = { fg = C.blue },
|
|
||||||
SnacksNotifierWarn = { fg = C.yellow },
|
|
||||||
SnacksNotifierIconWarn = { fg = C.yellow },
|
|
||||||
SnacksNotifierTitleWarn = { fg = C.yellow, style = { "italic" } },
|
|
||||||
SnacksNotifierBorderWarn = { fg = C.yellow },
|
|
||||||
SnacksNotifierFooterWarn = { link = "DiagnosticWarn" },
|
|
||||||
SnacksNotifierDebug = { fg = C.peach },
|
|
||||||
SnacksNotifierIconDebug = { fg = C.peach },
|
|
||||||
SnacksNotifierTitleDebug = { fg = C.peach, style = { "italic" } },
|
|
||||||
SnacksNotifierBorderDebug = { fg = C.peach },
|
|
||||||
SnacksNotifierFooterDebug = { link = "DiagnosticHint" },
|
|
||||||
SnacksNotifierError = { fg = C.red },
|
|
||||||
SnacksNotifierIconError = { fg = C.red },
|
|
||||||
SnacksNotifierTitleError = { fg = C.red, style = { "italic" } },
|
|
||||||
SnacksNotifierBorderError = { fg = C.red },
|
|
||||||
SnacksNotifierFooterError = { link = "DiagnosticError" },
|
|
||||||
SnacksNotifierTrace = { fg = C.rosewater },
|
|
||||||
SnacksNotifierIconTrace = { fg = C.rosewater },
|
|
||||||
SnacksNotifierTitleTrace = { fg = C.rosewater, style = { "italic" } },
|
|
||||||
SnacksNotifierBorderTrace = { fg = C.rosewater },
|
|
||||||
SnacksNotifierFooterTrace = { link = "DiagnosticHint" },
|
|
||||||
|
|
||||||
SnacksDashboardNormal = { link = "Normal" },
|
|
||||||
SnacksDashboardDesc = { fg = C.blue },
|
|
||||||
SnacksDashboardFile = { fg = C.lavender },
|
|
||||||
SnacksDashboardDir = { link = "NonText" },
|
|
||||||
SnacksDashboardFooter = { fg = C.yellow, style = { "italic" } },
|
|
||||||
SnacksDashboardHeader = { fg = C.blue },
|
|
||||||
SnacksDashboardIcon = { fg = C.pink, bold = true },
|
|
||||||
SnacksDashboardKey = { fg = C.peach },
|
|
||||||
SnacksDashboardTerminal = { link = "SnacksDashboardNormal" },
|
|
||||||
SnacksDashboardSpecial = { link = "Special" },
|
|
||||||
SnacksDashboardTitle = { link = "Title" },
|
|
||||||
|
|
||||||
SnacksIndent = { fg = C.surface0 },
|
|
||||||
SnacksIndentScope = { fg = indent_scope_color },
|
|
||||||
|
|
||||||
SnacksPickerSelected = {
|
|
||||||
fg = O.float.transparent and C.flamingo or C.text,
|
|
||||||
bg = O.float.transparent and C.none or C.surface0,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
SnacksPickerMatch = { fg = C.blue },
|
|
||||||
|
|
||||||
SnacksPicker = { link = "NormalFloat" },
|
|
||||||
SnacksPickerBorder = { link = "FloatBorder" },
|
|
||||||
SnacksPickerInputBorder = { link = "SnacksPickerBorder" },
|
|
||||||
SnacksPickerInput = { link = "NormalFloat" },
|
|
||||||
SnacksPickerPrompt = { fg = C.flamingo },
|
|
||||||
}
|
|
||||||
|
|
||||||
if O.float.solid then
|
|
||||||
hlgroups["SnacksPickerTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.mauve,
|
|
||||||
}
|
|
||||||
hlgroups["SnacksPickerPreviewTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.green,
|
|
||||||
}
|
|
||||||
hlgroups["SnacksPickerInputTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.red,
|
|
||||||
}
|
|
||||||
hlgroups["SnacksPickerListTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.lavender,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return hlgroups
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/simrat39/symbols-outline.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
-- https://github.com/simrat39/symbols-outline.nvim
|
|
||||||
FocusedSymbol = { fg = C.yellow, bg = C.none },
|
|
||||||
|
|
||||||
-- https://github.com/hedyhli/outline.nvim
|
|
||||||
OutlineCurrent = { link = "FocusedSymbol" },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-telekasten/telekasten.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
tkLink = { fg = C.blue },
|
|
||||||
tkBrackets = { fg = C.pink },
|
|
||||||
tkTag = { fg = C.sky },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-telescope/telescope.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
local hlgroups = {
|
|
||||||
TelescopeBorder = { link = "FloatBorder" },
|
|
||||||
TelescopeNormal = { link = "NormalFloat" },
|
|
||||||
TelescopePreviewNormal = { link = "TelescopeNormal" },
|
|
||||||
TelescopePromptNormal = { link = "TelescopeNormal" },
|
|
||||||
TelescopeResultsNormal = { link = "TelescopeNormal" },
|
|
||||||
TelescopeTitle = { link = "FloatTitle" },
|
|
||||||
TelescopeSelectionCaret = { fg = C.flamingo, bg = C.surface0 },
|
|
||||||
TelescopeSelection = {
|
|
||||||
fg = C.flamingo,
|
|
||||||
bg = C.surface0,
|
|
||||||
style = { "bold" },
|
|
||||||
},
|
|
||||||
TelescopeMatching = { fg = C.blue },
|
|
||||||
TelescopePromptPrefix = { fg = C.flamingo },
|
|
||||||
}
|
|
||||||
|
|
||||||
if O.float.solid then
|
|
||||||
hlgroups["TelescopePreviewTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.green,
|
|
||||||
}
|
|
||||||
hlgroups["TelescopePromptTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.red,
|
|
||||||
}
|
|
||||||
hlgroups["TelescopeResultsTitle"] = {
|
|
||||||
fg = C.crust,
|
|
||||||
bg = C.lavender,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return hlgroups
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/nvim-treesitter/nvim-treesitter-context"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
TreesitterContext = {
|
|
||||||
fg = C.text,
|
|
||||||
bg = O.transparent_background and C.none or C.mantle,
|
|
||||||
},
|
|
||||||
TreesitterContextBottom = {
|
|
||||||
sp = O.transparent_background and C.dim or C.surface0,
|
|
||||||
style = { "underline" },
|
|
||||||
},
|
|
||||||
TreesitterContextLineNumber = O.transparent_background and {
|
|
||||||
fg = C.rosewater,
|
|
||||||
} or {
|
|
||||||
fg = C.surface1,
|
|
||||||
bg = C.mantle,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/HiPhish/nvim-ts-rainbow"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
rainbowcol1 = { fg = C.red },
|
|
||||||
rainbowcol2 = { fg = C.teal },
|
|
||||||
rainbowcol3 = { fg = C.yellow },
|
|
||||||
rainbowcol4 = { fg = C.blue },
|
|
||||||
rainbowcol5 = { fg = C.pink },
|
|
||||||
rainbowcol6 = { fg = C.flamingo },
|
|
||||||
rainbowcol7 = { fg = C.green },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/HiPhish/nvim-ts-rainbow2"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
TSRainbowRed = { fg = C.red },
|
|
||||||
TSRainbowYellow = { fg = C.yellow },
|
|
||||||
TSRainbowBlue = { fg = C.blue },
|
|
||||||
TSRainbowOrange = { fg = C.peach },
|
|
||||||
TSRainbowGreen = { fg = C.green },
|
|
||||||
TSRainbowViolet = { fg = C.mauve },
|
|
||||||
TSRainbowCyan = { fg = C.teal },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/kevinhwang91/nvim-ufo"
|
|
||||||
|
|
||||||
M.get = function()
|
|
||||||
return {
|
|
||||||
UfoFoldedFg = { fg = C.lavender },
|
|
||||||
UfoFoldedEllipsis = { fg = C.crust, bg = C.blue },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/justinmk/vim-sneak"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
Sneak = { fg = C.overlay2, bg = C.pink },
|
|
||||||
SneakScope = { bg = C.text },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/vimwiki/vimwiki"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
VimwikiLink = { fg = C.sky, bg = C.none },
|
|
||||||
VimwikiHeaderChar = { fg = C.grey, bg = C.none },
|
|
||||||
VimwikiHR = { fg = C.yellow, bg = C.none },
|
|
||||||
VimwikiList = { fg = C.peach, bg = C.none },
|
|
||||||
VimwikiTag = { fg = C.peach, bg = C.none },
|
|
||||||
VimwikiMarkers = { fg = C.subtext0, bg = C.none },
|
|
||||||
VimwikiHeader1 = { fg = C.peach, bg = C.none, style = { "bold" } },
|
|
||||||
VimwikiHeader2 = { fg = C.green, bg = C.none, style = { "bold" } },
|
|
||||||
VimwikiHeader3 = { fg = C.blue, bg = C.none, style = { "bold" } },
|
|
||||||
VimwikiHeader4 = { fg = C.sky, bg = C.none, style = { "bold" } },
|
|
||||||
VimwikiHeader5 = { fg = C.yellow, bg = C.none, style = { "bold" } },
|
|
||||||
VimwikiHeader6 = { fg = C.mauve, bg = C.none, style = { "bold" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/folke/which-key.nvim"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
WhichKey = { link = "NormalFloat" },
|
|
||||||
WhichKeyBorder = { link = "FloatBorder" },
|
|
||||||
|
|
||||||
WhichKeyGroup = { fg = C.blue },
|
|
||||||
WhichKeySeparator = { fg = C.overlay0 },
|
|
||||||
WhichKeyDesc = { fg = C.pink },
|
|
||||||
WhichKeyValue = { fg = C.overlay0 },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
local M = {}
|
|
||||||
|
|
||||||
M.url = "https://github.com/s1n7ax/nvim-window-picker"
|
|
||||||
|
|
||||||
function M.get()
|
|
||||||
return {
|
|
||||||
WindowPickerStatusLine = { fg = C.red, style = { "bold" } },
|
|
||||||
WindowPickerStatusLineNC = { fg = C.red, style = { "bold" } },
|
|
||||||
WindowPickerWinBar = { fg = C.red, style = { "bold" } },
|
|
||||||
WindowPickerWinBarNC = { fg = C.red, style = { "bold" } },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue