generated from andy/linux-nixos-hyprland-config-dotfiles
Initial commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.aider*
|
||||
.env
|
19
LICENSE
Normal file
19
LICENSE
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2023 XNM <artem.shv@proton.me>
|
||||
|
||||
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.
|
371
README.md
Normal file
371
README.md
Normal file
@@ -0,0 +1,371 @@
|
||||
<div align="center"><img src="home/.config/neofetch/logo_nixos.png"></div>
|
||||
<h1 align="center">NixOS & Hyprland with Catppuccin Macchiato Theme Configuration</h1>
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
## Table of Contents
|
||||
- [About](#-about)
|
||||
- [Showcase](#-showcase)
|
||||
- [Components](#-components)
|
||||
- [Features](#-features)
|
||||
- [Installation](#-installation)
|
||||
- [Keybindings](#️-keybindings)
|
||||
- [Useful aliases in Fish Shell](#-useful-aliases-in-fish-shell)
|
||||
- [AI Tools and Services](#-ai-tools-and-services)
|
||||
- [Useful info for Rustaceans](#-useful-info-for-rustaceans)
|
||||
- [Yubikey on NixOS](#-yubikey-on-nixos)
|
||||
- [License](#-license)
|
||||
|
||||
## 📖 About
|
||||
|
||||
This repository houses my NixOS Linux ❄️ flake configuration, featuring the Hyprland window manager and adorned with the stylish Catppuccin Macchiato theme. I rely on this setup as my daily driver for work and programming, primarily in Rust 🦀. Feel free to utilize it in its entirety or borrow specific components for your own configuration.
|
||||
|
||||
> [!NOTE]
|
||||
> It's essential to note that this configuration is not minimalistic or lightweight and may require some disk space and knowledge to understand. If you're looking for something simpler, this configuration may not be suitable for you.
|
||||
|
||||
This system leverages cutting-edge channels and versions of software to provide you with the latest updates and features. Notably, it utilizes:
|
||||
|
||||
- **flake** (An experimental feature of the Nix package manager)
|
||||
- ~~**nur** (The Nix User Repository)~~ *currently disabled
|
||||
- **nixpkgs**: unstable
|
||||
- **rust**: nightly version
|
||||
|
||||
This approach ensures that you stay on the forefront of technology, receiving the most recent software advancements promptly.
|
||||
> [!WARNING]
|
||||
> However, it's important to note that this emphasis on bleeding-edge software may impact the stability of the system.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Please note that the system utilizes **Podman** instead of **Docker** for containerization due to various reasons, primarily related to security (rootless and daemonless containers), easier migration to Kubernetes, availability of pods, compatibility with systemd, and better security for `distrobox`. If you prefer to use **Docker** instead of **Podman**, you can make the switch by commenting out the **Podman** section in the `nixos/virtualisation.nix` file and uncommenting the **Docker** section. More details on **Docker** configuration in NixOS can be found [here](https://nixos.wiki/wiki/Docker).
|
||||
|
||||
> [!NOTE]
|
||||
> The system also enables SELinux patches, as well as AppArmor and Tomoyo Linux Security Modules. It includes security daemons such as Fail2Ban and USBGuard, with Firejail preinstalled to meet your security requirements.
|
||||
|
||||
You have the flexibility to customize these configurations according to your needs by modifying the respective configuration files.
|
||||
|
||||
## 🌟 Showcase
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The showcased images do not reflect the latest version of the system's appearance. The final setup may vary slightly.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
[Showcase Video](home/Videos/Records/record.mp4)
|
||||
|
||||
## 🔧 Components
|
||||
|
||||
| Component | Version/Name |
|
||||
|-----------------------|-----------------------------|
|
||||
| Distro | NixOS |
|
||||
| Kernel | Zen |
|
||||
| Shell | Fish |
|
||||
| Display Server | Wayland |
|
||||
| WM (Compositor) | Hyprland |
|
||||
| Bar | Waybar |
|
||||
| Notification | Dunst |
|
||||
| Launcher | Rofi-Wayland |
|
||||
| Editor | Helix |
|
||||
| Terminal | Kitty + Starship |
|
||||
| OSD | Avizo |
|
||||
| Night Gamma | Wlsunset |
|
||||
| Fetch Utility | Neofetch |
|
||||
| Theme | Catppuccin Macchiato |
|
||||
| Icons | Colloid-teal-dark, Numix-Circle |
|
||||
| Font | JetBrains Mono + Nerd Font Patch |
|
||||
| Player | Youtube Music + Spotify |
|
||||
| File Browser | Thunar + Yazi |
|
||||
| Internet Browser | Qutebrowser, Brave + Vimium + NightTab + Stylus |
|
||||
| Mimetypes | MPV, Imv, Zathura |
|
||||
| Image Editor | Swappy |
|
||||
| Screenshot | Grim + Slurp |
|
||||
| Recorder | Wl-screenrec |
|
||||
| Color Picker | Hyprpicker |
|
||||
| Clipboard | Wl-clipboard + Cliphist + Wl-clip-persist |
|
||||
| Idle | Hypridle |
|
||||
| Lock | Hyprlock |
|
||||
| Logout menu | Wlogout |
|
||||
| Wallpaper | Hyprpaper |
|
||||
| Graphical Boot | Plymouth + Catppuccin-plymouth |
|
||||
| Display Manager | Greetd + Tuigreet |
|
||||
| Containerization | Podman |
|
||||
|
||||
And many other useful utilities. The full list can be found in the system configuration files at `nixos` directory.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 🔄 **Reproducible**: Built on NixOS, this configuration can be effortlessly reproduced on other machines, ensuring a consistent setup.
|
||||
|
||||
- 🖌️ **Consistent**: Nearly every component has been meticulously styled to adhere to the Catppuccin Macchiato theme, providing a visually cohesive experience.
|
||||
|
||||
- ✅ **Complete**: This system is equipped with a wide range of components and utilities, akin to the completeness of operating systems like MacOS or Windows.
|
||||
|
||||
- 🎨 **Customizable**: Leveraging the power of Linux and Hyprland, this configuration offers extensive customization options, allowing you to tailor your setup to your preferences.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
1. Download and Install NixOS from the [official site](https://nixos.org/download).
|
||||
2. Temporarily install ripgrep and fish using the command: `nix-shell -p ripgrep fish --run fish`. You can also use classic bash and grep for the next step without installing fish and ripgrep.
|
||||
3. Run the command `rg --hidden FIXME` and change/add lines to match your device, swaps, partitions, peripherals, file systems, etc. in the configuration files.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Ensure that you configure USBGuard in the `nixos/usb.nix` file to avoid potential issues. By default, USBGuard blocks all USB devices, which can lead to the disabling of crucial hardware components such as the integrated camera, bluetooth, wifi, etc. To configure USBGuard properly, add your trusted USB devices to the configuration. You can obtain a list of all connected devices by using the `lsusb` command from the `usbutils` package.
|
||||
|
||||
> [!WARNING]
|
||||
> Failure to configure USBGuard appropriately may result in the inability to connect any USB devices to your machine. If needed, you can also disable USBGuard altogether by setting `services.usbguard.enable` to `false` in the configuration:`services.usbguard.enable = false;`. This step ensures that USBGuard is not actively blocking any USB devices.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Remember to update the monitor settings in the Hyprland configuration file located at `home/.config/hypr/hyprland.conf`.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Also, important: If you use disk encryption with LUKS and want to use encrypted swap, you need to enable swap on LUKS. This is usually auto-generated in `/etc/nixos/configuration.nix` as the `boot.initrd.luks.devices."luks-...".device = "/dev/disk/by-uuid/...";` code block, if you set this option up during the NixOS installation process. You can simply copy this snippet to either `nixos/swap.nix`, `nixos/hardware-configuration.nix`, or `nixos/configuration.nix` (Personally, I prefer to copy it to `hardware-configuration.nix`).
|
||||
> Alternatively, you can set it up manually or use [swap encryption with a random key](https://nixos.wiki/wiki/Swap#Encrypt_swap_with_random_key).
|
||||
|
||||
4. To change the default username and/or hostname, run the command `rg --hidden 'xnm'` to find and fix all instances of the username, and `rg --hidden 'isitreal-laptop'` for the hostname.
|
||||
> [!IMPORTANT]
|
||||
> Make sure to change the username to match yours set during installation to avoid login issues.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Also, don't forget to delete or change to my git settings in `home/.gitconfig`, `home/projects/.gitconfig.personal`, `home/.ssh/config`, and `home/work/.gitconfig.work` files, as they are configured for my personal use.
|
||||
|
||||
5. Enable `flake` support (more [here](https://nixos.wiki/wiki/Flakes#Enable_flakes_temporarily)) on your current system. Don't forget to run `sudo nixos-rebuild switch` after enabling `flake` in your `/etc/configuration.nix`.
|
||||
6. Copy or move all files (with replacements) from the `home` directory to your `$HOME` directory in Linux.
|
||||
7. Copy or move all files (with replacements and **sudo** permissions) from the `nixos` directory to `/etc/nixos/`.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Ensure that `system.stateVersion = "your_version";` is correctly set to the release version of the initial installation of your system in the `configuration.nix` file.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Also, for security reasons, ensure all files in the `/etc/nixos` directory are owned by **root**. If not, change ownership using the command: `sudo chown -R root:root /etc/nixos`.
|
||||
|
||||
8. Run the command `sudo nix flake update --flake /etc/nixos; and sudo nixos-rebuild switch --flake /etc/nixos#your-hostname --upgrade` or `nswitchu`. If you chose first command, replace `your-hostname` with your hostname before running the command; by default, hostname is set to `isitreal-laptop`.
|
||||
9. Post-installation configuration:
|
||||
|
||||
- Import GNOME settings along with the theme by executing the following command: `dconf load / < home/.config/gnome_settings_backup.dconf`. Additionally, you can use tools like **gnome-tweaks** or **themechanger** to fine-tune specific theme preferences to your liking.
|
||||
|
||||
- Install dictionaries for spellchecking in Qutebrowser by using the similar command in **bash**: `$(find $(nix-store --query --outputs $(which qutebrowser)) -iname '*dictcli.py*' | head -1) install en-US hi-IN`.
|
||||
To obtain a list of all available dictionaries, run: `$(find $(nix-store --query --outputs $(which qutebrowser)) -iname '*dictcli.py*' | head -1) list` in **bash**.
|
||||
For more information, visit [the Qutebrowser page on the nixos wiki](https://wiki.nixos.org/wiki/Qutebrowser).
|
||||
|
||||
- Apply Catppuccin theme for websites in your browser (Brave, Firefox, Chromium):
|
||||
- Install the Stylus Extension from its [official website](https://add0n.com/stylus.html).
|
||||
- Open the extension's settings page and navigate to the Backup section.
|
||||
- Click "Import" and select the file `home/.config/stylus-catppuccin.json`.
|
||||
|
||||
- Apply Catppuccin theme for Cool-Retro-Term:
|
||||
- Launch Cool-Retro-Term.
|
||||
- Right-click on the window and select "Settings".
|
||||
- In the General panel, click "Import" and select the file `home/.config/cool-retro-term-style.json`.
|
||||
- Select the imported profile named "catppuccin-theme".
|
||||
- Click "Load" and exit from "Settings".
|
||||
|
||||
- Apply Open-WebUI Settings
|
||||
- Navigate to the Open-WebUI page: `http://localhost:8888`.
|
||||
- Signup or signin if you haven't already done so.
|
||||
- Click on the user photo in the top-right corner.
|
||||
- From the dropdown menu, select "Admin Panel".
|
||||
- In the Admin Panel, go to the "Settings" tab.
|
||||
- Under the Settings tab, locate and click on the "Database" section.
|
||||
- Click "Import Config from JSON File" and select the configuration file: `home/.config/open-webui-config.json` from your file manager.
|
||||
|
||||
- Login to your accounts.
|
||||
|
||||
- Customize graphical applications to suit your preferences.
|
||||
|
||||
After this, you will have a complete system.
|
||||
|
||||
## ⌨️ Keybindings
|
||||
|
||||
### Main
|
||||
|
||||
| Key Combination | Action |
|
||||
|------------------------|------------------------------|
|
||||
| ALT + R | Resize windows mode |
|
||||
| ALT + M | Move windows mode |
|
||||
| SUPER + H, J, K, L/Arrows | Change window focus |
|
||||
| SUPER + 1..0 | Change workspace (1-10) |
|
||||
| SUPER + ALT + 1..0 | Change workspace (11-20)|
|
||||
| SUPER + SHIFT + 1..0 | Move window to workspace (1-10) |
|
||||
| SUPER + SHIFT + ALT + 1..0 | Move window to workspace (11-20) |
|
||||
| SUPER + SHIFT + Q | Kill active window |
|
||||
| SUPER + SHIFT + F | Toggle floating window |
|
||||
| SUPER + CTRL + F | Toggle full-screen |
|
||||
| SUPER + SHIFT + O | Toggle split |
|
||||
| SUPER + SHIFT + P | Toggle pseudo |
|
||||
| SUPER + SHIFT + M | Exit from `hyprland` |
|
||||
| SUPER + CTRL + E | Expose all windows using `pyprland` |
|
||||
| SUPER + CTRL + M | Expose all minimized windows using `pyprland` |
|
||||
| SUPER + M | Minimize or restore a window using `pyprland` |
|
||||
| SUPER + CTRL + T | Launch scratchpad with `wezterm` using `pyprland` |
|
||||
| SUPER + CTRL + V | Launch scratchpad with `pavucontrol` using `pyprland` |
|
||||
| SUPER + T | Launch `wezterm` |
|
||||
| SUPER + D | Launch `rofi -drun` |
|
||||
| SUPER + B | Launch `qutebrowser` |
|
||||
| SUPER + SHIFT + B | Launch `brave` |
|
||||
| SUPER + F | Launch `thunar` |
|
||||
| SUPER + ESCAPE | Launch `wlogout` |
|
||||
| SUPER + S | Launch `spotify` |
|
||||
| SUPER + Y | Launch `youtube-music` |
|
||||
| SUPER + SHIFT + D | Launch `discord` |
|
||||
| SUPER + SHIFT + T | Launch `telegram` |
|
||||
| SUPER + SHIFT + L | Launch `hyprlock` |
|
||||
| SUPER + SHIFT + S | Take screenshot |
|
||||
| SUPER + E | Launch `swappy` to edit last taken screenshot |
|
||||
| SUPER + R | Record screen area (MP4) |
|
||||
| SUPER + SHIFT + R | Record screen area (GIF) |
|
||||
| SUPER + C | Launch color picker (using `hyperpicer`) |
|
||||
| SUPER + Z | Toggle Zoom (with `pyprland`)|
|
||||
| SUPER + V | Launch clipboard menu (`rofi -dmenu`) |
|
||||
| SUPER + SHIFT + V | Launch clipboard menu (`rofi -dmenu`) (copy to clipboard) |
|
||||
| SUPER + X | Launch clipboard deletion item menu (`rofi -dmenu`) |
|
||||
| SUPER + SHIFT + X | Clear clipboard |
|
||||
| SUPER + U | Launch bookmark menu (`rofi -dmenu`) |
|
||||
| SUPER + SHIFT + U | Add text from clipboard to bookmark |
|
||||
| SUPER + CTRL + U | Launch bookmark deletion item menu (`rofi -dmenu`) |
|
||||
| SUPER + SHIFT + A | Toggle airplane mode |
|
||||
| SUPER + SHIFT + N | Toggle notifications |
|
||||
| SUPER + SHIFT + Y | Toggle bluetooth |
|
||||
| SUPER + SHIFT + W | Toggle wifi |
|
||||
| SUPER + P | Toggle play-pause player |
|
||||
| SUPER + ] | Player next track |
|
||||
| SUPER + [ | Player previous track |
|
||||
|
||||
You can find all other keybindings in `/home/.config/hypr/hyprland.conf` in the bind section. All system fish scripts are located at `/home/.config/fish/functions` directory.
|
||||
|
||||
## 🐟 Useful aliases in Fish Shell
|
||||
|
||||
This system includes a fish shell configuration file (`/home/.config/fish/config.fish`) that provides various aliases to enhance your experience working with it.
|
||||
|
||||
Common commands:
|
||||
- `cl`: clear the terminal screen (shorthand for `clear`)
|
||||
- `lgit`: launch the `lazygit` command-line Git client
|
||||
- `ldocker`: launch the `lazydocker` command-line Docker client
|
||||
- `conf`: navigate to the `~/.config` directory
|
||||
|
||||
NixOS-specific commands:
|
||||
- `nswitch`: rebuild your system using the current flake
|
||||
- `nswitchu`: rebuild and update your system using the current flake
|
||||
- `nau`: add the unstable channel to the package manager
|
||||
- `nsgc`: optimize the nix store and remove unreferenced and obsolete store paths (equivalent to `sudo nix-store --gc`)
|
||||
- `ngc`: delete all old generations of user profiles (equivalent to `sudo nix-collect-garbage -d`)
|
||||
- `ngc7`: delete generations of user profiles older than 7 days (equivalent to `sudo nix-collect-garbage --delete-older-than 7d`)
|
||||
- `ngc14`: delete generations of user profiles older than 14 days (equivalent to `sudo nix-collect-garbage --delete-older-than 14d`)
|
||||
- `nixos`: navigate to the `/etc/nixos` directory
|
||||
- `store`: navigate to the `/nix/store` directory
|
||||
|
||||
You can customize this configuration by adding more aliases to the file and editing existing ones. This makes your experience more personalized and smoother.
|
||||
|
||||
## 🤖 AI Tools and Services
|
||||
|
||||
This configuration includes several AI/LLM tools and services for local development and experimentation:
|
||||
|
||||
**Local AI Services:**
|
||||
- **Ollama** - Local LLM server with pre-loaded models:
|
||||
- Accessible at `http://localhost:11434`
|
||||
- Models: `llama3.2:3b`, `llama3.2-vision:11b`, `phi4:14b`, `deepseek-r1:7b`, `dolphin3:8b`, `smallthinker:3b`
|
||||
- Text embedding model: `nomic-embed-text`
|
||||
- CUDA acceleration enabled for GPU inference
|
||||
|
||||
- **SearXNG (Searx fork)** - Privacy-respecting meta search engine:
|
||||
- Accessible at `http://localhost:7777`
|
||||
- Supports HTML and JSON formats
|
||||
- 🔒 Remember to set `SEARX_SECRET_KEY` in your environment file: `home/.config/.env.searxng`
|
||||
|
||||
- **Open WebUI** - Local ChatGPT-style UI for Ollama:
|
||||
- Accessible at `http://localhost:8888`
|
||||
- Modern web interface with conversation history
|
||||
- Supports model switching and prompt templates
|
||||
|
||||
**AI Tools:**
|
||||
- `aichat` - ChatGPT-like CLI and REPL with lot of features
|
||||
- `aider-chat` - Code assistant/chat directly in the terminal
|
||||
- `alpaca` - GUI LLM client with markdown support
|
||||
- `oterm` - TUI LLM client with markdown support
|
||||
|
||||
> [!NOTE]
|
||||
> These AI services are enabled by default.
|
||||
|
||||
To disable them:
|
||||
1. Edit `nixos/llm.nix`
|
||||
2. Disable services by setting their `enable` attribute to `false`:
|
||||
```nix
|
||||
services.ollama.enable = false;
|
||||
services.searx.enable = false;
|
||||
services.open-webui.enable = false;
|
||||
```
|
||||
3. Remove AI CLI tools from `environment.systemPackages` if desired
|
||||
4. Rebuild your configuration with `nswitch`
|
||||
|
||||
## 🦀 Useful info for Rustaceans
|
||||
|
||||
Here are some tips to enhance your Rust experience on this system:
|
||||
|
||||
1. **Installation Customization:**
|
||||
This system utilizes [rust-overlay](https://github.com/oxalica/rust-overlay) for Rust installation using the Nix approach. To customize the installation, including modifications to compilation targets, components, channels, or profiles, follow these steps:
|
||||
|
||||
- Locate the `nixos/rust-toolchain.toml` file and make the necessary adjustments based on your requirements.
|
||||
|
||||
- If you are working on multiple projects with distinct `rust-toolchain.toml` files or need to switch between stable and nightly Rust versions, consider the following options:
|
||||
|
||||
- Set up a Nix environment using `flake.nix` and [rust-overlay](https://github.com/oxalica/rust-overlay) for each project separately. Utilize `nix develop` or `direnv` to manage project-specific Rust environments.
|
||||
|
||||
- Alternatively, you can install `rustup` through `environment.systemPackages` and nixpkgs for a system-wide Rust setup. This allows you to manage Rust versions globally through `rustup`.
|
||||
|
||||
2. **Troubleshooting Compilation Issues:**
|
||||
If you encounter issues during Rust compilation, particularly those related to OpenSSL, SQLite, Wayland, or any other program utilized by `pkg-config` in the compilation process (see [here](https://nixos.wiki/wiki/Rust#Building_Rust_crates_that_require_external_system_libraries)), you can employ the `nix-shell -p pkg-config {your_dependency} [other_dependencies] --run fish` command. This command opens a Nix shell with the necessary dependencies, facilitating seamless code compilation. Alternatively, you can employ the approach outlined in the initial section (Installation Customization) by utilizing `flake.nix` with dev shell instead of `nix-shell`.
|
||||
Moreover, when using the Nix Dev shell, be aware that the compilation takes place in the runtime directory, which might be insufficient for certain projects. To address this, you can adjust the runtime directory size in the `nixos/users.nix` file under `services.logind.extraConfig="RuntimeDirectorySize=8G"`.
|
||||
|
||||
3. **Cross-Compilation:**
|
||||
For cross-compilation, consider using tools like `zigbuild` or `cross`. Personally, I find `zigbuild` preferable, but both are valuable options for your cross-compilation needs.
|
||||
|
||||
4. **Cargo and Rust Tools:**
|
||||
This system comes equipped with a variety of cargo and rust tools to ensure a smooth Rust development experience. Some of these tools include:
|
||||
- `rust-analyzer`
|
||||
- `cargo-watch`
|
||||
- `cargo-deny`
|
||||
- `cargo-audit`
|
||||
- `cargo-update`
|
||||
- `cargo-edit`
|
||||
- `cargo-outdated`
|
||||
- `cargo-license`
|
||||
- `cargo-tarpaulin`
|
||||
- `cargo-cross`
|
||||
- `cargo-zigbuild`
|
||||
- `cargo-nextest`
|
||||
- `cargo-spellcheck`
|
||||
- `cargo-modules`
|
||||
- `cargo-bloat`
|
||||
- `cargo-unused-features`
|
||||
- `cargo-feature`
|
||||
- `cargo-features-manager`
|
||||
- `bacon`
|
||||
|
||||
5. **Environment Setup:**
|
||||
You can set up your Rust project environment on this system using `nix develop` or `nix-shell` with `default.nix`, `shell.nix`, or `flake.nix` to create a tailored environment for your Rust project (Also, I personally recommend using it alongside with [direnv](https://direnv.net/)).
|
||||
|
||||
## 🔑 Yubikey on NixOS
|
||||
This repo contains a NixOS configuration file (`nixos/yubikey.nix`) enabling:
|
||||
|
||||
- Yubikey authentication with pam_u2f
|
||||
- Passwordless login in greetd, sudo, ssh, and hyprlock
|
||||
|
||||
> [!WARNING]
|
||||
> While convenient, using a Yubikey for display managers (like greetd) and screen lockers (like hyprlock) without additional two-factor or multi-factor authentication (2FA/MFA) has risks. If your Yubikey is lost or stolen, someone could gain full system access before you reset keys. Yubikeys excel at protecting against online attacks but are less secure against offline attacks.
|
||||
|
||||
> [!TIP]
|
||||
> For enhanced security and a passwordless experience:
|
||||
You can consider a YubiKey Bio Series device. These keys support FIDO2/WebAuthn and FIDO U2F and has built in fingerprint scanner for strong authentication. Please note, they do not offer Smart card, OpenPGP, or OTP functionality.
|
||||
|
||||
## 📜 License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
0
home/.bookmarks
Normal file
0
home/.bookmarks
Normal file
7
home/.cargo/.crates.toml
Normal file
7
home/.cargo/.crates.toml
Normal file
@@ -0,0 +1,7 @@
|
||||
[v1]
|
||||
"cargo-contract 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-contract"]
|
||||
"cargo-dylint 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-dylint"]
|
||||
"contracts-node 0.35.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["substrate-contracts-node"]
|
||||
"dylint-link 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["dylint-link"]
|
||||
"ink-lsp-server 0.2.15 (registry+https://github.com/rust-lang/crates.io-index)" = ["ink-lsp-server"]
|
||||
"lsp-ai 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["lsp-ai"]
|
1
home/.config/.env.searxng
Normal file
1
home/.config/.env.searxng
Normal file
@@ -0,0 +1 @@
|
||||
SEARX_SECRET_KEY=your_custom_key_here # FIXME
|
@@ -0,0 +1,357 @@
|
||||
[%General]
|
||||
author=Tsu Jan
|
||||
comment=A theme inspired by Enlightenment
|
||||
respect_DE=true
|
||||
x11drag=true
|
||||
alt_mnemonic=true
|
||||
left_tabs=false
|
||||
joined_inactive_tabs=true
|
||||
attach_active_tab=false
|
||||
group_toolbar_buttons=false
|
||||
composite=true
|
||||
menu_shadow_depth=6
|
||||
tooltip_shadow_depth=6
|
||||
splitter_width=7
|
||||
scroll_width=12
|
||||
slider_width=8
|
||||
slider_handle_width=16
|
||||
slider_handle_length=16
|
||||
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,VirtualBoxVM,trojita,dragon,digikam,lyx
|
||||
transient_scrollbar=true
|
||||
|
||||
[GeneralColors]
|
||||
window.color=#3D3D3E
|
||||
base.color=#2E2E2E
|
||||
alt.base.color=#383838
|
||||
button.color=#494949
|
||||
light.color=#626262
|
||||
mid.light.color=#555555
|
||||
dark.color=#171717
|
||||
mid.color=#3C3C3C
|
||||
highlight.color=#737373
|
||||
inactive.highlight.color=#4A4A4A
|
||||
tooltip.base.color=black
|
||||
text.color=white
|
||||
window.text.color=white
|
||||
button.text.color=white
|
||||
disabled.text.color=#A0A0A0
|
||||
tooltip.text.color=white
|
||||
highlight.text.color=white
|
||||
link.color=#2EB8E6
|
||||
link.visited.color=#FF6666
|
||||
|
||||
[Hacks]
|
||||
respect_darkness=true
|
||||
iconless_pushbutton=true
|
||||
iconless_menu=true
|
||||
|
||||
[PanelButtonCommand]
|
||||
frame=true
|
||||
frame.element=button
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
interior=true
|
||||
interior.element=button
|
||||
indicator.size=9
|
||||
text.normal.color=white
|
||||
text.focus.color=#80C0FF
|
||||
text.press.color=white
|
||||
text.toggle.color=white
|
||||
text.shadow=false
|
||||
text.margin=1
|
||||
text.iconspacing=4
|
||||
indicator.element=arrow
|
||||
text.margin.top=3
|
||||
text.margin.bottom=3
|
||||
text.margin.left=4
|
||||
text.margin.right=4
|
||||
text.shadow.xshift=1
|
||||
text.shadow.yshift=1
|
||||
text.shadow.color=#000000
|
||||
text.shadow.alpha=255
|
||||
text.shadow.depth=1
|
||||
|
||||
[PanelButtonTool]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[Dock]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
|
||||
[DockTitle]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=true
|
||||
interior.element=dock
|
||||
text.focus.color=white
|
||||
text.bold=true
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[IndicatorSpinBox]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.element=arrow
|
||||
frame.element=spin
|
||||
interior.element=spin
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
indicator.size=9
|
||||
|
||||
[RadioButton]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=radio
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[CheckBox]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=checkbox
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[Focus]
|
||||
inherits=PanelButtonCommand
|
||||
interior=false
|
||||
frame=true
|
||||
frame.element=focus
|
||||
frame.top=1
|
||||
frame.bottom=1
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
frame.patternsize=20
|
||||
|
||||
[GenericFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame=true
|
||||
interior=false
|
||||
frame.element=common
|
||||
interior.element=common
|
||||
|
||||
[LineEdit]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=lineedit
|
||||
interior.element=lineedit
|
||||
|
||||
[DropDownButton]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.element=arrow-down
|
||||
|
||||
[IndicatorArrow]
|
||||
indicator.element=arrow
|
||||
indicator.size=9
|
||||
|
||||
[ToolboxTab]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[Tab]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=tab
|
||||
text.margin.left=8
|
||||
text.margin.right=8
|
||||
frame.element=tab
|
||||
indicator.element=tab
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
|
||||
[TabFrame]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=tabframe
|
||||
interior.element=common
|
||||
|
||||
[TreeExpander]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior=false
|
||||
indicator.size=7
|
||||
|
||||
[HeaderSection]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[SizeGrip]
|
||||
indicator.element=sizegrip
|
||||
|
||||
[Toolbar]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.element=toolbar
|
||||
indicator.size=5
|
||||
frame.element=toolbar
|
||||
interior.element=toolbar
|
||||
|
||||
[Slider]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=slider
|
||||
interior.element=slider
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
|
||||
[SliderCursor]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=slidercursor
|
||||
|
||||
[Progressbar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=progress
|
||||
interior.element=progress
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
text.focus.color=white
|
||||
text.bold=true
|
||||
|
||||
[ProgressbarContents]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=progress-pattern
|
||||
|
||||
[ItemView]
|
||||
inherits=PanelButtonCommand
|
||||
text.margin=0
|
||||
frame.element=itemview
|
||||
interior.element=itemview
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
|
||||
[Splitter]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=splitter
|
||||
frame.element=splitter
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
frame.left=1
|
||||
frame.right=1
|
||||
indicator.element=splitter-grip
|
||||
indicator.size=16
|
||||
|
||||
[Scrollbar]
|
||||
inherits=PanelButtonCommand
|
||||
indicator.size=8
|
||||
|
||||
[ScrollbarSlider]
|
||||
inherits=PanelButtonCommand
|
||||
frame.element=scrollbarslider
|
||||
interior.element=scrollbarslider
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
indicator.element=grip
|
||||
indicator.size=13
|
||||
|
||||
[ScrollbarGroove]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=slider
|
||||
frame.element=slider
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
frame.left=4
|
||||
frame.right=4
|
||||
|
||||
[MenuItem]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=menuitem
|
||||
indicator.element=menuitem
|
||||
min_height=22
|
||||
text.focus.color=#4DA6FF
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[MenuBarItem]
|
||||
inherits=PanelButtonCommand
|
||||
interior.element=menubaritem
|
||||
frame.element=menubaritem
|
||||
frame.top=2
|
||||
frame.bottom=2
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
|
||||
[MenuBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame.top=0
|
||||
frame.bottom=0
|
||||
frame.left=2
|
||||
frame.right=2
|
||||
frame.element=menuitem
|
||||
interior.element=menuitem
|
||||
|
||||
[TitleBar]
|
||||
inherits=PanelButtonCommand
|
||||
frame=false
|
||||
interior.element=titlebar
|
||||
indicator.size=12
|
||||
indicator.element=mdi
|
||||
text.normal.color=black
|
||||
text.focus.color=white
|
||||
text.margin.top=2
|
||||
text.margin.bottom=2
|
||||
text.margin.left=3
|
||||
text.margin.right=3
|
||||
|
||||
[ComboBox]
|
||||
inherits=PanelButtonCommand
|
||||
|
||||
[Menu]
|
||||
inherits=PanelButtonCommand
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
frame.element=menu
|
||||
interior.element=menu
|
||||
|
||||
[GroupBox]
|
||||
inherits=GenericFrame
|
||||
frame=true
|
||||
frame.element=group
|
||||
interior=true
|
||||
interior.element=group
|
||||
text.shadow=false
|
||||
text.margin=0
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
|
||||
[TabBarFrame]
|
||||
inherits=GenericFrame
|
||||
frame=false
|
||||
interior=false
|
||||
text.shadow=false
|
||||
|
||||
[ToolTip]
|
||||
inherits=GenericFrame
|
||||
frame.top=3
|
||||
frame.bottom=3
|
||||
frame.left=3
|
||||
frame.right=3
|
||||
interior=true
|
||||
text.shadow=false
|
||||
text.margin=0
|
||||
interior.element=tooltip
|
||||
frame.element=tooltip
|
||||
|
||||
[Window]
|
||||
interior=false
|
2
home/.config/Kvantum/kvantum.kvconfig
Normal file
2
home/.config/Kvantum/kvantum.kvconfig
Normal file
@@ -0,0 +1,2 @@
|
||||
[General]
|
||||
theme=catppuccin-macchiato-teal-standard#
|
117
home/.config/Thunar/accels.scm
Normal file
117
home/.config/Thunar/accels.scm
Normal file
@@ -0,0 +1,117 @@
|
||||
; Thunar GtkAccelMap rc-file -*- scheme -*-
|
||||
; this file is an automated accelerator map dump
|
||||
;
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/undo" "<Primary>z")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-all-files" "<Primary>a")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-dtime" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-last-modified" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/invert-selection" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-display-name" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/cut" "<Primary>x")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/restore-show" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in" "<Primary>KP_Add")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-ascending" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/empty-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload" "<Primary>r")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-image-preview" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/cut-2" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete" "Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-network" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/trash-delete-2" "KP_Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents/help-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/set-default-app" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back-alt" "BackSpace")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-tab" "<Primary><Shift>p")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-next-tab" "<Primary>Page_Down")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-menu" "F10")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-compact-list" "<Primary>3")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/about" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-computer" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/clear-directory-specific-settings" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-file-system" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-parent" "<Alt>Up")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/copy" "<Primary>c")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/properties" "<Alt>Return")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/back" "<Alt>Left")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/sendto-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-mtime" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-location" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/bookmarks-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/reload-alt" "F5")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-buttons" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size-in-bytes" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/unselect-all-files" "Escape")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/copy-2" "<Primary>Insert")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out-alt" "<Primary>minus")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/cancel-search" "Escape")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/select-by-pattern" "<Primary>s")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/rename" "F2")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/configure-columns" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-document" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarShortcutsPane/sendto-shortcuts" "<Primary>d")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/move-to-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-tab" "<Primary>w")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-tree" "<Primary>e")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open" "<Primary>o")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-side-pane" "F9")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-entry" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-recent" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-home" "<Alt>Home")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/toggle-split-view" "F3")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-templates" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location-alt" "<Alt>d")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/create-folder" "<Primary><Shift>n")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/search" "<Primary>f")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-type" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste-2" "<Shift>Insert")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt2" "<Primary>equal")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/duplicate" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/remove-from-recent" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-out" "<Primary>KP_Subtract")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-window" "<Primary>q")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/edit-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-side-pane-shortcuts" "<Primary>b")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/show-highlight" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/contents" "F1")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/preferences" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/switch-previous-tab" "<Primary>Page_Up")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-in-alt1" "<Primary>plus")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/toggle-sort-order" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-in-new-window" "<Primary><Shift>o")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-configure-toolbar" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-location-selector-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-statusbar" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/close-all-windows" "<Primary><Shift>w")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-trash" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/paste" "<Primary>v")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-3" "<Shift>KP_Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/execute" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-desktop" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/open-with-other" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-size" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/sendto-desktop" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/open-location" "<Primary>l")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-menubar" "<Primary>m")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset-alt" "<Primary>0")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-detailed-list" "<Primary>2")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/view-as-icons" "<Primary>1")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-window" "<Primary>n")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/forward" "<Alt>Right")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/redo" "<Primary><Shift>z")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-descending" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/file-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/make-link" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarActionManager/delete-2" "<Shift>Delete")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/go-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-size" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/arrange-items-menu" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/show-hidden" "<Primary>h")
|
||||
; (gtk_accel_path "<Actions>/ThunarStandardView/sort-by-name" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/zoom-reset" "<Primary>KP_0")
|
||||
; (gtk_accel_path "<Actions>/ThunarStatusBar/toggle-filetype" "")
|
||||
; (gtk_accel_path "<Actions>/ThunarWindow/detach-tab" "")
|
13
home/.config/Thunar/uca.xml
Normal file
13
home/.config/Thunar/uca.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<actions>
|
||||
<action>
|
||||
<icon>utilities-terminal</icon>
|
||||
<name>Open Terminal Here</name>
|
||||
<unique-id>1673101737831851-1</unique-id>
|
||||
<command>exo-open --working-directory %f --launch TerminalEmulator</command>
|
||||
<description>Example for a custom action</description>
|
||||
<patterns>*</patterns>
|
||||
<startup-notify/>
|
||||
<directories/>
|
||||
</action>
|
||||
</actions>
|
206
home/.config/YouTube Music/config.json
Normal file
206
home/.config/YouTube Music/config.json
Normal file
@@ -0,0 +1,206 @@
|
||||
{
|
||||
"window-size": {
|
||||
"width": 1500,
|
||||
"height": 803
|
||||
},
|
||||
"url": "https://music.youtube.com",
|
||||
"options": {
|
||||
"tray": false,
|
||||
"appVisible": true,
|
||||
"autoUpdates": false,
|
||||
"hideMenu": false,
|
||||
"startAtLogin": false,
|
||||
"disableHardwareAcceleration": false,
|
||||
"restartOnConfigChanges": false,
|
||||
"trayClickPlayPause": false,
|
||||
"autoResetAppCache": false,
|
||||
"resumeOnStart": true,
|
||||
"proxy": "",
|
||||
"startingPage": "",
|
||||
"themes": [
|
||||
"/home/xnm/.config/YouTube Music/macchiato.css"
|
||||
]
|
||||
},
|
||||
"plugins": {
|
||||
"navigation": {
|
||||
"enabled": true
|
||||
},
|
||||
"adblocker": {
|
||||
"enabled": true,
|
||||
"cache": true,
|
||||
"additionalBlockLists": []
|
||||
},
|
||||
"shortcuts": {
|
||||
"enabled": false,
|
||||
"overrideMediaKeys": false
|
||||
},
|
||||
"downloader": {
|
||||
"enabled": false,
|
||||
"ffmpegArgs": [],
|
||||
"preset": "mp3"
|
||||
},
|
||||
"last-fm": {
|
||||
"enabled": false,
|
||||
"api_root": "http://ws.audioscrobbler.com/2.0/",
|
||||
"api_key": "",
|
||||
"secret": ""
|
||||
},
|
||||
"discord": {
|
||||
"enabled": false,
|
||||
"autoReconnect": true,
|
||||
"activityTimoutEnabled": true,
|
||||
"activityTimoutTime": 600000,
|
||||
"listenAlong": true,
|
||||
"hideDurationLeft": false
|
||||
},
|
||||
"notifications": {
|
||||
"enabled": true,
|
||||
"unpauseNotification": false,
|
||||
"urgency": "normal",
|
||||
"interactive": true,
|
||||
"toastStyle": 1,
|
||||
"refreshOnPlayPause": false,
|
||||
"trayControls": true,
|
||||
"hideButtonText": false
|
||||
},
|
||||
"precise-volume": {
|
||||
"enabled": false,
|
||||
"steps": 1,
|
||||
"arrowsShortcut": true,
|
||||
"globalShortcuts": {
|
||||
"volumeUp": "",
|
||||
"volumeDown": ""
|
||||
}
|
||||
},
|
||||
"sponsorblock": {
|
||||
"enabled": false,
|
||||
"apiURL": "https://sponsor.ajay.app",
|
||||
"categories": [
|
||||
"sponsor",
|
||||
"intro",
|
||||
"outro",
|
||||
"interaction",
|
||||
"selfpromo",
|
||||
"music_offtopic"
|
||||
]
|
||||
},
|
||||
"video-toggle": {
|
||||
"enabled": false,
|
||||
"mode": "custom",
|
||||
"forceHide": false
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"enabled": false,
|
||||
"alwaysOnTop": true,
|
||||
"savePosition": true,
|
||||
"saveSize": false,
|
||||
"hotkey": "P"
|
||||
},
|
||||
"captions-selector": {
|
||||
"enabled": false,
|
||||
"disableCaptions": false
|
||||
},
|
||||
"skip-silences": {
|
||||
"onlySkipBeginning": false
|
||||
},
|
||||
"crossfade": {
|
||||
"enabled": false,
|
||||
"fadeInDuration": 1500,
|
||||
"fadeOutDuration": 5000,
|
||||
"secondsBeforeEnd": 10,
|
||||
"fadeScaling": "linear"
|
||||
},
|
||||
"visualizer": {
|
||||
"enabled": false,
|
||||
"type": "butterchurn",
|
||||
"butterchurn": {
|
||||
"preset": "martin [shadow harlequins shape code] - fata morgana",
|
||||
"renderingFrequencyInMs": 500,
|
||||
"blendTimeInSeconds": 2.7
|
||||
},
|
||||
"vudio": {
|
||||
"effect": "lighting",
|
||||
"accuracy": 128,
|
||||
"lighting": {
|
||||
"maxHeight": 160,
|
||||
"maxSize": 12,
|
||||
"lineWidth": 1,
|
||||
"color": "#49f3f7",
|
||||
"shadowBlur": 2,
|
||||
"shadowColor": "rgba(244,244,244,.5)",
|
||||
"fadeSide": true,
|
||||
"prettify": false,
|
||||
"horizontalAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"dottify": true
|
||||
}
|
||||
},
|
||||
"wave": {
|
||||
"animations": [
|
||||
{
|
||||
"type": "Cubes",
|
||||
"config": {
|
||||
"bottom": true,
|
||||
"count": 30,
|
||||
"cubeHeight": 5,
|
||||
"fillColor": {
|
||||
"gradient": [
|
||||
"#FAD961",
|
||||
"#F76B1C"
|
||||
]
|
||||
},
|
||||
"lineColor": "rgba(0,0,0,0)",
|
||||
"radius": 20
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Cubes",
|
||||
"config": {
|
||||
"top": true,
|
||||
"count": 12,
|
||||
"cubeHeight": 5,
|
||||
"fillColor": {
|
||||
"gradient": [
|
||||
"#FAD961",
|
||||
"#F76B1C"
|
||||
]
|
||||
},
|
||||
"lineColor": "rgba(0,0,0,0)",
|
||||
"radius": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Circles",
|
||||
"config": {
|
||||
"lineColor": {
|
||||
"gradient": [
|
||||
"#FAD961",
|
||||
"#FAD961",
|
||||
"#F76B1C"
|
||||
],
|
||||
"rotate": 90
|
||||
},
|
||||
"lineWidth": 4,
|
||||
"diameter": 20,
|
||||
"count": 10,
|
||||
"frequencyBand": "base"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"in-app-menu": {
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"__internal__": {
|
||||
"migrations": {
|
||||
"version": "1.20.0"
|
||||
}
|
||||
},
|
||||
"window-maximized": false,
|
||||
"window-position": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
}
|
1518
home/.config/YouTube Music/macchiato.css
Normal file
1518
home/.config/YouTube Music/macchiato.css
Normal file
File diff suppressed because it is too large
Load Diff
66
home/.config/aichat/config.yaml
Normal file
66
home/.config/aichat/config.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
# model: ollama:gemma3:4b
|
||||
model: deepseek:deepseek-chat
|
||||
keybindings: vi
|
||||
function_calling: true
|
||||
rag_embedding_model: nomic-embed-text:latest
|
||||
clients:
|
||||
- type: openai-compatible
|
||||
name: ollama
|
||||
api_base: http://127.0.0.1:11434/v1
|
||||
models:
|
||||
- name: llama3.2:3b
|
||||
max_input_tokens: 128000
|
||||
supports_function_calling: true
|
||||
|
||||
- name: phi4-reasoning:14b
|
||||
max_input_tokens: 32000
|
||||
supports_function_calling: true
|
||||
|
||||
- name: dolphin3:8b
|
||||
max_input_tokens: 128000
|
||||
supports_function_calling: true
|
||||
|
||||
- name: smallthinker:3b
|
||||
max_input_tokens: 32000
|
||||
supports_function_calling: true
|
||||
|
||||
- name: gemma3:4b
|
||||
max_input_tokens: 128000
|
||||
supports_vision: true
|
||||
supports_function_calling: true
|
||||
|
||||
- name: gemma3:12b
|
||||
max_input_tokens: 128000
|
||||
supports_vision: true
|
||||
supports_function_calling: true
|
||||
|
||||
- name: gemma3:27b
|
||||
max_input_tokens: 128000
|
||||
supports_vision: true
|
||||
supports_function_calling: true
|
||||
|
||||
- name: deepcoder:14b
|
||||
max_input_tokens: 128000
|
||||
|
||||
- name: qwen3:14b
|
||||
max_input_tokens: 40000
|
||||
supports_function_calling: true
|
||||
|
||||
- name: nomic-embed-text:latest
|
||||
type: embedding
|
||||
|
||||
- type: openai-compatible
|
||||
name: deepseek
|
||||
api_base: https://api.deepseek.com/v1
|
||||
api_key: your_api_key # FIXME
|
||||
models:
|
||||
- name: deepseek-chat
|
||||
max_input_tokens: 64000
|
||||
supports_vision: true
|
||||
supports_function_calling: true
|
||||
|
||||
- name: deepseek-reasoner
|
||||
max_input_tokens: 64000
|
||||
supports_vision: true
|
||||
supports_function_calling: true
|
||||
|
39
home/.config/aichat/roles/commit-message.md
Normal file
39
home/.config/aichat/roles/commit-message.md
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
You are an expert in Git commit messages and Conventional Commits specification. Your task is to generate a well-formatted commit message based on the provided code changes, following these guidelines:
|
||||
|
||||
1. **Conventional Commits Format**:
|
||||
- Structure: `<type>(<scope>): <description>`
|
||||
- Common types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
|
||||
- Optional scope for context (e.g., `fix(authentication):`)
|
||||
|
||||
2. **Formatting Requirements**:
|
||||
- Subject line (first line) must be 50 characters or less
|
||||
- Description lines (if needed) must be 72 characters or less
|
||||
- Use Markdown formatting when appropriate (e.g., code blocks, lists)
|
||||
- Separate subject from body with a blank line
|
||||
- Use imperative mood ("Add feature" not "Added feature")
|
||||
|
||||
3. **Output Instructions**:
|
||||
- Analyze the changes carefully to determine the most appropriate type and scope
|
||||
- Write a clear, concise subject line that summarizes the change
|
||||
- Include a detailed body when necessary, explaining:
|
||||
* What changed and why
|
||||
* Any breaking changes (prefixed with `BREAKING CHANGE:`)
|
||||
* Related issues or tickets (e.g., `Closes #123`)
|
||||
|
||||
4. **Example Structure**:
|
||||
```
|
||||
feat(auth): implement password strength validation
|
||||
|
||||
Add password validation rules requiring:
|
||||
- Minimum 8 characters
|
||||
- At least one special character
|
||||
- Not matching common patterns
|
||||
|
||||
Closes #42
|
||||
```
|
||||
|
||||
Please generate the commit message for these changes:
|
33
home/.config/aichat/roles/email-answer.md
Normal file
33
home/.config/aichat/roles/email-answer.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
Please help me craft a professional yet human-sounding email response based on the following:
|
||||
|
||||
**Format:**
|
||||
```
|
||||
Email:
|
||||
<received email>
|
||||
|
||||
Draft/Notes:
|
||||
<my response draft, suggestions, or key points to include>
|
||||
```
|
||||
|
||||
**Response Requirements:**
|
||||
- Format as a complete email response (include greeting, body, and closing)
|
||||
- Maintain the tone and structure of the original email
|
||||
- Keep it concise but descriptive (2-3 paragraphs max)
|
||||
- Sound professional but natural (avoid robotic/formulaic language)
|
||||
- Address all key points from the original email
|
||||
- Include any necessary details from my draft/key points
|
||||
- End with an appropriate closing and signature
|
||||
|
||||
**Important:**
|
||||
- Match the level of formality of the original email
|
||||
- If the original email was friendly, mirror that tone
|
||||
- If it was more formal, maintain that professionalism
|
||||
- Mirror formating of received mail when appropriate
|
||||
- Builds rapport when appropriate
|
||||
- Include proper spacing and formatting for readability
|
||||
- ONLY output the formatted email response (no commentary or notes)
|
||||
- Do not include any meta-commentary or notes
|
36
home/.config/aichat/roles/emoji-commit-message.md
Normal file
36
home/.config/aichat/roles/emoji-commit-message.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
# Git Commit Message Generator
|
||||
|
||||
You are an expert in Git commit messages following Conventional Commits and Gitmoji guidelines. Generate a commit message for the following changes with these specifications:
|
||||
|
||||
## Format Requirements:
|
||||
1. **Structure**: Follow Conventional Commits format:
|
||||
```
|
||||
<type>(<scope>): <emoji> <subject>
|
||||
<BLANK LINE>
|
||||
<body>
|
||||
<BLANK LINE>
|
||||
<footer>
|
||||
```
|
||||
2. **Gitmoji**: Include one relevant Gitmoji at the start of the subject line
|
||||
3. **Length Limits**:
|
||||
- Subject line: 50 characters maximum
|
||||
- Body lines: 72 characters maximum per line
|
||||
4. **Markdown**: Use markdown formatting in the body when appropriate (e.g., code blocks, lists)
|
||||
|
||||
## Content Guidelines:
|
||||
1. **Type**: Choose from: feat, fix, docs, style, refactor, test, chore, etc.
|
||||
2. **Scope**: Optional, specify if relevant (e.g., component name)
|
||||
3. **Subject**: Clear, imperative description of change
|
||||
4. **Body**: Detailed explanation when needed (why, not what)
|
||||
5. **Footer**: Reference issues/PRs (e.g., "Fixes #123")
|
||||
|
||||
## Output Format:
|
||||
- Provide only the commit message text
|
||||
- Do not include any additional commentary
|
||||
- Strictly adhere to character limits
|
||||
|
||||
Please generate the commit message for these changes:
|
18
home/.config/aichat/roles/git-branch.md
Normal file
18
home/.config/aichat/roles/git-branch.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
Generate a descriptive Git branch name that follows conventional branch naming practices for these changes.
|
||||
|
||||
Requirements:
|
||||
- Use lowercase letters and hyphens to separate words (kebab-case)
|
||||
- Keep it concise but descriptive (aim for 3-5 words)
|
||||
- Follow one of these common patterns:
|
||||
* `feature/[short-description]` for new features
|
||||
* `fix/[issue-description]` for bug fixes
|
||||
* `hotfix/[urgent-issue]` for critical production fixes
|
||||
* `docs/[change-description]` for documentation updates
|
||||
* `refactor/[component-description]` for code refactoring
|
||||
* `test/[test-description]` for test-related changes
|
||||
|
||||
Provide 3 potential branch name options that could work for these changes, ranked from most to least preferred, with a brief justification for each choice.
|
522
home/.config/aichat/roles/improve-prompt.md
Normal file
522
home/.config/aichat/roles/improve-prompt.md
Normal file
@@ -0,0 +1,522 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
# IDENTITY and PURPOSE
|
||||
|
||||
You are an expert LLM prompt writing service. You take an LLM/AI prompt as input and output a better prompt based on your prompt writing expertise and the knowledge below.
|
||||
|
||||
START PROMPT WRITING KNOWLEDGE
|
||||
|
||||
Prompt engineering
|
||||
This guide shares strategies and tactics for getting better results from large language models (sometimes referred to as GPT models) like GPT-4. The methods described here can sometimes be deployed in combination for greater effect. We encourage experimentation to find the methods that work best for you.
|
||||
|
||||
Some of the examples demonstrated here currently work only with our most capable model, gpt-4. In general, if you find that a model fails at a task and a more capable model is available, it's often worth trying again with the more capable model.
|
||||
|
||||
You can also explore example prompts which showcase what our models are capable of:
|
||||
|
||||
Prompt examples
|
||||
Explore prompt examples to learn what GPT models can do
|
||||
Six strategies for getting better results
|
||||
Write clear instructions
|
||||
These models can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less the model has to guess at what you want, the more likely you’ll get it.
|
||||
|
||||
Tactics:
|
||||
|
||||
Include details in your query to get more relevant answers
|
||||
Ask the model to adopt a persona
|
||||
Use delimiters to clearly indicate distinct parts of the input
|
||||
Specify the steps required to complete a task
|
||||
Provide examples
|
||||
Specify the desired length of the output
|
||||
Provide reference text
|
||||
Language models can confidently invent fake answers, especially when asked about esoteric topics or for citations and URLs. In the same way that a sheet of notes can help a student do better on a test, providing reference text to these models can help in answering with fewer fabrications.
|
||||
|
||||
Tactics:
|
||||
|
||||
Instruct the model to answer using a reference text
|
||||
Instruct the model to answer with citations from a reference text
|
||||
Split complex tasks into simpler subtasks
|
||||
Just as it is good practice in software engineering to decompose a complex system into a set of modular components, the same is true of tasks submitted to a language model. Complex tasks tend to have higher error rates than simpler tasks. Furthermore, complex tasks can often be re-defined as a workflow of simpler tasks in which the outputs of earlier tasks are used to construct the inputs to later tasks.
|
||||
|
||||
Tactics:
|
||||
|
||||
Use intent classification to identify the most relevant instructions for a user query
|
||||
For dialogue applications that require very long conversations, summarize or filter previous dialogue
|
||||
Summarize long documents piecewise and construct a full summary recursively
|
||||
Give the model time to "think"
|
||||
If asked to multiply 17 by 28, you might not know it instantly, but can still work it out with time. Similarly, models make more reasoning errors when trying to answer right away, rather than taking time to work out an answer. Asking for a "chain of thought" before an answer can help the model reason its way toward correct answers more reliably.
|
||||
|
||||
Tactics:
|
||||
|
||||
Instruct the model to work out its own solution before rushing to a conclusion
|
||||
Use inner monologue or a sequence of queries to hide the model's reasoning process
|
||||
Ask the model if it missed anything on previous passes
|
||||
Use external tools
|
||||
Compensate for the weaknesses of the model by feeding it the outputs of other tools. For example, a text retrieval system (sometimes called RAG or retrieval augmented generation) can tell the model about relevant documents. A code execution engine like OpenAI's Code Interpreter can help the model do math and run code. If a task can be done more reliably or efficiently by a tool rather than by a language model, offload it to get the best of both.
|
||||
|
||||
Tactics:
|
||||
|
||||
Use embeddings-based search to implement efficient knowledge retrieval
|
||||
Use code execution to perform more accurate calculations or call external APIs
|
||||
Give the model access to specific functions
|
||||
Test changes systematically
|
||||
Improving performance is easier if you can measure it. In some cases a modification to a prompt will achieve better performance on a few isolated examples but lead to worse overall performance on a more representative set of examples. Therefore to be sure that a change is net positive to performance it may be necessary to define a comprehensive test suite (also known an as an "eval").
|
||||
|
||||
Tactic:
|
||||
|
||||
Evaluate model outputs with reference to gold-standard answers
|
||||
Tactics
|
||||
Each of the strategies listed above can be instantiated with specific tactics. These tactics are meant to provide ideas for things to try. They are by no means fully comprehensive, and you should feel free to try creative ideas not represented here.
|
||||
|
||||
Strategy: Write clear instructions
|
||||
Tactic: Include details in your query to get more relevant answers
|
||||
In order to get a highly relevant response, make sure that requests provide any important details or context. Otherwise you are leaving it up to the model to guess what you mean.
|
||||
|
||||
Worse Better
|
||||
How do I add numbers in Excel? How do I add up a row of dollar amounts in Excel? I want to do this automatically for a whole sheet of rows with all the totals ending up on the right in a column called "Total".
|
||||
Who’s president? Who was the president of Mexico in 2021, and how frequently are elections held?
|
||||
Write code to calculate the Fibonacci sequence. Write a TypeScript function to efficiently calculate the Fibonacci sequence. Comment the code liberally to explain what each piece does and why it's written that way.
|
||||
Summarize the meeting notes. Summarize the meeting notes in a single paragraph. Then write a markdown list of the speakers and each of their key points. Finally, list the next steps or action items suggested by the speakers, if any.
|
||||
Tactic: Ask the model to adopt a persona
|
||||
The system message can be used to specify the persona used by the model in its replies.
|
||||
|
||||
SYSTEM
|
||||
When I ask for help to write something, you will reply with a document that contains at least one joke or playful comment in every paragraph.
|
||||
USER
|
||||
Write a thank you note to my steel bolt vendor for getting the delivery in on time and in short notice. This made it possible for us to deliver an important order.
|
||||
|
||||
Tactic: Use delimiters to clearly indicate distinct parts of the input
|
||||
Delimiters like triple quotation marks, XML tags, section titles, etc. can help demarcate sections of text to be treated differently.
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes with a haiku.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a pair of articles (delimited with XML tags) about the same topic. First summarize the arguments of each article. Then indicate which of them makes a better argument and explain why.
|
||||
USER
|
||||
|
||||
<article> insert first article here </article>
|
||||
|
||||
<article> insert second article here </article>
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a thesis abstract and a suggested title for it. The thesis title should give the reader a good idea of the topic of the thesis but should also be eye-catching. If the title does not meet these criteria, suggest 5 alternatives.
|
||||
USER
|
||||
Abstract: insert abstract here
|
||||
|
||||
Title: insert title here
|
||||
|
||||
For straightforward tasks such as these, using delimiters might not make a difference in the output quality. However, the more complex a task is the more important it is to disambiguate task details. Don’t make the model work to understand exactly what you are asking of them.
|
||||
|
||||
Tactic: Specify the steps required to complete a task
|
||||
Some tasks are best specified as a sequence of steps. Writing the steps out explicitly can make it easier for the model to follow them.
|
||||
|
||||
SYSTEM
|
||||
Use the following step-by-step instructions to respond to user inputs.
|
||||
|
||||
Step 1 - The user will provide you with text in triple quotes. Summarize this text in one sentence with a prefix that says "Summary: ".
|
||||
|
||||
Step 2 - Translate the summary from Step 1 into Spanish, with a prefix that says "Translation: ".
|
||||
USER
|
||||
"""insert text here"""
|
||||
|
||||
Tactic: Provide examples
|
||||
Providing general instructions that apply to all examples is generally more efficient than demonstrating all permutations of a task by example, but in some cases providing examples may be easier. For example, if you intend for the model to copy a particular style of responding to user queries which is difficult to describe explicitly. This is known as "few-shot" prompting.
|
||||
|
||||
SYSTEM
|
||||
Answer in a consistent style.
|
||||
USER
|
||||
Teach me about patience.
|
||||
ASSISTANT
|
||||
The river that carves the deepest valley flows from a modest spring; the grandest symphony originates from a single note; the most intricate tapestry begins with a solitary thread.
|
||||
USER
|
||||
Teach me about the ocean.
|
||||
|
||||
Tactic: Specify the desired length of the output
|
||||
You can ask the model to produce outputs that are of a given target length. The targeted output length can be specified in terms of the count of words, sentences, paragraphs, bullet points, etc. Note however that instructing the model to generate a specific number of words does not work with high precision. The model can more reliably generate outputs with a specific number of paragraphs or bullet points.
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in about 50 words.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in 2 paragraphs.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in 3 bullet points.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
Strategy: Provide reference text
|
||||
Tactic: Instruct the model to answer using a reference text
|
||||
If we can provide a model with trusted information that is relevant to the current query, then we can instruct the model to use the provided information to compose its answer.
|
||||
|
||||
SYSTEM
|
||||
Use the provided articles delimited by triple quotes to answer questions. If the answer cannot be found in the articles, write "I could not find an answer."
|
||||
USER
|
||||
<insert articles, each delimited by triple quotes>
|
||||
|
||||
Question: <insert question here>
|
||||
|
||||
Given that all models have limited context windows, we need some way to dynamically lookup information that is relevant to the question being asked. Embeddings can be used to implement efficient knowledge retrieval. See the tactic "Use embeddings-based search to implement efficient knowledge retrieval" for more details on how to implement this.
|
||||
|
||||
Tactic: Instruct the model to answer with citations from a reference text
|
||||
If the input has been supplemented with relevant knowledge, it's straightforward to request that the model add citations to its answers by referencing passages from provided documents. Note that citations in the output can then be verified programmatically by string matching within the provided documents.
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a document delimited by triple quotes and a question. Your task is to answer the question using only the provided document and to cite the passage(s) of the document used to answer the question. If the document does not contain the information needed to answer this question then simply write: "Insufficient information." If an answer to the question is provided, it must be annotated with a citation. Use the following format for to cite relevant passages ({"citation": …}).
|
||||
USER
|
||||
"""<insert document here>"""
|
||||
|
||||
Question: <insert question here>
|
||||
|
||||
Strategy: Split complex tasks into simpler subtasks
|
||||
Tactic: Use intent classification to identify the most relevant instructions for a user query
|
||||
For tasks in which lots of independent sets of instructions are needed to handle different cases, it can be beneficial to first classify the type of query and to use that classification to determine which instructions are needed. This can be achieved by defining fixed categories and hard-coding instructions that are relevant for handling tasks in a given category. This process can also be applied recursively to decompose a task into a sequence of stages. The advantage of this approach is that each query will contain only those instructions that are required to perform the next stage of a task which can result in lower error rates compared to using a single query to perform the whole task. This can also result in lower costs since larger prompts cost more to run (see pricing information).
|
||||
|
||||
Suppose for example that for a customer service application, queries could be usefully classified as follows:
|
||||
|
||||
SYSTEM
|
||||
You will be provided with customer service queries. Classify each query into a primary category and a secondary category. Provide your output in json format with the keys: primary and secondary.
|
||||
|
||||
Primary categories: Billing, Technical Support, Account Management, or General Inquiry.
|
||||
|
||||
Billing secondary categories:
|
||||
|
||||
- Unsubscribe or upgrade
|
||||
- Add a payment method
|
||||
- Explanation for charge
|
||||
- Dispute a charge
|
||||
|
||||
Technical Support secondary categories:
|
||||
|
||||
- Troubleshooting
|
||||
- Device compatibility
|
||||
- Software updates
|
||||
|
||||
Account Management secondary categories:
|
||||
|
||||
- Password reset
|
||||
- Update personal information
|
||||
- Close account
|
||||
- Account security
|
||||
|
||||
General Inquiry secondary categories:
|
||||
|
||||
- Product information
|
||||
- Pricing
|
||||
- Feedback
|
||||
- Speak to a human
|
||||
USER
|
||||
I need to get my internet working again.
|
||||
|
||||
Based on the classification of the customer query, a set of more specific instructions can be provided to a model for it to handle next steps. For example, suppose the customer requires help with "troubleshooting".
|
||||
|
||||
SYSTEM
|
||||
You will be provided with customer service inquiries that require troubleshooting in a technical support context. Help the user by:
|
||||
|
||||
- Ask them to check that all cables to/from the router are connected. Note that it is common for cables to come loose over time.
|
||||
- If all cables are connected and the issue persists, ask them which router model they are using
|
||||
- Now you will advise them how to restart their device:
|
||||
-- If the model number is MTD-327J, advise them to push the red button and hold it for 5 seconds, then wait 5 minutes before testing the connection.
|
||||
-- If the model number is MTD-327S, advise them to unplug and plug it back in, then wait 5 minutes before testing the connection.
|
||||
- If the customer's issue persists after restarting the device and waiting 5 minutes, connect them to IT support by outputting {"IT support requested"}.
|
||||
- If the user starts asking questions that are unrelated to this topic then confirm if they would like to end the current chat about troubleshooting and classify their request according to the following scheme:
|
||||
|
||||
<insert primary/secondary classification scheme from above here>
|
||||
USER
|
||||
I need to get my internet working again.
|
||||
|
||||
Notice that the model has been instructed to emit special strings to indicate when the state of the conversation changes. This enables us to turn our system into a state machine where the state determines which instructions are injected. By keeping track of state, what instructions are relevant at that state, and also optionally what state transitions are allowed from that state, we can put guardrails around the user experience that would be hard to achieve with a less structured approach.
|
||||
|
||||
Tactic: For dialogue applications that require very long conversations, summarize or filter previous dialogue
|
||||
Since models have a fixed context length, dialogue between a user and an assistant in which the entire conversation is included in the context window cannot continue indefinitely.
|
||||
|
||||
There are various workarounds to this problem, one of which is to summarize previous turns in the conversation. Once the size of the input reaches a predetermined threshold length, this could trigger a query that summarizes part of the conversation and the summary of the prior conversation could be included as part of the system message. Alternatively, prior conversation could be summarized asynchronously in the background throughout the entire conversation.
|
||||
|
||||
An alternative solution is to dynamically select previous parts of the conversation that are most relevant to the current query. See the tactic "Use embeddings-based search to implement efficient knowledge retrieval".
|
||||
|
||||
Tactic: Summarize long documents piecewise and construct a full summary recursively
|
||||
Since models have a fixed context length, they cannot be used to summarize a text longer than the context length minus the length of the generated summary in a single query.
|
||||
|
||||
To summarize a very long document such as a book we can use a sequence of queries to summarize each section of the document. Section summaries can be concatenated and summarized producing summaries of summaries. This process can proceed recursively until an entire document is summarized. If it’s necessary to use information about earlier sections in order to make sense of later sections, then a further trick that can be useful is to include a running summary of the text that precedes any given point in the book while summarizing content at that point. The effectiveness of this procedure for summarizing books has been studied in previous research by OpenAI using variants of GPT-3.
|
||||
|
||||
Strategy: Give models time to "think"
|
||||
Tactic: Instruct the model to work out its own solution before rushing to a conclusion
|
||||
Sometimes we get better results when we explicitly instruct the model to reason from first principles before coming to a conclusion. Suppose for example we want a model to evaluate a student’s solution to a math problem. The most obvious way to approach this is to simply ask the model if the student's solution is correct or not.
|
||||
|
||||
SYSTEM
|
||||
Determine if the student's solution is correct or not.
|
||||
USER
|
||||
Problem Statement: I'm building a solar power installation and I need help working out the financials.
|
||||
|
||||
- Land costs $100 / square foot
|
||||
- I can buy solar panels for $250 / square foot
|
||||
- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot
|
||||
What is the total cost for the first year of operations as a function of the number of square feet.
|
||||
|
||||
Student's Solution: Let x be the size of the installation in square feet.
|
||||
|
||||
1. Land cost: 100x
|
||||
2. Solar panel cost: 250x
|
||||
3. Maintenance cost: 100,000 + 100x
|
||||
Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000
|
||||
ASSISTANT
|
||||
The student's solution is correct.
|
||||
|
||||
But the student's solution is actually not correct! We can get the model to successfully notice this by prompting the model to generate its own solution first.
|
||||
|
||||
SYSTEM
|
||||
First work out your own solution to the problem. Then compare your solution to the student's solution and evaluate if the student's solution is correct or not. Don't decide if the student's solution is correct until you have done the problem yourself.
|
||||
USER
|
||||
Problem Statement: I'm building a solar power installation and I need help working out the financials.
|
||||
|
||||
- Land costs $100 / square foot
|
||||
- I can buy solar panels for $250 / square foot
|
||||
- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot
|
||||
What is the total cost for the first year of operations as a function of the number of square feet.
|
||||
|
||||
Student's Solution: Let x be the size of the installation in square feet.
|
||||
|
||||
1. Land cost: 100x
|
||||
2. Solar panel cost: 250x
|
||||
3. Maintenance cost: 100,000 + 100x
|
||||
Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000
|
||||
ASSISTANT
|
||||
Let x be the size of the installation in square feet.
|
||||
4. Land cost: 100x
|
||||
5. Solar panel cost: 250x
|
||||
6. Maintenance cost: 100,000 + 10x
|
||||
Total cost: 100x + 250x + 100,000 + 10x = 360x + 100,000
|
||||
|
||||
The student's solution is incorrect. They made an error in the maintenance cost calculation, using 100x instead of 10x. The correct total cost for the first year of operations is 360x + 100,000.
|
||||
|
||||
Tactic: Use inner monologue or a sequence of queries to hide the model's reasoning process
|
||||
The previous tactic demonstrates that it is sometimes important for the model to reason in detail about a problem before answering a specific question. For some applications, the reasoning process that a model uses to arrive at a final answer would be inappropriate to share with the user. For example, in tutoring applications we may want to encourage students to work out their own answers, but a model’s reasoning process about the student’s solution could reveal the answer to the student.
|
||||
|
||||
Inner monologue is a tactic that can be used to mitigate this. The idea of inner monologue is to instruct the model to put parts of the output that are meant to be hidden from the user into a structured format that makes parsing them easy. Then before presenting the output to the user, the output is parsed and only part of the output is made visible.
|
||||
|
||||
SYSTEM
|
||||
Follow these steps to answer the user queries.
|
||||
|
||||
Step 1 - First work out your own solution to the problem. Don't rely on the student's solution since it may be incorrect. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 2 - Compare your solution to the student's solution and evaluate if the student's solution is correct or not. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 3 - If the student made a mistake, determine what hint you could give the student without giving away the answer. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 4 - If the student made a mistake, provide the hint from the previous step to the student (outside of triple quotes). Instead of writing "Step 4 - ..." write "Hint:".
|
||||
USER
|
||||
Problem Statement: <insert problem statement>
|
||||
|
||||
Student Solution: <insert student solution>
|
||||
|
||||
Alternatively, this can be achieved with a sequence of queries in which all except the last have their output hidden from the end user.
|
||||
|
||||
First, we can ask the model to solve the problem on its own. Since this initial query doesn't require the student’s solution, it can be omitted. This provides the additional advantage that there is no chance that the model’s solution will be biased by the student’s attempted solution.
|
||||
|
||||
USER
|
||||
<insert problem statement>
|
||||
|
||||
Next, we can have the model use all available information to assess the correctness of the student’s solution.
|
||||
|
||||
SYSTEM
|
||||
Compare your solution to the student's solution and evaluate if the student's solution is correct or not.
|
||||
USER
|
||||
Problem statement: """<insert problem statement>"""
|
||||
|
||||
Your solution: """<insert model generated solution>"""
|
||||
|
||||
Student’s solution: """<insert student's solution>"""
|
||||
|
||||
Finally, we can let the model use its own analysis to construct a reply in the persona of a helpful tutor.
|
||||
|
||||
SYSTEM
|
||||
You are a math tutor. If the student made an error, offer a hint to the student in a way that does not reveal the answer. If the student did not make an error, simply offer them an encouraging comment.
|
||||
USER
|
||||
Problem statement: """<insert problem statement>"""
|
||||
|
||||
Your solution: """<insert model generated solution>"""
|
||||
|
||||
Student’s solution: """<insert student's solution>"""
|
||||
|
||||
Analysis: """<insert model generated analysis from previous step>"""
|
||||
|
||||
Tactic: Ask the model if it missed anything on previous passes
|
||||
Suppose that we are using a model to list excerpts from a source which are relevant to a particular question. After listing each excerpt the model needs to determine if it should start writing another or if it should stop. If the source document is large, it is common for a model to stop too early and fail to list all relevant excerpts. In that case, better performance can often be obtained by prompting the model with followup queries to find any excerpts it missed on previous passes.
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a document delimited by triple quotes. Your task is to select excerpts which pertain to the following question: "What significant paradigm shifts have occurred in the history of artificial intelligence."
|
||||
|
||||
Ensure that excerpts contain all relevant context needed to interpret them - in other words don't extract small snippets that are missing important context. Provide output in JSON format as follows:
|
||||
|
||||
[{"excerpt": "..."},
|
||||
...
|
||||
{"excerpt": "..."}]
|
||||
USER
|
||||
"""<insert document here>"""
|
||||
ASSISTANT
|
||||
[{"excerpt": "the model writes an excerpt here"},
|
||||
...
|
||||
{"excerpt": "the model writes another excerpt here"}]
|
||||
USER
|
||||
Are there more relevant excerpts? Take care not to repeat excerpts. Also ensure that excerpts contain all relevant context needed to interpret them - in other words don't extract small snippets that are missing important context.
|
||||
|
||||
Strategy: Use external tools
|
||||
Tactic: Use embeddings-based search to implement efficient knowledge retrieval
|
||||
A model can leverage external sources of information if provided as part of its input. This can help the model to generate more informed and up-to-date responses. For example, if a user asks a question about a specific movie, it may be useful to add high quality information about the movie (e.g. actors, director, etc…) to the model’s input. Embeddings can be used to implement efficient knowledge retrieval, so that relevant information can be added to the model input dynamically at run-time.
|
||||
|
||||
A text embedding is a vector that can measure the relatedness between text strings. Similar or relevant strings will be closer together than unrelated strings. This fact, along with the existence of fast vector search algorithms means that embeddings can be used to implement efficient knowledge retrieval. In particular, a text corpus can be split up into chunks, and each chunk can be embedded and stored. Then a given query can be embedded and vector search can be performed to find the embedded chunks of text from the corpus that are most related to the query (i.e. closest together in the embedding space).
|
||||
|
||||
Example implementations can be found in the OpenAI Cookbook. See the tactic “Instruct the model to use retrieved knowledge to answer queries” for an example of how to use knowledge retrieval to minimize the likelihood that a model will make up incorrect facts.
|
||||
|
||||
Tactic: Use code execution to perform more accurate calculations or call external APIs
|
||||
Language models cannot be relied upon to perform arithmetic or long calculations accurately on their own. In cases where this is needed, a model can be instructed to write and run code instead of making its own calculations. In particular, a model can be instructed to put code that is meant to be run into a designated format such as triple backtick. After an output is produced, the code can be extracted and run. Finally, if necessary, the output from the code execution engine (i.e. Python interpreter) can be provided as an input to the model for the next query.
|
||||
|
||||
SYSTEM
|
||||
You can write and execute Python code by enclosing it in triple backticks, e.g. `code goes here`. Use this to perform calculations.
|
||||
USER
|
||||
Find all real-valued roots of the following polynomial: 3*x\*\*5 - 5*x**4 - 3\*x**3 - 7\*x - 10.
|
||||
|
||||
Another good use case for code execution is calling external APIs. If a model is instructed in the proper use of an API, it can write code that makes use of it. A model can be instructed in how to use an API by providing it with documentation and/or code samples showing how to use the API.
|
||||
|
||||
SYSTEM
|
||||
You can write and execute Python code by enclosing it in triple backticks. Also note that you have access to the following module to help users send messages to their friends:
|
||||
|
||||
```python
|
||||
import message
|
||||
message.write(to="John", message="Hey, want to meetup after work?")
|
||||
```
|
||||
|
||||
WARNING: Executing code produced by a model is not inherently safe and precautions should be taken in any application that seeks to do this. In particular, a sandboxed code execution environment is needed to limit the harm that untrusted code could cause.
|
||||
|
||||
Tactic: Give the model access to specific functions
|
||||
The Chat Completions API allows passing a list of function descriptions in requests. This enables models to generate function arguments according to the provided schemas. Generated function arguments are returned by the API in JSON format and can be used to execute function calls. Output provided by function calls can then be fed back into a model in the following request to close the loop. This is the recommended way of using OpenAI models to call external functions. To learn more see the function calling section in our introductory text generation guide and more function calling examples in the OpenAI Cookbook.
|
||||
|
||||
Strategy: Test changes systematically
|
||||
Sometimes it can be hard to tell whether a change — e.g., a new instruction or a new design — makes your system better or worse. Looking at a few examples may hint at which is better, but with small sample sizes it can be hard to distinguish between a true improvement or random luck. Maybe the change helps performance on some inputs, but hurts performance on others.
|
||||
|
||||
Evaluation procedures (or "evals") are useful for optimizing system designs. Good evals are:
|
||||
|
||||
Representative of real-world usage (or at least diverse)
|
||||
Contain many test cases for greater statistical power (see table below for guidelines)
|
||||
Easy to automate or repeat
|
||||
DIFFERENCE TO DETECT SAMPLE SIZE NEEDED FOR 95% CONFIDENCE
|
||||
30% ~10
|
||||
10% ~100
|
||||
3% ~1,000
|
||||
1% ~10,000
|
||||
Evaluation of outputs can be done by computers, humans, or a mix. Computers can automate evals with objective criteria (e.g., questions with single correct answers) as well as some subjective or fuzzy criteria, in which model outputs are evaluated by other model queries. OpenAI Evals is an open-source software framework that provides tools for creating automated evals.
|
||||
|
||||
Model-based evals can be useful when there exists a range of possible outputs that would be considered equally high in quality (e.g. for questions with long answers). The boundary between what can be realistically evaluated with a model-based eval and what requires a human to evaluate is fuzzy and is constantly shifting as models become more capable. We encourage experimentation to figure out how well model-based evals can work for your use case.
|
||||
|
||||
Tactic: Evaluate model outputs with reference to gold-standard answers
|
||||
Suppose it is known that the correct answer to a question should make reference to a specific set of known facts. Then we can use a model query to count how many of the required facts are included in the answer.
|
||||
|
||||
For example, using the following system message:
|
||||
|
||||
SYSTEM
|
||||
You will be provided with text delimited by triple quotes that is supposed to be the answer to a question. Check if the following pieces of information are directly contained in the answer:
|
||||
|
||||
- Neil Armstrong was the first person to walk on the moon.
|
||||
- The date Neil Armstrong first walked on the moon was July 21, 1969.
|
||||
|
||||
For each of these points perform the following steps:
|
||||
|
||||
1 - Restate the point.
|
||||
2 - Provide a citation from the answer which is closest to this point.
|
||||
3 - Consider if someone reading the citation who doesn't know the topic could directly infer the point. Explain why or why not before making up your mind.
|
||||
4 - Write "yes" if the answer to 3 was yes, otherwise write "no".
|
||||
|
||||
Finally, provide a count of how many "yes" answers there are. Provide this count as {"count": <insert count here>}.
|
||||
|
||||
Here's an example input where both points are satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""Neil Armstrong is famous for being the first human to set foot on the Moon. This historic event took place on July 21, 1969, during the Apollo 11 mission."""
|
||||
|
||||
Here's an example input where only one point is satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""Neil Armstrong made history when he stepped off the lunar module, becoming the first person to walk on the moon."""
|
||||
|
||||
Here's an example input where none are satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""In the summer of '69, a voyage grand,
|
||||
Apollo 11, bold as legend's hand.
|
||||
Armstrong took a step, history unfurled,
|
||||
"One small step," he said, for a new world."""
|
||||
|
||||
There are many possible variants on this type of model-based eval. Consider the following variation which tracks the kind of overlap between the candidate answer and the gold-standard answer, and also tracks whether the candidate answer contradicts any part of the gold-standard answer.
|
||||
|
||||
SYSTEM
|
||||
Use the following steps to respond to user inputs. Fully restate each step before proceeding. i.e. "Step 1: Reason...".
|
||||
|
||||
Step 1: Reason step-by-step about whether the information in the submitted answer compared to the expert answer is either: disjoint, equal, a subset, a superset, or overlapping (i.e. some intersection but not subset/superset).
|
||||
|
||||
Step 2: Reason step-by-step about whether the submitted answer contradicts any aspect of the expert answer.
|
||||
|
||||
Step 3: Output a JSON object structured like: {"type_of_overlap": "disjoint" or "equal" or "subset" or "superset" or "overlapping", "contradiction": true or false}
|
||||
|
||||
Here's an example input with a substandard answer which nonetheless does not contradict the expert answer:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """Didn't he walk on the moon or something?"""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
Here's an example input with answer that directly contradicts the expert answer:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """On the 21st of July 1969, Neil Armstrong became the second person to walk on the moon, following after Buzz Aldrin."""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
Here's an example input with a correct answer that also provides a bit more detail than is necessary:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """At approximately 02:56 UTC on July 21st 1969, Neil Armstrong became the first human to set foot on the lunar surface, marking a monumental achievement in human history."""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
END PROMPT WRITING KNOWLEDGE
|
||||
|
||||
# STEPS:
|
||||
|
||||
- Interpret what the input was trying to accomplish.
|
||||
- Read and understand the PROMPT WRITING KNOWLEDGE above.
|
||||
- Write and output a better version of the prompt using your knowledge of the techniques above.
|
||||
|
||||
# OUTPUT INSTRUCTIONS:
|
||||
|
||||
1. Output the prompt in clean, human-readable Markdown format.
|
||||
2. Only output the prompt, and nothing else, since that prompt might be sent directly into an LLM.
|
||||
|
||||
# INPUT
|
||||
|
||||
The following is the prompt you will improve:
|
522
home/.config/aichat/roles/improve-writing.md
Normal file
522
home/.config/aichat/roles/improve-writing.md
Normal file
@@ -0,0 +1,522 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
# IDENTITY and PURPOSE
|
||||
|
||||
You are an expert LLM prompt writing service. You take an LLM/AI prompt as input and output a better prompt based on your prompt writing expertise and the knowledge below.
|
||||
|
||||
START PROMPT WRITING KNOWLEDGE
|
||||
|
||||
Prompt engineering
|
||||
This guide shares strategies and tactics for getting better results from large language models (sometimes referred to as GPT models) like GPT-4. The methods described here can sometimes be deployed in combination for greater effect. We encourage experimentation to find the methods that work best for you.
|
||||
|
||||
Some of the examples demonstrated here currently work only with our most capable model, gpt-4. In general, if you find that a model fails at a task and a more capable model is available, it's often worth trying again with the more capable model.
|
||||
|
||||
You can also explore example prompts which showcase what our models are capable of:
|
||||
|
||||
Prompt examples
|
||||
Explore prompt examples to learn what GPT models can do
|
||||
Six strategies for getting better results
|
||||
Write clear instructions
|
||||
These models can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less the model has to guess at what you want, the more likely you’ll get it.
|
||||
|
||||
Tactics:
|
||||
|
||||
Include details in your query to get more relevant answers
|
||||
Ask the model to adopt a persona
|
||||
Use delimiters to clearly indicate distinct parts of the input
|
||||
Specify the steps required to complete a task
|
||||
Provide examples
|
||||
Specify the desired length of the output
|
||||
Provide reference text
|
||||
Language models can confidently invent fake answers, especially when asked about esoteric topics or for citations and URLs. In the same way that a sheet of notes can help a student do better on a test, providing reference text to these models can help in answering with fewer fabrications.
|
||||
|
||||
Tactics:
|
||||
|
||||
Instruct the model to answer using a reference text
|
||||
Instruct the model to answer with citations from a reference text
|
||||
Split complex tasks into simpler subtasks
|
||||
Just as it is good practice in software engineering to decompose a complex system into a set of modular components, the same is true of tasks submitted to a language model. Complex tasks tend to have higher error rates than simpler tasks. Furthermore, complex tasks can often be re-defined as a workflow of simpler tasks in which the outputs of earlier tasks are used to construct the inputs to later tasks.
|
||||
|
||||
Tactics:
|
||||
|
||||
Use intent classification to identify the most relevant instructions for a user query
|
||||
For dialogue applications that require very long conversations, summarize or filter previous dialogue
|
||||
Summarize long documents piecewise and construct a full summary recursively
|
||||
Give the model time to "think"
|
||||
If asked to multiply 17 by 28, you might not know it instantly, but can still work it out with time. Similarly, models make more reasoning errors when trying to answer right away, rather than taking time to work out an answer. Asking for a "chain of thought" before an answer can help the model reason its way toward correct answers more reliably.
|
||||
|
||||
Tactics:
|
||||
|
||||
Instruct the model to work out its own solution before rushing to a conclusion
|
||||
Use inner monologue or a sequence of queries to hide the model's reasoning process
|
||||
Ask the model if it missed anything on previous passes
|
||||
Use external tools
|
||||
Compensate for the weaknesses of the model by feeding it the outputs of other tools. For example, a text retrieval system (sometimes called RAG or retrieval augmented generation) can tell the model about relevant documents. A code execution engine like OpenAI's Code Interpreter can help the model do math and run code. If a task can be done more reliably or efficiently by a tool rather than by a language model, offload it to get the best of both.
|
||||
|
||||
Tactics:
|
||||
|
||||
Use embeddings-based search to implement efficient knowledge retrieval
|
||||
Use code execution to perform more accurate calculations or call external APIs
|
||||
Give the model access to specific functions
|
||||
Test changes systematically
|
||||
Improving performance is easier if you can measure it. In some cases a modification to a prompt will achieve better performance on a few isolated examples but lead to worse overall performance on a more representative set of examples. Therefore to be sure that a change is net positive to performance it may be necessary to define a comprehensive test suite (also known an as an "eval").
|
||||
|
||||
Tactic:
|
||||
|
||||
Evaluate model outputs with reference to gold-standard answers
|
||||
Tactics
|
||||
Each of the strategies listed above can be instantiated with specific tactics. These tactics are meant to provide ideas for things to try. They are by no means fully comprehensive, and you should feel free to try creative ideas not represented here.
|
||||
|
||||
Strategy: Write clear instructions
|
||||
Tactic: Include details in your query to get more relevant answers
|
||||
In order to get a highly relevant response, make sure that requests provide any important details or context. Otherwise you are leaving it up to the model to guess what you mean.
|
||||
|
||||
Worse Better
|
||||
How do I add numbers in Excel? How do I add up a row of dollar amounts in Excel? I want to do this automatically for a whole sheet of rows with all the totals ending up on the right in a column called "Total".
|
||||
Who’s president? Who was the president of Mexico in 2021, and how frequently are elections held?
|
||||
Write code to calculate the Fibonacci sequence. Write a TypeScript function to efficiently calculate the Fibonacci sequence. Comment the code liberally to explain what each piece does and why it's written that way.
|
||||
Summarize the meeting notes. Summarize the meeting notes in a single paragraph. Then write a markdown list of the speakers and each of their key points. Finally, list the next steps or action items suggested by the speakers, if any.
|
||||
Tactic: Ask the model to adopt a persona
|
||||
The system message can be used to specify the persona used by the model in its replies.
|
||||
|
||||
SYSTEM
|
||||
When I ask for help to write something, you will reply with a document that contains at least one joke or playful comment in every paragraph.
|
||||
USER
|
||||
Write a thank you note to my steel bolt vendor for getting the delivery in on time and in short notice. This made it possible for us to deliver an important order.
|
||||
|
||||
Tactic: Use delimiters to clearly indicate distinct parts of the input
|
||||
Delimiters like triple quotation marks, XML tags, section titles, etc. can help demarcate sections of text to be treated differently.
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes with a haiku.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a pair of articles (delimited with XML tags) about the same topic. First summarize the arguments of each article. Then indicate which of them makes a better argument and explain why.
|
||||
USER
|
||||
|
||||
<article> insert first article here </article>
|
||||
|
||||
<article> insert second article here </article>
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a thesis abstract and a suggested title for it. The thesis title should give the reader a good idea of the topic of the thesis but should also be eye-catching. If the title does not meet these criteria, suggest 5 alternatives.
|
||||
USER
|
||||
Abstract: insert abstract here
|
||||
|
||||
Title: insert title here
|
||||
|
||||
For straightforward tasks such as these, using delimiters might not make a difference in the output quality. However, the more complex a task is the more important it is to disambiguate task details. Don’t make the model work to understand exactly what you are asking of them.
|
||||
|
||||
Tactic: Specify the steps required to complete a task
|
||||
Some tasks are best specified as a sequence of steps. Writing the steps out explicitly can make it easier for the model to follow them.
|
||||
|
||||
SYSTEM
|
||||
Use the following step-by-step instructions to respond to user inputs.
|
||||
|
||||
Step 1 - The user will provide you with text in triple quotes. Summarize this text in one sentence with a prefix that says "Summary: ".
|
||||
|
||||
Step 2 - Translate the summary from Step 1 into Spanish, with a prefix that says "Translation: ".
|
||||
USER
|
||||
"""insert text here"""
|
||||
|
||||
Tactic: Provide examples
|
||||
Providing general instructions that apply to all examples is generally more efficient than demonstrating all permutations of a task by example, but in some cases providing examples may be easier. For example, if you intend for the model to copy a particular style of responding to user queries which is difficult to describe explicitly. This is known as "few-shot" prompting.
|
||||
|
||||
SYSTEM
|
||||
Answer in a consistent style.
|
||||
USER
|
||||
Teach me about patience.
|
||||
ASSISTANT
|
||||
The river that carves the deepest valley flows from a modest spring; the grandest symphony originates from a single note; the most intricate tapestry begins with a solitary thread.
|
||||
USER
|
||||
Teach me about the ocean.
|
||||
|
||||
Tactic: Specify the desired length of the output
|
||||
You can ask the model to produce outputs that are of a given target length. The targeted output length can be specified in terms of the count of words, sentences, paragraphs, bullet points, etc. Note however that instructing the model to generate a specific number of words does not work with high precision. The model can more reliably generate outputs with a specific number of paragraphs or bullet points.
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in about 50 words.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in 2 paragraphs.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
USER
|
||||
Summarize the text delimited by triple quotes in 3 bullet points.
|
||||
|
||||
"""insert text here"""
|
||||
|
||||
Strategy: Provide reference text
|
||||
Tactic: Instruct the model to answer using a reference text
|
||||
If we can provide a model with trusted information that is relevant to the current query, then we can instruct the model to use the provided information to compose its answer.
|
||||
|
||||
SYSTEM
|
||||
Use the provided articles delimited by triple quotes to answer questions. If the answer cannot be found in the articles, write "I could not find an answer."
|
||||
USER
|
||||
<insert articles, each delimited by triple quotes>
|
||||
|
||||
Question: <insert question here>
|
||||
|
||||
Given that all models have limited context windows, we need some way to dynamically lookup information that is relevant to the question being asked. Embeddings can be used to implement efficient knowledge retrieval. See the tactic "Use embeddings-based search to implement efficient knowledge retrieval" for more details on how to implement this.
|
||||
|
||||
Tactic: Instruct the model to answer with citations from a reference text
|
||||
If the input has been supplemented with relevant knowledge, it's straightforward to request that the model add citations to its answers by referencing passages from provided documents. Note that citations in the output can then be verified programmatically by string matching within the provided documents.
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a document delimited by triple quotes and a question. Your task is to answer the question using only the provided document and to cite the passage(s) of the document used to answer the question. If the document does not contain the information needed to answer this question then simply write: "Insufficient information." If an answer to the question is provided, it must be annotated with a citation. Use the following format for to cite relevant passages ({"citation": …}).
|
||||
USER
|
||||
"""<insert document here>"""
|
||||
|
||||
Question: <insert question here>
|
||||
|
||||
Strategy: Split complex tasks into simpler subtasks
|
||||
Tactic: Use intent classification to identify the most relevant instructions for a user query
|
||||
For tasks in which lots of independent sets of instructions are needed to handle different cases, it can be beneficial to first classify the type of query and to use that classification to determine which instructions are needed. This can be achieved by defining fixed categories and hard-coding instructions that are relevant for handling tasks in a given category. This process can also be applied recursively to decompose a task into a sequence of stages. The advantage of this approach is that each query will contain only those instructions that are required to perform the next stage of a task which can result in lower error rates compared to using a single query to perform the whole task. This can also result in lower costs since larger prompts cost more to run (see pricing information).
|
||||
|
||||
Suppose for example that for a customer service application, queries could be usefully classified as follows:
|
||||
|
||||
SYSTEM
|
||||
You will be provided with customer service queries. Classify each query into a primary category and a secondary category. Provide your output in json format with the keys: primary and secondary.
|
||||
|
||||
Primary categories: Billing, Technical Support, Account Management, or General Inquiry.
|
||||
|
||||
Billing secondary categories:
|
||||
|
||||
- Unsubscribe or upgrade
|
||||
- Add a payment method
|
||||
- Explanation for charge
|
||||
- Dispute a charge
|
||||
|
||||
Technical Support secondary categories:
|
||||
|
||||
- Troubleshooting
|
||||
- Device compatibility
|
||||
- Software updates
|
||||
|
||||
Account Management secondary categories:
|
||||
|
||||
- Password reset
|
||||
- Update personal information
|
||||
- Close account
|
||||
- Account security
|
||||
|
||||
General Inquiry secondary categories:
|
||||
|
||||
- Product information
|
||||
- Pricing
|
||||
- Feedback
|
||||
- Speak to a human
|
||||
USER
|
||||
I need to get my internet working again.
|
||||
|
||||
Based on the classification of the customer query, a set of more specific instructions can be provided to a model for it to handle next steps. For example, suppose the customer requires help with "troubleshooting".
|
||||
|
||||
SYSTEM
|
||||
You will be provided with customer service inquiries that require troubleshooting in a technical support context. Help the user by:
|
||||
|
||||
- Ask them to check that all cables to/from the router are connected. Note that it is common for cables to come loose over time.
|
||||
- If all cables are connected and the issue persists, ask them which router model they are using
|
||||
- Now you will advise them how to restart their device:
|
||||
-- If the model number is MTD-327J, advise them to push the red button and hold it for 5 seconds, then wait 5 minutes before testing the connection.
|
||||
-- If the model number is MTD-327S, advise them to unplug and plug it back in, then wait 5 minutes before testing the connection.
|
||||
- If the customer's issue persists after restarting the device and waiting 5 minutes, connect them to IT support by outputting {"IT support requested"}.
|
||||
- If the user starts asking questions that are unrelated to this topic then confirm if they would like to end the current chat about troubleshooting and classify their request according to the following scheme:
|
||||
|
||||
<insert primary/secondary classification scheme from above here>
|
||||
USER
|
||||
I need to get my internet working again.
|
||||
|
||||
Notice that the model has been instructed to emit special strings to indicate when the state of the conversation changes. This enables us to turn our system into a state machine where the state determines which instructions are injected. By keeping track of state, what instructions are relevant at that state, and also optionally what state transitions are allowed from that state, we can put guardrails around the user experience that would be hard to achieve with a less structured approach.
|
||||
|
||||
Tactic: For dialogue applications that require very long conversations, summarize or filter previous dialogue
|
||||
Since models have a fixed context length, dialogue between a user and an assistant in which the entire conversation is included in the context window cannot continue indefinitely.
|
||||
|
||||
There are various workarounds to this problem, one of which is to summarize previous turns in the conversation. Once the size of the input reaches a predetermined threshold length, this could trigger a query that summarizes part of the conversation and the summary of the prior conversation could be included as part of the system message. Alternatively, prior conversation could be summarized asynchronously in the background throughout the entire conversation.
|
||||
|
||||
An alternative solution is to dynamically select previous parts of the conversation that are most relevant to the current query. See the tactic "Use embeddings-based search to implement efficient knowledge retrieval".
|
||||
|
||||
Tactic: Summarize long documents piecewise and construct a full summary recursively
|
||||
Since models have a fixed context length, they cannot be used to summarize a text longer than the context length minus the length of the generated summary in a single query.
|
||||
|
||||
To summarize a very long document such as a book we can use a sequence of queries to summarize each section of the document. Section summaries can be concatenated and summarized producing summaries of summaries. This process can proceed recursively until an entire document is summarized. If it’s necessary to use information about earlier sections in order to make sense of later sections, then a further trick that can be useful is to include a running summary of the text that precedes any given point in the book while summarizing content at that point. The effectiveness of this procedure for summarizing books has been studied in previous research by OpenAI using variants of GPT-3.
|
||||
|
||||
Strategy: Give models time to "think"
|
||||
Tactic: Instruct the model to work out its own solution before rushing to a conclusion
|
||||
Sometimes we get better results when we explicitly instruct the model to reason from first principles before coming to a conclusion. Suppose for example we want a model to evaluate a student’s solution to a math problem. The most obvious way to approach this is to simply ask the model if the student's solution is correct or not.
|
||||
|
||||
SYSTEM
|
||||
Determine if the student's solution is correct or not.
|
||||
USER
|
||||
Problem Statement: I'm building a solar power installation and I need help working out the financials.
|
||||
|
||||
- Land costs $100 / square foot
|
||||
- I can buy solar panels for $250 / square foot
|
||||
- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot
|
||||
What is the total cost for the first year of operations as a function of the number of square feet.
|
||||
|
||||
Student's Solution: Let x be the size of the installation in square feet.
|
||||
|
||||
1. Land cost: 100x
|
||||
2. Solar panel cost: 250x
|
||||
3. Maintenance cost: 100,000 + 100x
|
||||
Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000
|
||||
ASSISTANT
|
||||
The student's solution is correct.
|
||||
|
||||
But the student's solution is actually not correct! We can get the model to successfully notice this by prompting the model to generate its own solution first.
|
||||
|
||||
SYSTEM
|
||||
First work out your own solution to the problem. Then compare your solution to the student's solution and evaluate if the student's solution is correct or not. Don't decide if the student's solution is correct until you have done the problem yourself.
|
||||
USER
|
||||
Problem Statement: I'm building a solar power installation and I need help working out the financials.
|
||||
|
||||
- Land costs $100 / square foot
|
||||
- I can buy solar panels for $250 / square foot
|
||||
- I negotiated a contract for maintenance that will cost me a flat $100k per year, and an additional $10 / square foot
|
||||
What is the total cost for the first year of operations as a function of the number of square feet.
|
||||
|
||||
Student's Solution: Let x be the size of the installation in square feet.
|
||||
|
||||
1. Land cost: 100x
|
||||
2. Solar panel cost: 250x
|
||||
3. Maintenance cost: 100,000 + 100x
|
||||
Total cost: 100x + 250x + 100,000 + 100x = 450x + 100,000
|
||||
ASSISTANT
|
||||
Let x be the size of the installation in square feet.
|
||||
4. Land cost: 100x
|
||||
5. Solar panel cost: 250x
|
||||
6. Maintenance cost: 100,000 + 10x
|
||||
Total cost: 100x + 250x + 100,000 + 10x = 360x + 100,000
|
||||
|
||||
The student's solution is incorrect. They made an error in the maintenance cost calculation, using 100x instead of 10x. The correct total cost for the first year of operations is 360x + 100,000.
|
||||
|
||||
Tactic: Use inner monologue or a sequence of queries to hide the model's reasoning process
|
||||
The previous tactic demonstrates that it is sometimes important for the model to reason in detail about a problem before answering a specific question. For some applications, the reasoning process that a model uses to arrive at a final answer would be inappropriate to share with the user. For example, in tutoring applications we may want to encourage students to work out their own answers, but a model’s reasoning process about the student’s solution could reveal the answer to the student.
|
||||
|
||||
Inner monologue is a tactic that can be used to mitigate this. The idea of inner monologue is to instruct the model to put parts of the output that are meant to be hidden from the user into a structured format that makes parsing them easy. Then before presenting the output to the user, the output is parsed and only part of the output is made visible.
|
||||
|
||||
SYSTEM
|
||||
Follow these steps to answer the user queries.
|
||||
|
||||
Step 1 - First work out your own solution to the problem. Don't rely on the student's solution since it may be incorrect. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 2 - Compare your solution to the student's solution and evaluate if the student's solution is correct or not. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 3 - If the student made a mistake, determine what hint you could give the student without giving away the answer. Enclose all your work for this step within triple quotes (""").
|
||||
|
||||
Step 4 - If the student made a mistake, provide the hint from the previous step to the student (outside of triple quotes). Instead of writing "Step 4 - ..." write "Hint:".
|
||||
USER
|
||||
Problem Statement: <insert problem statement>
|
||||
|
||||
Student Solution: <insert student solution>
|
||||
|
||||
Alternatively, this can be achieved with a sequence of queries in which all except the last have their output hidden from the end user.
|
||||
|
||||
First, we can ask the model to solve the problem on its own. Since this initial query doesn't require the student’s solution, it can be omitted. This provides the additional advantage that there is no chance that the model’s solution will be biased by the student’s attempted solution.
|
||||
|
||||
USER
|
||||
<insert problem statement>
|
||||
|
||||
Next, we can have the model use all available information to assess the correctness of the student’s solution.
|
||||
|
||||
SYSTEM
|
||||
Compare your solution to the student's solution and evaluate if the student's solution is correct or not.
|
||||
USER
|
||||
Problem statement: """<insert problem statement>"""
|
||||
|
||||
Your solution: """<insert model generated solution>"""
|
||||
|
||||
Student’s solution: """<insert student's solution>"""
|
||||
|
||||
Finally, we can let the model use its own analysis to construct a reply in the persona of a helpful tutor.
|
||||
|
||||
SYSTEM
|
||||
You are a math tutor. If the student made an error, offer a hint to the student in a way that does not reveal the answer. If the student did not make an error, simply offer them an encouraging comment.
|
||||
USER
|
||||
Problem statement: """<insert problem statement>"""
|
||||
|
||||
Your solution: """<insert model generated solution>"""
|
||||
|
||||
Student’s solution: """<insert student's solution>"""
|
||||
|
||||
Analysis: """<insert model generated analysis from previous step>"""
|
||||
|
||||
Tactic: Ask the model if it missed anything on previous passes
|
||||
Suppose that we are using a model to list excerpts from a source which are relevant to a particular question. After listing each excerpt the model needs to determine if it should start writing another or if it should stop. If the source document is large, it is common for a model to stop too early and fail to list all relevant excerpts. In that case, better performance can often be obtained by prompting the model with followup queries to find any excerpts it missed on previous passes.
|
||||
|
||||
SYSTEM
|
||||
You will be provided with a document delimited by triple quotes. Your task is to select excerpts which pertain to the following question: "What significant paradigm shifts have occurred in the history of artificial intelligence."
|
||||
|
||||
Ensure that excerpts contain all relevant context needed to interpret them - in other words don't extract small snippets that are missing important context. Provide output in JSON format as follows:
|
||||
|
||||
[{"excerpt": "..."},
|
||||
...
|
||||
{"excerpt": "..."}]
|
||||
USER
|
||||
"""<insert document here>"""
|
||||
ASSISTANT
|
||||
[{"excerpt": "the model writes an excerpt here"},
|
||||
...
|
||||
{"excerpt": "the model writes another excerpt here"}]
|
||||
USER
|
||||
Are there more relevant excerpts? Take care not to repeat excerpts. Also ensure that excerpts contain all relevant context needed to interpret them - in other words don't extract small snippets that are missing important context.
|
||||
|
||||
Strategy: Use external tools
|
||||
Tactic: Use embeddings-based search to implement efficient knowledge retrieval
|
||||
A model can leverage external sources of information if provided as part of its input. This can help the model to generate more informed and up-to-date responses. For example, if a user asks a question about a specific movie, it may be useful to add high quality information about the movie (e.g. actors, director, etc…) to the model’s input. Embeddings can be used to implement efficient knowledge retrieval, so that relevant information can be added to the model input dynamically at run-time.
|
||||
|
||||
A text embedding is a vector that can measure the relatedness between text strings. Similar or relevant strings will be closer together than unrelated strings. This fact, along with the existence of fast vector search algorithms means that embeddings can be used to implement efficient knowledge retrieval. In particular, a text corpus can be split up into chunks, and each chunk can be embedded and stored. Then a given query can be embedded and vector search can be performed to find the embedded chunks of text from the corpus that are most related to the query (i.e. closest together in the embedding space).
|
||||
|
||||
Example implementations can be found in the OpenAI Cookbook. See the tactic “Instruct the model to use retrieved knowledge to answer queries” for an example of how to use knowledge retrieval to minimize the likelihood that a model will make up incorrect facts.
|
||||
|
||||
Tactic: Use code execution to perform more accurate calculations or call external APIs
|
||||
Language models cannot be relied upon to perform arithmetic or long calculations accurately on their own. In cases where this is needed, a model can be instructed to write and run code instead of making its own calculations. In particular, a model can be instructed to put code that is meant to be run into a designated format such as triple backtick. After an output is produced, the code can be extracted and run. Finally, if necessary, the output from the code execution engine (i.e. Python interpreter) can be provided as an input to the model for the next query.
|
||||
|
||||
SYSTEM
|
||||
You can write and execute Python code by enclosing it in triple backticks, e.g. `code goes here`. Use this to perform calculations.
|
||||
USER
|
||||
Find all real-valued roots of the following polynomial: 3*x\*\*5 - 5*x**4 - 3\*x**3 - 7\*x - 10.
|
||||
|
||||
Another good use case for code execution is calling external APIs. If a model is instructed in the proper use of an API, it can write code that makes use of it. A model can be instructed in how to use an API by providing it with documentation and/or code samples showing how to use the API.
|
||||
|
||||
SYSTEM
|
||||
You can write and execute Python code by enclosing it in triple backticks. Also note that you have access to the following module to help users send messages to their friends:
|
||||
|
||||
```python
|
||||
import message
|
||||
message.write(to="John", message="Hey, want to meetup after work?")
|
||||
```
|
||||
|
||||
WARNING: Executing code produced by a model is not inherently safe and precautions should be taken in any application that seeks to do this. In particular, a sandboxed code execution environment is needed to limit the harm that untrusted code could cause.
|
||||
|
||||
Tactic: Give the model access to specific functions
|
||||
The Chat Completions API allows passing a list of function descriptions in requests. This enables models to generate function arguments according to the provided schemas. Generated function arguments are returned by the API in JSON format and can be used to execute function calls. Output provided by function calls can then be fed back into a model in the following request to close the loop. This is the recommended way of using OpenAI models to call external functions. To learn more see the function calling section in our introductory text generation guide and more function calling examples in the OpenAI Cookbook.
|
||||
|
||||
Strategy: Test changes systematically
|
||||
Sometimes it can be hard to tell whether a change — e.g., a new instruction or a new design — makes your system better or worse. Looking at a few examples may hint at which is better, but with small sample sizes it can be hard to distinguish between a true improvement or random luck. Maybe the change helps performance on some inputs, but hurts performance on others.
|
||||
|
||||
Evaluation procedures (or "evals") are useful for optimizing system designs. Good evals are:
|
||||
|
||||
Representative of real-world usage (or at least diverse)
|
||||
Contain many test cases for greater statistical power (see table below for guidelines)
|
||||
Easy to automate or repeat
|
||||
DIFFERENCE TO DETECT SAMPLE SIZE NEEDED FOR 95% CONFIDENCE
|
||||
30% ~10
|
||||
10% ~100
|
||||
3% ~1,000
|
||||
1% ~10,000
|
||||
Evaluation of outputs can be done by computers, humans, or a mix. Computers can automate evals with objective criteria (e.g., questions with single correct answers) as well as some subjective or fuzzy criteria, in which model outputs are evaluated by other model queries. OpenAI Evals is an open-source software framework that provides tools for creating automated evals.
|
||||
|
||||
Model-based evals can be useful when there exists a range of possible outputs that would be considered equally high in quality (e.g. for questions with long answers). The boundary between what can be realistically evaluated with a model-based eval and what requires a human to evaluate is fuzzy and is constantly shifting as models become more capable. We encourage experimentation to figure out how well model-based evals can work for your use case.
|
||||
|
||||
Tactic: Evaluate model outputs with reference to gold-standard answers
|
||||
Suppose it is known that the correct answer to a question should make reference to a specific set of known facts. Then we can use a model query to count how many of the required facts are included in the answer.
|
||||
|
||||
For example, using the following system message:
|
||||
|
||||
SYSTEM
|
||||
You will be provided with text delimited by triple quotes that is supposed to be the answer to a question. Check if the following pieces of information are directly contained in the answer:
|
||||
|
||||
- Neil Armstrong was the first person to walk on the moon.
|
||||
- The date Neil Armstrong first walked on the moon was July 21, 1969.
|
||||
|
||||
For each of these points perform the following steps:
|
||||
|
||||
1 - Restate the point.
|
||||
2 - Provide a citation from the answer which is closest to this point.
|
||||
3 - Consider if someone reading the citation who doesn't know the topic could directly infer the point. Explain why or why not before making up your mind.
|
||||
4 - Write "yes" if the answer to 3 was yes, otherwise write "no".
|
||||
|
||||
Finally, provide a count of how many "yes" answers there are. Provide this count as {"count": <insert count here>}.
|
||||
|
||||
Here's an example input where both points are satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""Neil Armstrong is famous for being the first human to set foot on the Moon. This historic event took place on July 21, 1969, during the Apollo 11 mission."""
|
||||
|
||||
Here's an example input where only one point is satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""Neil Armstrong made history when he stepped off the lunar module, becoming the first person to walk on the moon."""
|
||||
|
||||
Here's an example input where none are satisfied:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
"""In the summer of '69, a voyage grand,
|
||||
Apollo 11, bold as legend's hand.
|
||||
Armstrong took a step, history unfurled,
|
||||
"One small step," he said, for a new world."""
|
||||
|
||||
There are many possible variants on this type of model-based eval. Consider the following variation which tracks the kind of overlap between the candidate answer and the gold-standard answer, and also tracks whether the candidate answer contradicts any part of the gold-standard answer.
|
||||
|
||||
SYSTEM
|
||||
Use the following steps to respond to user inputs. Fully restate each step before proceeding. i.e. "Step 1: Reason...".
|
||||
|
||||
Step 1: Reason step-by-step about whether the information in the submitted answer compared to the expert answer is either: disjoint, equal, a subset, a superset, or overlapping (i.e. some intersection but not subset/superset).
|
||||
|
||||
Step 2: Reason step-by-step about whether the submitted answer contradicts any aspect of the expert answer.
|
||||
|
||||
Step 3: Output a JSON object structured like: {"type_of_overlap": "disjoint" or "equal" or "subset" or "superset" or "overlapping", "contradiction": true or false}
|
||||
|
||||
Here's an example input with a substandard answer which nonetheless does not contradict the expert answer:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """Didn't he walk on the moon or something?"""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
Here's an example input with answer that directly contradicts the expert answer:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """On the 21st of July 1969, Neil Armstrong became the second person to walk on the moon, following after Buzz Aldrin."""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
Here's an example input with a correct answer that also provides a bit more detail than is necessary:
|
||||
|
||||
SYSTEM
|
||||
<insert system message above>
|
||||
USER
|
||||
Question: """What event is Neil Armstrong most famous for and on what date did it occur? Assume UTC time."""
|
||||
|
||||
Submitted Answer: """At approximately 02:56 UTC on July 21st 1969, Neil Armstrong became the first human to set foot on the lunar surface, marking a monumental achievement in human history."""
|
||||
|
||||
Expert Answer: """Neil Armstrong is most famous for being the first person to walk on the moon. This historic event occurred on July 21, 1969."""
|
||||
|
||||
END PROMPT WRITING KNOWLEDGE
|
||||
|
||||
# STEPS:
|
||||
|
||||
- Interpret what the input was trying to accomplish.
|
||||
- Read and understand the PROMPT WRITING KNOWLEDGE above.
|
||||
- Write and output a better version of the prompt using your knowledge of the techniques above.
|
||||
|
||||
# OUTPUT INSTRUCTIONS:
|
||||
|
||||
1. Output the prompt in clean, human-readable Markdown format.
|
||||
2. Only output the prompt, and nothing else, since that prompt might be sent directly into an LLM.
|
||||
|
||||
# INPUT
|
||||
|
||||
The following is the prompt you will improve:
|
31
home/.config/aichat/roles/linkedin-answer.md
Normal file
31
home/.config/aichat/roles/linkedin-answer.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
# LinkedIn Response Assistant
|
||||
|
||||
**Instructions:**
|
||||
1. Carefully analyze the received LinkedIn message below, noting its tone, structure, and key points.
|
||||
2. Review my draft response/suggestions and incorporate them naturally.
|
||||
3. Craft a professional yet human response that:
|
||||
- Matches the original message's tone and structure
|
||||
- Is concise but complete (3-5 sentences typically)
|
||||
- Sounds natural and personable (avoid robotic phrasing)
|
||||
- Addresses all points from the original message
|
||||
- Builds rapport when appropriate
|
||||
|
||||
**Input Format:**
|
||||
```
|
||||
Message:
|
||||
<received message here>
|
||||
|
||||
Draft/Notes:
|
||||
<my draft response, suggestions, or key points to include>
|
||||
```
|
||||
|
||||
**Output Requirements:**
|
||||
- Return ONLY the formatted LinkedIn response message
|
||||
- Use the same greeting style as the original message
|
||||
- Maintain similar paragraph structure and length
|
||||
- Include proper spacing and formatting for readability
|
||||
- Do not include any meta-commentary or notes
|
22
home/.config/aichat/roles/to-emoji.md
Normal file
22
home/.config/aichat/roles/to-emoji.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
model: ollama:gemma3:4b
|
||||
|
||||
---
|
||||
# Emoji Conversion Prompt
|
||||
|
||||
**Task:**
|
||||
Convert the user's input text into a single, most representative emoji that captures the core meaning or emotion of the message.
|
||||
|
||||
**Rules:**
|
||||
1. Respond **only** with one emoji—no words, explanations, or additional characters.
|
||||
2. Choose the emoji that best symbolizes the essence of the input (e.g., "happy" → 😊, "rain" → 🌧️).
|
||||
3. If the input is ambiguous or unclear, default to a neutral symbol (e.g., ❓ or 🤔).
|
||||
|
||||
**Example Inputs & Outputs:**
|
||||
- "I love pizza" → 🍕
|
||||
- "I'm so tired" → 😴
|
||||
- "Celebration!" → 🎉
|
||||
|
||||
**Note:**
|
||||
- Avoid combining multiple emojis.
|
||||
- Prioritize universally recognized emojis (Unicode standard).
|
31
home/.config/aichat/roles/to-emojies.md
Normal file
31
home/.config/aichat/roles/to-emojies.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
model: ollama:gemma3:4b
|
||||
|
||||
---
|
||||
# Enhanced Emoji Conversion Prompt
|
||||
|
||||
**Role:** You are an expert emoji translator that converts any input text into the most accurate and expressive emoji representation.
|
||||
|
||||
**Instructions:**
|
||||
1. Receive text input from the user
|
||||
2. Analyze the meaning, context, and emotional tone of the input
|
||||
3. Select the most appropriate emoji or emoji sequence that captures:
|
||||
- Core meaning
|
||||
- Emotional tone
|
||||
- Key concepts
|
||||
4. Only respond with emoji - no words, explanations, or additional text
|
||||
5. For complex concepts, use multiple emojis in a logical sequence (maximum 5 emojis)
|
||||
6. Prioritize clarity and recognizability over creativity
|
||||
|
||||
**Examples:**
|
||||
Input: "I love pizza"
|
||||
Output: 🍕❤️
|
||||
|
||||
Input: "It's raining cats and dogs"
|
||||
Output: 🌧️🐱🐶
|
||||
|
||||
Input: "I'm feeling excited about the trip!"
|
||||
Output: ✈️🎉😃
|
||||
|
||||
**Response Format:**
|
||||
[Your response should contain only emoji characters with no additional text or formatting]
|
5
home/.config/aichat/roles/translate#english#russian.md
Normal file
5
home/.config/aichat/roles/translate#english#russian.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
translate text below from __ARG1__ to __ARG2__
|
5
home/.config/aichat/roles/translate#russian#english.md
Normal file
5
home/.config/aichat/roles/translate#russian#english.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
model: deepseek:deepseek-chat
|
||||
|
||||
---
|
||||
translate text below from __ARG1__ to __ARG2__
|
21
home/.config/autostart/gammastep-indicator.desktop
Normal file
21
home/.config/autostart/gammastep-indicator.desktop
Normal file
@@ -0,0 +1,21 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Gammastep Indicator
|
||||
Name[pt_BR]=Indicador Gammastep
|
||||
Name[tr]=Gammastep Göstergesi
|
||||
GenericName=Indicator for color temperature adjustment
|
||||
GenericName[es]=Ajuste de la temperatura de color
|
||||
GenericName[pt_BR]=Indicador para ajuse de temperatura de cor
|
||||
Comment=Indicator for color temperature adjustment
|
||||
Comment[es]=Ajuste de la temperatura de color
|
||||
Comment[pt_BR]=Indicador para ajuse de temperatura de cor
|
||||
Keywords=display;color;soft;hue;temperature;eyes;strain;
|
||||
Exec=/nix/store/493kwp484ij7fs68wb5wyhd0w3cl577n-gammastep-2.0.9/bin/gammastep-indicator
|
||||
Icon=gammastep
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
StartupNotify=true
|
||||
Hidden=true
|
||||
X-GNOME-Autostart-enabled=false
|
||||
|
3
home/.config/avizo/config.ini
Normal file
3
home/.config/avizo/config.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
[default]
|
||||
background=rgba(128, 135, 162, 1)
|
||||
time=2
|
45
home/.config/bacon/prefs.toml
Normal file
45
home/.config/bacon/prefs.toml
Normal file
@@ -0,0 +1,45 @@
|
||||
# This is a preferences file for the bacon tool
|
||||
# More info at https://github.com/Canop/bacon
|
||||
|
||||
# Uncomment and change the value (true/false) to
|
||||
# specify whether bacon should start in summary mode
|
||||
#
|
||||
# summary = true
|
||||
|
||||
# Uncomment and change the value (true/false) to
|
||||
# specify whether bacon should start with lines wrapped
|
||||
#
|
||||
wrap = true
|
||||
|
||||
# In "reverse" mode, the focus is at the bottom, item
|
||||
# order is reversed, and the status bar is on top
|
||||
#
|
||||
# reverse = true
|
||||
|
||||
# Uncomment this to have bacon always export locations
|
||||
# This is equivalent to always adding -e to bacon commands
|
||||
# but can still be cancelled on specific launches with -E
|
||||
#
|
||||
# export_locations = true
|
||||
|
||||
# Uncomment and change the key-bindings you want to define
|
||||
# (some of those ones are the defaults)
|
||||
[keybindings]
|
||||
# esc = "back"
|
||||
# ctrl-c = "quit"
|
||||
# ctrl-q = "quit"
|
||||
# q = "quit"
|
||||
# s = "toggle-summary"
|
||||
# w = "toggle-wrap"
|
||||
# t = "toggle-backtrace"
|
||||
# Home = "scroll-to-top"
|
||||
# End = "scroll-to-bottom"
|
||||
# Up = "scroll-lines(-1)"
|
||||
# Down = "scroll-lines(1)"
|
||||
# PageUp = "scroll-pages(-1)"
|
||||
# PageDown = "scroll-pages(1)"
|
||||
# Space = "scroll-pages(1)"
|
||||
g = "scroll-to-top"
|
||||
shift-g = "scroll-to-bottom"
|
||||
k = "scroll-lines(-1)"
|
||||
j = "scroll-lines(1)"
|
25
home/.config/bat/config
Normal file
25
home/.config/bat/config
Normal file
@@ -0,0 +1,25 @@
|
||||
# This is `bat`s configuration file. Each line either contains a comment or
|
||||
# a command-line option that you want to pass to `bat` by default. You can
|
||||
# run `bat --help` to get a list of all possible configuration options.
|
||||
|
||||
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
|
||||
# for a list of all available themes
|
||||
--theme="Catppuccin-macchiato"
|
||||
|
||||
# Enable this to use italic text on the terminal. This is not supported on all
|
||||
# terminal emulators (like tmux, by default):
|
||||
#--italic-text=always
|
||||
|
||||
# Uncomment the following line to disable automatic paging:
|
||||
#--paging=never
|
||||
|
||||
# Uncomment the following line if you are using less version >= 551 and want to
|
||||
# enable mouse scrolling support in `bat` when running inside tmux. This might
|
||||
# disable text selection, unless you press shift.
|
||||
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
|
||||
|
||||
# Syntax mappings: map a certain filename pattern to a language.
|
||||
# Example 1: use the C++ syntax for Arduino .ino files
|
||||
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
|
||||
#--map-syntax "*.ino:C++"
|
||||
#--map-syntax ".ignore:Git Ignore"
|
959
home/.config/bat/themes/Catppuccin-frappe.tmTheme
Normal file
959
home/.config/bat/themes/Catppuccin-frappe.tmTheme
Normal file
@@ -0,0 +1,959 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Catppuccin</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6d0f5</string>
|
||||
<key>background</key>
|
||||
<string>#303446</string>
|
||||
<key>caret</key>
|
||||
<string>#b5bfe2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#a5adce</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#949cbb</string>
|
||||
<key>gutterForegroundHighlight</key>
|
||||
<string>#a6d189</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#626880</string>
|
||||
<key>selection</key>
|
||||
<string>#737994</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#303446</string>
|
||||
<key>activeGuide</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#292c3c</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#e5c890</string>
|
||||
<key>bracketsForeground</key>
|
||||
<string>#949cbb</string>
|
||||
<key>bracketContentsForeground</key>
|
||||
<string>#949cbb</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#737994</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6d189</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String regex</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.boolean</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#babbf1</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.builtin</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict></dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Conditional/loop</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ca9ee6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Return</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.return, keyword.control.flow.return</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4b8e4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, punctuation.accessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99d1db</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation terminator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.terminator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation bracket</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#949cbb</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Include</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import.include</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c890</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type namespace</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.namespace, meta.path</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type class</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Label</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword class</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, meta.toc-list.full-identifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99d1db</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99d1db</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function macro</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Macro directive - ifdef</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constructor</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.constructor, entity.name.function.destructor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#babbf1</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function declaration</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea999c</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#99d1db</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable function</string>
|
||||
<key>scope</key>
|
||||
<string>variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable other</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6d0f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable field</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.member</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable language</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ef9f76</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ca9ee6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag delimiter</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea999c</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown URL</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline.link.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2d5cf</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown reference</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link.inline.description</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#babbf1</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown literal</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown title</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8caaee</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown emphasis</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea999c</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown strong</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea999c</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Escape</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4b8e4</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4b8e4</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua field</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#babbf1</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua constructor</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eebebe</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java constant</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.constant.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eebebe</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6d0f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS suffix</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS variable property</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SCSS tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#babbf1</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SASS variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.sass</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#81c8be</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6d0f5</string>
|
||||
<key>background</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6d0f5</string>
|
||||
<key>background</key>
|
||||
<string>#ca9ee6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#737994</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6d189</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c890</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Message error</string>
|
||||
<key>scope</key>
|
||||
<string>message.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e78284</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.Catppuccin</string>
|
||||
<key>author</key>
|
||||
<string>BrunDerSchwarzmagier</string>
|
||||
</dict>
|
||||
</plist>
|
959
home/.config/bat/themes/Catppuccin-latte.tmTheme
Normal file
959
home/.config/bat/themes/Catppuccin-latte.tmTheme
Normal file
@@ -0,0 +1,959 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Catppuccin</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4c4f69</string>
|
||||
<key>background</key>
|
||||
<string>#eff1f5</string>
|
||||
<key>caret</key>
|
||||
<string>#5c5f77</string>
|
||||
<key>invisibles</key>
|
||||
<string>#6c6f85</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#7c7f93</string>
|
||||
<key>gutterForegroundHighlight</key>
|
||||
<string>#40a02b</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#acb0be</string>
|
||||
<key>selection</key>
|
||||
<string>#9ca0b0</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#eff1f5</string>
|
||||
<key>activeGuide</key>
|
||||
<string>#fe640b</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#e6e9ef</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#df8e1d</string>
|
||||
<key>bracketsForeground</key>
|
||||
<string>#7c7f93</string>
|
||||
<key>bracketContentsForeground</key>
|
||||
<string>#7c7f93</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9ca0b0</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#40a02b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String regex</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.boolean</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7287fd</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.builtin</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict></dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Conditional/loop</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8839ef</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Return</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.return, keyword.control.flow.return</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea76cb</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, punctuation.accessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#04a5e5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation terminator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.terminator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation bracket</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7c7f93</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Include</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import.include</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#df8e1d</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type namespace</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.namespace, meta.path</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type class</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Label</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword class</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, meta.toc-list.full-identifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#04a5e5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#04a5e5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function macro</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Macro directive - ifdef</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constructor</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.constructor, entity.name.function.destructor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7287fd</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function declaration</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e64553</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#04a5e5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable function</string>
|
||||
<key>scope</key>
|
||||
<string>variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable other</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4c4f69</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable field</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.member</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable language</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fe640b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8839ef</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag delimiter</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e64553</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown URL</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline.link.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dc8a78</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown reference</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link.inline.description</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7287fd</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown literal</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown title</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#1e66f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown emphasis</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e64553</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown strong</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e64553</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Escape</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea76cb</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ea76cb</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua field</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7287fd</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua constructor</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dd7878</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java constant</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.constant.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dd7878</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4c4f69</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS suffix</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS variable property</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SCSS tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7287fd</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SASS variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.sass</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#179299</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4c4f69</string>
|
||||
<key>background</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4c4f69</string>
|
||||
<key>background</key>
|
||||
<string>#8839ef</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9ca0b0</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#40a02b</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#df8e1d</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Message error</string>
|
||||
<key>scope</key>
|
||||
<string>message.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d20f39</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.Catppuccin</string>
|
||||
<key>author</key>
|
||||
<string>BrunDerSchwarzmagier</string>
|
||||
</dict>
|
||||
</plist>
|
959
home/.config/bat/themes/Catppuccin-macchiato.tmTheme
Normal file
959
home/.config/bat/themes/Catppuccin-macchiato.tmTheme
Normal file
@@ -0,0 +1,959 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Catppuccin</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cad3f5</string>
|
||||
<key>background</key>
|
||||
<string>#24273a</string>
|
||||
<key>caret</key>
|
||||
<string>#b8c0e0</string>
|
||||
<key>invisibles</key>
|
||||
<string>#a5adcb</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#939ab7</string>
|
||||
<key>gutterForegroundHighlight</key>
|
||||
<string>#a6da95</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#5b6078</string>
|
||||
<key>selection</key>
|
||||
<string>#6e738d</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#24273a</string>
|
||||
<key>activeGuide</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#1e2030</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#eed49f</string>
|
||||
<key>bracketsForeground</key>
|
||||
<string>#939ab7</string>
|
||||
<key>bracketContentsForeground</key>
|
||||
<string>#939ab7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6e738d</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6da95</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String regex</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.boolean</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b7bdf8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.builtin</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict></dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Conditional/loop</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6a0f6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Return</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.return, keyword.control.flow.return</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5bde6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, punctuation.accessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#91d7e3</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation terminator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.terminator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation bracket</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#939ab7</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Include</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import.include</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eed49f</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type namespace</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.namespace, meta.path</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type class</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Label</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword class</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, meta.toc-list.full-identifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#91d7e3</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#91d7e3</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function macro</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Macro directive - ifdef</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constructor</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.constructor, entity.name.function.destructor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b7bdf8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function declaration</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ee99a0</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#91d7e3</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable function</string>
|
||||
<key>scope</key>
|
||||
<string>variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable other</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cad3f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable field</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.member</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable language</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5a97f</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c6a0f6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag delimiter</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ee99a0</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown URL</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline.link.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f4dbd6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown reference</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link.inline.description</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b7bdf8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown literal</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown title</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8aadf4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown emphasis</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ee99a0</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown strong</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ee99a0</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Escape</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5bde6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5bde6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua field</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b7bdf8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua constructor</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f0c6c6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java constant</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.constant.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f0c6c6</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cad3f5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS suffix</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS variable property</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SCSS tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b7bdf8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SASS variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.sass</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8bd5ca</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cad3f5</string>
|
||||
<key>background</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cad3f5</string>
|
||||
<key>background</key>
|
||||
<string>#c6a0f6</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6e738d</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6da95</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eed49f</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Message error</string>
|
||||
<key>scope</key>
|
||||
<string>message.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ed8796</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.Catppuccin</string>
|
||||
<key>author</key>
|
||||
<string>BrunDerSchwarzmagier</string>
|
||||
</dict>
|
||||
</plist>
|
959
home/.config/bat/themes/Catppuccin-mocha.tmTheme
Normal file
959
home/.config/bat/themes/Catppuccin-mocha.tmTheme
Normal file
@@ -0,0 +1,959 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Catppuccin</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cdd6f4</string>
|
||||
<key>background</key>
|
||||
<string>#1e1e2e</string>
|
||||
<key>caret</key>
|
||||
<string>#bac2de</string>
|
||||
<key>invisibles</key>
|
||||
<string>#a6adc8</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#9399b2</string>
|
||||
<key>gutterForegroundHighlight</key>
|
||||
<string>#a6e3a1</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#585b70</string>
|
||||
<key>selection</key>
|
||||
<string>#6c7086</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#1e1e2e</string>
|
||||
<key>activeGuide</key>
|
||||
<string>#fab387</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#181825</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#f9e2af</string>
|
||||
<key>bracketsForeground</key>
|
||||
<string>#9399b2</string>
|
||||
<key>bracketContentsForeground</key>
|
||||
<string>#9399b2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6c7086</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6e3a1</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String regex</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.boolean</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b4befe</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.builtin</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict></dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Conditional/loop</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cba6f7</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Return</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.return, keyword.control.flow.return</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5c2e7</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exception</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, punctuation.accessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89dceb</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation terminator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.terminator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation bracket</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9399b2</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Include</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import.include</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f9e2af</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type namespace</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.namespace, meta.path</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type class</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Label</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword class</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class, meta.toc-list.full-identifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89dceb</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89dceb</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function macro</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Macro directive - ifdef</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.import</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constructor</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function.constructor, entity.name.function.destructor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b4befe</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function declaration</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.declaration.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eba0ac</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89dceb</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable function</string>
|
||||
<key>scope</key>
|
||||
<string>variable.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable other</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cdd6f4</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable field</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.member</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable language</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fab387</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cba6f7</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag delimiter</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eba0ac</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown URL</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline.link.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5e0dc</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown reference</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link.inline.description</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b4befe</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown literal</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown title</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#89b4fa</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown emphasis</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eba0ac</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown strong</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#eba0ac</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Escape</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5c2e7</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f5c2e7</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Bash parameter</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.shell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua field</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b4befe</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Lua constructor</string>
|
||||
<key>scope</key>
|
||||
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2cdcd</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java constant</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.constant.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS property</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f2cdcd</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cdd6f4</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS suffix</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS variable property</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SCSS tag</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#b4befe</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SASS variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.sass</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#94e2d5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cdd6f4</string>
|
||||
<key>background</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#cdd6f4</string>
|
||||
<key>background</key>
|
||||
<string>#cba6f7</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6c7086</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a6e3a1</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Diff changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f9e2af</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Message error</string>
|
||||
<key>scope</key>
|
||||
<string>message.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#f38ba8</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.Catppuccin</string>
|
||||
<key>author</key>
|
||||
<string>BrunDerSchwarzmagier</string>
|
||||
</dict>
|
||||
</plist>
|
159
home/.config/bottom/bottom.toml
Normal file
159
home/.config/bottom/bottom.toml
Normal file
@@ -0,0 +1,159 @@
|
||||
# This is a default config file for bottom. All of the settings are commented
|
||||
# out by default; if you wish to change them uncomment and modify as you see
|
||||
# fit.
|
||||
|
||||
# This group of options represents a command-line flag/option. Flags explicitly
|
||||
# added when running (ie: btm -a) will override this config file if an option
|
||||
# is also set here.
|
||||
|
||||
[flags]
|
||||
# Whether to hide the average cpu entry.
|
||||
#hide_avg_cpu = false
|
||||
# Whether to use dot markers rather than braille.
|
||||
#dot_marker = false
|
||||
# The update rate of the application.
|
||||
#rate = 1000
|
||||
# Whether to put the CPU legend to the left.
|
||||
#left_legend = false
|
||||
# Whether to set CPU% on a process to be based on the total CPU or just current usage.
|
||||
#current_usage = false
|
||||
# Whether to group processes with the same name together by default.
|
||||
#group_processes = false
|
||||
# Whether to make process searching case sensitive by default.
|
||||
#case_sensitive = false
|
||||
# Whether to make process searching look for matching the entire word by default.
|
||||
#whole_word = false
|
||||
# Whether to make process searching use regex by default.
|
||||
#regex = false
|
||||
# Defaults to Celsius. Temperature is one of:
|
||||
#temperature_type = "k"
|
||||
#temperature_type = "f"
|
||||
#temperature_type = "c"
|
||||
#temperature_type = "kelvin"
|
||||
#temperature_type = "fahrenheit"
|
||||
#temperature_type = "celsius"
|
||||
# The default time interval (in milliseconds).
|
||||
#default_time_value = 60000
|
||||
# The time delta on each zoom in/out action (in milliseconds).
|
||||
#time_delta = 15000
|
||||
# Hides the time scale.
|
||||
#hide_time = false
|
||||
# Override layout default widget
|
||||
#default_widget_type = "proc"
|
||||
#default_widget_count = 1
|
||||
# Use basic mode
|
||||
#basic = false
|
||||
# Use the old network legend style
|
||||
#use_old_network_legend = false
|
||||
# Remove space in tables
|
||||
#hide_table_gap = false
|
||||
# Show the battery widgets
|
||||
#battery = false
|
||||
# Disable mouse clicks
|
||||
#disable_click = false
|
||||
# Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light"
|
||||
#color = "default"
|
||||
# Show memory values in the processes widget as values by default
|
||||
#mem_as_value = false
|
||||
# Show tree mode by default in the processes widget.
|
||||
#tree = false
|
||||
# Shows an indicator in table widgets tracking where in the list you are.
|
||||
#show_table_scroll_position = false
|
||||
# Show processes as their commands by default in the process widget.
|
||||
#process_command = false
|
||||
# Displays the network widget with binary prefixes.
|
||||
#network_use_binary_prefix = false
|
||||
# Displays the network widget using bytes.
|
||||
#network_use_bytes = false
|
||||
# Displays the network widget with a log scale.
|
||||
#network_use_log = false
|
||||
# Hides advanced options to stop a process on Unix-like systems.
|
||||
#disable_advanced_kill = false
|
||||
|
||||
# These are all the components that support custom theming. Note that colour support
|
||||
# will depend on terminal support.
|
||||
|
||||
[colors]
|
||||
table_header_color = "#f4dbd6"
|
||||
all_cpu_color = "#f4dbd6"
|
||||
avg_cpu_color = "#ee99a0"
|
||||
cpu_core_colors = ["#ed8796","#f5a97f","#eed49f","#a6da95","#7dc4e4","#c6a0f6"]
|
||||
ram_color = "#a6da95"
|
||||
swap_color = "#f5a97f"
|
||||
rx_color = "#a6da95"
|
||||
tx_color = "#ed8796"
|
||||
widget_title_color = "#f0c6c6"
|
||||
border_color = "#5b6078"
|
||||
highlighted_border_color = "#f5bde6"
|
||||
text_color = "#cad3f5"
|
||||
graph_color = "#a5adcb"
|
||||
cursor_color = "#f5bde6"
|
||||
selected_text_color = "#181926"
|
||||
selected_bg_color = "#c6a0f6"
|
||||
high_battery_color = "#a6da95"
|
||||
medium_battery_color = "#eed49f"
|
||||
low_battery_color = "#ed8796"
|
||||
gpu_core_colors = ["#7dc4e4","#c6a0f6","#ed8796","#f5a97f","#eed49f","#a6da95"]
|
||||
arc_color = "#91d7e3"
|
||||
|
||||
# Layout - layouts follow a pattern like this:
|
||||
# [[row]] represents a row in the application.
|
||||
# [[row.child]] represents either a widget or a column.
|
||||
# [[row.child.child]] represents a widget.
|
||||
#
|
||||
# All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"].
|
||||
# All layout components have a ratio value - if this is not set, then it defaults to 1.
|
||||
# The default widget layout:
|
||||
#[[row]]
|
||||
# ratio=30
|
||||
# [[row.child]]
|
||||
# type="cpu"
|
||||
#[[row]]
|
||||
# ratio=40
|
||||
# [[row.child]]
|
||||
# ratio=4
|
||||
# type="mem"
|
||||
# [[row.child]]
|
||||
# ratio=3
|
||||
# [[row.child.child]]
|
||||
# type="temp"
|
||||
# [[row.child.child]]
|
||||
# type="disk"
|
||||
#[[row]]
|
||||
# ratio=30
|
||||
# [[row.child]]
|
||||
# type="net"
|
||||
# [[row.child]]
|
||||
# type="proc"
|
||||
# default=true
|
||||
|
||||
|
||||
# Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly
|
||||
# a bit hard to use as of now, and there is a planned in-app interface for managing this in the future:
|
||||
#[disk_filter]
|
||||
#is_list_ignored = true
|
||||
#list = ["/dev/sda\\d+", "/dev/nvme0n1p2"]
|
||||
#regex = true
|
||||
#case_sensitive = false
|
||||
#whole_word = false
|
||||
|
||||
#[mount_filter]
|
||||
#is_list_ignored = true
|
||||
#list = ["/mnt/.*", "/boot"]
|
||||
#regex = true
|
||||
#case_sensitive = false
|
||||
#whole_word = false
|
||||
|
||||
#[temp_filter]
|
||||
#is_list_ignored = true
|
||||
#list = ["cpu", "wifi"]
|
||||
#regex = false
|
||||
#case_sensitive = false
|
||||
#whole_word = false
|
||||
|
||||
#[net_filter]
|
||||
#is_list_ignored = true
|
||||
#list = ["virbr0.*"]
|
||||
#regex = true
|
||||
#case_sensitive = false
|
||||
#whole_word = false
|
212
home/.config/btop/btop.conf
Normal file
212
home/.config/btop/btop.conf
Normal file
@@ -0,0 +1,212 @@
|
||||
#? Config file for btop v. 1.2.13
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "/home/xnm/.config/btop/themes/catppuccin_macchiato.theme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = False
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = False
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "total"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "total"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
42
home/.config/btop/themes/catppuccin_macchiato.theme
Normal file
42
home/.config/btop/themes/catppuccin_macchiato.theme
Normal file
@@ -0,0 +1,42 @@
|
||||
theme[main_bg]="#24273A"
|
||||
theme[main_fg]="#CAD3F5"
|
||||
theme[title]="#CAD3F5"
|
||||
theme[hi_fg]="#8AADF4"
|
||||
theme[selected_bg]="#494D64"
|
||||
theme[selected_fg]="#8AADF4"
|
||||
theme[inactive_fg]="#8087A2"
|
||||
theme[graph_text]="#F4DBD6"
|
||||
theme[meter_bg]="#494D64"
|
||||
theme[proc_misc]="#F4DBD6"
|
||||
theme[cpu_box]="#7DC4E4"
|
||||
theme[mem_box]="#A6DA95"
|
||||
theme[net_box]="#C6A0F6"
|
||||
theme[proc_box]="#F0C6C6"
|
||||
theme[div_line]="#6E738D"
|
||||
theme[temp_start]="#EED49F"
|
||||
theme[temp_mid]="#F5A97F"
|
||||
theme[temp_end]="#ED8796"
|
||||
theme[cpu_start]="#7DC4E4"
|
||||
theme[cpu_mid]="#91D7E3"
|
||||
theme[cpu_end]="#8BD5CA"
|
||||
theme[free_start]="#8BD5CA"
|
||||
theme[free_mid]="#8BD5CA"
|
||||
theme[free_end]="#A6DA95"
|
||||
theme[cached_start]="#F5BDE6"
|
||||
theme[cached_mid]="#F5BDE6"
|
||||
theme[cached_end]="#C6A0F6"
|
||||
theme[available_start]="#F4DBD6"
|
||||
theme[available_mid]="#F0C6C6"
|
||||
theme[available_end]="#F0C6C6"
|
||||
theme[used_start]="#F5A97F"
|
||||
theme[used_mid]="#F5A97F"
|
||||
theme[used_end]="#ED8796"
|
||||
theme[download_start]="#B7BDF8"
|
||||
theme[download_mid]="#B7BDF8"
|
||||
theme[download_end]="#C6A0F6"
|
||||
theme[upload_start]="#B7BDF8"
|
||||
theme[upload_mid]="#B7BDF8"
|
||||
theme[upload_end]="#C6A0F6"
|
||||
theme[process_start]="#7DC4E4"
|
||||
theme[process_mid]="#91D7E3"
|
||||
theme[process_end]="#8BD5CA"
|
223
home/.config/cava/config
Normal file
223
home/.config/cava/config
Normal file
@@ -0,0 +1,223 @@
|
||||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||
; mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
; framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
; bars = 0
|
||||
; bar_width = 2
|
||||
; bar_spacing = 1
|
||||
# bar_height is only used for output in "noritake" format
|
||||
; bar_height = 32
|
||||
|
||||
# For SDL width and space between bars is in pixels, defaults are:
|
||||
; bar_width = 20
|
||||
; bar_spacing = 5
|
||||
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
|
||||
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
|
||||
; sleep_timer = 0
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
|
||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
||||
; method = pulse
|
||||
; source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
; sample_rate = 44100
|
||||
; sample_bits = 16
|
||||
|
||||
; method = shmem
|
||||
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
||||
|
||||
; method = portaudio
|
||||
; source = auto
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake' or 'sdl'.
|
||||
# 'noncurses' uses a custom framebuffer technique and prints only changes
|
||||
# from frame to frame in the terminal. 'ncurses' is default if supported.
|
||||
#
|
||||
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
||||
# stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
#
|
||||
# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display
|
||||
# in graphic mode. It only support the 3000 series graphical VFDs for now.
|
||||
#
|
||||
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
|
||||
; method = ncurses
|
||||
|
||||
# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'.
|
||||
# Default is 'bottom'. Other orientations are only supported on sdl and ncruses
|
||||
# output. Note: many fonts have weird glyphs for 'top' and 'right' characters,
|
||||
# which can make ncurses not look right.
|
||||
; orientation = bottom
|
||||
|
||||
# Visual channels. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' outputs left to right lowest to highest frequencies.
|
||||
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
||||
# set 'reverse' to 1 to display frequencies the other way around.
|
||||
; channels = stereo
|
||||
; mono_option = average
|
||||
; reverse = 0
|
||||
|
||||
# Raw output target. A fifo will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
# sdl window size and position. -1,-1 is centered.
|
||||
; sdl_width = 1000
|
||||
; sdl_height = 500
|
||||
; sdl_x = -1
|
||||
; sdl_y= -1
|
||||
|
||||
# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none'
|
||||
# 'frequency' displays the lower cut off frequency of the bar above.
|
||||
# Only supported on ncurses and noncurses output.
|
||||
; xaxis = none
|
||||
|
||||
# enable alacritty synchronized updates. 1 = on, 0 = off
|
||||
# removes flickering in alacritty terminal emeulator.
|
||||
# defaults to off since the behaviour in other terminal emulators is unknown
|
||||
; alacritty_sync = 0
|
||||
|
||||
[color]
|
||||
|
||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
||||
# a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# default is to keep current terminal color
|
||||
; background = default
|
||||
; foreground = default
|
||||
|
||||
# SDL only support hex code colors, these are the default:
|
||||
; background = '#111111'
|
||||
; foreground = '#33cccc'
|
||||
|
||||
|
||||
# Gradient mode, only hex defined colors are supported,
|
||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||
; gradient = 0
|
||||
; gradient_count = 8
|
||||
; gradient_color_1 = '#59cc33'
|
||||
; gradient_color_2 = '#80cc33'
|
||||
; gradient_color_3 = '#a6cc33'
|
||||
; gradient_color_4 = '#cccc33'
|
||||
; gradient_color_5 = '#cca633'
|
||||
; gradient_color_6 = '#cc8033'
|
||||
; gradient_color_7 = '#cc5933'
|
||||
; gradient_color_8 = '#cc3333'
|
||||
|
||||
[color]
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '#8bd5ca'
|
||||
gradient_color_2 = '#91d7e3'
|
||||
gradient_color_3 = '#7dc4e4'
|
||||
gradient_color_4 = '#8aadf4'
|
||||
gradient_color_5 = '#c6a0f6'
|
||||
gradient_color_6 = '#f5bde6'
|
||||
gradient_color_7 = '#ee99a0'
|
||||
gradient_color_8 = '#ed8796'
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||
# Higher values means smoother, but less precise. 0 to disable.
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; integral = 77
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||
; monstercat = 0
|
||||
; waves = 0
|
||||
|
||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||
# DEPRECATED as of 0.8.0, use noise_reduction instead
|
||||
; gravity = 100
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
# DEPRECATED as of 0.8.0
|
||||
; ignore = 0
|
||||
|
||||
# Noise reduction, float 0 - 1. default 0.77
|
||||
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
|
||||
# 1 will be very slow and smooth, 0 will be fast but noisy.
|
||||
; noise_reduction = 0.77
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more then one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
; 1 = 1 # bass
|
||||
; 2 = 1
|
||||
; 3 = 1 # midtone
|
||||
; 4 = 1
|
||||
; 5 = 1 # treble
|
79
home/.config/cava/shaders/bar_spectrum.frag
Normal file
79
home/.config/cava/shaders/bar_spectrum.frag
Normal file
@@ -0,0 +1,79 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
38
home/.config/cava/shaders/normalized_bars.frag
Normal file
38
home/.config/cava/shaders/normalized_bars.frag
Normal file
@@ -0,0 +1,38 @@
|
||||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
float normalize_C(float x, float x_min, float x_max, float r_min, float r_max )
|
||||
{
|
||||
float xr;
|
||||
xr = (r_max-r_min) * (x - x_min) / (x_max - x_min) + r_min;
|
||||
return xr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
// create a normal along the y axis based on the bar height
|
||||
float x = normalize_C(fragCoord.y, 1.0, 0.0, 0.0, bars[bar]);
|
||||
|
||||
// set color
|
||||
fragColor.r=fg_color.x*x;
|
||||
fragColor.g=fg_color.y*x;
|
||||
fragColor.b=fg_color.z*x;
|
||||
fragColor.a=1.0;
|
||||
|
||||
}
|
14
home/.config/cava/shaders/pass_through.vert
Normal file
14
home/.config/cava/shaders/pass_through.vert
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
27
home/.config/cool-retro-term-style.json
Normal file
27
home/.config/cool-retro-term-style.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"backgroundColor": "#24273a",
|
||||
"fontColor": "#8bd5ca",
|
||||
"flickering": 0.1029,
|
||||
"horizontalSync": 0.1155,
|
||||
"staticNoise": 0.0198,
|
||||
"chromaColor": 1,
|
||||
"saturationColor": 0.5026,
|
||||
"screenCurvature": 0,
|
||||
"glowingLine": 0.0977,
|
||||
"burnIn": 0.1038,
|
||||
"bloom": 0.3023,
|
||||
"rasterization": 0,
|
||||
"jitter": 0.1199,
|
||||
"rbgShift": 0.0526,
|
||||
"brightness": 0.5043,
|
||||
"contrast": 1,
|
||||
"ambientLight": 0,
|
||||
"windowOpacity": 0.7028,
|
||||
"fontName": "System: JetBrains Mono",
|
||||
"fontWidth": 1,
|
||||
"margin": 0.1028,
|
||||
"blinkingCursor": true,
|
||||
"frameMargin": 0,
|
||||
"version": 2,
|
||||
"name": "catppuccin-theme"
|
||||
}
|
123
home/.config/delta/catppuccin.gitconfig
Normal file
123
home/.config/delta/catppuccin.gitconfig
Normal file
@@ -0,0 +1,123 @@
|
||||
[delta "catppuccin-latte"]
|
||||
blame-palette = "#eff1f5 #e6e9ef #dce0e8 #ccd0da #bcc0cc"
|
||||
commit-decoration-style = box ul
|
||||
light = true
|
||||
file-decoration-style = "#4c4f69"
|
||||
file-style = "#4c4f69"
|
||||
hunk-header-decoration-style = box ul
|
||||
hunk-header-file-style = bold
|
||||
hunk-header-line-number-style = bold "#6c6f85"
|
||||
hunk-header-style = file line-number syntax
|
||||
line-numbers-left-style = "#9ca0b0"
|
||||
line-numbers-minus-style = bold "#d20f39"
|
||||
line-numbers-plus-style = bold "#40a02b"
|
||||
line-numbers-right-style = "#9ca0b0"
|
||||
line-numbers-zero-style = "#9ca0b0"
|
||||
# 25% red 75% base
|
||||
minus-emph-style = bold syntax "#e8b9c6"
|
||||
# 10% red 90% base
|
||||
minus-style = syntax "#ecdae2"
|
||||
# 25% green 75% base
|
||||
plus-emph-style = bold syntax "#c3ddc3"
|
||||
# 10% green 90% base
|
||||
plus-style = syntax "#dee8e0"
|
||||
map-styles = \
|
||||
bold purple => syntax "#d5c3f4", \
|
||||
bold blue => syntax "#bbcff5", \
|
||||
bold cyan => syntax "#b4def1", \
|
||||
bold yellow => syntax "#ebd9bf"
|
||||
# Should match the name of the bat theme
|
||||
syntax-theme = Catppuccin Latte
|
||||
|
||||
[delta "catppuccin-frappe"]
|
||||
blame-palette = "#303446 #292c3c #232634 #414559 #51576d"
|
||||
commit-decoration-style = box ul
|
||||
dark = true
|
||||
file-decoration-style = "#c6d0f5"
|
||||
file-style = "#c6d0f5"
|
||||
hunk-header-decoration-style = box ul
|
||||
hunk-header-file-style = bold
|
||||
hunk-header-line-number-style = bold "#a5adce"
|
||||
hunk-header-style = file line-number syntax
|
||||
line-numbers-left-style = "#737994"
|
||||
line-numbers-minus-style = bold "#e78284"
|
||||
line-numbers-plus-style = bold "#a6d189"
|
||||
line-numbers-right-style = "#737994"
|
||||
line-numbers-zero-style = "#737994"
|
||||
# 25% red 75% base
|
||||
minus-emph-style = bold syntax "#5e4855"
|
||||
# 10% red 90% base
|
||||
minus-style = syntax "#433c4c"
|
||||
# 25% green 75% base
|
||||
plus-emph-style = bold syntax "#4e5b56"
|
||||
# 10% green 90% base
|
||||
plus-style = syntax "#3c444d"
|
||||
map-styles = \
|
||||
bold purple => syntax "#574f6e", \
|
||||
bold blue => syntax "#475270", \
|
||||
bold cyan => syntax "#4a5b6b", \
|
||||
bold yellow => syntax "#5d5958"
|
||||
# Should match the name of the bat theme
|
||||
syntax-theme = Catppuccin Frappe
|
||||
|
||||
[delta "catppuccin-macchiato"]
|
||||
blame-palette = "#24273a #1e2030 #181926 #363a4f #494d64"
|
||||
commit-decoration-style = box ul
|
||||
dark = true
|
||||
file-decoration-style = "#cad3f5"
|
||||
file-style = "#cad3f5"
|
||||
hunk-header-decoration-style = box ul
|
||||
hunk-header-file-style = bold
|
||||
hunk-header-line-number-style = bold "#a5adcb"
|
||||
hunk-header-style = file line-number syntax
|
||||
line-numbers-left-style = "#6e738d"
|
||||
line-numbers-minus-style = bold "#ed8796"
|
||||
line-numbers-plus-style = bold "#a6da95"
|
||||
line-numbers-right-style = "#6e738d"
|
||||
line-numbers-zero-style = "#6e738d"
|
||||
# 25% red 75% base
|
||||
minus-emph-style = bold syntax "#563f51"
|
||||
# 10% red 90% base
|
||||
minus-style = syntax "#383143"
|
||||
# 25% green 75% base
|
||||
plus-emph-style = bold syntax "#455450"
|
||||
# 10% green 90% base
|
||||
plus-style = syntax "#313943"
|
||||
map-styles = \
|
||||
bold purple => syntax "#4d4569", \
|
||||
bold blue => syntax "#3e4868", \
|
||||
bold cyan => syntax "#3f5364", \
|
||||
bold yellow => syntax "#575253"
|
||||
# Should match the name of the bat theme
|
||||
syntax-theme = Catppuccin Macchiato
|
||||
|
||||
[delta "catppuccin-mocha"]
|
||||
blame-palette = "#1e1e2e #181825 #11111b #313244 #45475a"
|
||||
commit-decoration-style = box ul
|
||||
dark = true
|
||||
file-decoration-style = "#cdd6f4"
|
||||
file-style = "#cdd6f4"
|
||||
hunk-header-decoration-style = box ul
|
||||
hunk-header-file-style = bold
|
||||
hunk-header-line-number-style = bold "#a6adc8"
|
||||
hunk-header-style = file line-number syntax
|
||||
line-numbers-left-style = "#6c7086"
|
||||
line-numbers-minus-style = bold "#f38ba8"
|
||||
line-numbers-plus-style = bold "#a6e3a1"
|
||||
line-numbers-right-style = "#6c7086"
|
||||
line-numbers-zero-style = "#6c7086"
|
||||
# 25% red 75% base
|
||||
minus-emph-style = bold syntax "#53394c"
|
||||
# 10% red 90% base
|
||||
minus-style = syntax "#34293a"
|
||||
# 25% green 75% base
|
||||
plus-emph-style = bold syntax "#404f4a"
|
||||
# 10% green 90% base
|
||||
plus-style = syntax "#2c3239"
|
||||
map-styles = \
|
||||
bold purple => syntax "#494060", \
|
||||
bold blue => syntax "#384361", \
|
||||
bold cyan => syntax "#384d5d", \
|
||||
bold yellow => syntax "#544f4e"
|
||||
# Should match the name of the bat theme
|
||||
syntax-theme = Catppuccin Mocha
|
14
home/.config/discord/settings.json
Normal file
14
home/.config/discord/settings.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"SKIP_HOST_UPDATE": true,
|
||||
"openasar": {
|
||||
"setup": true,
|
||||
"cmdPreset": "balanced",
|
||||
"noTyping": true,
|
||||
"quickstart": true,
|
||||
"css": "@import url(\"https://catppuccin.github.io/discord/dist/catppuccin-macchiato-teal.theme.css\");"
|
||||
},
|
||||
"IS_MAXIMIZED": false,
|
||||
"IS_MINIMIZED": false,
|
||||
"trayBalloonShown": true,
|
||||
"chromiumSwitches": {}
|
||||
}
|
26
home/.config/dunst/dunstrc
Normal file
26
home/.config/dunst/dunstrc
Normal file
@@ -0,0 +1,26 @@
|
||||
[global]
|
||||
frame_color = "#cad3f5"
|
||||
separator_color= frame
|
||||
font = "JetBrains Mono Regular 11"
|
||||
corner_radius = 10
|
||||
offset = 5x5
|
||||
origin = top-right
|
||||
notification_limit = 8
|
||||
gap_size = 7
|
||||
frame_width = 2
|
||||
width = 300
|
||||
height = 100
|
||||
follow = keyboard
|
||||
|
||||
[urgency_low]
|
||||
background = "#24273A"
|
||||
foreground = "#CAD3F5"
|
||||
|
||||
[urgency_normal]
|
||||
background = "#24273A"
|
||||
foreground = "#CAD3F5"
|
||||
|
||||
[urgency_critical]
|
||||
background = "#24273A"
|
||||
foreground = "#CAD3F5"
|
||||
frame_color = "#F5A97F"
|
27
home/.config/fish/completions/aichat.fish
Normal file
27
home/.config/fish/completions/aichat.fish
Normal file
@@ -0,0 +1,27 @@
|
||||
complete -c aichat -s m -l model -x -a "(aichat --list-models)" -d 'Select a LLM model' -r
|
||||
complete -c aichat -l prompt -d 'Use the system prompt'
|
||||
complete -c aichat -s r -l role -x -a "(aichat --list-roles)" -d 'Select a role' -r
|
||||
complete -c aichat -s s -l session -x -a "(aichat --list-sessions)" -d 'Start or join a session' -r
|
||||
complete -c aichat -l empty-session -d 'Ensure the session is empty'
|
||||
complete -c aichat -l save-session -d 'Ensure the new conversation is saved to the session'
|
||||
complete -c aichat -s a -l agent -x -a "(aichat --list-agents)" -d 'Start a agent' -r
|
||||
complete -c aichat -l agent-variable -d 'Set agent variables'
|
||||
complete -c aichat -l rag -x -a"(aichat --list-rags)" -d 'Start a RAG' -r
|
||||
complete -c aichat -l rebuild-rag -d 'Rebuild the RAG to sync document changes'
|
||||
complete -c aichat -l macro -x -a"(aichat --list-macros)" -d 'Execute a macro' -r
|
||||
complete -c aichat -l serve -d 'Serve the LLM API and WebAPP'
|
||||
complete -c aichat -s e -l execute -d 'Execute commands in natural language'
|
||||
complete -c aichat -s c -l code -d 'Output code only'
|
||||
complete -c aichat -s f -l file -d 'Include files, directories, or URLs' -r -F
|
||||
complete -c aichat -s S -l no-stream -d 'Turn off stream mode'
|
||||
complete -c aichat -l dry-run -d 'Display the message without sending it'
|
||||
complete -c aichat -l info -d 'Display information'
|
||||
complete -c aichat -l sync-models -d 'Sync models updates'
|
||||
complete -c aichat -l list-models -d 'List all available chat models'
|
||||
complete -c aichat -l list-roles -d 'List all roles'
|
||||
complete -c aichat -l list-sessions -d 'List all sessions'
|
||||
complete -c aichat -l list-agents -d 'List all agents'
|
||||
complete -c aichat -l list-rags -d 'List all RAGs'
|
||||
complete -c aichat -l list-macros -d 'List all macros'
|
||||
complete -c aichat -s h -l help -d 'Print help'
|
||||
complete -c aichat -s V -l version -d 'Print version'
|
55
home/.config/fish/config.fish
Normal file
55
home/.config/fish/config.fish
Normal file
@@ -0,0 +1,55 @@
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
end
|
||||
|
||||
alias cl="clear"
|
||||
alias rad="rad-tui"
|
||||
alias ai="aichat"
|
||||
alias ai-commit="git diff --staged | ai -r commit-message | hx"
|
||||
alias ai-emoji-commit="git diff --staged | ai -r emoji-commit-message | hx"
|
||||
alias ai-branch="git diff --staged | ai -r git-branch | hx"
|
||||
alias ai-spell="vipe | ai -r improve-writing | hx"
|
||||
alias ai-email="vipe | ai -r email-answer | hx"
|
||||
alias ai-linkedin="vipe | ai -r linked-answer | hx"
|
||||
alias aic="ai-commit"
|
||||
alias aiec="ai-emoji-commit"
|
||||
alias aib="ai-branch"
|
||||
alias ais="ai-spell"
|
||||
alias aie="ai-email"
|
||||
alias ail="ai-linkedin"
|
||||
alias lgit="lazygit"
|
||||
alias ldocker="lazydocker"
|
||||
alias conf="z ~/.config"
|
||||
alias nixos="z /etc/nixos"
|
||||
alias store="z /nix/store"
|
||||
alias nswitch="sudo nixos-rebuild switch --flake /etc/nixos#isitreal-laptop"
|
||||
alias nswitchu="sudo nix flake update --flake /etc/nixos; and sudo nixos-rebuild switch --flake /etc/nixos#isitreal-laptop --upgrade"
|
||||
alias nau="sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos"
|
||||
alias nsgc="sudo nix-store --gc"
|
||||
alias ngc="sudo nix-collect-garbage -d"
|
||||
alias ngc7="sudo nix-collect-garbage --delete-older-than 7d"
|
||||
alias ngc14="sudo nix-collect-garbage --delete-older-than 14d"
|
||||
|
||||
# if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]
|
||||
# exec Hyprland
|
||||
# end
|
||||
|
||||
set -gx EDITOR hx
|
||||
set -gx VOLUME_STEP 5
|
||||
set -gx BRIGHTNESS_STEP 5
|
||||
|
||||
set -gx PATH $HOME/.cargo/bin $PATH
|
||||
|
||||
set fish_vi_force_cursor
|
||||
set fish_cursor_default block
|
||||
set fish_cursor_insert line blink
|
||||
set fish_cursor_visual underscore blink
|
||||
|
||||
set -Ux FZF_DEFAULT_OPTS "\
|
||||
--color=bg+:#363a4f,bg:#24273a,spinner:#f4dbd6,hl:#ed8796 \
|
||||
--color=fg:#cad3f5,header:#ed8796,info:#c6a0f6,pointer:#f4dbd6 \
|
||||
--color=marker:#f4dbd6,fg+:#cad3f5,prompt:#c6a0f6,hl+:#ed8796"
|
||||
|
||||
starship init fish | source
|
||||
zoxide init fish | source
|
||||
direnv hook fish | source
|
32
home/.config/fish/fish_variables
Normal file
32
home/.config/fish/fish_variables
Normal file
@@ -0,0 +1,32 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR --export FZF_DEFAULT_OPTS:\x2d\x2dcolor\x3dbg\x2b\x3a\x23363a4f\x2cbg\x3a\x2324273a\x2cspinner\x3a\x23f4dbd6\x2chl\x3a\x23ed8796\x20\x2d\x2dcolor\x3dfg\x3a\x23cad3f5\x2cheader\x3a\x23ed8796\x2cinfo\x3a\x23c6a0f6\x2cpointer\x3a\x23f4dbd6\x20\x2d\x2dcolor\x3dmarker\x3a\x23f4dbd6\x2cfg\x2b\x3a\x23cad3f5\x2cprompt\x3a\x23c6a0f6\x2chl\x2b\x3a\x23ed8796
|
||||
SETUVAR __fish_initialized:3400
|
||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:blue
|
||||
SETUVAR fish_color_comment:red
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:green
|
||||
SETUVAR fish_color_error:brred
|
||||
SETUVAR fish_color_escape:brcyan
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:brcyan
|
||||
SETUVAR fish_color_param:cyan
|
||||
SETUVAR fish_color_quote:yellow
|
||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
|
||||
SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
8
home/.config/fish/functions/aichat_fish.fish
Normal file
8
home/.config/fish/functions/aichat_fish.fish
Normal file
@@ -0,0 +1,8 @@
|
||||
function aichat_fish
|
||||
set -l _old (commandline)
|
||||
if test -n $_old
|
||||
echo -n "⌛"
|
||||
commandline -f repaint
|
||||
commandline (aichat -e $_old)
|
||||
end
|
||||
end
|
33
home/.config/fish/functions/airplane_mode_toggle.fish
Normal file
33
home/.config/fish/functions/airplane_mode_toggle.fish
Normal file
@@ -0,0 +1,33 @@
|
||||
function airplane_mode_toggle
|
||||
set backup_file ~/.cache/airplane_backup
|
||||
|
||||
if test -e $backup_file
|
||||
# Read network states from the backup file
|
||||
set -l wifi_status (cat $backup_file | grep -o 'wifi:\(on\|off\)$' | cut -d':' -f2)
|
||||
set -l bluetooth_status (cat $backup_file | grep -o 'bluetooth:\(on\|off\)$' | cut -d':' -f2)
|
||||
|
||||
# Restore network states
|
||||
if test "$wifi_status" = on
|
||||
rfkill unblock wifi
|
||||
# else
|
||||
# rfkill block wifi
|
||||
end
|
||||
|
||||
if test "$bluetooth_status" = on
|
||||
rfkill unblock bluetooth
|
||||
# else
|
||||
# rfkill block bluetooth
|
||||
end
|
||||
|
||||
# Remove the backup file
|
||||
rm $backup_file
|
||||
else
|
||||
# Backup the current network states and turn off all networks
|
||||
echo "wifi:$(rfkill list wifi | grep -q "Soft blocked: no" && echo "on" || echo "off")" >$backup_file
|
||||
echo "bluetooth:$(rfkill list bluetooth | grep -qi "Soft blocked: no" && echo "on" || echo "off")" >>$backup_file
|
||||
# Add more lines to backup other network types if needed
|
||||
|
||||
rfkill block wifi
|
||||
rfkill block bluetooth
|
||||
end
|
||||
end
|
11
home/.config/fish/functions/archive-preview.fish
Normal file
11
home/.config/fish/functions/archive-preview.fish
Normal file
@@ -0,0 +1,11 @@
|
||||
function archive-preview
|
||||
set archive "$argv[1]"
|
||||
set supported_archive_formats tar.gz tar.bz2 tar.xz zip rar 7z
|
||||
|
||||
for format in $supported_archive_formats
|
||||
if string match -q "application/$format" (file -b --mime-type "$archive")
|
||||
ouch list --tree --no "$archive"
|
||||
exit 0
|
||||
end
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/autostart.fish
Normal file
3
home/.config/fish/functions/autostart.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function autostart
|
||||
pypr & hyprpaper & waybar & poweralertd -s & wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & wl-clip-persist --clipboard regular & avizo-service & systemctl --user start psi-notify
|
||||
end
|
4
home/.config/fish/functions/back-op.fish
Normal file
4
home/.config/fish/functions/back-op.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function back-op
|
||||
cd ..
|
||||
commandline -f repaint
|
||||
end
|
4
home/.config/fish/functions/backtrack-op.fish
Normal file
4
home/.config/fish/functions/backtrack-op.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function backtrack-op
|
||||
cd -
|
||||
commandline -f repaint
|
||||
end
|
13
home/.config/fish/functions/bluetooth_toggle.fish
Normal file
13
home/.config/fish/functions/bluetooth_toggle.fish
Normal file
@@ -0,0 +1,13 @@
|
||||
function bluetooth_toggle
|
||||
set bluetooth_status (rfkill list bluetooth | grep -i -o "Soft blocked: yes")
|
||||
set backup_file ~/.cache/airplane_backup
|
||||
|
||||
if [ -z "$bluetooth_status" ]
|
||||
rfkill block bluetooth
|
||||
else
|
||||
rfkill unblock bluetooth
|
||||
if test -e $backup_file
|
||||
rm $backup_file
|
||||
end
|
||||
end
|
||||
end
|
10
home/.config/fish/functions/bookmark_add.fish
Normal file
10
home/.config/fish/functions/bookmark_add.fish
Normal file
@@ -0,0 +1,10 @@
|
||||
function bookmark_add
|
||||
if [ -z $(wl-paste) ]
|
||||
dunstify "Bookmarks" "Can`t add empty space" -u critical -t 2000
|
||||
else if grep -q "^$(wl-paste)\$" .bookmarks
|
||||
dunstify "Bookmarks" "Bookmark '$(wl-paste)' already exists" -u critical -t 2000
|
||||
else
|
||||
wl-paste >> .bookmarks;
|
||||
dunstify "Bookmarks" "Bookmark '$(wl-paste)' was added" -t 2000
|
||||
end
|
||||
end
|
7
home/.config/fish/functions/bookmark_delete.fish
Normal file
7
home/.config/fish/functions/bookmark_delete.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
function bookmark_delete
|
||||
set bookmark $(cat .bookmarks | rofi -dmenu -p 'delete bookmark')
|
||||
if not [ -z $bookmark ]
|
||||
sed -i -e /$bookmark/d .bookmarks
|
||||
dunstify "Bookmarks" "Bookmark '$bookmark' was deleted" -t 2000
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/bookmark_to_type.fish
Normal file
3
home/.config/fish/functions/bookmark_to_type.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function bookmark_to_type
|
||||
cat .bookmarks | rofi -dmenu -p bookmarks | tr -d '\n' | wtype -
|
||||
end
|
9
home/.config/fish/functions/check_airplane_mode.fish
Normal file
9
home/.config/fish/functions/check_airplane_mode.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function check_airplane_mode
|
||||
set backup_file ~/.cache/airplane_backup
|
||||
|
||||
if test -e $backup_file
|
||||
echo "{ \"text\":\"\", \"tooltip\": \"airplane-mode <span color='#a6da95'>on</span>\", \"class\": \"on\" }"
|
||||
else
|
||||
echo "{ \"text\":\"\", \"tooltip\": \"airplane-mode <span color='#ee99a0'>off</span>\", \"class\": \"off\" }"
|
||||
end
|
||||
end
|
7
home/.config/fish/functions/check_geo_module.fish
Normal file
7
home/.config/fish/functions/check_geo_module.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
function check_geo_module
|
||||
set target_process "geoclue"
|
||||
|
||||
if pgrep $target_process > /dev/null
|
||||
echo "{\"text\":\"\", \"tooltip\":\"Geopositioning\", \"alt\":\"Geo\"}"
|
||||
end
|
||||
end
|
9
home/.config/fish/functions/check_night_mode.fish
Normal file
9
home/.config/fish/functions/check_night_mode.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function check_night_mode
|
||||
set target_process wlsunset
|
||||
|
||||
if pgrep $target_process >/dev/null
|
||||
echo "{ \"text\":\"\", \"tooltip\": \"night-mode <span color='#a6da95'>on</span>\", \"class\": \"on\" }"
|
||||
else
|
||||
echo "{ \"text\":\"\", \"tooltip\": \"night-mode <span color='#ee99a0'>off</span>\", \"class\": \"off\" }"
|
||||
end
|
||||
end
|
7
home/.config/fish/functions/check_recording.fish
Normal file
7
home/.config/fish/functions/check_recording.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
function check_recording
|
||||
set target_process wl-screenrec
|
||||
|
||||
if pgrep $target_process >/dev/null
|
||||
echo "{\"text\":\"\", \"tooltip\":\"Recording\", \"alt\":\"Recording\"}"
|
||||
end
|
||||
end
|
11
home/.config/fish/functions/check_webcam.fish
Normal file
11
home/.config/fish/functions/check_webcam.fish
Normal file
@@ -0,0 +1,11 @@
|
||||
function check_webcam
|
||||
set process_pids (fuser /dev/video0 | awk '{print $2}' | sort -u)
|
||||
if test -n "$process_pids"
|
||||
set processes ""
|
||||
for process_pid in $process_pids
|
||||
set process_name (ps -q $process_pid -o comm=)
|
||||
set processes "$processes\n<span color='#eed49f'>$process_name($process_pid)</span>"
|
||||
end
|
||||
echo "{\"text\":\"\", \"tooltip\":\"webcam is used by: $processes\", \"alt\":\"Webcam\"}"
|
||||
end
|
||||
end
|
4
home/.config/fish/functions/clear-op.fish
Normal file
4
home/.config/fish/functions/clear-op.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function clear-op
|
||||
clear
|
||||
commandline -f repaint
|
||||
end
|
4
home/.config/fish/functions/clipboard_clear.fish
Normal file
4
home/.config/fish/functions/clipboard_clear.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function clipboard_clear
|
||||
rm "$HOME/.cache/cliphist/db"
|
||||
dunstify Clipboard Cleared -t 2000
|
||||
end
|
7
home/.config/fish/functions/clipboard_delete_item.fish
Normal file
7
home/.config/fish/functions/clipboard_delete_item.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
function clipboard_delete_item
|
||||
set clip $(cliphist list | rofi -dmenu -p 'clipboard delete item')
|
||||
if not [ -z $clip ]
|
||||
echo $clip | cliphist delete
|
||||
dunstify "Clipboard" "Clip '$clip' was deleted" -t 2000
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/clipboard_to_type.fish
Normal file
3
home/.config/fish/functions/clipboard_to_type.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function clipboard_to_type
|
||||
cliphist list | rofi -dmenu -p clipboard | cliphist decode | wtype -
|
||||
end
|
7
home/.config/fish/functions/clipboard_to_wlcopy.fish
Normal file
7
home/.config/fish/functions/clipboard_to_wlcopy.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
function clipboard_to_wlcopy
|
||||
set clip $(cliphist list | rofi -dmenu -p 'clipboard copy')
|
||||
if not [ -z $clip ]
|
||||
echo $clip | cliphist decode | wl-copy
|
||||
dunstify "Clipboard" "Clip '$clip' was copied" -t 2000
|
||||
end
|
||||
end
|
4
home/.config/fish/functions/dir-preview.fish
Normal file
4
home/.config/fish/functions/dir-preview.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function dir-preview
|
||||
set dir "$argv[1]"
|
||||
lsd --tree --depth=1 --color=always --icon=always --icon-theme=fancy "$dir"
|
||||
end
|
20
home/.config/fish/functions/dunst_pause.fish
Normal file
20
home/.config/fish/functions/dunst_pause.fish
Normal file
@@ -0,0 +1,20 @@
|
||||
function dunst_pause
|
||||
set COUNT_WAITING (dunstctl count waiting)
|
||||
set COUNT_DISPLAYED (dunstctl count displayed)
|
||||
set ENABLED "{ \"text\": \"\", \"tooltip\": \"notifications <span color='#a6da95'>on</span>\", \"class\": \"on\" }"
|
||||
set DISABLED "{ \"text\": \"\", \"tooltip\": \"notifications <span color='#ee99a0'>off</span>\", \"class\": \"off\" }"
|
||||
|
||||
if [ $COUNT_DISPLAYED != 0 ]
|
||||
set ENABLED "{ \"text\": \"$COUNT_DISPLAYED\", \"tooltip\": \"$COUNT_DISPLAYED notifications\", \"class\": \"on\" }"
|
||||
end
|
||||
|
||||
if [ $COUNT_WAITING != 0 ]
|
||||
set DISABLED "{ \"text\": \"$COUNT_WAITING\", \"tooltip\": \"(silent) $COUNT_WAITING notifications\", \"class\": \"off\" }"
|
||||
end
|
||||
|
||||
if dunstctl is-paused | rg -q "false"
|
||||
echo $ENABLED
|
||||
else
|
||||
echo $DISABLED
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/fetch_music_player_data.fish
Normal file
3
home/.config/fish/functions/fetch_music_player_data.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function fetch_music_player_data
|
||||
playerctl -a metadata --format "{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"<i><span color='#a6da95'>{{playerName}}</span></i>: <b><span color='#f5a97f'>{{artist}}</span> - <span color='#c6a0f6'>{{markup_escape(title)}}</span></b>\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}" -F
|
||||
end
|
4
home/.config/fish/functions/file-preview.fish
Normal file
4
home/.config/fish/functions/file-preview.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function file-preview
|
||||
set file "$argv[1]"
|
||||
bat --color=always --style=numbers,header-filesize,grid --line-range=:15 --wrap=auto "$file"
|
||||
end
|
13
home/.config/fish/functions/fish_greeting.fish
Normal file
13
home/.config/fish/functions/fish_greeting.fish
Normal file
@@ -0,0 +1,13 @@
|
||||
function fish_greeting
|
||||
set_color blue
|
||||
echo " Distro: NixOS"
|
||||
set_color white
|
||||
echo " Langs: Rust Zig Go JS TS Python Lua Wasm"
|
||||
set_color green
|
||||
echo " Shell: Fish"
|
||||
set_color yellow
|
||||
echo " Mood: 👨💻"
|
||||
set_color cyan
|
||||
figlet random -f binary
|
||||
# clear
|
||||
end
|
26
home/.config/fish/functions/fish_user_key_bindings.fish
Normal file
26
home/.config/fish/functions/fish_user_key_bindings.fish
Normal file
@@ -0,0 +1,26 @@
|
||||
function fish_user_key_bindings
|
||||
# Execute this once per mode that emacs bindings should be used in
|
||||
fish_default_key_bindings -M insert
|
||||
|
||||
# Then execute the vi-bindings so they take precedence when there's a conflict.
|
||||
# Without --no-erase fish_vi_key_bindings will default to
|
||||
# resetting all bindings.
|
||||
# The argument specifies the initial mode (insert, "default" or visual).
|
||||
fish_vi_key_bindings --no-erase insert
|
||||
|
||||
# Nullify fzf default keybindings
|
||||
bind \cT '' -M insert
|
||||
bind \cR '' -M insert
|
||||
|
||||
bind \er fzf-history-widget -M insert
|
||||
bind \ef fzf-file-preview-widget -M insert
|
||||
bind \ec fzf-cd-preview-widget -M insert
|
||||
bind \ep fzf-ps-widget -M insert
|
||||
|
||||
bind \e\f clear-op -M insert
|
||||
bind \eb back-op -M insert
|
||||
bind \eB backtrack-op -M insert
|
||||
bind \e/ list-op -M insert
|
||||
|
||||
bind \ea aichat_fish -M insert
|
||||
end
|
8
home/.config/fish/functions/fzf-cd-preview-widget.fish
Normal file
8
home/.config/fish/functions/fzf-cd-preview-widget.fish
Normal file
@@ -0,0 +1,8 @@
|
||||
function fzf-cd-preview-widget
|
||||
set selected_dir (fd --type d --hidden --no-ignore --exclude .git --exclude .direnv | fzf --height 40% --reverse --preview 'dir-preview {}' --preview-window=right:40%)
|
||||
|
||||
if test -n "$selected_dir"
|
||||
cd "$selected_dir"
|
||||
end
|
||||
commandline -f repaint
|
||||
end
|
4
home/.config/fish/functions/fzf-file-preview-widget.fish
Normal file
4
home/.config/fish/functions/fzf-file-preview-widget.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function fzf-file-preview-widget
|
||||
commandline -i (fd --hidden --no-ignore --exclude .git --exclude .direnv | fzf --height 40% --preview-window=right:40% --reverse --preview 'switch-preview {}')
|
||||
commandline -f repaint
|
||||
end
|
4
home/.config/fish/functions/fzf-ps-widget.fish
Normal file
4
home/.config/fish/functions/fzf-ps-widget.fish
Normal file
@@ -0,0 +1,4 @@
|
||||
function fzf-ps-widget
|
||||
commandline -i (pgrep -a . | fzf --height 40%)
|
||||
commandline -f repaint
|
||||
end
|
9
home/.config/fish/functions/image-preview.fish
Normal file
9
home/.config/fish/functions/image-preview.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function image-preview
|
||||
set image "$argv[1]"
|
||||
|
||||
# Retrieve the current terminal dimensions and reduce them slightly to avoid boundary issues
|
||||
set term_width (math (tput cols) - 1)
|
||||
set term_height (math (tput lines) - 1)
|
||||
|
||||
chafa "$image" --size="$term_width"x"$term_height"
|
||||
end
|
6
home/.config/fish/functions/list-op.fish
Normal file
6
home/.config/fish/functions/list-op.fish
Normal file
@@ -0,0 +1,6 @@
|
||||
function list-op
|
||||
echo \n
|
||||
lsd -Alg
|
||||
echo \n\n
|
||||
commandline -f repaint
|
||||
end
|
9
home/.config/fish/functions/night_mode_toggle.fish
Normal file
9
home/.config/fish/functions/night_mode_toggle.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function night_mode_toggle
|
||||
set target_process wlsunset
|
||||
|
||||
if pgrep $target_process >/dev/null
|
||||
killall -s SIGINT wlsunset
|
||||
else
|
||||
wlsunset
|
||||
end
|
||||
end
|
18
home/.config/fish/functions/record_screen_gif.fish
Normal file
18
home/.config/fish/functions/record_screen_gif.fish
Normal file
@@ -0,0 +1,18 @@
|
||||
function record_screen_gif
|
||||
set target_process wl-screenrec
|
||||
|
||||
if pgrep $target_process >/dev/null
|
||||
killall -s SIGINT $target_process
|
||||
else
|
||||
set geometry (slurp)
|
||||
if not [ -z $geometry ]
|
||||
set record_name $(echo "recrod-$(date +"%Y-%m-%d--%H:%M:%S")")
|
||||
dunstify -i ~/.config/fish/icons/camera_gif_icon.png -r $(cd ~/Pictures/Records/ && ls -1 | wc -l) "Recording Started (GIF)" -t 2000
|
||||
wl-screenrec -g "$geometry" -f "$HOME/Pictures/Records/$record_name.mp4" --encode-resolution 1920x1080
|
||||
ffmpeg -i "$HOME/Pictures/Records/$record_name.mp4" "$HOME/Pictures/Records/$record_name.gif"
|
||||
rm "$HOME/Pictures/Records/$record_name.mp4"
|
||||
wl-copy -t text/uri-list file://$HOME/Pictures/Records/$record_name.gif\n
|
||||
dunstify -i ~/.config/fish/icons/camera_gif_icon.png -r $(cd ~/Pictures/Records/ && ls -1 | wc -l) "Recording Stopped (GIF)" -t 2000
|
||||
end
|
||||
end
|
||||
end
|
16
home/.config/fish/functions/record_screen_mp4.fish
Normal file
16
home/.config/fish/functions/record_screen_mp4.fish
Normal file
@@ -0,0 +1,16 @@
|
||||
function record_screen_mp4
|
||||
set target_process wl-screenrec
|
||||
|
||||
if pgrep $target_process >/dev/null
|
||||
killall -s SIGINT $target_process
|
||||
else
|
||||
set geometry (slurp)
|
||||
if not [ -z $geometry ]
|
||||
set record_name $(echo "recrod-$(date +"%Y-%m-%d--%H:%M:%S")")
|
||||
dunstify -i ~/.config/fish/icons/camera_mp4_icon.png -r $(cd ~/Videos/Records/ && ls -1 | wc -l) "Recording Started (MP4)" -t 2000
|
||||
wl-screenrec -g "$geometry" -f "$HOME/Videos/Records/$record_name.mp4"
|
||||
wl-copy -t text/uri-list file://$HOME/Videos/Records/$record_name.mp4\n
|
||||
dunstify -i ~/.config/fish/icons/camera_mp4_icon.png -r $(cd ~/Videos/Records/ && ls -1 | wc -l) "Recording Stopped (MP4)" -t 2000
|
||||
end
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/screenshot_edit.fish
Normal file
3
home/.config/fish/functions/screenshot_edit.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function screenshot_edit
|
||||
swappy -f ~/Pictures/Screenshots/(cd ~/Pictures/Screenshots && ls -tA | head -n1 | awk '{print $NF}')
|
||||
end
|
9
home/.config/fish/functions/screenshot_to_clipboard.fish
Normal file
9
home/.config/fish/functions/screenshot_to_clipboard.fish
Normal file
@@ -0,0 +1,9 @@
|
||||
function screenshot_to_clipboard
|
||||
set screenshot_filename (echo "$HOME/Pictures/Screenshots/screenshot-$(date +"%Y-%m-%d--%H:%M:%S").png")
|
||||
grim -g (slurp) $screenshot_filename
|
||||
|
||||
if [ -e $screenshot_filename ]
|
||||
cat $screenshot_filename | wl-copy --type image/png
|
||||
dunstify -i $screenshot_filename -r (cd ~/Pictures/Screenshots/ && ls -1 | wc -l) "Screenshots" "Screenshot was taken" -t 2000
|
||||
end
|
||||
end
|
20
home/.config/fish/functions/switch-preview.fish
Normal file
20
home/.config/fish/functions/switch-preview.fish
Normal file
@@ -0,0 +1,20 @@
|
||||
function switch-preview
|
||||
set path "$argv[1]"
|
||||
|
||||
if test -f "$path"
|
||||
if test ! -s "$path"
|
||||
echo "File is empty"
|
||||
else
|
||||
archive-preview "$path"
|
||||
if string match -q "image/*" (file -b --mime-type "$path")
|
||||
image-preview "$path"
|
||||
else
|
||||
file-preview "$path"
|
||||
end
|
||||
end
|
||||
else if test -d "$path"
|
||||
dir-preview "$path"
|
||||
else
|
||||
echo "Preview unavailable"
|
||||
end
|
||||
end
|
3
home/.config/fish/functions/tre.fish
Normal file
3
home/.config/fish/functions/tre.fish
Normal file
@@ -0,0 +1,3 @@
|
||||
function tre
|
||||
command tre $argv -e; and source /tmp/tre_aliases_$USER ^/dev/null
|
||||
end
|
13
home/.config/fish/functions/wifi_toggle.fish
Normal file
13
home/.config/fish/functions/wifi_toggle.fish
Normal file
@@ -0,0 +1,13 @@
|
||||
function wifi_toggle
|
||||
set wifi_status (rfkill list wifi | grep -i -o "Soft blocked: yes")
|
||||
set backup_file ~/.cache/airplane_backup
|
||||
|
||||
if [ -z "$wifi_status" ]
|
||||
rfkill block wifi
|
||||
else
|
||||
rfkill unblock wifi
|
||||
if test -e $backup_file
|
||||
rm $backup_file
|
||||
end
|
||||
end
|
||||
end
|
5
home/.config/fish/functions/wlogout_uniqe.fish
Normal file
5
home/.config/fish/functions/wlogout_uniqe.fish
Normal file
@@ -0,0 +1,5 @@
|
||||
function wlogout_uniqe
|
||||
if [ -z $(pidof wlogout) ]
|
||||
wlogout
|
||||
end
|
||||
end
|
BIN
home/.config/fish/icons/camera_gif_icon.png
Normal file
BIN
home/.config/fish/icons/camera_gif_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
BIN
home/.config/fish/icons/camera_mp4_icon.png
Normal file
BIN
home/.config/fish/icons/camera_mp4_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.1 KiB |
BIN
home/.config/fish/icons/rec_icon.png
Normal file
BIN
home/.config/fish/icons/rec_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
15
home/.config/gh/config.yml
Normal file
15
home/.config/gh/config.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||
git_protocol: ssh
|
||||
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||
editor: hx
|
||||
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||
prompt: enabled
|
||||
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
|
||||
pager:
|
||||
# Aliases allow you to create nicknames for gh commands
|
||||
aliases:
|
||||
co: pr checkout
|
||||
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
|
||||
http_unix_socket:
|
||||
# What web browser gh should use when opening URLs. If blank, will refer to environment.
|
||||
browser: brave
|
88
home/.config/gnome_settings_backup.dconf
Normal file
88
home/.config/gnome_settings_backup.dconf
Normal file
@@ -0,0 +1,88 @@
|
||||
[org/blueman/plugins/powermanager]
|
||||
auto-power-on=@mb false
|
||||
|
||||
[org/gnome/Extensions]
|
||||
window-maximized=true
|
||||
|
||||
[org/gnome/Geary]
|
||||
migrated-config=true
|
||||
|
||||
[org/gnome/calendar]
|
||||
active-view='month'
|
||||
window-maximized=true
|
||||
|
||||
[org/gnome/desktop/app-folders]
|
||||
folder-children=['Utilities', 'YaST', 'Pardus']
|
||||
|
||||
[org/gnome/desktop/app-folders/folders/Pardus]
|
||||
categories=['X-Pardus-Apps']
|
||||
name='X-Pardus-Apps.directory'
|
||||
translate=true
|
||||
|
||||
[org/gnome/desktop/app-folders/folders/Utilities]
|
||||
apps=['gnome-abrt.desktop', 'gnome-system-log.desktop', 'nm-connection-editor.desktop', 'org.gnome.baobab.desktop', 'org.gnome.Connections.desktop', 'org.gnome.DejaDup.desktop', 'org.gnome.Dictionary.desktop', 'org.gnome.DiskUtility.desktop', 'org.gnome.Evince.desktop', 'org.gnome.FileRoller.desktop', 'org.gnome.fonts.desktop', 'org.gnome.Loupe.desktop', 'org.gnome.seahorse.Application.desktop', 'org.gnome.tweaks.desktop', 'org.gnome.Usage.desktop', 'vinagre.desktop']
|
||||
categories=['X-GNOME-Utilities']
|
||||
name='X-GNOME-Utilities.directory'
|
||||
translate=true
|
||||
|
||||
[org/gnome/desktop/app-folders/folders/YaST]
|
||||
categories=['X-SuSE-YaST']
|
||||
name='suse-yast.directory'
|
||||
translate=true
|
||||
|
||||
[org/gnome/desktop/input-sources]
|
||||
sources=[('xkb', 'us'), ('xkb', 'ua'), ('xkb', 'ru')]
|
||||
xkb-options=['grp:alt_shift_toggle']
|
||||
|
||||
[org/gnome/desktop/interface]
|
||||
color-scheme='prefer-dark'
|
||||
cursor-theme='Catppuccin-Macchiato-Teal-Cursors'
|
||||
document-font-name='JetBrains Mono 11'
|
||||
font-antialiasing='grayscale'
|
||||
font-hinting='slight'
|
||||
font-name='JetBrains Mono 11'
|
||||
gtk-theme='catppuccin-macchiato-teal-standard'
|
||||
icon-theme='Colloid-Teal-Dark'
|
||||
monospace-font-name='JetBrains Mono 11'
|
||||
|
||||
[org/gnome/desktop/peripherals/touchpad]
|
||||
tap-to-click=true
|
||||
two-finger-scrolling-enabled=true
|
||||
|
||||
[org/gnome/desktop/wm/preferences]
|
||||
focus-mode='sloppy'
|
||||
titlebar-font='JetBrains Mono Bold 11'
|
||||
|
||||
[org/gnome/evolution-data-server]
|
||||
migrated=true
|
||||
|
||||
[org/gnome/nautilus/preferences]
|
||||
migrated-gtk-settings=true
|
||||
|
||||
[org/gnome/shell]
|
||||
enabled-extensions=['true', 'user-theme@gnome-shell-extensions.gcampax.github.com']
|
||||
welcome-dialog-last-shown-version='46.2'
|
||||
|
||||
[org/gnome/shell/extensions/user-theme]
|
||||
name='catppuccin-macchiato-teal-standard'
|
||||
|
||||
[org/gnome/shell/world-clocks]
|
||||
locations=@av []
|
||||
|
||||
[org/gnome/tweaks]
|
||||
show-extensions-notice=false
|
||||
|
||||
[org/gtk/gtk4/settings/file-chooser]
|
||||
show-hidden=true
|
||||
|
||||
[org/gtk/settings/file-chooser]
|
||||
date-format='regular'
|
||||
location-mode='path-bar'
|
||||
show-hidden=true
|
||||
show-size-column=true
|
||||
show-type-column=true
|
||||
sort-column='name'
|
||||
sort-directories-first=false
|
||||
sort-order='ascending'
|
||||
type-format='category'
|
||||
window-position=(0, 0)
|
0
home/.config/gtk-3.0/bookmarks
Normal file
0
home/.config/gtk-3.0/bookmarks
Normal file
1
home/.config/gtk-3.0/gtk.css
Normal file
1
home/.config/gtk-3.0/gtk.css
Normal file
@@ -0,0 +1 @@
|
||||
/* Feel free to edit this and see instantaneous results */
|
16
home/.config/gtk-3.0/settings.ini
Normal file
16
home/.config/gtk-3.0/settings.ini
Normal file
@@ -0,0 +1,16 @@
|
||||
[Settings]
|
||||
gtk-theme-name=catppuccin-macchiato-teal-standard
|
||||
gtk-application-prefer-dark-theme=false
|
||||
gtk-icon-theme-name=Colloid-Teal-Dark
|
||||
gtk-cursor-theme-name=Catppuccin-Macchiato-Teal-Cursors
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-font-name=JetBrains Mono 11
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=none
|
||||
gtk-xft-dpi=98304
|
||||
gtk-overlay-scrolling=true
|
||||
gtk-key-theme-name=Default
|
||||
gtk-menu-images=false
|
||||
gtk-button-images=false
|
1
home/.config/gtk-4.0/gtk.css
Normal file
1
home/.config/gtk-4.0/gtk.css
Normal file
@@ -0,0 +1 @@
|
||||
/* Feel free to edit this and see instantaneous results */
|
13
home/.config/gtk-4.0/settings.ini
Normal file
13
home/.config/gtk-4.0/settings.ini
Normal file
@@ -0,0 +1,13 @@
|
||||
[Settings]
|
||||
gtk-theme-name=catppuccin-macchiato-teal-standard
|
||||
gtk-application-prefer-dark-theme=false
|
||||
gtk-icon-theme-name=Colloid-Teal-Dark
|
||||
gtk-cursor-theme-name=Catppuccin-Macchiato-Teal-Cursors
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-font-name=JetBrains Mono 11
|
||||
gtk-xft-antialias=1
|
||||
gtk-xft-hinting=1
|
||||
gtk-xft-hintstyle=hintslight
|
||||
gtk-xft-rgba=none
|
||||
gtk-xft-dpi=98304
|
||||
gtk-overlay-scrolling=true
|
42
home/.config/helix/config.toml
Normal file
42
home/.config/helix/config.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
theme = "catppuccin_macchiato_transparent"
|
||||
|
||||
[editor]
|
||||
shell = ["fish", "-c"]
|
||||
line-number = "relative"
|
||||
cursorline = true
|
||||
color-modes = true
|
||||
auto-save = false
|
||||
idle-timeout = 0
|
||||
bufferline = "multiple"
|
||||
popup-border = "popup"
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "bar"
|
||||
select = "underline"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "file-name", "read-only-indicator", "file-modification-indicator", "separator", "total-line-numbers", "separator", "spacer", "version-control"]
|
||||
right = ["register", "spacer", "diagnostics", "separator", "selections", "separator", "position", "position-percentage", "spacer", "separator", "file-encoding", "file-line-ending", "separator", "file-type"]
|
||||
separator = "│"
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
display-inlay-hints = true
|
||||
|
||||
# [editor.file-picker]
|
||||
# max-depth = 10
|
||||
|
||||
[editor.soft-wrap]
|
||||
enable = true
|
||||
|
||||
[keys.normal]
|
||||
backspace = { w = ":w", d = ":bc", S-d = ":bca", q = ":q", A-w = ":w!", A-q = ":q!", A-d = ":bc!", A-S-d = ":bca!" }
|
||||
S-l = ":bn"
|
||||
S-h = ":bp"
|
||||
S-right = ":bn"
|
||||
S-left = ":bp"
|
||||
A-w = ":w"
|
64
home/.config/helix/languages.toml
Normal file
64
home/.config/helix/languages.toml
Normal file
@@ -0,0 +1,64 @@
|
||||
[language-server.hyprls]
|
||||
command = "hyprls"
|
||||
|
||||
[[language]]
|
||||
name = "hyprlang"
|
||||
language-servers = [ "hyprls" ]
|
||||
|
||||
[language-server.emmet-lsp]
|
||||
command = "emmet-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language-server.copilot]
|
||||
command = "helix-gpt"
|
||||
args = [
|
||||
"--handler", "copilot",
|
||||
"--copilotApiKey", "your_api_key", # FIXME
|
||||
]
|
||||
|
||||
[language-server.lsp-ai]
|
||||
command = "lsp-ai"
|
||||
args = ["--stdio"]
|
||||
|
||||
[[language]]
|
||||
name = "rust"
|
||||
language-servers = [ "rust-analyzer", "copilot" ]
|
||||
|
||||
[language-server.rust-analyzer.config]
|
||||
checkOnSave = { command = "clippy" }
|
||||
|
||||
[[language]]
|
||||
name = "html"
|
||||
language-servers = [ "emmet-lsp", "vscode-html-language-server" ]
|
||||
|
||||
[[language]]
|
||||
name = "javascript"
|
||||
auto-format = true
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
language-servers = [ "typescript-language-server", "copilot" ]
|
||||
|
||||
[[language]]
|
||||
name = "jsx"
|
||||
auto-format = true
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
language-servers = [ "typescript-language-server", "copilot" ]
|
||||
|
||||
[[language]]
|
||||
name = "typescript"
|
||||
auto-format = true
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
language-servers = [ "typescript-language-server", "copilot" ]
|
||||
|
||||
[[language]]
|
||||
name = "tsx"
|
||||
auto-format = true
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
language-servers = [ "typescript-language-server", "copilot" ]
|
||||
|
||||
[[language]]
|
||||
name = "config"
|
||||
scope = "source.conf"
|
||||
file-types = [ "conf" ]
|
||||
comment-token = "#"
|
||||
roots = []
|
||||
indent = { tab-width = 4, unit = " " }
|
@@ -0,0 +1,3 @@
|
||||
inherits = "catppuccin_macchiato"
|
||||
|
||||
"ui.background" = { bg = "transparent" }
|
61
home/.config/htop/htoprc
Normal file
61
home/.config/htop/htoprc
Normal file
@@ -0,0 +1,61 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
htop_version=3.2.1
|
||||
config_reader_min_version=3
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=0
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_deleted_exe=1
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
highlight_changes=0
|
||||
highlight_changes_delay_secs=5
|
||||
find_comm_in_cmdline=1
|
||||
strip_exe_from_cmdline=1
|
||||
show_merged_command=0
|
||||
header_margin=1
|
||||
screen_tabs=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_one=0
|
||||
show_cpu_usage=1
|
||||
show_cpu_frequency=0
|
||||
show_cpu_temperature=0
|
||||
degree_fahrenheit=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=0
|
||||
enable_mouse=1
|
||||
delay=15
|
||||
hide_function_bar=0
|
||||
header_layout=two_50_50
|
||||
column_meters_0=LeftCPUs Memory Swap
|
||||
column_meter_modes_0=1 1 1
|
||||
column_meters_1=RightCPUs Tasks LoadAverage Uptime
|
||||
column_meter_modes_1=1 2 2 2
|
||||
tree_view=0
|
||||
sort_key=46
|
||||
tree_sort_key=0
|
||||
sort_direction=-1
|
||||
tree_sort_direction=1
|
||||
tree_view_always_by_pid=0
|
||||
all_branches_collapsed=0
|
||||
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
|
||||
.sort_key=PERCENT_CPU
|
||||
.tree_sort_key=PID
|
||||
.tree_view=0
|
||||
.tree_view_always_by_pid=0
|
||||
.sort_direction=-1
|
||||
.tree_sort_direction=1
|
||||
.all_branches_collapsed=0
|
||||
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE
|
||||
.sort_key=IO_RATE
|
||||
.tree_sort_key=PID
|
||||
.tree_view=0
|
||||
.tree_view_always_by_pid=0
|
||||
.sort_direction=-1
|
||||
.tree_sort_direction=1
|
||||
.all_branches_collapsed=0
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user