Compare commits
57 Commits
a537f5236d
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
e3c54e352c
|
|||
|
ac862dfc1f
|
|||
|
4f6c1e337d
|
|||
|
c5209b0d90
|
|||
|
bbdb6339b0
|
|||
|
0466a882db
|
|||
|
2de46453f3
|
|||
|
4b566d5cea
|
|||
|
16d77233a8
|
|||
|
c6645d3fc9
|
|||
|
6c1d2f501b
|
|||
|
1ba5ec2357
|
|||
|
0788960a9d
|
|||
|
d9e8d23f7d
|
|||
|
03f8271567
|
|||
|
e61cf08607
|
|||
|
1a2796a159
|
|||
|
ff8f8d7e39
|
|||
|
746d6c525e
|
|||
|
13944b3b0b
|
|||
|
dff4d5762d
|
|||
|
066334b880
|
|||
|
e923c84902
|
|||
|
b1c21ee77d
|
|||
|
12bd99e84c
|
|||
| a502f58756 | |||
| c6c55abde2 | |||
|
10074b37d1
|
|||
| bd8b826097 | |||
|
970bfc604c
|
|||
|
8af8dd17e8
|
|||
|
169d4e29e6
|
|||
| a1a6190cd2 | |||
|
f427905748
|
|||
|
a2b98c3ba2
|
|||
|
6420ec0d30
|
|||
|
dbec0bc44a
|
|||
|
488f7e08ef
|
|||
|
b887f7ad65
|
|||
|
f4572eaaad
|
|||
|
03c2d57c67
|
|||
|
872d29c688
|
|||
|
660828b9e7
|
|||
|
5ce9d7b688
|
|||
|
319b1a9c55
|
|||
|
487f2817db
|
|||
|
08c44ac697
|
|||
|
006f1d41a7
|
|||
|
374cb77150
|
|||
|
93c2ca5ec9
|
|||
|
5721e5b8a7
|
|||
|
3b813df802
|
|||
|
1c7f690500
|
|||
|
d19e9c89bb
|
|||
|
07f53815a4
|
|||
|
53062400cd
|
|||
|
2be586e2cc
|
@@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"cSpell.enabled": false
|
"cSpell.enabled": false,
|
||||||
|
"Lua.workspace.library": ["/usr/share/hypr/stubs"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.displayManager.sddm.enable = true;
|
||||||
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
hyprpolkitagent
|
||||||
|
hyprlock
|
||||||
|
hyprshot
|
||||||
|
rofi
|
||||||
|
networkmanagerapplet
|
||||||
|
kdePackages.dolphin
|
||||||
|
wayvnc
|
||||||
|
awww
|
||||||
|
mpvpaper
|
||||||
|
waybar
|
||||||
|
quickshell
|
||||||
|
qt6.qtdeclarative
|
||||||
|
wlogout
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true; # Recommended to fix xdg-open issues
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk # For file choosers in GTK apps
|
||||||
|
xdg-desktop-portal-hyprland # For Hyprland (or wlr for other wlroots)
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
common.default = [ "gtk" ]; # Default fallback
|
||||||
|
hyprland = {
|
||||||
|
default = [
|
||||||
|
"hyprland"
|
||||||
|
"gtk"
|
||||||
|
];
|
||||||
|
"org.freedesktop.impl.portal.ScreenCast" = [ "hyprland" ];
|
||||||
|
"org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.xserver.desktopManager.xfce.enable = true;
|
||||||
|
services.xserver.displayManager.lightdm.enable = true;
|
||||||
|
}
|
||||||
@@ -1,5 +1,195 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"cachix": {
|
||||||
|
"inputs": {
|
||||||
|
"devenv": [
|
||||||
|
"clonee",
|
||||||
|
"devenv"
|
||||||
|
],
|
||||||
|
"flake-compat": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"git-hooks": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"git-hooks"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777487137,
|
||||||
|
"narHash": "sha256-TuvKVBX60mqyMT6OB5JqVEh1YIWtFMR/igLCaCdC9tw=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "cachix",
|
||||||
|
"rev": "a66a440c321d35f7193472c317f42a55ccd1cb93",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"ref": "latest",
|
||||||
|
"repo": "cachix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cachix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"devenv": [
|
||||||
|
"silicate",
|
||||||
|
"devenv"
|
||||||
|
],
|
||||||
|
"flake-compat": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"git-hooks": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"git-hooks"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777487137,
|
||||||
|
"narHash": "sha256-TuvKVBX60mqyMT6OB5JqVEh1YIWtFMR/igLCaCdC9tw=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "cachix",
|
||||||
|
"rev": "a66a440c321d35f7193472c317f42a55ccd1cb93",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"ref": "latest",
|
||||||
|
"repo": "cachix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"clonee": {
|
||||||
|
"inputs": {
|
||||||
|
"devenv": "devenv",
|
||||||
|
"naersk": "naersk",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783739292,
|
||||||
|
"narHash": "sha256-4Q15SKZFttcCqnD1MC/qQCqA/L/QqqtN7d9iyMz+ld0=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "378c1f7c0d1c004d504ad8496d136ec381688f10",
|
||||||
|
"revCount": 9,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitea.maariz.org/pure_sagacity/clonee"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://gitea.maariz.org/pure_sagacity/clonee"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crate2nix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772186516,
|
||||||
|
"narHash": "sha256-8s28pzmQ6TOIUzznwFibtW1CMieMUl1rYJIxoQYor58=",
|
||||||
|
"owner": "rossng",
|
||||||
|
"repo": "crate2nix",
|
||||||
|
"rev": "ba5dd398e31ee422fbe021767eb83b0650303a6e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rossng",
|
||||||
|
"repo": "crate2nix",
|
||||||
|
"rev": "ba5dd398e31ee422fbe021767eb83b0650303a6e",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crate2nix_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772186516,
|
||||||
|
"narHash": "sha256-8s28pzmQ6TOIUzznwFibtW1CMieMUl1rYJIxoQYor58=",
|
||||||
|
"owner": "rossng",
|
||||||
|
"repo": "crate2nix",
|
||||||
|
"rev": "ba5dd398e31ee422fbe021767eb83b0650303a6e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rossng",
|
||||||
|
"repo": "crate2nix",
|
||||||
|
"rev": "ba5dd398e31ee422fbe021767eb83b0650303a6e",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"devenv": {
|
||||||
|
"inputs": {
|
||||||
|
"cachix": "cachix",
|
||||||
|
"crate2nix": "crate2nix",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"ghostty": "ghostty",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"nix": "nix",
|
||||||
|
"nixd": "nixd",
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782860656,
|
||||||
|
"narHash": "sha256-HiSNP0/eEhKGZBWC6kLZVN8I6j6AwVnI4gjeH25+/5k=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "devenv",
|
||||||
|
"rev": "3f6df48c00d8aa408f0440f2707662aa91a1f033",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "devenv",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"devenv_2": {
|
||||||
|
"inputs": {
|
||||||
|
"cachix": "cachix_2",
|
||||||
|
"crate2nix": "crate2nix_2",
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"ghostty": "ghostty_2",
|
||||||
|
"git-hooks": "git-hooks_2",
|
||||||
|
"nix": "nix_2",
|
||||||
|
"nixd": "nixd_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783109842,
|
||||||
|
"narHash": "sha256-Fi7lW+sg1ChduOOQRBCK5JeA1cw4x5wSjIJcppRGGqQ=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "devenv",
|
||||||
|
"rev": "e30eb49258bee68353bd9c619823f635f4afa86c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "devenv",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -20,6 +210,297 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fast": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783830645,
|
||||||
|
"narHash": "sha256-lEx9RLAYwpUS/SpIlRUiIoThQKwjGOj+jXIlmi6CWxg=",
|
||||||
|
"owner": "GitanElyon",
|
||||||
|
"repo": "fast",
|
||||||
|
"rev": "60fb5b7e1f6343bc1fc9a1e168845b71b142810f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GitanElyon",
|
||||||
|
"repo": "fast",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fenix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"naersk",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752475459,
|
||||||
|
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fenix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"naersk",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752475459,
|
||||||
|
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778716662,
|
||||||
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778716662,
|
||||||
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ghostty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779069789,
|
||||||
|
"narHash": "sha256-ojo+gso45/6CVSuqfSVnlWpQ4d0QeLgwok+v/g3yu0E=",
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"rev": "4b7bf0b20e3baf9c1ba10c63f2ad1fd853faea8f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ghostty_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782866021,
|
||||||
|
"narHash": "sha256-BOLtzL5iAHmtCOg9/DXtcfw+K86QWol088K72chJB04=",
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"rev": "e1d31deaaed21aa9225afca78d778fb373c95852",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778507602,
|
||||||
|
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782908218,
|
||||||
|
"narHash": "sha256-wLMOrPgVyeF3XmP+qfYcLqnVdTxikdcSvbIY7rA9jTA=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "9f7e99119ece7705299595299f3b031f39356de1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"herdr": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783468284,
|
||||||
|
"narHash": "sha256-no8aODMs+tYEnEShJPHKap2imToiA++joPFL+o/ZAmg=",
|
||||||
|
"owner": "ogulcancelik",
|
||||||
|
"repo": "herdr",
|
||||||
|
"rev": "77f0339c3cd387c4ca3f4f240ff8b88065d66a22",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ogulcancelik",
|
||||||
|
"repo": "herdr",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -27,11 +508,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1782051614,
|
"lastModified": 1783458499,
|
||||||
"narHash": "sha256-xBRAhYLEXcjp8hM2tkkTTLb6PWU7VDxDoogl25g7Ezs=",
|
"narHash": "sha256-a8whUXG4ThsZNjL92cH4wbl+/dt8CbT/F0zJsfhzFbM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d1ccd0721ec599866622665f3651e19e6e2d4c6a",
|
"rev": "53ebbdc405acc04acd9bb73ccca462b51ddb8c6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -40,15 +521,219 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"fenix": "fenix",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782220280,
|
||||||
|
"narHash": "sha256-thLTFbp9D5Qknmh8q/v4FRpLGphUSijT3E86cbLYTXo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "9aa07bb0256d300219b30622d2454e85f7f3667e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"naersk_2": {
|
||||||
|
"inputs": {
|
||||||
|
"fenix": "fenix_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782220280,
|
||||||
|
"narHash": "sha256-thLTFbp9D5Qknmh8q/v4FRpLGphUSijT3E86cbLYTXo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "9aa07bb0256d300219b30622d2454e85f7f3667e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-parts": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"git-hooks-nix": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"git-hooks"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-23-11": [
|
||||||
|
"clonee",
|
||||||
|
"devenv"
|
||||||
|
],
|
||||||
|
"nixpkgs-regression": [
|
||||||
|
"clonee",
|
||||||
|
"devenv"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779748925,
|
||||||
|
"narHash": "sha256-meIhqGC04O5VXbKSFXSQoOKp+XCq5RMnwAk1Guo0VQo=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "0bc443c8ff235c3547d09327b48aaa2ab98b15f2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"ref": "devenv-2.34",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-parts": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"git-hooks-nix": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"git-hooks"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-23-11": [
|
||||||
|
"silicate",
|
||||||
|
"devenv"
|
||||||
|
],
|
||||||
|
"nixpkgs-regression": [
|
||||||
|
"silicate",
|
||||||
|
"devenv"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782407171,
|
||||||
|
"narHash": "sha256-xem+4ncdQCTFJsQ4PrVuyVmi3j4w/Yqg298hBUzVejA=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "nix",
|
||||||
|
"rev": "782ac1b155679b065ec945ae50d0fa1d495883b7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"ref": "devenv-2.34",
|
||||||
|
"repo": "nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixd": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778381404,
|
||||||
|
"narHash": "sha256-FqhdOTA8vyoIpkHhbs2cCT7h6EWM7nsLeOYJc1ifQLE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"rev": "e3e45eb76663f522e196b7f0cf34cab201db7779",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixd_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1780381423,
|
||||||
|
"narHash": "sha256-S1BIJiQF4lRtJUKak0e97JwNvbe69/LW78YJJuB18Qk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"rev": "0e07c08c448a2995e7793d1098437b29bbe80b02",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixd",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781577229,
|
"lastModified": 1752077645,
|
||||||
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
|
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
|
"rev": "be9e214982e20b8310878ac2baa063a961c1bdf6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783224372,
|
||||||
|
"narHash": "sha256-FGQ8TfSm9WviNE/fQAWsKs+y4GkX8fU4EScewpw54Y8=",
|
||||||
|
"rev": "d407951447dcd00442e97087bf374aad70c04cea",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1027867.d407951447dc/nixexprs.tar.xz"
|
||||||
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
@@ -57,9 +742,174 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"clonee": "clonee",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"fast": "fast",
|
||||||
|
"herdr": "herdr",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"silicate": "silicate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752428706,
|
||||||
|
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-analyzer-src_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752428706,
|
||||||
|
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779074409,
|
||||||
|
"narHash": "sha256-6aXy8Ga41iLVM8ibddFU1O5+wYWcBGNEfZzZuL91eIc=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "2a77b5b1dc952f214e8102acdef1622b68515560",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782875958,
|
||||||
|
"narHash": "sha256-5eqDcnBjb1424HRQdnhuhNOBZguq1Z2tqSa2OMF/m2c=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "13139aefa973f3d96c60c0fbab801de058ae25ca",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"silicate": {
|
||||||
|
"inputs": {
|
||||||
|
"devenv": "devenv_2",
|
||||||
|
"naersk": "naersk_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783234406,
|
||||||
|
"narHash": "sha256-mtP+W1DYWrzf29HqjsgWECcdxRf6zGtXVvyeyqLhl9E=",
|
||||||
|
"owner": "pure-sagacity",
|
||||||
|
"repo": "silicate",
|
||||||
|
"rev": "63e8d8e8efdb523442b29243cb456ffafd519c18",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pure-sagacity",
|
||||||
|
"repo": "silicate",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"clonee",
|
||||||
|
"devenv",
|
||||||
|
"nixd",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1775636079,
|
||||||
|
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"silicate",
|
||||||
|
"devenv",
|
||||||
|
"nixd",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1780220602,
|
||||||
|
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,40 +11,57 @@
|
|||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
herdr = {
|
||||||
|
url = "github:ogulcancelik/herdr";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fast = {
|
||||||
|
url = "github:GitanElyon/fast";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
silicate = {
|
||||||
|
url = "github:pure-sagacity/silicate";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
clonee = {
|
||||||
|
url = "git+https://gitea.maariz.org/pure_sagacity/clonee";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
self,
|
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
disko,
|
|
||||||
home-manager,
|
home-manager,
|
||||||
...
|
...
|
||||||
}:
|
}@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations.laptop = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.pc = nixpkgs.lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
specialArgs = {
|
|
||||||
disk = "/dev/disk/by-id/REPLACE_ME"; # 👈 change at install time
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
./hosts/pc/configuration.nix
|
||||||
|
|
||||||
./hosts/laptop/disko.nix
|
|
||||||
./hosts/laptop/configuration.nix
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
|
|
||||||
|
home-manager.nixosModules.default
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager = {
|
||||||
home-manager.useUserPackages = true;
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
|
||||||
home-manager.users.river = import ./home;
|
backupFileExtension = "backup";
|
||||||
|
|
||||||
|
users = {
|
||||||
|
river = import ./home/river;
|
||||||
|
aariz = import ./home/aariz;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.username = "aariz";
|
||||||
|
|
||||||
|
home.homeDirectory = "/home/aariz";
|
||||||
|
|
||||||
|
home.stateVersion = "26.05";
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./programs/bash.nix
|
|
||||||
./programs/git.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "river";
|
|
||||||
home.homeDirectory = "/home/river";
|
|
||||||
|
|
||||||
home.stateVersion = "26.05";
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
withDelta = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
# This is terribly complicated
|
||||||
|
# It's because:
|
||||||
|
# 1. bun run has to have dynamic completions
|
||||||
|
# 2. there are global options
|
||||||
|
# 3. bun {install add remove} gets special options
|
||||||
|
# 4. I don't know how to write fish completions well
|
||||||
|
# Contributions very welcome!!
|
||||||
|
|
||||||
|
function __fish__get_bun_bins
|
||||||
|
string split ' ' (bun getcompletes b)
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish__get_bun_scripts
|
||||||
|
set -lx SHELL bash
|
||||||
|
set -lx MAX_DESCRIPTION_LEN 40
|
||||||
|
string trim (string split '\n' (string split '\t' (bun getcompletes z)))
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish__get_bun_packages
|
||||||
|
if test (commandline -ct) != ""
|
||||||
|
set -lx SHELL fish
|
||||||
|
string split ' ' (bun getcompletes a (commandline -ct))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __history_completions
|
||||||
|
set -l tokens (commandline --current-process --tokenize)
|
||||||
|
history --prefix (commandline) | string replace -r \^$tokens[1]\\s\* "" | string replace -r \^$tokens[2]\\s\* "" | string split ' '
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish__get_bun_bun_js_files
|
||||||
|
string split ' ' (bun getcompletes j)
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l bun_install_boolean_flags yarn production optional development no-save dry-run force no-cache silent verbose global
|
||||||
|
set -l bun_install_boolean_flags_descriptions "Write a yarn.lock file (yarn v1)" "Don't install devDependencies" "Add dependency to optionalDependencies" "Add dependency to devDependencies" "Don't update package.json or save a lockfile" "Don't install anything" "Always request the latest versions from the registry & reinstall all dependencies" "Ignore manifest cache entirely" "Don't output anything" "Excessively verbose logging" "Use global folder"
|
||||||
|
|
||||||
|
set -l bun_builtin_cmds_without_run dev create help bun upgrade discord install remove add update init pm x repl
|
||||||
|
set -l bun_builtin_cmds_accepting_flags create help bun upgrade discord run init link unlink pm x update
|
||||||
|
|
||||||
|
function __bun_complete_bins_scripts --inherit-variable bun_builtin_cmds_without_run -d "Emit bun completions for bins and scripts"
|
||||||
|
# Do nothing if we already have a builtin subcommand,
|
||||||
|
# or any subcommand other than "run".
|
||||||
|
if __fish_seen_subcommand_from $bun_builtin_cmds_without_run
|
||||||
|
or not __fish_use_subcommand && not __fish_seen_subcommand_from run
|
||||||
|
return
|
||||||
|
end
|
||||||
|
# Do we already have a bin or script subcommand?
|
||||||
|
set -l bins (__fish__get_bun_bins)
|
||||||
|
if __fish_seen_subcommand_from $bins
|
||||||
|
return
|
||||||
|
end
|
||||||
|
# Scripts have descriptions appended with a tab separator.
|
||||||
|
# Strip off descriptions for the purposes of subcommand testing.
|
||||||
|
set -l scripts (__fish__get_bun_scripts)
|
||||||
|
if __fish_seen_subcommand_from (string split \t -f 1 -- $scripts)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
# Emit scripts.
|
||||||
|
for script in $scripts
|
||||||
|
echo $script
|
||||||
|
end
|
||||||
|
# Emit binaries and JS files (but only if we're doing `bun run`).
|
||||||
|
if __fish_seen_subcommand_from run
|
||||||
|
for bin in $bins
|
||||||
|
echo "$bin"\t"package bin"
|
||||||
|
end
|
||||||
|
for file in (__fish__get_bun_bun_js_files)
|
||||||
|
echo "$file"\t"Bun.js"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# Clear existing completions
|
||||||
|
complete -e -c bun
|
||||||
|
|
||||||
|
# Dynamically emit scripts and binaries
|
||||||
|
complete -c bun -f -a "(__bun_complete_bins_scripts)"
|
||||||
|
|
||||||
|
# Complete flags if we have no subcommand or a flag-friendly one.
|
||||||
|
set -l flag_applies "__fish_use_subcommand; or __fish_seen_subcommand_from $bun_builtin_cmds_accepting_flags"
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -s 'u' -l 'origin' -r -d 'Server URL. Rewrites import paths'
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -s 'p' -l 'port' -r -d 'Port number to start server from'
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -s 'd' -l 'define' -r -d 'Substitute K:V while parsing, e.g. --define process.env.NODE_ENV:\"development\"'
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -s 'e' -l 'external' -r -d 'Exclude module from transpilation (can use * wildcards). ex: -e react'
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -l 'use' -r -d 'Use a framework (ex: next)'
|
||||||
|
complete -c bun \
|
||||||
|
-n $flag_applies --no-files -l 'hot' -r -d 'Enable hot reloading in Bun\'s JavaScript runtime'
|
||||||
|
|
||||||
|
# Complete dev and create as first subcommand.
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'dev' -d 'Start dev server'
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'create' -f -d 'Create a new project from a template'
|
||||||
|
|
||||||
|
# Complete "next" and "react" if we've seen "create".
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from create" -a 'next' -d 'new Next.js project'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from create" -a 'react' -d 'new React project'
|
||||||
|
|
||||||
|
# Complete "upgrade" as first subcommand.
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'upgrade' -d 'Upgrade bun to the latest version' -x
|
||||||
|
# Complete "-h/--help" unconditionally.
|
||||||
|
complete -c bun \
|
||||||
|
-s "h" -l "help" -d 'See all commands and flags' -x
|
||||||
|
|
||||||
|
# Complete "-v/--version" if we have no subcommand.
|
||||||
|
complete -c bun \
|
||||||
|
-n "not __fish_use_subcommand" -l "version" -s "v" -d 'Bun\'s version' -x
|
||||||
|
|
||||||
|
# Complete additional subcommands.
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'discord' -d 'Open bun\'s Discord server' -x
|
||||||
|
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'bun' -d 'Generate a new bundle'
|
||||||
|
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from bun" -F -d 'Bundle this'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from create; and __fish_seen_subcommand_from react next" -F -d "Create in directory"
|
||||||
|
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'init' -F -d 'Start an empty Bun project'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'install' -f -d 'Install packages from package.json'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'add' -F -d 'Add a package to package.json'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_use_subcommand" -a 'remove' -F -d 'Remove a package from package.json'
|
||||||
|
|
||||||
|
|
||||||
|
for i in (seq (count $bun_install_boolean_flags))
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from install add remove update" -l "$bun_install_boolean_flags[$i]" -d "$bun_install_boolean_flags_descriptions[$i]"
|
||||||
|
end
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from install add remove update" -l 'cwd' -d 'Change working directory'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from install add remove update" -l 'cache-dir' -d 'Choose a cache directory (default: $HOME/.bun/install/cache)'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from add" -d 'Popular' -a '(__fish__get_bun_packages)'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from add" -d 'History' -a '(__history_completions)'
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from pm; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts) cache;" -a 'bin ls cache hash hash-print hash-string' -f
|
||||||
|
|
||||||
|
complete -c bun \
|
||||||
|
-n "__fish_seen_subcommand_from pm; and __fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from (__fish__get_bun_bins) (__fish__get_bun_scripts);" -a 'rm' -f
|
||||||
|
|
||||||
|
# Add built-in subcommands with descriptions.
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "create" -f -d "Create a new project from a template"
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "build bun" --require-parameter -F -d "Transpile and bundle one or more files"
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "upgrade" -d "Upgrade Bun"
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "run" -d "Run a script or package binary"
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "install" -d "Install dependencies from package.json" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "remove" -d "Remove a dependency from package.json" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "add" -d "Add a dependency to package.json" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "init" -d "Initialize a Bun project in this directory" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "link" -d "Register or link a local npm package" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "unlink" -d "Unregister a local npm package" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "pm" -d "Additional package management utilities" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "x" -d "Execute a package binary, installing if needed" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "outdated" -d "Display the latest versions of outdated dependencies" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "update" -d "Update dependencies to their latest versions" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "publish" -d "Publish your package from local to npm" -f
|
||||||
|
complete -c bun -n "__fish_use_subcommand" -a "repl" -d "Start a REPL session with Bun" -f
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -s "e" -l "eval" -r -d "Evaluate argument as a script, then exit" -f
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -s "p" -l "print" -r -d "Evaluate argument as a script, print the result, then exit" -f
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -s "r" -l "preload" -r -d "Import a module before other modules are loaded"
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -l "smol" -d "Use less memory, but run garbage collection more often" -f
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -s "c" -l "config" -r -d "Specify path to Bun config file"
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -l "cwd" -r -d "Absolute path to resolve files & entry points from"
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -l "env-file" -r -d "Load environment variables from the specified file(s)"
|
||||||
|
complete -c bun -n "__fish_seen_subcommand_from repl" -l "no-env-file" -d "Disable automatic loading of .env files" -f
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
# fish completion for copilot
|
||||||
|
# Generated by `copilot completion fish`. Do not edit by hand.
|
||||||
|
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'login' -d 'Authenticate with Copilot'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'help' -d 'Display help information'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'init' -d 'Initialize Copilot instructions'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'update' -d 'Download the latest version'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'version' -d 'Display version information'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'plugin' -d 'Manage plugins'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'mcp' -d 'Manage MCP servers'
|
||||||
|
complete -c copilot -n '__fish_use_subcommand' -f -a 'completion' -d 'Generate a shell completion script'
|
||||||
|
complete -c copilot -l version -s v -f -d 'show version information'
|
||||||
|
complete -c copilot -l interactive -s i -r -d 'Start interactive mode and automatically execute this prompt'
|
||||||
|
complete -c copilot -l prompt -s p -r -d 'Execute a prompt in non-interactive mode (exits after completion)'
|
||||||
|
complete -c copilot -l silent -s s -f -d 'Output only the agent response (no stats), useful for scripting with -p'
|
||||||
|
complete -c copilot -l model -r -d 'Set the AI model to use'
|
||||||
|
complete -c copilot -l effort -l reasoning-effort -r -d 'Set the reasoning effort level' -a 'low medium high xhigh'
|
||||||
|
complete -c copilot -l enable-reasoning-summaries -f -d 'Request reasoning summaries for OpenAI models'
|
||||||
|
complete -c copilot -l agent -r -d 'Specify a custom agent to use'
|
||||||
|
complete -c copilot -l resume -r -d 'Resume from a previous session (optionally specify session ID, task ID, or name; name matching is exact, case-insensitive)'
|
||||||
|
complete -c copilot -l continue -f -d 'Resume the most recent session'
|
||||||
|
complete -c copilot -l name -s n -r -d 'Set a name for the new session'
|
||||||
|
complete -c copilot -l connect -r -d 'Connect directly to a remote session (optionally specify session ID or task ID)'
|
||||||
|
complete -c copilot -l allow-all-tools -f -d 'Allow all tools to run automatically without confirmation; required for non-interactive mode'
|
||||||
|
complete -c copilot -l allow-all-paths -f -d 'Disable file path verification and allow access to any path'
|
||||||
|
complete -c copilot -l disallow-temp-dir -f -d 'Prevent automatic access to the system temporary directory'
|
||||||
|
complete -c copilot -l no-custom-instructions -f -d 'Disable loading of custom instructions from AGENTS.md and related files'
|
||||||
|
complete -c copilot -l no-auto-update -f -d 'Disable downloading CLI update automatically (disabled by default in CI environments)'
|
||||||
|
complete -c copilot -l no-ask-user -f -d 'Disable the ask_user tool (agent works autonomously without asking questions)'
|
||||||
|
complete -c copilot -l banner -f -d 'Show the startup banner'
|
||||||
|
complete -c copilot -l no-color -f -d 'Disable all color output'
|
||||||
|
complete -c copilot -l screen-reader -f -d 'Enable screen reader optimizations'
|
||||||
|
complete -c copilot -l plain-diff -f -d 'Disable rich diff rendering (syntax highlighting via diff tool specified by git config)'
|
||||||
|
complete -c copilot -s C -r -d 'Change working directory before doing anything else'
|
||||||
|
complete -c copilot -l log-dir -r -d 'Set log file directory (default: ~/.copilot/logs/)'
|
||||||
|
complete -c copilot -l log-level -r -d 'Set the log level' -a 'none error warning info debug all default'
|
||||||
|
complete -c copilot -l stream -r -d 'Enable or disable streaming mode' -a 'on off'
|
||||||
|
complete -c copilot -l output-format -r -d 'Output format: \'text\' (default) or \'json\' (JSONL, one JSON object per line)' -a 'text json'
|
||||||
|
complete -c copilot -l share -r -d 'Share session to markdown file after completion in non-interactive mode (default: ./copilot-session-<id>.md)'
|
||||||
|
complete -c copilot -l share-gist -f -d 'Share session to a secret GitHub gist after completion in non-interactive mode'
|
||||||
|
complete -c copilot -l add-dir -r -d 'Add a directory to the allowed list for file access (can be used multiple times)'
|
||||||
|
complete -c copilot -l attachment -r -d 'Attach a file (image or native document) to the initial prompt; only valid in non-interactive mode (can be used multiple times)'
|
||||||
|
complete -c copilot -l disable-mcp-server -r -d 'Disable a specific MCP server (can be used multiple times)'
|
||||||
|
complete -c copilot -l disable-builtin-mcps -f -d 'Disable all built-in MCP servers (currently: github-mcp-server)'
|
||||||
|
complete -c copilot -l enable-all-github-mcp-tools -f -d 'Enable all GitHub MCP server tools instead of the default CLI subset. Overrides --add-github-mcp-toolset and --add-github-mcp-tool options.'
|
||||||
|
complete -c copilot -l add-github-mcp-toolset -r -d 'Add a toolset to enable for the GitHub MCP server instead of the default CLI subset (can be used multiple times). Use "all" for all toolsets.'
|
||||||
|
complete -c copilot -l add-github-mcp-tool -r -d 'Add a tool to enable for the GitHub MCP server instead of the default CLI subset (can be used multiple times). Use "*" for all tools.'
|
||||||
|
complete -c copilot -l plugin-dir -r -d 'Load a plugin from a local directory (can be used multiple times)'
|
||||||
|
complete -c copilot -l additional-mcp-config -r -d 'Additional MCP servers configuration as JSON string or file path (prefix with @) (can be used multiple times; augments config from ~/.copilot/mcp-config.json for this session)'
|
||||||
|
complete -c copilot -l allow-tool -r -d 'Tools the CLI has permission to use; will not prompt for permission'
|
||||||
|
complete -c copilot -l deny-tool -r -d 'Tools the CLI does not have permission to use; will not prompt for permission'
|
||||||
|
complete -c copilot -l available-tools -r -d 'Only these tools will be available to the model'
|
||||||
|
complete -c copilot -l excluded-tools -r -d 'These tools will not be available to the model'
|
||||||
|
complete -c copilot -l secret-env-vars -r -d 'Environment variable names whose values are stripped from shell and MCP server environments and redacted from output (e.g., --secret-env-vars=MY_KEY,OTHER_KEY)'
|
||||||
|
complete -c copilot -l allow-url -r -d 'Allow access to specific URLs or domains'
|
||||||
|
complete -c copilot -l deny-url -r -d 'Deny access to specific URLs or domains, takes precedence over --allow-url'
|
||||||
|
complete -c copilot -l allow-all-urls -f -d 'Allow access to all URLs without confirmation'
|
||||||
|
complete -c copilot -l allow-all -f -d 'Enable all permissions (equivalent to --allow-all-tools --allow-all-paths --allow-all-urls)'
|
||||||
|
complete -c copilot -l yolo -f -d 'Enable all permissions (equivalent to --allow-all-tools --allow-all-paths --allow-all-urls)'
|
||||||
|
complete -c copilot -l max-autopilot-continues -r -d 'Maximum number of continuation messages in autopilot mode'
|
||||||
|
complete -c copilot -l mode -r -d 'Set the initial agent mode' -a 'interactive plan autopilot'
|
||||||
|
complete -c copilot -l autopilot -f -d 'Start in autopilot mode'
|
||||||
|
complete -c copilot -l plan -f -d 'Start in plan mode'
|
||||||
|
complete -c copilot -l experimental -f -d 'Enable experimental features'
|
||||||
|
complete -c copilot -l no-experimental -f -d 'Disable experimental features'
|
||||||
|
complete -c copilot -l bash-env -r -d 'Enable BASH_ENV support for bash shells (on|off)'
|
||||||
|
complete -c copilot -l no-bash-env -f -d 'Disable BASH_ENV support for bash shells'
|
||||||
|
complete -c copilot -l mouse -r -d 'Enable mouse support in alt screen mode (on|off)'
|
||||||
|
complete -c copilot -l no-mouse -f -d 'Disable mouse support in alt screen mode'
|
||||||
|
complete -c copilot -l acp -f -d 'Start as Agent Client Protocol server'
|
||||||
|
complete -c copilot -l remote -f -d 'Enable remote control of your session from GitHub web and mobile'
|
||||||
|
complete -c copilot -l no-remote -f -d 'Disable remote control of your session from GitHub web and mobile'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from login' -l host -r -d 'GitHub host URL (default: https://github.com)'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'install' -d 'Install a plugin'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'uninstall' -d 'Uninstall a plugin'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'update' -d 'Update a plugin'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'list' -d 'List installed plugins'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin' -f -a 'marketplace' -d 'Manage plugin marketplaces'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'add' -d 'Add a marketplace'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'remove' -d 'Remove a marketplace'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'list' -d 'List registered marketplaces'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'browse' -d 'Browse plugins in a marketplace'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace' -f -a 'update' -d 'Update marketplace plugin catalogs'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from plugin; and __fish_seen_subcommand_from marketplace; and __fish_seen_subcommand_from remove' -l force -s f -f -d 'Force removal even if plugins are installed'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'list' -d 'List configured MCP servers'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'get' -d 'Show server details'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'add' -d 'Add an MCP server'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp' -f -a 'remove' -d 'Remove an MCP server'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from list' -l json -f -d 'Output as JSON'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from get' -l json -f -d 'Output as JSON'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from get' -l show-secrets -f -d 'Show full environment variable and header values (masked by default)'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l transport -r -d 'Server transport' -a 'stdio http sse'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l env -r -d 'Environment variable (KEY=VALUE, can be repeated)'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l header -r -d 'HTTP header for remote servers, can be repeated'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l tools -r -d 'Tool filter: "*" for all, comma-separated list, or "" for none'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l timeout -r -d 'Timeout in milliseconds'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l json -f -d 'Output added config as JSON'
|
||||||
|
complete -c copilot -n '__fish_seen_subcommand_from mcp; and __fish_seen_subcommand_from add' -l show-secrets -f -d 'Show full environment variable and header values in output, masked by default'
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# This file was created by fish when upgrading to version 4.3, to migrate
|
||||||
|
# the 'fish_key_bindings' variable from its old default scope (universal)
|
||||||
|
# to its new default scope (global). We recommend you delete this file
|
||||||
|
# and configure key bindings in ~/.config/fish/config.fish if needed.
|
||||||
|
|
||||||
|
# set --global fish_key_bindings fish_default_key_bindings
|
||||||
|
|
||||||
|
# Prior to version 4.3, fish shipped an event handler that runs
|
||||||
|
# `set --universal fish_key_bindings fish_default_key_bindings`
|
||||||
|
# whenever the fish_key_bindings variable is erased.
|
||||||
|
# This means that as long as any fish < 4.3 is still running on this system,
|
||||||
|
# we cannot complete the migration.
|
||||||
|
# As a workaround, erase the universal variable at every shell startup.
|
||||||
|
set --erase --universal fish_key_bindings
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
if status is-interactive
|
||||||
|
starship init fish | source
|
||||||
|
zoxide init fish | source
|
||||||
|
glow completion fish | source
|
||||||
|
|
||||||
|
alias cd=z
|
||||||
|
alias docker=podman
|
||||||
|
alias ls='/etc/profiles/per-user/river/bin/eza --icons'
|
||||||
|
alias cat="/etc/profiles/per-user/river/bin/bat"
|
||||||
|
alias grep="/etc/profiles/per-user/river/bin/rg"
|
||||||
|
alias idea="v ~/.idea/idea.md"
|
||||||
|
|
||||||
|
export PATH="$HOME/.npm-global/bin:$PATH"
|
||||||
|
|
||||||
|
alias kubectx='kubectl config use-context'
|
||||||
|
alias nrs="sudo nixos-rebuild switch --flake /home/river/nixos-dotfiles#pc"
|
||||||
|
alias config="nvim /home/river/nixos-dotfiles/hosts/pc/configuration.nix"
|
||||||
|
alias v=nvim
|
||||||
|
alias y=yazi
|
||||||
|
alias k=kubectl
|
||||||
|
alias j=jj
|
||||||
|
end
|
||||||
|
|
||||||
|
function fish_greeting
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
# bun
|
||||||
|
set --export BUN_INSTALL "$HOME/.bun"
|
||||||
|
set --export PATH $BUN_INSTALL/bin $PATH
|
||||||
|
|
||||||
|
alias cea="bunx create-expo-app --no-install"
|
||||||
|
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
|
||||||
|
set -gx GPG_TTY (tty)
|
||||||
|
gpg-connect-agent updatestartuptty /bye >/dev/null
|
||||||
|
|
||||||
|
# OpenClaw Completion
|
||||||
|
test -f "/home/river/.openclaw/completions/openclaw.fish"; and source "/home/river/.openclaw/completions/openclaw.fish"
|
||||||
|
|
||||||
|
set -gx CLAUDE_CODE_MAX_OUTPUT_TOKENS 64000
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:4300
|
||||||
|
SETUVAR fish_user_paths:/opt/homebrew/opt/llvm/bin
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
function clone-starter
|
||||||
|
if test (count $argv) -eq 0
|
||||||
|
echo "Usage: clone-starter <project-name>"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set project_name $argv[1]
|
||||||
|
|
||||||
|
git clone https://github.com/pure-sagacity/turborepo-starter-project.git $project_name
|
||||||
|
|
||||||
|
if test $status -ne 0
|
||||||
|
echo "Error: git clone failed"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
rm -rf $project_name/.git
|
||||||
|
|
||||||
|
echo "✓ Created $project_name (git history removed)"
|
||||||
|
end
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
function copy
|
||||||
|
if test (count $argv) -eq 0
|
||||||
|
echo "Usage: copy <file>"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if not test -f $argv[1]
|
||||||
|
echo "Error: File '$argv[1]' not found"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
cat $argv[1] | wl-copy
|
||||||
|
|
||||||
|
if test $status -eq 0
|
||||||
|
echo "Copied contents of '$argv[1]' to clipboard"
|
||||||
|
else
|
||||||
|
echo "Error: Failed to copy to clipboard"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
function generateSecret
|
||||||
|
openssl rand -base64 32 | pbcopy
|
||||||
|
|
||||||
|
echo "Copied secret to clipboard!"
|
||||||
|
end
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
function wipedns
|
||||||
|
sudo dscacheutil -flushcache
|
||||||
|
sudo killall -HUP mDNSResponder
|
||||||
|
end
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
window-padding-x = 2
|
||||||
|
|
||||||
|
font-family = "JetBrains Mono NL"
|
||||||
|
|
||||||
|
#theme = Catppuccin Mocha
|
||||||
|
theme = Argonaut
|
||||||
|
|
||||||
|
font-size = 16
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
palette = 0=#51576d
|
||||||
|
palette = 1=#e78284
|
||||||
|
palette = 2=#a6d189
|
||||||
|
palette = 3=#e5c890
|
||||||
|
palette = 4=#8caaee
|
||||||
|
palette = 5=#f4b8e4
|
||||||
|
palette = 6=#81c8be
|
||||||
|
palette = 7=#a5adce
|
||||||
|
palette = 8=#626880
|
||||||
|
palette = 9=#e78284
|
||||||
|
palette = 10=#a6d189
|
||||||
|
palette = 11=#e5c890
|
||||||
|
palette = 12=#8caaee
|
||||||
|
palette = 13=#f4b8e4
|
||||||
|
palette = 14=#81c8be
|
||||||
|
palette = 15=#b5bfe2
|
||||||
|
background = 303446
|
||||||
|
foreground = c6d0f5
|
||||||
|
cursor-color = f2d5cf
|
||||||
|
cursor-text = 232634
|
||||||
|
selection-background = 44495d
|
||||||
|
selection-foreground = c6d0f5
|
||||||
|
split-divider-color = 414559
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
palette = 0=#5c5f77
|
||||||
|
palette = 1=#d20f39
|
||||||
|
palette = 2=#40a02b
|
||||||
|
palette = 3=#df8e1d
|
||||||
|
palette = 4=#1e66f5
|
||||||
|
palette = 5=#ea76cb
|
||||||
|
palette = 6=#179299
|
||||||
|
palette = 7=#acb0be
|
||||||
|
palette = 8=#6c6f85
|
||||||
|
palette = 9=#d20f39
|
||||||
|
palette = 10=#40a02b
|
||||||
|
palette = 11=#df8e1d
|
||||||
|
palette = 12=#1e66f5
|
||||||
|
palette = 13=#ea76cb
|
||||||
|
palette = 14=#179299
|
||||||
|
palette = 15=#bcc0cc
|
||||||
|
background = eff1f5
|
||||||
|
foreground = 4c4f69
|
||||||
|
cursor-color = dc8a78
|
||||||
|
cursor-text = eff1f5
|
||||||
|
selection-background = d8dae1
|
||||||
|
selection-foreground = 4c4f69
|
||||||
|
split-divider-color = ccd0da
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
palette = 0=#494d64
|
||||||
|
palette = 1=#ed8796
|
||||||
|
palette = 2=#a6da95
|
||||||
|
palette = 3=#eed49f
|
||||||
|
palette = 4=#8aadf4
|
||||||
|
palette = 5=#f5bde6
|
||||||
|
palette = 6=#8bd5ca
|
||||||
|
palette = 7=#a5adcb
|
||||||
|
palette = 8=#5b6078
|
||||||
|
palette = 9=#ed8796
|
||||||
|
palette = 10=#a6da95
|
||||||
|
palette = 11=#eed49f
|
||||||
|
palette = 12=#8aadf4
|
||||||
|
palette = 13=#f5bde6
|
||||||
|
palette = 14=#8bd5ca
|
||||||
|
palette = 15=#b8c0e0
|
||||||
|
background = 24273a
|
||||||
|
foreground = cad3f5
|
||||||
|
cursor-color = f4dbd6
|
||||||
|
cursor-text = 181926
|
||||||
|
selection-background = 3a3e53
|
||||||
|
selection-foreground = cad3f5
|
||||||
|
split-divider-color = 363a4f
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
palette = 0=#45475a
|
||||||
|
palette = 1=#f38ba8
|
||||||
|
palette = 2=#a6e3a1
|
||||||
|
palette = 3=#f9e2af
|
||||||
|
palette = 4=#89b4fa
|
||||||
|
palette = 5=#f5c2e7
|
||||||
|
palette = 6=#94e2d5
|
||||||
|
palette = 7=#a6adc8
|
||||||
|
palette = 8=#585b70
|
||||||
|
palette = 9=#f38ba8
|
||||||
|
palette = 10=#a6e3a1
|
||||||
|
palette = 11=#f9e2af
|
||||||
|
palette = 12=#89b4fa
|
||||||
|
palette = 13=#f5c2e7
|
||||||
|
palette = 14=#94e2d5
|
||||||
|
palette = 15=#bac2de
|
||||||
|
background = 1e1e2e
|
||||||
|
foreground = cdd6f4
|
||||||
|
cursor-color = f5e0dc
|
||||||
|
cursor-text = 11111b
|
||||||
|
selection-background = 353749
|
||||||
|
selection-foreground = cdd6f4
|
||||||
|
split-divider-color = 313244
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
local config = require("variables")
|
||||||
|
|
||||||
|
hl.on("hyprland.start", function ()
|
||||||
|
hl.exec_cmd("wayvnc 0.0.0.0 5900")
|
||||||
|
hl.exec_cmd("nm-applet")
|
||||||
|
hl.exec_cmd(config.terminal)
|
||||||
|
hl.exec_cmd(config.wallpaper_cmd)
|
||||||
|
hl.exec_cmd(config.bar_cmd)
|
||||||
|
end)
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
hl.config({
|
||||||
|
decoration = {
|
||||||
|
rounding = 0,
|
||||||
|
rounding_power = 0,
|
||||||
|
|
||||||
|
-- Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 0.9,
|
||||||
|
inactive_opacity = 0.8,
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true,
|
||||||
|
size = 3,
|
||||||
|
passes = 1,
|
||||||
|
vibrancy = 0.1696,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
local theme = require("themes")
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
gaps_in = 2,
|
||||||
|
gaps_out = 10,
|
||||||
|
|
||||||
|
border_size = 2,
|
||||||
|
|
||||||
|
col = {
|
||||||
|
active_border = theme.primary,
|
||||||
|
inactive_border = theme.secondary,
|
||||||
|
},
|
||||||
|
|
||||||
|
resize_on_border = false,
|
||||||
|
|
||||||
|
allow_tearing = false,
|
||||||
|
|
||||||
|
layout = "dwindle",
|
||||||
|
},
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = true,
|
||||||
|
}
|
||||||
|
})
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
require("autostart")
|
||||||
|
require("keybinds")
|
||||||
|
require("monitor")
|
||||||
|
require("decoration")
|
||||||
|
require("general")
|
||||||
|
--require("smart-gaps")
|
||||||
|
require("inputs")
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
hl.config({
|
||||||
|
input = {
|
||||||
|
kb_layout = "us",
|
||||||
|
kb_variant = "",
|
||||||
|
kb_model = "",
|
||||||
|
kb_options = "",
|
||||||
|
kb_rules = "",
|
||||||
|
|
||||||
|
follow_mouse = 1,
|
||||||
|
|
||||||
|
sensitivity = 0,
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.gesture({
|
||||||
|
fingers = 3,
|
||||||
|
direction = "horizontal",
|
||||||
|
action = "workspace"
|
||||||
|
})
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
local config = require("variables")
|
||||||
|
|
||||||
|
local mainMod = "SUPER"
|
||||||
|
|
||||||
|
-- Application Binds
|
||||||
|
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(config.terminal))
|
||||||
|
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(config.file_manager))
|
||||||
|
hl.bind("ALT + SPACE", hl.dsp.exec_cmd(config.menu))
|
||||||
|
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(config.browser))
|
||||||
|
|
||||||
|
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||||
|
hl.bind(
|
||||||
|
mainMod .. " + SHIFT + Escape",
|
||||||
|
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'")
|
||||||
|
)
|
||||||
|
hl.bind("CTRL + ALT + DELETE", hl.dsp.exec_cmd("wlogout"))
|
||||||
|
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||||
|
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"))
|
||||||
|
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }))
|
||||||
|
hl.bind(mainMod .. " + I", hl.dsp.exec_cmd('ghostty -e bash -c "ollama"'))
|
||||||
|
hl.bind(mainMod .. " + N", hl.dsp.exec_cmd('ghostty -e bash -c "nmtui"'))
|
||||||
|
|
||||||
|
-- Window Binds
|
||||||
|
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||||
|
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||||
|
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||||
|
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.move({ direction = "left" }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.move({ direction = "right" }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.window.move({ direction = "up" }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.window.move({ direction = "down" }))
|
||||||
|
|
||||||
|
-- Workspace Binds
|
||||||
|
for i = 1, 10 do
|
||||||
|
local key = i % 10
|
||||||
|
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Resize Windows
|
||||||
|
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||||
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||||
|
|
||||||
|
-- Screenshot
|
||||||
|
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd(config.screen_shot_cmd))
|
||||||
|
|
||||||
|
-- Laptop Multimedia Keys
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioRaiseVolume",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioLowerVolume",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioMute",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioMicMute",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
hl.monitor({
|
||||||
|
output = "DP-2",
|
||||||
|
mode = "2560x1440@165",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
})
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
hl.window_rule({
|
||||||
|
name = "no-gaps-wtv1",
|
||||||
|
match = { float = false, workspace = "w[tv1]" },
|
||||||
|
border_size = 0,
|
||||||
|
rounding = 0,
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
name = "no-gaps-f1",
|
||||||
|
match = { float = false, workspace = "f[1]" },
|
||||||
|
border_size = 0,
|
||||||
|
rounding = 0,
|
||||||
|
})
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
local normal = {
|
||||||
|
primary = "rgba(33ccffee)",
|
||||||
|
secondary = "rgba(595959aa)",
|
||||||
|
};
|
||||||
|
|
||||||
|
local gray_blue = {
|
||||||
|
primary = "rgba(D9F7FAaa)",
|
||||||
|
secondary = "rgba(D8DDDEaa)",
|
||||||
|
}
|
||||||
|
|
||||||
|
local purple = {
|
||||||
|
primary = "rgba(9fa1ffff)",
|
||||||
|
secondary = "rgba(b5baffff)"
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Change the option:
|
||||||
|
return purple
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
local function wallpaper_util(wallpaper_path)
|
||||||
|
local ext = wallpaper_path:lower():match("^.+%.([a-z0-9]+)$")
|
||||||
|
|
||||||
|
if ext == "mp4" or ext == "mkv" or ext == "webm" or ext == "mov" then
|
||||||
|
return string.format('mpvpaper ALL "%s" --mpv-options="loop-file=inf no-audio"', wallpaper_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
return string.format('awww-daemon & awww img "%s"', wallpaper_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
terminal = "ghostty",
|
||||||
|
file_manager = "dolphin",
|
||||||
|
screen_shot_cmd = "hyprshot -m region -o ~/Pictures/Screenshots",
|
||||||
|
menu = "rofi -show drun",
|
||||||
|
wallpaper_cmd = wallpaper_util("/home/river/Pictures/Wallpapers/bg.png"),
|
||||||
|
browser = "brave",
|
||||||
|
bar_cmd = "waybar",
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
tt.*
|
||||||
|
.tests
|
||||||
|
doc/tags
|
||||||
|
debug
|
||||||
|
.repro
|
||||||
|
foo.*
|
||||||
|
*.log
|
||||||
|
data
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||||
|
require("config.lazy")
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
|
||||||
|
"SchemaStore.nvim": { "branch": "main", "commit": "1c28767e3a7f3c9b7c5cc66e7f16b268c964e2c9" },
|
||||||
|
"blink-copilot": { "branch": "main", "commit": "7ad8209b2f880a2840c94cdcd80ab4dc511d4f39" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "0451b96660e8ca7dd8897718bad63932cf59255a" },
|
||||||
|
"copilot.lua": { "branch": "master", "commit": "7e9c269bf40dea86b44e64bd746f1808e991e419" },
|
||||||
|
"crates.nvim": { "branch": "main", "commit": "694357861ec9ebf12475ddcdd04ea45a0923c32d" },
|
||||||
|
"dial.nvim": { "branch": "master", "commit": "f2634758455cfa52a8acea6f142dcd6271a1bf57" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||||
|
"gh.nvim": { "branch": "main", "commit": "6f367b2ab8f9d4a0a23df2b703a3f91137618387" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "a5875fde04e2940a5060f8df9c453bcfcfe0a5c0" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
|
||||||
|
"litee.nvim": { "branch": "main", "commit": "4efaf373322d9e71eaff31164abb393417cc6f6a" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "eaa34887d444cb002e1b165fac399ae4bbc771f7" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "8e921c2b68571e978db5d4d3fef9c9a7f8755473" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "a783ce6e1a5b3bc90519f20b51f4a5f6702734af" },
|
||||||
|
"mini.hipatterns": { "branch": "main", "commit": "35b632f6c138d720f29de87476361af44bed2198" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "9c7b1b90b15bdd69c52f6e31889dbc9987c30ec4" },
|
||||||
|
"mini.pairs": { "branch": "main", "commit": "30cf2f01c4aaa2033db67376b9924fa2442c05d6" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "665525810630701b84181e4d9eefd24b49845b29" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "8f7e64066e2641d5e7d494962a9c7051e3d38dd5" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
|
"rustaceanvim": { "branch": "main", "commit": "f5c1bf138571442bfda96a2bf45239e009264a6e" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
||||||
|
"venv-selector.nvim": { "branch": "main", "commit": "bcb2f58533c59b01565285eba49693f00bc460f5" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
|
||||||
|
"yanky.nvim": { "branch": "main", "commit": "784188e0a7363e762e53140f39124d786aec0832" }
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"extras": [
|
||||||
|
"lazyvim.plugins.extras.ai.copilot",
|
||||||
|
"lazyvim.plugins.extras.coding.yanky",
|
||||||
|
"lazyvim.plugins.extras.editor.dial",
|
||||||
|
"lazyvim.plugins.extras.formatting.prettier",
|
||||||
|
"lazyvim.plugins.extras.lang.docker",
|
||||||
|
"lazyvim.plugins.extras.lang.git",
|
||||||
|
"lazyvim.plugins.extras.lang.json",
|
||||||
|
"lazyvim.plugins.extras.lang.python",
|
||||||
|
"lazyvim.plugins.extras.lang.rust",
|
||||||
|
"lazyvim.plugins.extras.lang.tailwind",
|
||||||
|
"lazyvim.plugins.extras.lang.toml",
|
||||||
|
"lazyvim.plugins.extras.lang.typescript",
|
||||||
|
"lazyvim.plugins.extras.linting.eslint",
|
||||||
|
"lazyvim.plugins.extras.util.dot",
|
||||||
|
"lazyvim.plugins.extras.util.gh",
|
||||||
|
"lazyvim.plugins.extras.util.mini-hipatterns"
|
||||||
|
],
|
||||||
|
"install_version": 8,
|
||||||
|
"news": {
|
||||||
|
"NEWS.md": "11866"
|
||||||
|
},
|
||||||
|
"version": 8
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
-- Autocmds are automatically loaded on the VeryLazy event
|
||||||
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||||
|
--
|
||||||
|
-- Add any additional autocmds here
|
||||||
|
-- with `vim.api.nvim_create_autocmd`
|
||||||
|
--
|
||||||
|
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||||
|
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- add LazyVim and import its plugins
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
|
lazy = false,
|
||||||
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
|
-- have outdated releases, which may break your Neovim install.
|
||||||
|
version = false, -- always use the latest git commit
|
||||||
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||||
|
checker = {
|
||||||
|
enabled = true, -- check for plugin updates periodically
|
||||||
|
notify = false, -- notify on update
|
||||||
|
}, -- automatically check for plugin updates
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
-- "matchparen",
|
||||||
|
-- "netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
return {
|
||||||
|
-- Catppuccin theme with transparency
|
||||||
|
{
|
||||||
|
"catppuccin/nvim",
|
||||||
|
name = "catppuccin",
|
||||||
|
priority = 1000,
|
||||||
|
opts = {
|
||||||
|
flavour = "frappe", -- Choose "latte", "frappe", "macchiato", or "mocha"
|
||||||
|
transparent_background = true,
|
||||||
|
custom_highlights = function(colors)
|
||||||
|
return {
|
||||||
|
VertSplit = { fg = colors.overlay0 },
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Override LazyVim's default colorscheme
|
||||||
|
{ "LazyVim/LazyVim", opts = { colorscheme = "catppuccin" } },
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||||
|
-- stylua: ignore
|
||||||
|
if true then return {} end
|
||||||
|
|
||||||
|
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||||
|
--
|
||||||
|
-- In your plugin files, you can:
|
||||||
|
-- * add extra plugins
|
||||||
|
-- * disable/enabled LazyVim plugins
|
||||||
|
-- * override the configuration of LazyVim plugins
|
||||||
|
return {
|
||||||
|
-- add gruvbox
|
||||||
|
{ "ellisonleao/gruvbox.nvim" },
|
||||||
|
|
||||||
|
-- Configure LazyVim to load gruvbox
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "gruvbox",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- change trouble config
|
||||||
|
{
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
-- opts will be merged with the parent spec
|
||||||
|
opts = { use_diagnostic_signs = true },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- disable trouble
|
||||||
|
{ "folke/trouble.nvim", enabled = false },
|
||||||
|
|
||||||
|
-- override nvim-cmp and add cmp-emoji
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = { "hrsh7th/cmp-emoji" },
|
||||||
|
---@param opts cmp.ConfigSchema
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.sources, { name = "emoji" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- change some telescope options and a keymap to browse plugin files
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
keys = {
|
||||||
|
-- add a keymap to browse plugin files
|
||||||
|
-- stylua: ignore
|
||||||
|
{
|
||||||
|
"<leader>fp",
|
||||||
|
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||||
|
desc = "Find Plugin File",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- change some options
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = { prompt_position = "top" },
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- add pyright to lspconfig
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
---@class PluginLspOpts
|
||||||
|
opts = {
|
||||||
|
---@type lspconfig.options
|
||||||
|
servers = {
|
||||||
|
-- pyright will be automatically installed with mason and loaded with lspconfig
|
||||||
|
pyright = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
dependencies = {
|
||||||
|
"jose-elias-alvarez/typescript.nvim",
|
||||||
|
init = function()
|
||||||
|
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
||||||
|
-- stylua: ignore
|
||||||
|
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||||
|
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
---@class PluginLspOpts
|
||||||
|
opts = {
|
||||||
|
---@type lspconfig.options
|
||||||
|
servers = {
|
||||||
|
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
||||||
|
tsserver = {},
|
||||||
|
},
|
||||||
|
-- you can do any additional lsp server setup here
|
||||||
|
-- return true if you don't want this server to be setup with lspconfig
|
||||||
|
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||||
|
setup = {
|
||||||
|
-- example to setup with typescript.nvim
|
||||||
|
tsserver = function(_, opts)
|
||||||
|
require("typescript").setup({ server = opts })
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
-- Specify * to use this function as a fallback for any server
|
||||||
|
-- ["*"] = function(server, opts) end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
||||||
|
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||||
|
|
||||||
|
-- add more treesitter parsers
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"bash",
|
||||||
|
"html",
|
||||||
|
"javascript",
|
||||||
|
"json",
|
||||||
|
"lua",
|
||||||
|
"markdown",
|
||||||
|
"markdown_inline",
|
||||||
|
"python",
|
||||||
|
"query",
|
||||||
|
"regex",
|
||||||
|
"tsx",
|
||||||
|
"typescript",
|
||||||
|
"vim",
|
||||||
|
"yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
||||||
|
-- would overwrite `ensure_installed` with the new value.
|
||||||
|
-- If you'd rather extend the default config, use the code below instead:
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
opts = function(_, opts)
|
||||||
|
-- add tsx and treesitter
|
||||||
|
vim.list_extend(opts.ensure_installed, {
|
||||||
|
"tsx",
|
||||||
|
"typescript",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- the opts function can also be used to change the default opts:
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = function(_, opts)
|
||||||
|
table.insert(opts.sections.lualine_x, {
|
||||||
|
function()
|
||||||
|
return "😄"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- or you can return new options to override all the defaults
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = function()
|
||||||
|
return {
|
||||||
|
--[[add your custom lualine config here]]
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- use mini.starter instead of alpha
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||||
|
|
||||||
|
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
|
|
||||||
|
-- add any tools you want to have installed below
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = {
|
||||||
|
"stylua",
|
||||||
|
"shellcheck",
|
||||||
|
"shfmt",
|
||||||
|
"flake8",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
servers = {
|
||||||
|
yamlls = {
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
schemas = {}, -- This clears the auto-detected schemas (like K8s)
|
||||||
|
completion = false, -- This turns off the completion for YAML
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
gopls = {},
|
||||||
|
nixd = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup = {
|
||||||
|
cmd = { "nixd" },
|
||||||
|
settings = {
|
||||||
|
nixd = {
|
||||||
|
nixpkgs = {
|
||||||
|
expr = "import <nixpkgs> { }",
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
command = { "nixfmt" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
column_width = 120
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# EditorConfig helps developers define and maintain consistent
|
||||||
|
# coding styles between different editors and IDEs
|
||||||
|
# EditorConfig is awesome: https://EditorConfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_size = 2
|
||||||
|
indent_style = space
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
# go
|
||||||
|
[*.go]
|
||||||
|
indent_style = tab
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# python
|
||||||
|
[*.{ini,py,py.tpl,rst}]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# rust
|
||||||
|
[*.rs]
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# documentation, utils
|
||||||
|
[*.{md,mdx,diff}]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
# windows shell scripts
|
||||||
|
[*.{cmd,bat,ps1}]
|
||||||
|
end_of_line = crlf
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Report your bugs with the theme here!
|
||||||
|
labels: [bug]
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: I am not requesting help with my configuration and believe something is genuinely broken.
|
||||||
|
description: Please open a [discussion](https://github.com/catppuccin/tmux/discussions/new?category=help) if you need support.
|
||||||
|
options:
|
||||||
|
- label: Something is really actually broken.
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue outlining your problem?
|
||||||
|
description: Please search to see if an issue already exists for your problem.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues and [troubleshooting guide](https://github.com/catppuccin/tmux/blob/main/docs/guides/troubleshooting.md), and they do not solve my problem.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe your problem.
|
||||||
|
description: Also tell us, what do you expect to see?
|
||||||
|
placeholder: The status bar is bright green, I expect it to be mantle.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Paste your configuration.
|
||||||
|
description: Provide us with the contents of your `~/.tmux.conf` file.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Attach screenshots.
|
||||||
|
description: If applicable, attach screenshots which clearly highlight the issue.
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: What tmux version are you seeing the issue on?
|
||||||
|
description: "You can find your version by running `tmux -V`"
|
||||||
|
placeholder: tmux 3.5a
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: What shell are you using?
|
||||||
|
description: "You can find your shell by running `echo $SHELL`"
|
||||||
|
placeholder: bash
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Any additional comments?
|
||||||
|
description: Add any information that hasn't been covered in the previous sections!
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: Get Support
|
||||||
|
url: https://github.com/catppuccin/tmux/discussions/new?category=help
|
||||||
|
about: Need help tweaking your Catppuccin tmux configuration? Ask questions in GitHub Discussions!
|
||||||
|
- name: Show & Tell
|
||||||
|
url: https://github.com/catppuccin/tmux/discussions/new?category=show-tell
|
||||||
|
about: Want to showcase your customised Catppuccin tmux configuration? Show it off in GitHub Discussions!
|
||||||
|
- name: Community Discord
|
||||||
|
url: https://discord.com/servers/catppuccin-907385605422448742
|
||||||
|
about: Chat to other community members!
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
name: Enhancement Issue
|
||||||
|
description: Request improvements to the theme here!
|
||||||
|
labels: [enhancement]
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue outlining your improvement?
|
||||||
|
description: Please search to see if your improvement has already been raised as an issue.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues and my improvement has not been raised yet.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: What would you like to see added and/or changed?
|
||||||
|
description: Make sure to mention why you think this is an improvement!
|
||||||
|
placeholder: I'd like to have an extra configuration option for...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
name: Meta Issue
|
||||||
|
description: Raise any issue regarding the repository here!
|
||||||
|
labels: [meta]
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Is there an existing issue outlining your problem?
|
||||||
|
description: Please search to see if an issue already exists for your problem.
|
||||||
|
options:
|
||||||
|
- label: I have searched the existing issues and they do not solve my problem.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe your issue.
|
||||||
|
description: Bugs should be raised under a [Bug Report](https://github.com/catppuccin/tmux/issues/new?assignees=&labels=bug&template=bug.yml).
|
||||||
|
placeholder: The README is missing crucial information such as...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"last-release-sha": "408c02ccf44d0a59a7a63ce2b65c5c29982c5c0e",
|
||||||
|
"packages": {
|
||||||
|
".": {
|
||||||
|
"release-type": "simple",
|
||||||
|
"changelog-path": "CHANGELOG.md",
|
||||||
|
"bump-minor-pre-major": true,
|
||||||
|
"bump-patch-for-minor-pre-major": false,
|
||||||
|
"draft": false,
|
||||||
|
"extra-files": [
|
||||||
|
"README.md",
|
||||||
|
"docs/tutorials/01-getting-started.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"changelog-sections": [
|
||||||
|
{ "type": "feat", "section": "Added" },
|
||||||
|
{ "type": "change", "section": "Changed" },
|
||||||
|
{ "type": "fix", "section": "Fixed" },
|
||||||
|
{ "type": "deprecate", "section": "Deprecated" },
|
||||||
|
{ "type": "remove", "section": "Removed" },
|
||||||
|
{ "type": "perf", "section": "Performance Improvements" },
|
||||||
|
{ "type": "revert", "section": "Reverts" },
|
||||||
|
{ "type": "docs", "section": "Documentation" }
|
||||||
|
],
|
||||||
|
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
".": "2.3.0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
name: release-please
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release-please:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: googleapis/release-please-action@v4
|
||||||
|
id: release
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
config-file: .github/release-please-config.json
|
||||||
|
manifest-file: .github/release-please-manifest.json
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: tag major and minor versions
|
||||||
|
if: ${{ steps.release.outputs.release_created }}
|
||||||
|
run: |
|
||||||
|
git config user.name github-actions[bot]
|
||||||
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
||||||
|
|
||||||
|
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/googleapis/release-please-action.git"
|
||||||
|
|
||||||
|
git tag -d latest || true
|
||||||
|
git tag -d v${{ steps.release.outputs.major }} || true
|
||||||
|
git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
|
||||||
|
|
||||||
|
git push origin :latest || true
|
||||||
|
git push origin :v${{ steps.release.outputs.major }} || true
|
||||||
|
git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
|
||||||
|
|
||||||
|
git tag -a latest -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
|
||||||
|
git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
|
||||||
|
git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
|
||||||
|
|
||||||
|
git push origin latest
|
||||||
|
git push origin v${{ steps.release.outputs.major }}
|
||||||
|
git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: Shellcheck
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- "*.md"
|
||||||
|
- "assets/**"
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "*.md"
|
||||||
|
- "assets/**"
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
shellcheck:
|
||||||
|
name: Shellcheck
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Run ShellCheck
|
||||||
|
uses: ludeeus/action-shellcheck@master
|
||||||
|
with:
|
||||||
|
additional_files: "catppuccin.tmux"
|
||||||
|
env:
|
||||||
|
SHELLCHECK_OPTS: "-a"
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
name: Tests
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- "*.md"
|
||||||
|
- "assets/**"
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "*.md"
|
||||||
|
- "assets/**"
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ubuntu:
|
||||||
|
name: Test
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install tmux
|
||||||
|
run: sudo apt update && sudo apt install -y --allow-downgrades tmux=3.4-1build1
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Run Tests
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
bash --version
|
||||||
|
tmux -V
|
||||||
|
./run_tests.sh
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: whiskers
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run:
|
||||||
|
uses: catppuccin/actions/.github/workflows/whiskers-check.yml@v1
|
||||||
|
with:
|
||||||
|
args: tmux.tera
|
||||||
|
secrets: inherit
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
custom
|
||||||
|
!custom/README.md
|
||||||
|
!custom/example.sh
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.35.0/schema/markdownlint-config-schema.json",
|
||||||
|
"line-length": {
|
||||||
|
"code_block_line_length": 120,
|
||||||
|
"tables": false
|
||||||
|
},
|
||||||
|
"no-inline-html": {
|
||||||
|
"allowed_elements": ["details", "summary", "img", "p", "a", "h3"]
|
||||||
|
},
|
||||||
|
"first-line-heading": false,
|
||||||
|
"no-alt-text": false,
|
||||||
|
"code-block-style": {
|
||||||
|
"style": "consistent"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
shell=bash
|
||||||
|
|
||||||
|
# TODO: Find a way to declare color variables
|
||||||
|
disable=SC2154
|
||||||
|
|
||||||
|
external-sources=true
|
||||||
@@ -0,0 +1,222 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [2.3.0](https://github.com/catppuccin/tmux/compare/v2.2.2...v2.3.0) (2026-04-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
* add RAM status module ([#570](https://github.com/catppuccin/tmux/issues/570)) ([4a9165b](https://github.com/catppuccin/tmux/commit/4a9165b2b029b57bbccc3bab488c3c8474a3056e))
|
||||||
|
|
||||||
|
## [2.2.2](https://github.com/catppuccin/tmux/compare/v2.2.1...v2.2.2) (2026-04-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Update status-line.md ([#528](https://github.com/catppuccin/tmux/issues/528)) ([4fb9e8d](https://github.com/catppuccin/tmux/commit/4fb9e8d10ed381981920054df8a449165efd23a6))
|
||||||
|
|
||||||
|
## [2.2.1](https://github.com/catppuccin/tmux/compare/v2.2.0...v2.2.1) (2026-04-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* **03-resetting-theme:** remove tip ([#584](https://github.com/catppuccin/tmux/issues/584)) ([f451db9](https://github.com/catppuccin/tmux/commit/f451db96c8e4e7d9cdea7bbb0b57c149bfb40e28))
|
||||||
|
|
||||||
|
## [2.2.0](https://github.com/catppuccin/tmux/compare/v2.1.3...v2.2.0) (2026-04-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
* add a "reset" option to clear options on plugin load ([#500](https://github.com/catppuccin/tmux/issues/500)) ([556fea5](https://github.com/catppuccin/tmux/commit/556fea52bb5d827a42740bc605de4f1d8a0440de))
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* change tmux plugin kube module uses ([#531](https://github.com/catppuccin/tmux/issues/531)) ([ef94979](https://github.com/catppuccin/tmux/commit/ef9497982032a9494f4bf3ad276fba58b61bd7e6))
|
||||||
|
* **theme:** Cleanup duplicate palette theme color ([#562](https://github.com/catppuccin/tmux/issues/562)) ([efeb958](https://github.com/catppuccin/tmux/commit/efeb9583cec0bc7486caedbc309df0ea9505d332))
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* clarify custom-status should be added before plugin is loaded ([#551](https://github.com/catppuccin/tmux/issues/551)) ([8b0b915](https://github.com/catppuccin/tmux/commit/8b0b9150f9d7dee2a4b70cdb50876ba7fd6d674a))
|
||||||
|
* status-line left/right mixup ([#542](https://github.com/catppuccin/tmux/issues/542)) ([9d21d7c](https://github.com/catppuccin/tmux/commit/9d21d7ccd50df82bd732be2850ce2798e78b6391))
|
||||||
|
* stop recommending `-o` ([#524](https://github.com/catppuccin/tmux/issues/524)) ([14a546f](https://github.com/catppuccin/tmux/commit/14a546fb64dc1141e5d02bac2185d8c1fd530d6a))
|
||||||
|
|
||||||
|
## [2.1.3](https://github.com/catppuccin/tmux/compare/v2.1.2...v2.1.3) (2025-03-23)
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* make the space in [@catppuccin](https://github.com/catppuccin)_window_flags_icon_format user-configurable ([#465](https://github.com/catppuccin/tmux/issues/465)) ([320e184](https://github.com/catppuccin/tmux/commit/320e184a31d0825cb4f4af550492cbdff2fc3ffc))
|
||||||
|
* pomodoro plugin icon color - use a defined color (peach) rather than orange ([#466](https://github.com/catppuccin/tmux/issues/466)) ([da2143d](https://github.com/catppuccin/tmux/commit/da2143d2a6baf7951eda302678a57a171a78d78a))
|
||||||
|
* use plain awk for the load status line module, removing a dep ([#508](https://github.com/catppuccin/tmux/issues/508)) ([c21246e](https://github.com/catppuccin/tmux/commit/c21246ed58e867c9594dc687c5e92b229bc1760d))
|
||||||
|
* use the correct option for the left separator for the current window ([#450](https://github.com/catppuccin/tmux/issues/450)) ([ba9bd88](https://github.com/catppuccin/tmux/commit/ba9bd88c98c81f25060f051ed983e40f82fdd3ba))
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* add a troubleshooting guide ([#473](https://github.com/catppuccin/tmux/issues/473)) ([ab647cf](https://github.com/catppuccin/tmux/commit/ab647cf91501cebbd3f967da2b488a5f87614e6b))
|
||||||
|
* Correct the plugin path for TPM in the readme ([#492](https://github.com/catppuccin/tmux/issues/492)) ([ee8970d](https://github.com/catppuccin/tmux/commit/ee8970ddb5dd60fd93e254de9a30ed8277c7ccc7))
|
||||||
|
* **README:** fix codeblock indentation ([#489](https://github.com/catppuccin/tmux/issues/489)) ([cce60ab](https://github.com/catppuccin/tmux/commit/cce60abc8efd7a641a5fcc8001e6b3ae61e8d5fe))
|
||||||
|
* **README:** update migration guide issue link ([#493](https://github.com/catppuccin/tmux/issues/493)) ([073ee54](https://github.com/catppuccin/tmux/commit/073ee54992c59fedcc29c1525a26f95691f0ae1f))
|
||||||
|
|
||||||
|
## [2.1.2](https://github.com/catppuccin/tmux/compare/v2.1.1...v2.1.2) (2024-12-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* improve uptime status sed script to report correct units for few uptime scenarios ([#437](https://github.com/catppuccin/tmux/issues/437)) ([31fc2bf](https://github.com/catppuccin/tmux/commit/31fc2bfb1123681dc06da613b944b85f81e4babd))
|
||||||
|
* use current window separators for the current window format ([#443](https://github.com/catppuccin/tmux/issues/443)) ([2a6c45b](https://github.com/catppuccin/tmux/commit/2a6c45b7c0da1594de1105d6cef15e3e68981113))
|
||||||
|
|
||||||
|
## [2.1.1](https://github.com/catppuccin/tmux/compare/v2.1.0...v2.1.1) (2024-11-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* escape the TPM environment variable in the kube status line module ([#434](https://github.com/catppuccin/tmux/issues/434)) ([eb78ade](https://github.com/catppuccin/tmux/commit/eb78ade9dc1f6cd8ba654572f51ddcae3c6e7fd7))
|
||||||
|
* specify the color for right separator of the status modules to be the same as text bg color ([#429](https://github.com/catppuccin/tmux/issues/429)) ([0e66dee](https://github.com/catppuccin/tmux/commit/0e66dee11ee396824668d4db863f1873e9e9243f))
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* add possible values for window_flags ([#417](https://github.com/catppuccin/tmux/issues/417)) ([c8a2d1a](https://github.com/catppuccin/tmux/commit/c8a2d1ae9649aa904960bef1516ea2ff9a3e6ad0))
|
||||||
|
* **custom-status:** fix typo `catpuccin` -> `catppuccin` ([#424](https://github.com/catppuccin/tmux/issues/424)) ([aaf9120](https://github.com/catppuccin/tmux/commit/aaf9120f769a34e5491b3ee7f885c8c347f2f663))
|
||||||
|
|
||||||
|
## [2.1.0](https://github.com/catppuccin/tmux/compare/v2.0.0...v2.1.0) (2024-10-25)
|
||||||
|
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
* add an option to format the window number with `[@catppuccin](https://github.com/catppuccin)_window_number` and `[@catppuccin](https://github.com/catppuccin)_window_current_number` ([c749885](https://github.com/catppuccin/tmux/commit/c74988511a462bdf07c5fc9ce88157b93a4ed185))
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* allow for dynamic colors in status modules ([#411](https://github.com/catppuccin/tmux/issues/411)), fixes issue [#407](https://github.com/catppuccin/tmux/issues/407) ([5e273e4](https://github.com/catppuccin/tmux/commit/5e273e41dd3188a1a0e795b120623c95de491445))
|
||||||
|
* session status icon bg color change by client_prefix ([#394](https://github.com/catppuccin/tmux/issues/394)) ([8855667](https://github.com/catppuccin/tmux/commit/885566714315915547516de5c2f1b660f8e524c2))
|
||||||
|
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
* **README:** add [@kjnsn](https://github.com/kjnsn) to "Thanks to" section ([#398](https://github.com/catppuccin/tmux/issues/398)) ([c3fab98](https://github.com/catppuccin/tmux/commit/c3fab98ab4248a2a78c8193ad48f0991b7bfa1e3))
|
||||||
|
|
||||||
|
## [2.0.0](https://github.com/catppuccin/tmux/compare/v1.0.3...v2.0.0) (2024-10-21)
|
||||||
|
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
* rebalance the colors used, and follow the styleguide
|
||||||
|
* change how windows are styled
|
||||||
|
* change how status modules are styled
|
||||||
|
* rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372))
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* change how status modules are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
* rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372)) ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
* rebalance the colors used, and follow the styleguide ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
* rebalance the status module colors for cpu and battery ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
* replace `_ctp_status_bg` with unified `_ctp_module_bg_color` in module configuration ([a4d4ad0](https://github.com/catppuccin/tmux/commit/a4d4ad09cc8b5c9338cbd4510450d0ae997a7710))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **tests:** add tests for window styling ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
* use ubuntu-24.04 in ci ([#388](https://github.com/catppuccin/tmux/issues/388)) ([3b0e0a6](https://github.com/catppuccin/tmux/commit/3b0e0a6f0741bf09149f23620516decd7b5f5ba5))
|
||||||
|
|
||||||
|
|
||||||
|
### Code Refactoring
|
||||||
|
|
||||||
|
* change how windows are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
|
||||||
|
|
||||||
|
## [1.0.3](https://github.com/catppuccin/tmux/compare/v1.0.2...v1.0.3) (2024-10-16)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* change the default status line background to mantle ([#377](https://github.com/catppuccin/tmux/issues/377)) ([47dbe81](https://github.com/catppuccin/tmux/commit/47dbe818e3ad7a008ccbd3e5d69a29a4509f7d07))
|
||||||
|
|
||||||
|
## [1.0.2](https://github.com/catppuccin/tmux/compare/v1.0.1...v1.0.2) (2024-10-12)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ci:** update tmux in test workflow ([#370](https://github.com/catppuccin/tmux/issues/370)) ([02debd3](https://github.com/catppuccin/tmux/commit/02debd396802af9fe4b41601739e48ef38217533))
|
||||||
|
* **status:** use a literal string for battery_icon so it can be replaced by the battery plugin ([#365](https://github.com/catppuccin/tmux/issues/365)) ([06fff2f](https://github.com/catppuccin/tmux/commit/06fff2f40ec4a5cd2c9e064bc7fde22130ecd4bb)), closes [#342](https://github.com/catppuccin/tmux/issues/342)
|
||||||
|
* typo in readme config example ([#362](https://github.com/catppuccin/tmux/issues/362)) ([41ee0b8](https://github.com/catppuccin/tmux/commit/41ee0b89acb3f4afe531209558d6b8e4d7d4ae1a))
|
||||||
|
* **window:** middle separator colors ([#369](https://github.com/catppuccin/tmux/issues/369)) ([c59df83](https://github.com/catppuccin/tmux/commit/c59df83d68e64feb8d015c2eb3f8b90febc95a53))
|
||||||
|
|
||||||
|
## [1.0.1](https://github.com/catppuccin/tmux/compare/v1.0.0...v1.0.1) (2024-10-05)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **readme:** fix the example configurations ([#343](https://github.com/catppuccin/tmux/issues/343)) ([06183b3](https://github.com/catppuccin/tmux/commit/06183b31216b4ed917760b3d59565e242eee6a64))
|
||||||
|
* **readme:** fix the version number, and fix escaping in the custom status line module docs ([#357](https://github.com/catppuccin/tmux/issues/357)) ([db466f8](https://github.com/catppuccin/tmux/commit/db466f8c2dbcfdd84e501ee8274bdfdcf049d65d))
|
||||||
|
|
||||||
|
## [1.0.0](https://github.com/catppuccin/tmux/compare/v0.4.0...v1.0.0) (2024-10-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **readme:** remove -F when setting the status line ([#333](https://github.com/catppuccin/tmux/issues/333)) ([b38421f](https://github.com/catppuccin/tmux/commit/b38421fa15d8dfafecaf6f438115cfe3c1259bf0))
|
||||||
|
|
||||||
|
## [0.4.0](https://github.com/catppuccin/tmux/compare/v0.3.0...v0.4.0) (2024-10-01)
|
||||||
|
|
||||||
|
|
||||||
|
### ⚠ BREAKING CHANGES
|
||||||
|
|
||||||
|
* rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328))
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **readme:** update the readme to include upgrade instructions ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
|
||||||
|
* **window:** ensure the window formats are set correctly ([#331](https://github.com/catppuccin/tmux/issues/331)) ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
|
||||||
|
|
||||||
|
|
||||||
|
### Code Refactoring
|
||||||
|
|
||||||
|
* rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328)) ([87fa4a0](https://github.com/catppuccin/tmux/commit/87fa4a08c5a7fdbef3130f05a8b12f0ca26d4a46))
|
||||||
|
|
||||||
|
## [0.3.0](https://github.com/catppuccin/tmux/compare/v0.2.0...v0.3.0) (2024-09-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **status:** Add support for status module middle separators ([#310](https://github.com/catppuccin/tmux/issues/310)) ([1612a23](https://github.com/catppuccin/tmux/commit/1612a23174a6771ac466312eb156f83b8b89d907))
|
||||||
|
* **status:** window specific separator config ([#198](https://github.com/catppuccin/tmux/issues/198)) ([8276c5a](https://github.com/catppuccin/tmux/commit/8276c5a5e33dbbbae3d370db2f6129e20b402f8a))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **kube:** escape env var ([c31b9b2](https://github.com/catppuccin/tmux/commit/c31b9b2c6c7c50abbebd02b80c4fd32b2782a011))
|
||||||
|
|
||||||
|
## [0.2.0](https://github.com/catppuccin/tmux/compare/v0.1.0...v0.2.0) (2024-08-23)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* error/warning messages on first load ([#278](https://github.com/catppuccin/tmux/issues/278)) ([a2dda02](https://github.com/catppuccin/tmux/commit/a2dda02b43194aec5deddf2890c28c76b4c11ed4))
|
||||||
|
* warn users of whitespace in module lists ([#266](https://github.com/catppuccin/tmux/issues/266)) ([362a306](https://github.com/catppuccin/tmux/commit/362a306db71794f04d0995fc058bcaa094d1af70))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* add missing batch options `catppuccin_pane{,_active}_border_style` ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
|
||||||
|
* add missing batch options catppuccin_pane{,_active}_border_style ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
|
||||||
|
* escaping in options ([#298](https://github.com/catppuccin/tmux/issues/298)) ([9b57c20](https://github.com/catppuccin/tmux/commit/9b57c2002081fff8af16b878f1369d46788c0409))
|
||||||
|
* **pomodoro_plus:** option names ([#273](https://github.com/catppuccin/tmux/issues/273)) ([51dde6e](https://github.com/catppuccin/tmux/commit/51dde6e8d4d3d8da97d915b01594a08aa4ac0cca))
|
||||||
|
* warning `[@catppuccin](https://github.com/catppuccin)_flavour` ([#296](https://github.com/catppuccin/tmux/issues/296)) ([a71f3c0](https://github.com/catppuccin/tmux/commit/a71f3c039bed8a7c49fc390a50befec5db2c4af9))
|
||||||
|
* warning `[@catppuccin](https://github.com/catppuccin)_window_status` ([9ee1695](https://github.com/catppuccin/tmux/commit/9ee1695d757c16e2f236858b8d3f88be9fb666fa))
|
||||||
|
|
||||||
|
|
||||||
|
### Performance Improvements
|
||||||
|
|
||||||
|
* batch tmux show ([#288](https://github.com/catppuccin/tmux/issues/288)) ([99013fa](https://github.com/catppuccin/tmux/commit/99013fafe6a98416079b3b84751f2eb540e17c79)), closes [#281](https://github.com/catppuccin/tmux/issues/281)
|
||||||
|
* batch tmux show-options ([3c6f6f2](https://github.com/catppuccin/tmux/commit/3c6f6f282b3bb17554dc2b4b80760b6507acfd65))
|
||||||
|
|
||||||
|
## [0.1.0](https://github.com/catppuccin/tmux/compare/v0.0.1...v0.1.0) (2024-08-04)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* releases ([#260](https://github.com/catppuccin/tmux/issues/260)) ([5fbacdf](https://github.com/catppuccin/tmux/commit/5fbacdf3559cf4496eef02aead087b3bb715e570))
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
To understand our mindset in developing this plugin and how to ensure your
|
||||||
|
changes align with that mindset, check out the "[Design Philosophy](./docs/explanation/design.md)."
|
||||||
|
|
||||||
|
## Commit messages
|
||||||
|
|
||||||
|
This repository uses [Conventional Commits](https://conventionalcommits.org).
|
||||||
|
Commit headers should be lowercase. Most commits should include a body that briefly
|
||||||
|
describes the motivation and content of the commit.
|
||||||
|
|
||||||
|
### Commit types
|
||||||
|
|
||||||
|
- `fix`: A bug fix that doesn't modify the public API
|
||||||
|
- `feat`: A code change that adds functionality
|
||||||
|
- `change`: A modification to the public API
|
||||||
|
- `deprecate`: Something in the public API has been deprecated
|
||||||
|
- `remove`: A part of the public API has been removed
|
||||||
|
- `refactor`: A code change that doesn't change behavior
|
||||||
|
- `style`: A style fix or change
|
||||||
|
- `docs`: Any change to documentation
|
||||||
|
- `revert`: A revert commit. The message should describe the reasoning and the
|
||||||
|
commit should include the `Refs:` footer with the short hashes of the commits
|
||||||
|
being reverted.
|
||||||
|
- `chore`: catch-all type
|
||||||
|
|
||||||
|
### Breaking changes
|
||||||
|
|
||||||
|
All breaking changes should be documented in the commit footer in the format
|
||||||
|
described by Conventional Commits. Use the `<type>!` syntax in order to distinguish
|
||||||
|
breaking commits in the log, but include the footer to provide a better description
|
||||||
|
for the changelog generator.
|
||||||
|
|
||||||
|
```text
|
||||||
|
feat(bar)!: foo the bars
|
||||||
|
|
||||||
|
BREAKING CHANGE: bars are now foo'ed
|
||||||
|
```
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Catppuccin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<h3 align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
|
||||||
|
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
|
||||||
|
Catppuccin for <a href="https://github.com/tmux/tmux">Tmux</a>
|
||||||
|
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/catppuccin/tmux/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/tmux?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
|
||||||
|
<a href="https://github.com/catppuccin/tmux/issues"><img src="https://img.shields.io/github/issues/catppuccin/tmux?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
|
||||||
|
<a href="https://github.com/catppuccin/tmux/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/tmux?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="./assets/preview.webp"/>
|
||||||
|
</p>
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>🌻 Latte</summary>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>🪴 Frappé</summary>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>🌺 Macchiato</summary>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</details>
|
||||||
|
<details>
|
||||||
|
<summary>🌿 Mocha</summary>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
In order to have the icons displayed correctly please use/update your favorite
|
||||||
|
[nerd font](https://www.nerdfonts.com/font-downloads).
|
||||||
|
If you do not have a patched font installed, you can override or remove any
|
||||||
|
icon. Check the [documentation](./docs/reference/configuration.md) on the
|
||||||
|
options available.
|
||||||
|
|
||||||
|
### Manual (Recommended)
|
||||||
|
|
||||||
|
This method is recommended as TPM has some issues with name conflicts.
|
||||||
|
|
||||||
|
<!-- x-release-please-start-version -->
|
||||||
|
|
||||||
|
1. Clone this repository to your desired location (e.g.
|
||||||
|
`~/.config/tmux/plugins/catppuccin`).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/.config/tmux/plugins/catppuccin
|
||||||
|
git clone -b v2.3.0 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Add the following line to your `tmux.conf` file:
|
||||||
|
`run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux`.
|
||||||
|
1. Reload Tmux by either restarting or reloading with `tmux source ~/.tmux.conf`.
|
||||||
|
<!-- x-release-please-end -->
|
||||||
|
|
||||||
|
Check out what to do next in the "[Getting Started Guide](./docs/tutorials/01-getting-started.md)".
|
||||||
|
|
||||||
|
### TPM
|
||||||
|
|
||||||
|
<!-- x-release-please-start-version -->
|
||||||
|
|
||||||
|
1. Install [TPM](https://github.com/tmux-plugins/tpm)
|
||||||
|
1. Add the Catppuccin plugin:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @plugin 'catppuccin/tmux#v2.3.0' # See https://github.com/catppuccin/tmux/tags for additional tags
|
||||||
|
# ...alongside
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
1. (Optional) Set your preferred flavor, it defaults to `"mocha"`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @catppuccin_flavor 'mocha' # latte, frappe, macchiato or mocha
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- x-release-please-end -->
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> You may have to run `~/.config/tmux/plugins/tpm/bin/clean_plugins`
|
||||||
|
> if upgrading from an earlier version
|
||||||
|
> (especially from `v0.3.0`).
|
||||||
|
|
||||||
|
### For TMUX versions prior to 3.2
|
||||||
|
|
||||||
|
This plugin uses features that were only introduced into tmux in version 3.2.
|
||||||
|
If you are using a version earlier than this, you can still have lovely
|
||||||
|
catppuccin colors, the installation method just looks a little different.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# In your ~/.tmux.conf
|
||||||
|
|
||||||
|
# Add the colors from the pallete. Check the themes/ directory for all options.
|
||||||
|
|
||||||
|
# Some basic mocha colors.
|
||||||
|
set -g @ctp_bg "#24273a"
|
||||||
|
set -g @ctp_surface_1 "#494d64"
|
||||||
|
set -g @ctp_fg "#cad3f5"
|
||||||
|
set -g @ctp_mauve "#c6a0f6"
|
||||||
|
set -g @ctp_crust "#181926"
|
||||||
|
|
||||||
|
# status line
|
||||||
|
set -gF status-style "bg=#{@ctp_bg},fg=#{@ctp_fg}"
|
||||||
|
|
||||||
|
# windows
|
||||||
|
set -gF window-status-format "#[bg=#{@ctp_surface_1},fg=#{@ctp_fg}] ##I ##T "
|
||||||
|
set -gF window-status-current-format "#[bg=#{@ctp_mauve},fg=#{@ctp_crust}] ##I ##T "
|
||||||
|
```
|
||||||
|
|
||||||
|
### For TMUX versions prior to 3.6
|
||||||
|
|
||||||
|
This plugin can be used in conjunction with the support for tmux to
|
||||||
|
automatically report dark or light themes using hooks. You can leverage these
|
||||||
|
hooks in your tmux configuration file like so:
|
||||||
|
|
||||||
|
```conf
|
||||||
|
set-hook -g client-dark-theme {
|
||||||
|
set -g @catppuccin_flavor "frappe"
|
||||||
|
set -g @catppuccin_reset "true"
|
||||||
|
|
||||||
|
# NOTE: you may need to set more `@catppuccin_*` variables to fully reset
|
||||||
|
# everything.
|
||||||
|
|
||||||
|
run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
|
||||||
|
}
|
||||||
|
set-hook -g client-light-theme {
|
||||||
|
set -g @catppuccin_flavor "latte"
|
||||||
|
set -g @catppuccin_reset "true"
|
||||||
|
|
||||||
|
# NOTE: you may need to set more `@catppuccin_*` variables to fully reset
|
||||||
|
# everything.
|
||||||
|
|
||||||
|
run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The above is only possible with versions of tmux 3.6+. To replicate this
|
||||||
|
functionality with versions prior to 3.6, you can will need to set variables and
|
||||||
|
run the `cappuccin.tmux` file and trigger it yourself. If you'd like some
|
||||||
|
inspiration for how to do this, read through [the Bash code found in this Nix
|
||||||
|
function here][reload-example] which reloads Catppuccin on-demand without
|
||||||
|
relying on tmux hooks.
|
||||||
|
|
||||||
|
[reload-example]: https://git.sr.ht/~rogeruiz/.files.nix/tree/1dedf4da47f995ec41e07d37b65008ad0f464717/item/module/tools/terminal/tmux/catppuccin/bin/default.nix "An example from a catppuccin/tmux maintainer on how to manually reload the Catppuccin configuration on macOS."
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> As mentioned in the comments in the `conf` snippet above, you may find that
|
||||||
|
> you'll need to add to the list of `@catppuccin_*` variables. Test your
|
||||||
|
> configuration by switching themes and noting what of the Tmux session isn't
|
||||||
|
> getting reset to an expected color.
|
||||||
|
|
||||||
|
### Upgrading from v0.3
|
||||||
|
|
||||||
|
Breaking changes have been introduced since 0.3, to understand how to migrate
|
||||||
|
your configuration, see pinned issue [#487](https://github.com/catppuccin/tmux/issues/487).
|
||||||
|
|
||||||
|
## Recommended Default Configuration
|
||||||
|
|
||||||
|
This configuration shows some customisation options, that can be further
|
||||||
|
extended as desired.
|
||||||
|
This is what is used for the previews above.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
```bash
|
||||||
|
# ~/.tmux.conf
|
||||||
|
|
||||||
|
# Options to make tmux more pleasant
|
||||||
|
set -g mouse on
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
|
|
||||||
|
# Configure the catppuccin plugin
|
||||||
|
set -g @catppuccin_flavor "mocha"
|
||||||
|
set -g @catppuccin_window_status_style "rounded"
|
||||||
|
|
||||||
|
# Load catppuccin
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
# For TPM, instead use `run ~/.tmux/plugins/tmux/catppuccin.tmux`
|
||||||
|
|
||||||
|
# Make the status line pretty and add some modules
|
||||||
|
set -g status-right-length 100
|
||||||
|
set -g status-left-length 100
|
||||||
|
set -g status-left ""
|
||||||
|
set -g status-right "#{E:@catppuccin_status_application}"
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_cpu}"
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_ram}"
|
||||||
|
set -ag status-right "#{E:@catppuccin_status_session}"
|
||||||
|
set -ag status-right "#{E:@catppuccin_status_uptime}"
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_battery}"
|
||||||
|
|
||||||
|
run ~/.config/tmux/plugins/tmux-plugins/tmux-cpu/cpu.tmux
|
||||||
|
run ~/.config/tmux/plugins/tmux-plugins/tmux-battery/battery.tmux
|
||||||
|
# Or, if using TPM, just run TPM
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
### Guides
|
||||||
|
|
||||||
|
- [Getting Started](./docs/tutorials/01-getting-started.md)
|
||||||
|
- [Custom Status Line Segments](./docs/tutorials/02-custom-status.md)
|
||||||
|
- [Troubleshooting](./docs/guides/troubleshooting.md)
|
||||||
|
|
||||||
|
### Reference
|
||||||
|
|
||||||
|
- [Status Line](./docs/reference/status-line.md)
|
||||||
|
- [Configuration Options Reference](./docs/reference/configuration.md)
|
||||||
|
- [Tmux Configuration Showcase](https://github.com/catppuccin/tmux/discussions/317)
|
||||||
|
|
||||||
|
## 💝 Thanks to
|
||||||
|
|
||||||
|
- [Pocco81](https://github.com/Pocco81)
|
||||||
|
- [vinnyA3](https://github.com/vinnyA3)
|
||||||
|
- [rogeruiz](https://github.com/rogeruiz)
|
||||||
|
- [kales](https://github.com/kjnsn)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- markdownlint-disable -->
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /></p>
|
||||||
|
<p align="center">Copyright © 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
|
||||||
|
<p align="center"><a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a></p>
|
||||||
|
<!-- markdownlint-enable -->
|
||||||
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 48 KiB |
@@ -0,0 +1,13 @@
|
|||||||
|
set -g @catppuccin_flavor 'frappe'
|
||||||
|
|
||||||
|
run "#{d:current_file}/../../catppuccin.tmux"
|
||||||
|
|
||||||
|
# Make the status line more pleasant.
|
||||||
|
set -g status-left ""
|
||||||
|
set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
|
||||||
|
|
||||||
|
# Ensure that everything on the right side of the status line
|
||||||
|
# is included.
|
||||||
|
set -g status-right-length 100
|
||||||
|
|
||||||
|
set -g default-shell '/opt/homebrew/bin/fish'
|
||||||
|
After Width: | Height: | Size: 76 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
Output assets/demos/basic.gif
|
||||||
|
|
||||||
|
Require echo
|
||||||
|
Require tmux
|
||||||
|
|
||||||
|
Set Shell "bash"
|
||||||
|
Set FontSize 30
|
||||||
|
Set FontFamily "SFMono Nerd Font"
|
||||||
|
Set Width 1200
|
||||||
|
Set Height 600
|
||||||
|
|
||||||
|
Type "tmux -f assets/demos/basic.conf" Sleep 500ms Enter
|
||||||
|
|
||||||
|
Sleep 3s
|
||||||
|
|
||||||
|
Ctrl+b
|
||||||
|
Type "c"
|
||||||
|
|
||||||
|
Sleep 5s
|
||||||
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,11 @@
|
|||||||
|
set -l flavors latte frappe macchiato mocha
|
||||||
|
|
||||||
|
for flavor in $flavors
|
||||||
|
magick $flavor.webp -crop '1320x50+0+464' +repage $flavor-crop.webp
|
||||||
|
end
|
||||||
|
|
||||||
|
catwalk {latte,frappe,macchiato,mocha}-crop.webp --output preview.webp --layout column
|
||||||
|
|
||||||
|
for flavor in $flavors
|
||||||
|
rm $flavor-crop.webp
|
||||||
|
end
|
||||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Set path of script
|
||||||
|
PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
tmux source "${PLUGIN_DIR}/catppuccin_options_tmux.conf"
|
||||||
|
tmux source "${PLUGIN_DIR}/catppuccin_tmux.conf"
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
# All options and their defaults.
|
||||||
|
#
|
||||||
|
# This is executed separately to the main configuration
|
||||||
|
# so that options are set before parsing the rest of the config.
|
||||||
|
|
||||||
|
# Reset everything if requested.
|
||||||
|
#
|
||||||
|
# Useful for auto switching between themes:
|
||||||
|
#
|
||||||
|
# set-hook -g client-dark-theme {
|
||||||
|
# set -g @catppuccin_flavor "frappe"
|
||||||
|
# set -g @catppuccin_reset "true"
|
||||||
|
# run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
|
||||||
|
# }
|
||||||
|
# set-hook -g client-light-theme {
|
||||||
|
# set -g @catppuccin_flavor "latte"
|
||||||
|
# set -g @catppuccin_reset "true"
|
||||||
|
# run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
|
||||||
|
# }
|
||||||
|
%if "#{==:#{@catppuccin_reset},true}"
|
||||||
|
set -Ugq @thm_bg
|
||||||
|
set -Ugq @thm_fg
|
||||||
|
set -Ugq @thm_rosewater
|
||||||
|
set -Ugq @thm_flamingo
|
||||||
|
set -Ugq @thm_rosewater
|
||||||
|
set -Ugq @thm_pink
|
||||||
|
set -Ugq @thm_mauve
|
||||||
|
set -Ugq @thm_red
|
||||||
|
set -Ugq @thm_maroon
|
||||||
|
set -Ugq @thm_peach
|
||||||
|
set -Ugq @thm_yellow
|
||||||
|
set -Ugq @thm_green
|
||||||
|
set -Ugq @thm_teal
|
||||||
|
set -Ugq @thm_sky
|
||||||
|
set -Ugq @thm_sapphire
|
||||||
|
set -Ugq @thm_blue
|
||||||
|
set -Ugq @thm_lavender
|
||||||
|
set -Ugq @thm_subtext_1
|
||||||
|
set -Ugq @thm_subtext_0
|
||||||
|
set -Ugq @thm_overlay_2
|
||||||
|
set -Ugq @thm_overlay_1
|
||||||
|
set -Ugq @thm_overlay_0
|
||||||
|
set -Ugq @thm_surface_2
|
||||||
|
set -Ugq @thm_surface_1
|
||||||
|
set -Ugq @thm_surface_0
|
||||||
|
set -Ugq @thm_mantle
|
||||||
|
set -Ugq @thm_crust
|
||||||
|
set -Ugq @catppuccin_window_status_style
|
||||||
|
set -Ugq @catppuccin_window_text_color
|
||||||
|
set -Ugq @catppuccin_window_number_color
|
||||||
|
set -Ugq @catppuccin_window_text
|
||||||
|
set -Ugq @catppuccin_window_number
|
||||||
|
set -Ugq @catppuccin_window_current_text_color
|
||||||
|
set -Ugq @catppuccin_window_current_number_color
|
||||||
|
set -Ugq @catppuccin_window_current_text
|
||||||
|
set -Ugq @catppuccin_window_current_number
|
||||||
|
set -Ugq @catppuccin_window_number_position
|
||||||
|
set -Ugq @catppuccin_window_flags
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_last
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_current
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_zoom
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_mark
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_silent
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_activity
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_bell
|
||||||
|
set -Ugq @catppuccin_window_flags_icon_format
|
||||||
|
set -Ugq @catppuccin_status_left_separator
|
||||||
|
set -Ugq @catppuccin_status_middle_separator
|
||||||
|
set -Ugq @catppuccin_status_right_separator
|
||||||
|
set -Ugq @catppuccin_status_connect_separator
|
||||||
|
set -Ugq @catppuccin_status_module_text_bg
|
||||||
|
set -Ugq @catppuccin_window_current_left_separator
|
||||||
|
set -Ugq @catppuccin_window_current_middle_separator
|
||||||
|
set -Ugq @catppuccin_window_current_right_separator
|
||||||
|
|
||||||
|
# Finally reset the reset option.
|
||||||
|
set -Ug @catppuccin_reset
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# DO NOT USE -o IN YOUR OWN CONFIGURATION
|
||||||
|
set -ogq @catppuccin_flavor "mocha"
|
||||||
|
|
||||||
|
set -ogq @catppuccin_status_background "default"
|
||||||
|
|
||||||
|
# Menu styling options
|
||||||
|
set -ogq @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
|
||||||
|
|
||||||
|
# Pane styling options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
|
||||||
|
set -ogq @catppuccin_pane_status_enabled "no" # set to "yes" to enable
|
||||||
|
set -ogq @catppuccin_pane_border_status "off" # set to "yes" to enable
|
||||||
|
set -ogq @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
|
||||||
|
set -ogq @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
|
||||||
|
set -ogq @catppuccin_pane_left_separator "█"
|
||||||
|
set -ogq @catppuccin_pane_middle_separator "█"
|
||||||
|
set -ogq @catppuccin_pane_right_separator "█"
|
||||||
|
set -ogq @catppuccin_pane_color "#{@thm_green}"
|
||||||
|
set -ogq @catppuccin_pane_background_color "#{@thm_surface_0}"
|
||||||
|
set -ogq @catppuccin_pane_default_text "##{b:pane_current_path}"
|
||||||
|
set -ogq @catppuccin_pane_default_fill "number"
|
||||||
|
set -ogq @catppuccin_pane_number_position "left" # right, left
|
||||||
|
|
||||||
|
# NOTE: Changes to make the option names more intuitive and more closely follow
|
||||||
|
# the tmux naming conventions.
|
||||||
|
# @catppuccin_window_current_background -> @catppuccin_window_current_number_color
|
||||||
|
# @catppuccin_window_current_color -> @catppuccin_window_current_text_color
|
||||||
|
# @catppuccin_window_default_background -> @catppuccin_window_number_color
|
||||||
|
# @catppuccin_window_default_color -> @catppuccin_window_text_color
|
||||||
|
# @catppuccin_window_status -> @catppuccin_window_flags
|
||||||
|
#
|
||||||
|
# Removed:
|
||||||
|
# @catppuccin_window_default_fill, @catppuccin_window_current_fill
|
||||||
|
# Just set the number and text colors.
|
||||||
|
|
||||||
|
# Window options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
|
||||||
|
set -ogq @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
|
||||||
|
set -ogq @catppuccin_window_text_color "#{@thm_surface_0}"
|
||||||
|
set -ogq @catppuccin_window_number_color "#{@thm_overlay_2}"
|
||||||
|
set -ogq @catppuccin_window_text " #T"
|
||||||
|
set -ogq @catppuccin_window_number "#I"
|
||||||
|
set -ogq @catppuccin_window_current_text_color "#{@thm_surface_1}"
|
||||||
|
set -ogq @catppuccin_window_current_number_color "#{@thm_mauve}"
|
||||||
|
set -ogq @catppuccin_window_current_text " #T"
|
||||||
|
set -ogq @catppuccin_window_current_number "#I"
|
||||||
|
set -ogq @catppuccin_window_number_position "left"
|
||||||
|
|
||||||
|
# Window flags
|
||||||
|
set -ogq @catppuccin_window_flags "none"
|
||||||
|
set -ogq @catppuccin_window_flags_icon_last " " # -
|
||||||
|
set -ogq @catppuccin_window_flags_icon_current " " # *
|
||||||
|
set -ogq @catppuccin_window_flags_icon_zoom " " # Z
|
||||||
|
set -ogq @catppuccin_window_flags_icon_mark " " # M
|
||||||
|
set -ogq @catppuccin_window_flags_icon_silent " " # ~
|
||||||
|
set -ogq @catppuccin_window_flags_icon_activity " " # #
|
||||||
|
set -ogq @catppuccin_window_flags_icon_bell " " # !
|
||||||
|
# Matches icon order when using `#F` (`#!~[*-]MZ`)
|
||||||
|
set -ogq @catppuccin_window_flags_icon_format "##{?window_activity_flag,#{E:@catppuccin_window_flags_icon_activity},}##{?window_bell_flag,#{E:@catppuccin_window_flags_icon_bell},}##{?window_silence_flag,#{E:@catppuccin_window_flags_icon_silent},}##{?window_active,#{E:@catppuccin_window_flags_icon_current},}##{?window_last_flag,#{E:@catppuccin_window_flags_icon_last},}##{?window_marked_flag,#{E:@catppuccin_window_flags_icon_mark},}##{?window_zoomed_flag,#{E:@catppuccin_window_flags_icon_zoom},} "
|
||||||
|
|
||||||
|
# Status line options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
|
||||||
|
set -ogq @catppuccin_status_left_separator ""
|
||||||
|
set -ogq @catppuccin_status_middle_separator ""
|
||||||
|
set -ogq @catppuccin_status_right_separator " "
|
||||||
|
set -ogq @catppuccin_status_connect_separator "yes" # yes, no
|
||||||
|
|
||||||
|
# Maintain backwards compatibility. Use @catppuccin_status_module_bg_color if it is set.
|
||||||
|
set -ogq @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
|
||||||
@@ -0,0 +1,225 @@
|
|||||||
|
source -F "#{d:current_file}/themes/catppuccin_#{@catppuccin_flavor}_tmux.conf"
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_status_background},default}"
|
||||||
|
set -gF @_ctp_status_bg "#{@thm_mantle}"
|
||||||
|
set -gF status-style "bg=#{@_ctp_status_bg},fg=#{@thm_fg}"
|
||||||
|
|
||||||
|
%hidden CTP_MESSAGE_BACKGROUND="#{@thm_overlay_0}"
|
||||||
|
%elif "#{==:#{@catppuccin_status_background},none}"
|
||||||
|
set -g status-style "default"
|
||||||
|
set -g @_ctp_status_bg "none"
|
||||||
|
|
||||||
|
%hidden CTP_MESSAGE_BACKGROUND="default"
|
||||||
|
%else
|
||||||
|
# Treat @catppuccin_status_background as a format string.
|
||||||
|
set -gF status-style "bg=#{E:@catppuccin_status_background},fg=#{@thm_fg}"
|
||||||
|
set -gF @_ctp_status_bg "#{E:@catppuccin_status_background}"
|
||||||
|
|
||||||
|
%hidden CTP_MESSAGE_BACKGROUND="#{E:@catppuccin_status_background}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
source -F "#{d:current_file}/status/application.conf"
|
||||||
|
source -F "#{d:current_file}/status/battery.conf"
|
||||||
|
source -F "#{d:current_file}/status/clima.conf"
|
||||||
|
source -F "#{d:current_file}/status/cpu.conf"
|
||||||
|
source -F "#{d:current_file}/status/date_time.conf"
|
||||||
|
source -F "#{d:current_file}/status/directory.conf"
|
||||||
|
source -F "#{d:current_file}/status/gitmux.conf"
|
||||||
|
source -F "#{d:current_file}/status/host.conf"
|
||||||
|
source -F "#{d:current_file}/status/kube.conf"
|
||||||
|
source -F "#{d:current_file}/status/load.conf"
|
||||||
|
source -F "#{d:current_file}/status/pomodoro_plus.conf"
|
||||||
|
source -F "#{d:current_file}/status/ram.conf"
|
||||||
|
source -F "#{d:current_file}/status/session.conf"
|
||||||
|
source -F "#{d:current_file}/status/uptime.conf"
|
||||||
|
source -F "#{d:current_file}/status/user.conf"
|
||||||
|
source -F "#{d:current_file}/status/weather.conf"
|
||||||
|
|
||||||
|
# messages
|
||||||
|
set -gF message-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
|
||||||
|
set -gF message-command-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
|
||||||
|
|
||||||
|
# menu
|
||||||
|
%if "#{>=:#{version},3.4}"
|
||||||
|
set -gF menu-selected-style "#{E:@catppuccin_menu_selected_style}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# panes
|
||||||
|
set -wgF pane-active-border-style "#{E:@catppuccin_pane_active_border_style}"
|
||||||
|
set -wgF pane-border-style "#{E:@catppuccin_pane_border_style}"
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_pane_status_enabled},yes}"
|
||||||
|
# "internal" variables are kept as @_ctp_p_.*
|
||||||
|
# and then unset at the end.
|
||||||
|
set -gq @_ctp_p_left "" # the content on the left, usually a separator
|
||||||
|
set -gq @_ctp_p_middle ""
|
||||||
|
set -gq @_ctp_p_right ""
|
||||||
|
set -gq @_ctp_p_number ""
|
||||||
|
set -gq @_ctp_p_text ""
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_pane_default_fill},none}"
|
||||||
|
set -g @_ctp_p_left \
|
||||||
|
"#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_left_separator}"
|
||||||
|
set -g @_ctp_p_middle \
|
||||||
|
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{@catppuccin_pane_middle_separator}"
|
||||||
|
set -g @_ctp_p_right \
|
||||||
|
"#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_right_separator}"
|
||||||
|
|
||||||
|
set -g @_ctp_p_number \
|
||||||
|
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]##{pane_index}"
|
||||||
|
set -g @_ctp_p_text \
|
||||||
|
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{E:@catppuccin_pane_default_text}"
|
||||||
|
|
||||||
|
%elif "#{==:#{@catppuccin_pane_default_fill},all}"
|
||||||
|
|
||||||
|
set -g @_ctp_p_left \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
|
||||||
|
set -g @_ctp_p_middle \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
|
||||||
|
set -g @_ctp_p_right \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
|
||||||
|
|
||||||
|
set -g @_ctp_p_number \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
|
||||||
|
set -g @_ctp_p_text \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]#{E:@catppuccin_pane_default_text}"
|
||||||
|
|
||||||
|
%elif "#{==:#{@catppuccin_pane_default_fill},number}"
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_pane_number_position},left}"
|
||||||
|
set -g @_ctp_p_left \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
|
||||||
|
set -g @_ctp_p_right \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_right_separator}"
|
||||||
|
%else
|
||||||
|
set -g @_ctp_p_left \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_left_separator}"
|
||||||
|
set -g @_ctp_p_right \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
set -g @_ctp_p_middle \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
|
||||||
|
|
||||||
|
set -g @_ctp_p_number \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
|
||||||
|
set -g @_ctp_p_text \
|
||||||
|
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{E:@catppuccin_pane_default_text}"
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_pane_number_position},left}"
|
||||||
|
set -wgF pane-border-format \
|
||||||
|
"#{E:@_ctp_p_left}#{E:@_ctp_p_number}#{E:@_ctp_p_middle} #{E:@_ctp_p_text}#{E:@_ctp_p_right}"
|
||||||
|
%else
|
||||||
|
set -wgF pane-border-format \
|
||||||
|
"#{E:@_ctp_p_left}#{E:@_ctp_p_text} #{E:@_ctp_p_middle}#{E:@_ctp_p_number}#{E:@_ctp_p_right}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
set -ug @_ctp_p_left
|
||||||
|
set -ug @_ctp_p_middle
|
||||||
|
set -ug @_ctp_p_right
|
||||||
|
set -ug @_ctp_p_number
|
||||||
|
set -ug @_ctp_p_text
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# popups
|
||||||
|
%if "#{>=:#{version},3.4}"
|
||||||
|
set -gF popup-style "bg=#{@thm_bg},fg=#{@thm_fg}"
|
||||||
|
set -gF popup-border-style "fg=#{@thm_surface_1}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_window_status_style},basic}"
|
||||||
|
|
||||||
|
set -gq @catppuccin_window_left_separator " "
|
||||||
|
set -gq @catppuccin_window_middle_separator " "
|
||||||
|
set -gq @catppuccin_window_right_separator " "
|
||||||
|
|
||||||
|
%elif "#{==:#{@catppuccin_window_status_style},rounded}"
|
||||||
|
|
||||||
|
set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
|
||||||
|
set -gq @catppuccin_window_middle_separator " "
|
||||||
|
set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
|
||||||
|
|
||||||
|
%elif "#{==:#{@catppuccin_window_status_style},slanted}"
|
||||||
|
|
||||||
|
set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_window_number_position},left}"
|
||||||
|
set -gq @catppuccin_window_middle_separator "#[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
|
||||||
|
set -gq @catppuccin_window_current_middle_separator \
|
||||||
|
"#[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
|
||||||
|
%else
|
||||||
|
set -gq @catppuccin_window_middle_separator " #[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
|
||||||
|
set -gq @catppuccin_window_current_middle_separator \
|
||||||
|
" #[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]█#[none]"
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# DO NOT USE -o IN YOUR OWN CONFIGURATION
|
||||||
|
set -ogqF @catppuccin_window_current_left_separator "#{@catppuccin_window_left_separator}"
|
||||||
|
set -ogqF @catppuccin_window_current_middle_separator "#{@catppuccin_window_middle_separator}"
|
||||||
|
set -ogqF @catppuccin_window_current_right_separator "#{@catppuccin_window_right_separator}"
|
||||||
|
|
||||||
|
# window status
|
||||||
|
%if "#{!=:#{@catppuccin_window_status_style},none}"
|
||||||
|
set -gF window-status-activity-style "bg=#{@thm_lavender},fg=#{@thm_crust}"
|
||||||
|
set -gF window-status-bell-style "bg=#{@thm_yellow},fg=#{@thm_crust}"
|
||||||
|
|
||||||
|
%if "#{==:#{@catppuccin_window_flags},icon}"
|
||||||
|
set -gqF @_ctp_w_flags "#{E:@catppuccin_window_flags_icon_format}"
|
||||||
|
%elif "#{==:#{@catppuccin_window_flags},text}"
|
||||||
|
set -gq @_ctp_w_flags "#F"
|
||||||
|
%else
|
||||||
|
set -gq @_ctp_w_flags ""
|
||||||
|
%endif
|
||||||
|
|
||||||
|
set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_number_color}]"
|
||||||
|
set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_text_color}]"
|
||||||
|
%if "#{==:#{@catppuccin_window_number_position},left}"
|
||||||
|
set -gF window-status-format \
|
||||||
|
"#{E:@_ctp_w_number_style}#{E:@catppuccin_window_left_separator}#{@catppuccin_window_number}"
|
||||||
|
set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
|
||||||
|
set -agF window-status-format \
|
||||||
|
"#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}#{E:@catppuccin_window_right_separator}"
|
||||||
|
%else
|
||||||
|
set -gF window-status-format \
|
||||||
|
"#{E:@_ctp_w_text_style}#{E:@catppuccin_window_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}"
|
||||||
|
set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
|
||||||
|
set -agF window-status-format \
|
||||||
|
"#{E:@_ctp_w_number_style} #{@catppuccin_window_number}#{E:@catppuccin_window_right_separator}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# =======================================
|
||||||
|
# And do the same for the current window.
|
||||||
|
# =======================================
|
||||||
|
|
||||||
|
set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_current_number_color}]"
|
||||||
|
set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_current_text_color}]"
|
||||||
|
%if "#{==:#{@catppuccin_window_number_position},left}"
|
||||||
|
set -gF window-status-current-format \
|
||||||
|
"#{E:@_ctp_w_number_style}#{E:@catppuccin_window_current_left_separator}#{@catppuccin_window_current_number}"
|
||||||
|
set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
|
||||||
|
set -agF window-status-current-format \
|
||||||
|
"#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}#{E:@catppuccin_window_current_right_separator}"
|
||||||
|
%else
|
||||||
|
set -gF window-status-current-format \
|
||||||
|
"#{E:@_ctp_w_text_style}#{E:@catppuccin_window_current_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}"
|
||||||
|
set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
|
||||||
|
set -agF window-status-current-format \
|
||||||
|
"#{E:@_ctp_w_number_style} #{@catppuccin_window_current_number}#{E:@catppuccin_window_current_right_separator}"
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
|
# Cleanup (unset) all of the internal variables.
|
||||||
|
set -ug @_ctp_w_number_style
|
||||||
|
set -ug @_ctp_w_text_style
|
||||||
|
set -ug @_ctp_w_flags
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Mode style. This is used for copy mode highlighting to style the current selection.
|
||||||
|
set -gF mode-style "bg=#{@thm_surface_0},bold"
|
||||||
|
set -gF clock-mode-colour "#{@thm_blue}"
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
## Design Philosophy
|
||||||
|
|
||||||
|
First and foremost, this is a color scheme. Making colors work
|
||||||
|
well takes precedence over other kinds of functionality.
|
||||||
|
|
||||||
|
### History
|
||||||
|
|
||||||
|
This plugin kept on growing essentially because no one was there to push back on
|
||||||
|
changes that went against, for example, parts of the UNIX philosophy. This lead to
|
||||||
|
a state where there were almost an infinite number of configuration options,
|
||||||
|
and combining them in unique ways would almost certainly break something.
|
||||||
|
Maintaining the options for everyone's setup was impossible, and fixing
|
||||||
|
one bug would cause several others to appear. Eventually the addition
|
||||||
|
of more and more things that didn't relate to colors, such as status line modules,
|
||||||
|
took time away from getting the basics right.
|
||||||
|
|
||||||
|
Moving forward, we will be trying to align with the philosophies listed below.
|
||||||
|
This is in contrast to what the plugin has historically offered in terms of functionality.
|
||||||
|
|
||||||
|
### UNIX Philosphy
|
||||||
|
|
||||||
|
1. Write programs that do one thing and do it well.
|
||||||
|
- Do colors, and do colors well. Other things like displaying the weather
|
||||||
|
are not the responsibility of this plugin.
|
||||||
|
1. Write programs to work together.
|
||||||
|
- The full palette is exposed as user options, allowing
|
||||||
|
easy integration with any other kind of tmux configuration.
|
||||||
|
1. Write programs to handle text streams, because that is a universal interface.
|
||||||
|
- TMUX is a text based program. Each of the palette options are strings
|
||||||
|
in user options that can be piped into other programs and options.
|
||||||
|
|
||||||
|
### Configurability is the root of all evil
|
||||||
|
|
||||||
|
Adopted from "[Fish Shell's design philophy](https://fishshell.com/docs/current/design.html)".
|
||||||
|
|
||||||
|
Every configuration option in a program is a place where the program is too
|
||||||
|
stupid to figure out for itself what the user really wants, and should be
|
||||||
|
considered a failure of both the program and the programmer who implemented it.
|
||||||
|
|
||||||
|
Rationale: Different configuration options are a nightmare to maintain, since
|
||||||
|
the number of potential bugs caused by specific configuration combinations
|
||||||
|
quickly becomes an issue. Configuration options often imply assumptions about
|
||||||
|
the code which change when reimplementing the code, causing issues with
|
||||||
|
backwards compatibility. But mostly, configuration options should be avoided
|
||||||
|
since they simply should not exist, as the program should be smart enough to do
|
||||||
|
what is best, or at least a good enough approximation of it.
|
||||||
|
|
||||||
|
### The law of orthogonality
|
||||||
|
|
||||||
|
The set of options that do exist should have a small set of orthogonal features.
|
||||||
|
Any situation where two options are related but not identical, one of them
|
||||||
|
should be removed, and the other should be made powerful and general enough to
|
||||||
|
handle all common use cases of either feature.
|
||||||
|
|
||||||
|
Rationale: Related features make the configuration options larger, which makes
|
||||||
|
it harder to use. It also increases the size of the source code, making the
|
||||||
|
program harder to maintain and update.
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# Frequently Asked Questions
|
||||||
|
|
||||||
|
## Window Names
|
||||||
|
|
||||||
|
By default, window names are the pane title, and the pane title is
|
||||||
|
set by the shell running in each pane. Oh My ZSH does this [automatically](https://github.com/ohmyzsh/ohmyzsh/wiki/Settings#automatic-title),
|
||||||
|
as does [fish](https://fishshell.com/docs/current/cmds/fish_title.html).
|
||||||
|
|
||||||
|
The format string used can be changed by setting the following options:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @catppuccin_window_text "#W"
|
||||||
|
set -g @catppuccin_window_current_text "#W"
|
||||||
|
```
|
||||||
|
|
||||||
|
The window title is `#W`, the current path is `#{b:pane_current_path}`. A huge
|
||||||
|
amount of customisation is possible, and is explained in depth
|
||||||
|
in the "[tmux man page](https://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS)".
|
||||||
|
|
||||||
|
## Symbols are not displaying
|
||||||
|
|
||||||
|
Make sure you have installed a [Nerd Font](https://www.nerdfonts.com/),
|
||||||
|
and that your terminal is set to use that font.
|
||||||
|
|
||||||
|
## My options are not being applied
|
||||||
|
|
||||||
|
Go through these steps:
|
||||||
|
|
||||||
|
1. Completely kill tmux and restart (`killall tmux`).
|
||||||
|
1. Ensure every `@catppuccin.*` option is being set _before_
|
||||||
|
the plugin is loaded. Loading occurs where you have `run` in your config file.
|
||||||
|
1. Double check for typos. There are two "c"s and two "p"s in "catppuccin".
|
||||||
|
1. Do not use `-o` to set options that begin with `@`. The `-o` flag means that
|
||||||
|
the option will not be set if it has already been set. You do not need this
|
||||||
|
in your config file.
|
||||||
|
1. Double check that any option that does _not_ start with `@` is set after the
|
||||||
|
plugin is loaded.
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
## Configuration Reference
|
||||||
|
|
||||||
|
<img src="../../assets/structure.svg" style="background: #eff1f5" />
|
||||||
|
|
||||||
|
This is a diagram of how the theme is split between its components.
|
||||||
|
|
||||||
|
### Top Level Options
|
||||||
|
|
||||||
|
| Option | Effect |
|
||||||
|
| -------------------- | ------------------------------------------------------------------------------ |
|
||||||
|
| `@catppuccin_flavor` | Sets the catppuccin flavor, one of "latte", "frappe", "macchiato", or "mocha". |
|
||||||
|
|
||||||
|
### Status Line
|
||||||
|
|
||||||
|
| Option | Effect |
|
||||||
|
| ----------------------------- | --------------------------------------------- |
|
||||||
|
| @catppuccin_status_background | Sets the background color of the status line. |
|
||||||
|
|
||||||
|
- `default` will use the color from the selected theme
|
||||||
|
- `none` will make the status bar transparent
|
||||||
|
- use hex color codes for other colors or a theme color (`#{@thm_<color>}`)
|
||||||
|
|
||||||
|
### Window
|
||||||
|
|
||||||
|
The plugin comes with three window styles built in, these can be customized by
|
||||||
|
setting the `@catppuccin_window_status_style` option. The default is `basic`.
|
||||||
|
|
||||||
|
| Option | Effect | Preview |
|
||||||
|
| --------- | ------------------------------------------------------------------------ | ------------------------------------------------------ |
|
||||||
|
| `basic` | Simple styling with blocks. |  |
|
||||||
|
| `rounded` | Each window is separated with rounded separators. |  |
|
||||||
|
| `slanted` | Each window is separated with slanted separators. |  |
|
||||||
|
| `custom` | Custom separators are used. This is required to override the separators! | |
|
||||||
|
| `none` | Styling of the window status is completely disabled. |  |
|
||||||
|
|
||||||
|
If you want to change the active color to something else (the default is mauve),
|
||||||
|
use the following. For example to use lavender:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @catppuccin_window_current_number_color "#{@thm_lavender}"
|
||||||
|
```
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
<summary>Customising the separators</summary>
|
||||||
|
|
||||||
|
Add the following,
|
||||||
|
setting whatever values you'd like for the separators:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @catppuccin_window_status_style "custom"
|
||||||
|
set -g @catppuccin_window_left_separator ""
|
||||||
|
set -g @catppuccin_window_middle_separator ""
|
||||||
|
set -g @catppuccin_window_right_separator ""
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Menu
|
||||||
|
|
||||||
|
**Set the menu selected style:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Use a value compatible with the standard tmux `menu-selected-style`
|
||||||
|
set -g @catppuccin_menu_selected_style "fg=#{@thm_surface_0},bg=#{@thm_yellow}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### All options and their defaults
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Menu styling options
|
||||||
|
set -g @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
|
||||||
|
|
||||||
|
# Pane styling options
|
||||||
|
set -g @catppuccin_pane_status_enabled "no" # set to "yes" to enable
|
||||||
|
set -g @catppuccin_pane_border_status "off" # set to "yes" to enable
|
||||||
|
set -g @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
|
||||||
|
set -g @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
|
||||||
|
set -g @catppuccin_pane_left_separator "█"
|
||||||
|
set -g @catppuccin_pane_middle_separator "█"
|
||||||
|
set -g @catppuccin_pane_right_separator "█"
|
||||||
|
set -g @catppuccin_pane_color "#{@thm_green}"
|
||||||
|
set -g @catppuccin_pane_background_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_pane_default_text "##{b:pane_current_path}"
|
||||||
|
set -g @catppuccin_pane_default_fill "number"
|
||||||
|
set -g @catppuccin_pane_number_position "left" # right, left
|
||||||
|
|
||||||
|
set -g @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
|
||||||
|
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
|
||||||
|
set -g @catppuccin_window_text " #T"
|
||||||
|
set -g @catppuccin_window_number "#I"
|
||||||
|
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
|
||||||
|
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
|
||||||
|
set -g @catppuccin_window_current_text " #T"
|
||||||
|
set -g @catppuccin_window_current_number "#I"
|
||||||
|
set -g @catppuccin_window_number_position "left"
|
||||||
|
set -g @catppuccin_window_flags "none" # none, icon, or text
|
||||||
|
set -g @catppuccin_window_flags_icon_last " " # -
|
||||||
|
set -g @catppuccin_window_flags_icon_current " " # *
|
||||||
|
set -g @catppuccin_window_flags_icon_zoom " " # Z
|
||||||
|
set -g @catppuccin_window_flags_icon_mark " " # M
|
||||||
|
set -g @catppuccin_window_flags_icon_silent " " # ~
|
||||||
|
set -g @catppuccin_window_flags_icon_activity " " # #
|
||||||
|
set -g @catppuccin_window_flags_icon_bell " " # !
|
||||||
|
# Matches icon order when using `#F` (`#!~[*-]MZ`)
|
||||||
|
set -g @catppuccin_window_flags_icon_format "##{?window_activity_flag,#{E:@catppuccin_window_flags_icon_activity},}##{?window_bell_flag,#{E:@catppuccin_window_flags_icon_bell},}##{?window_silence_flag,#{E:@catppuccin_window_flags_icon_silent},}##{?window_active,#{E:@catppuccin_window_flags_icon_current},}##{?window_last_flag,#{E:@catppuccin_window_flags_icon_last},}##{?window_marked_flag,#{E:@catppuccin_window_flags_icon_mark},}##{?window_zoomed_flag,#{E:@catppuccin_window_flags_icon_zoom},} "
|
||||||
|
|
||||||
|
# Status line options
|
||||||
|
set -g @catppuccin_status_left_separator ""
|
||||||
|
set -g @catppuccin_status_middle_separator ""
|
||||||
|
set -g @catppuccin_status_right_separator "█"
|
||||||
|
set -g @catppuccin_status_connect_separator "yes" # yes, no
|
||||||
|
set -g @catppuccin_status_fill "icon"
|
||||||
|
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
|
||||||
|
```
|
||||||
@@ -0,0 +1,260 @@
|
|||||||
|
## Using the theme's built-in status modules
|
||||||
|
|
||||||
|
To use the theme's built in status modules, set the `status-left` and
|
||||||
|
`status-right` tmux options _after_ the plugin has been loaded with `run`.
|
||||||
|
|
||||||
|
The tmux status line modules are set as variables and prefixed with `@catppuccin_status_<module>`.
|
||||||
|
|
||||||
|
To use the `application` and `session` modules on the right and have nothing on
|
||||||
|
the left:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g status-right-length 100
|
||||||
|
|
||||||
|
set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_session}"
|
||||||
|
set -g status-left ""
|
||||||
|
```
|
||||||
|
Some notes about expanding options when setting the status line:
|
||||||
|
* Options are expanded as format strings by placing `E:` before the option name.
|
||||||
|
* When a module status string contains a reference to another variable, you have to add the `-F` flag that treats the value passed as a format string that is immediately expanded, that is use `set -gF` (see tmux [`set-option`](https://man.openbsd.org/OpenBSD-current/man1/tmux.1#set-option) man page).
|
||||||
|
* Example for such a case is the [battery](#battery-module) module below, where the status contains the format string `#{battery_percentage}` that needs to be further expanded.
|
||||||
|
|
||||||
|
## Customizing modules
|
||||||
|
|
||||||
|
Every module supports the following overrides:
|
||||||
|
|
||||||
|
### Override the specific module icon
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_[module_name]_icon "icon"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Override the specific module color
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_[module_name]_color "color"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Override the specific module text
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_[module_name]_text "text"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Override the specific module's background color
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_status_[module_name]_bg_color "#{@thm_surface_0}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Removing a specific module option
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_[module_name]_[option] ""
|
||||||
|
```
|
||||||
|
|
||||||
|
This is for the situation where you want to remove the icon from a module.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_date_time_icon ""
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes for TPM users
|
||||||
|
|
||||||
|
Make sure you load the catppuccin theme prior to setting the status-left and/or
|
||||||
|
status-* options. This ensures the catppuccin options (such as colors and
|
||||||
|
status modules) are defined so they can then be used.
|
||||||
|
|
||||||
|
After status-left and/or status-right have been set, make sure to run TPM to load
|
||||||
|
the modules. This runs any plugins that may replace text in the status line.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# load catppuccin theme ...
|
||||||
|
run '~/.config/tmux/plugins/tmux/catppuccin.tmux' # or where this file is located on your machine
|
||||||
|
|
||||||
|
# ... and then set status-left & status-right ...
|
||||||
|
set -g status-left "#{E:@catppuccin_status_session}"
|
||||||
|
|
||||||
|
set -g status-right "#{E:@catppuccin_status_[module_name]}"
|
||||||
|
set -ag status-right "#{E:@catppuccin_status_[module_name]}"
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_[module_name]}"
|
||||||
|
|
||||||
|
# ... and finally start TPM
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Battery module
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-battery](https://github.com/tmux-plugins/tmux-battery/tree/master).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-battery is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_battery}"
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## CPU module
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_cpu}"
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-cpu'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## RAM module
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_ram}"
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-cpu'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Weather modules
|
||||||
|
|
||||||
|
### tmux-weather
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-weather](https://github.com/xamut/tmux-weather).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-weather is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_weather}"
|
||||||
|
|
||||||
|
set -g @plugin 'xamut/tmux-weather'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
### tmux-clima
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-clima](https://github.com/vascomfnunes/tmux-clima).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-clima is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_clima}"
|
||||||
|
|
||||||
|
set -g @plugin 'vascomfnunes/tmux-clima'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Load module
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_load}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gitmux module
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [gitmux](https://github.com/arl/gitmux).
|
||||||
|
|
||||||
|
**Install:** To install gitmux, follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#installing).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
Add the gitmux module to the status modules list.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{@catppuccin_status_gitmux}"
|
||||||
|
```
|
||||||
|
|
||||||
|
Follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#customizing)
|
||||||
|
to create a gitmux config file. The gitmux plugin expects a file to be present
|
||||||
|
at `~/.gitmux.conf`.
|
||||||
|
|
||||||
|
Add the following to your `~/.gitmux.conf` so that it uses catppuccin colors:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tmux:
|
||||||
|
styles:
|
||||||
|
clear: "#[fg=#{@thm_fg}]"
|
||||||
|
state: "#[fg=#{@thm_red},bold]"
|
||||||
|
branch: "#[fg=#{@thm_fg},bold]"
|
||||||
|
remote: "#[fg=#{@thm_teal}]"
|
||||||
|
divergence: "#[fg=#{@thm_fg}]"
|
||||||
|
staged: "#[fg=#{@thm_green},bold]"
|
||||||
|
conflict: "#[fg=#{@thm_red},bold]"
|
||||||
|
modified: "#[fg=#{@thm_yellow},bold]"
|
||||||
|
untracked: "#[fg=#{@thm_mauve},bold]"
|
||||||
|
stashed: "#[fg=#{@thm_blue},bold]"
|
||||||
|
clean: "#[fg=#{@thm_rosewater},bold]"
|
||||||
|
insertions: "#[fg=#{@thm_green}]"
|
||||||
|
deletions: "#[fg=#{@thm_red}]"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pomodoro module
|
||||||
|
|
||||||
|
**Requirements:**: This module depends on [tmux-pomodoro-plus](https://github.com/olimorris/tmux-pomodoro-plus/tree/main).
|
||||||
|
|
||||||
|
**Install:**: The preferred way to install tmux-pomodoro-plus is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_pomodoro_plus}"
|
||||||
|
|
||||||
|
set -g @plugin 'olimorris/tmux-pomodoro-plus'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kube module
|
||||||
|
|
||||||
|
**Requirements:** This module depends on [tmux-kubectx](https://github.com/tony-sol/tmux-kubectx).
|
||||||
|
|
||||||
|
**Install:** The preferred way to install tmux-kubectx is using [TPM](https://github.com/tmux-plugins/tpm).
|
||||||
|
|
||||||
|
**Configure:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g @catppuccin_kube_context_color "#{@thm_red}"
|
||||||
|
set -g @catppuccin_kube_namespace_color "#{@thm_sky}"
|
||||||
|
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
set -agF status-right "#{E:@catppuccin_status_kube}"
|
||||||
|
|
||||||
|
set -g @plugin 'tony-sol/tmux-kubectx'
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
```
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
Want to install the color scheme and make tmux pastel? Great! Here's how.
|
||||||
|
|
||||||
|
## Step 1: Clone this repository
|
||||||
|
|
||||||
|
<!-- x-release-please-start-version -->
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/.config/tmux/plugins/catppuccin
|
||||||
|
git clone -b v2.3.0 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
|
||||||
|
```
|
||||||
|
<!-- x-release-please-end -->
|
||||||
|
|
||||||
|
## Step 2: Edit your tmux configuration file
|
||||||
|
|
||||||
|
Using your favourite editor, edit the file `~/.tmux.conf`.
|
||||||
|
|
||||||
|
It should look like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
set -g @catppuccin_flavor 'mocha'
|
||||||
|
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
This will load the catppuccin plugin and apply the defaults.
|
||||||
|
To apply the changes to your configuration file, exit tmux completely
|
||||||
|
and start it again. You can also run `tmux source ~/.tmux.conf`, but this may
|
||||||
|
not work as well when changing options.
|
||||||
|
|
||||||
|
## Step 3: Customize
|
||||||
|
|
||||||
|
The default configuration looks a little bland. Let's change it to
|
||||||
|
be a bit more colorful. Edit your tmux config again so it looks like this.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Pick a softer palette.
|
||||||
|
set -g @catppuccin_flavor 'frappe'
|
||||||
|
|
||||||
|
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
# Make the status line more pleasant.
|
||||||
|
set -g status-left ""
|
||||||
|
set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
|
||||||
|
|
||||||
|
# Ensure that everything on the right side of the status line
|
||||||
|
# is included.
|
||||||
|
set -g status-right-length 100
|
||||||
|
```
|
||||||
|
|
||||||
|
There is some new stuff here. Firstly, everything is documented in
|
||||||
|
the "[tmux man page](https://man7.org/linux/man-pages/man1/tmux.1.html)".
|
||||||
|
Go check it out if anything is unclear. The lines `set -g ...` are setting
|
||||||
|
"options". The `-g` means that the option is global, so it applies everywhere.
|
||||||
|
When an option name begins with `@`, then it is a "user" option and has no
|
||||||
|
effect on tmux itself. This is used to essentially set global variables.
|
||||||
|
|
||||||
|
Three options are set that control how tmux looks, `status-left`,
|
||||||
|
`status-right`, and `status-right-length`. These options are documented
|
||||||
|
in the man page, but the tl;dr is that they control what appears on the left
|
||||||
|
and right of the status line.
|
||||||
|
|
||||||
|
The `#[]` syntax is an embedded style, similar to inline css.
|
||||||
|
`fg=#{@thm_crust}` says "make the text the crust color". `@thm_crust` is a
|
||||||
|
user option set by the plugin. It is created by the line
|
||||||
|
`run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux`, so if you try
|
||||||
|
and use colors before that line, it won't work. The `#S` is a special sequence
|
||||||
|
that tmux replaces with the current session name. There are a long, long
|
||||||
|
"[list of special sequences](https://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS)"
|
||||||
|
that tmux can replace.
|
||||||
|
|
||||||
|
If everything is working right, your version should look like this:
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# User Defined Status Line Modules
|
||||||
|
|
||||||
|
To create your own status line module that uses the catppuccin theme,
|
||||||
|
all you need to do is add it to the `status-left` or `status-right` options.
|
||||||
|
|
||||||
|
You can add arbitrary things to the status line like so:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# ~/.tmux.conf
|
||||||
|
|
||||||
|
set -agF status-right "#[fg=#{@thm_crust},bg=#{@thm_teal}] ##H "
|
||||||
|
```
|
||||||
|
|
||||||
|
This will append the current hostname (`#H`) to the status line with a teal
|
||||||
|
background and dark black text.
|
||||||
|
|
||||||
|
You can also use icons for styling, for example to show the used memory percentage
|
||||||
|
on MacOS:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
set -g status-right "#[bg=#{@thm_flamingo},fg=#{@thm_crust}]#[reverse]#[noreverse] "
|
||||||
|
set -ag status-right "#[fg=#{@thm_fg},bg=#{@thm_mantle}] #(memory_pressure | awk '/percentage/{print $5}') "
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
To use the status module formatting that catppuccin uses, do the following:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# In ~/.tmux.conf, before the catppuccin plugin has been loaded.
|
||||||
|
|
||||||
|
%hidden MODULE_NAME="my_custom_module"
|
||||||
|
|
||||||
|
set -g "@catppuccin_${MODULE_NAME}_icon" " "
|
||||||
|
set -gF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_pink}"
|
||||||
|
set -g "@catppuccin_${MODULE_NAME}_text" "#{pane_current_command}"
|
||||||
|
|
||||||
|
source "<path to catppuccin plugin>/utils/status_module.conf"
|
||||||
|
|
||||||
|
set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_my_custom_module}"
|
||||||
|
```
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
# Changing the flavor of the theme by resetting
|
||||||
|
|
||||||
|
To reset the colors colors in your status line, you can perform a reset of all
|
||||||
|
the options associated with the styling of the Tmux-line. This is done by
|
||||||
|
setting a global option called `@catppuccin_reset` to `true.
|
||||||
|
|
||||||
|
<details open>
|
||||||
|
|
||||||
|
<summary>A list of all the options that our <code>@catppuccin_reset</code> option resets</summary>
|
||||||
|
|
||||||
|
```txt
|
||||||
|
@thm_bg
|
||||||
|
@thm_fg
|
||||||
|
@thm_rosewater
|
||||||
|
@thm_flamingo
|
||||||
|
@thm_rosewater
|
||||||
|
@thm_pink
|
||||||
|
@thm_mauve
|
||||||
|
@thm_red
|
||||||
|
@thm_maroon
|
||||||
|
@thm_peach
|
||||||
|
@thm_yellow
|
||||||
|
@thm_green
|
||||||
|
@thm_teal
|
||||||
|
@thm_sky
|
||||||
|
@thm_sapphire
|
||||||
|
@thm_blue
|
||||||
|
@thm_lavender
|
||||||
|
@thm_subtext_1
|
||||||
|
@thm_subtext_0
|
||||||
|
@thm_overlay_2
|
||||||
|
@thm_overlay_1
|
||||||
|
@thm_overlay_0
|
||||||
|
@thm_surface_2
|
||||||
|
@thm_surface_1
|
||||||
|
@thm_surface_0
|
||||||
|
@thm_mantle
|
||||||
|
@thm_crust
|
||||||
|
@catppuccin_window_status_style
|
||||||
|
@catppuccin_window_text_color
|
||||||
|
@catppuccin_window_number_color
|
||||||
|
@catppuccin_window_text
|
||||||
|
@catppuccin_window_number
|
||||||
|
@catppuccin_window_current_text_color
|
||||||
|
@catppuccin_window_current_number_color
|
||||||
|
@catppuccin_window_current_text
|
||||||
|
@catppuccin_window_current_number
|
||||||
|
@catppuccin_window_number_position
|
||||||
|
@catppuccin_window_flags
|
||||||
|
@catppuccin_window_flags_icon_last
|
||||||
|
@catppuccin_window_flags_icon_current
|
||||||
|
@catppuccin_window_flags_icon_zoom
|
||||||
|
@catppuccin_window_flags_icon_mark
|
||||||
|
@catppuccin_window_flags_icon_silent
|
||||||
|
@catppuccin_window_flags_icon_activity
|
||||||
|
@catppuccin_window_flags_icon_bell
|
||||||
|
@catppuccin_window_flags_icon_format
|
||||||
|
@catppuccin_status_left_separator
|
||||||
|
@catppuccin_status_middle_separator
|
||||||
|
@catppuccin_status_right_separator
|
||||||
|
@catppuccin_status_connect_separator
|
||||||
|
@catppuccin_status_module_text_bg
|
||||||
|
@catppuccin_window_current_left_separator
|
||||||
|
@catppuccin_window_current_middle_separator
|
||||||
|
@catppuccin_window_current_right_separator
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
All of these Tmux options above are unset, **with the `-U` flag**, when the
|
||||||
|
plugin is called with the option named `@catppuccin_reset` with a value of
|
||||||
|
`true`. Due to _the way options are set within the plugin_, **with the `-o`
|
||||||
|
flag**, all options set by the user will be reset to plugins original default
|
||||||
|
values. _This means that if you have set **any** custom options, you **may**
|
||||||
|
lose your updates and **will need to run the plugin again after setting your
|
||||||
|
custom options**_.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> Trying running the reset yourself right now and note what breaks for your
|
||||||
|
> custom setup. That's one good way to experience what's being described above
|
||||||
|
> locally on your machine.
|
||||||
|
|
||||||
|
This feature is the most useful for auto-switching between the theme's flavor.
|
||||||
|
It's also useful for contributing or developing the plugin locally as well.
|
||||||
|
|
||||||
|
## Minimal example of resetting the flavor
|
||||||
|
|
||||||
|
If you're using all the defaults of Catppuccin Tmux, you will only have to worry
|
||||||
|
about setting the flavor when setting the `@catppuccin_reset` option to `true`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# somewhere in a Tmux configuration file that will be sourced specifically for
|
||||||
|
# reloading `catppuccin/tmux`.
|
||||||
|
set -g @catppuccin_flavor "latte"
|
||||||
|
set -g @catppuccin_reset "true"
|
||||||
|
run /path/to/catppuccin/tmux/catppuccin.tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Your path above, the line starting with `run ...`, will need to be updated to
|
||||||
|
> where ever the `catpuccin.tmux` file is located on your system.
|
||||||
|
|
||||||
|
## Custom example of resetting the flavor
|
||||||
|
|
||||||
|
If you're customizing any of the settings that get reset in the list above, you
|
||||||
|
must set set options you're customizing along with any dependent options _that
|
||||||
|
aren't necessary_ when configuring the theme for only a single flavor.
|
||||||
|
|
||||||
|
Like in the minimal example, you will set your flavor and also reset the plugin.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# somewhere in a Tmux configuration file that will be sourced specifically for
|
||||||
|
# reloading `catppuccin/tmux`.
|
||||||
|
set -g @catppuccin_flavor "latte"
|
||||||
|
set -g @catppuccin_reset "true"
|
||||||
|
run /path/to/catppuccin/tmux/catppuccin.tmux
|
||||||
|
# we're not done yet!
|
||||||
|
```
|
||||||
|
|
||||||
|
But right afterwards, you'll have to set your customized options both before and
|
||||||
|
after you `run ...` the plugin. _This does mean running the plugin twice in
|
||||||
|
rapid succession_. This is due to a limitation of Tmux and how the plugin is
|
||||||
|
designed to be customizable and also ergonomic to ease with minimal
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# somewhere in a Tmux configuration file that will be sourced specifically for
|
||||||
|
# reloading `catppuccin/tmux`.
|
||||||
|
set -g @catppuccin_flavor "mocha"
|
||||||
|
set -g @catppuccin_reset "true"
|
||||||
|
run /path/to/catppuccin/tmux/catppuccin.tmux
|
||||||
|
|
||||||
|
# right after the initial reset call.
|
||||||
|
set -g @catppuccin_flavor "mocha"
|
||||||
|
set -g @catppuccin_window_status_style "basic"
|
||||||
|
set -g @catppuccin_window_text " #W"
|
||||||
|
set -g @catppuccin_window_number "#I"
|
||||||
|
set -g @catppuccin_window_current_text " #W"
|
||||||
|
set -g @catppuccin_window_current_number "#I"
|
||||||
|
set -g @catppuccin_pane_status_enabled "yes"
|
||||||
|
set -g @catppuccin_pane_border_status "yes"
|
||||||
|
set -g @catppuccin_window_number_position "right"
|
||||||
|
set -g @catppuccin_window_current_text "#{pane_current_path}"
|
||||||
|
set -g @catppuccin_pane_left_separator "▓"
|
||||||
|
set -g @catppuccin_pane_middle_separator "▓"
|
||||||
|
set -g @catppuccin_pane_right_separator "▓"
|
||||||
|
set -g @catppuccin_status_left_separator "▓"
|
||||||
|
set -g @catppuccin_status_middle_separator "▓"
|
||||||
|
set -g @catppuccin_status_right_separator "▓"
|
||||||
|
set -g @catppuccin_status_right_separator_inverse "no"
|
||||||
|
set -g @catppuccin_status_connect_separator "yes"
|
||||||
|
set -g @catppuccin_window_status_enable "yes"
|
||||||
|
set -g @catppuccin_status_fill "icon"
|
||||||
|
set -g @catppuccin_window_flags "icon"
|
||||||
|
set -g @catppuccin_application_icon " "
|
||||||
|
set -g @catppuccin_session_icon " "
|
||||||
|
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
|
||||||
|
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
|
||||||
|
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
|
||||||
|
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_status_application_icon_fg "#{E:@thm_crust}"
|
||||||
|
set -g @catppuccin_status_application_text_fg "#{E:@thm_fg}"
|
||||||
|
set -g @catppuccin_application_color "#{E:@thm_maroon}"
|
||||||
|
set -g @catppuccin_status_session_icon_fg "#{E:@thm_crust}"
|
||||||
|
set -g @catppuccin_status_session_text_fg "#{E:@thm_fg}"
|
||||||
|
set -g @catppuccin_session_color "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
|
||||||
|
set -g @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
|
||||||
|
run /path/to/catppuccin/tmux/catppuccin.tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
Notice that above there are certain lines that are _being set that aren't
|
||||||
|
usually set initially_. Some of these options are set within the file named
|
||||||
|
`utils/status_module.conf`, for example. While some are set in the other parts
|
||||||
|
of the plugin's configuration. This is due to the colors being unset and then
|
||||||
|
rest to the defaults **because you can't reset this plugin without also running
|
||||||
|
the default configuration options too**. _These options are highlighted below in
|
||||||
|
a smaller snippet_. These specific options aren't usually set when configuring
|
||||||
|
the plugin for a single flavor. Due to how options are reset and then again
|
||||||
|
immediately set in the `catppuccin_options_tmux.conf` file & all options will be
|
||||||
|
set to their defaults which aren't going to be what you've customized.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# here's some options extracted from the example above which must be set again
|
||||||
|
# after the reset that you probably would not have to set if you're using the
|
||||||
|
# reset functionality.
|
||||||
|
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
|
||||||
|
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
|
||||||
|
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
|
||||||
|
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
|
||||||
|
set -g @catppuccin_status_application_icon_fg "#{E:@thm_crust}"
|
||||||
|
set -g @catppuccin_status_application_text_fg "#{E:@thm_fg}"
|
||||||
|
set -g @catppuccin_application_color "#{E:@thm_maroon}"
|
||||||
|
set -g @catppuccin_status_session_icon_fg "#{E:@thm_crust}"
|
||||||
|
set -g @catppuccin_status_session_text_fg "#{E:@thm_fg}"
|
||||||
|
set -g @catppuccin_session_color "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
|
||||||
|
set -g @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> See the `@catppuccin_status_module_bg_color` and other color options such as
|
||||||
|
> `@catppuccin_application_color` and others have to be set due to the how the
|
||||||
|
> plugin resets all the values listed at the top of this document.
|
||||||
|
|
||||||
|
## You should now know how to reset the flavor using Tmux configuration files
|
||||||
|
|
||||||
|
Thanks for reading this far. If there's any questions or concerns please reach
|
||||||
|
out to the community in our [Discord server][discord] or by creating an issue on [GitHub][github].
|
||||||
|
|
||||||
|
Hopefully after reading this you've got a much better understanding of both how
|
||||||
|
to reset the flavor for `catppuccin/tmux` and[the configuration][internal] for this plugin.
|
||||||
|
|
||||||
|
[discord]: https://discord.com/servers/catppuccin-907385605422448742 "The official Catppuccin Discord server"
|
||||||
|
[github]: https://github.com/catppuccin/tmux/issues/new/choose "This project's GitHub issue type chooser page"
|
||||||
|
[internal]: ../reference/configuration.md "Our internal configuration document for this plugin"
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"local>catppuccin/renovate-config"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
|
||||||
|
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/default_options.sh --expected "${script_dir}"/tests/default_options_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/window_status_styling.sh --expected "${script_dir}"/tests/window_status_styling_expected.txt "$@"
|
||||||
|
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/application_module.sh --expected "${script_dir}"/tests/application_module_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/battery_module.sh --expected "${script_dir}"/tests/battery_module_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/cpu_module.sh --expected "${script_dir}"/tests/cpu_module_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/load_module.sh --expected "${script_dir}"/tests/load_module_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/pane_styling.sh --expected "${script_dir}"/tests/pane_styling_expected.txt "$@"
|
||||||
|
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/ram_module.sh --expected "${script_dir}"/tests/ram_module_expected.txt "$@"
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# vim:set ft=tmux:
|
||||||
|
%hidden MODULE_NAME="application"
|
||||||
|
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
|
||||||
|
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_maroon}"
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{pane_current_command}"
|
||||||
|
|
||||||
|
source -F "#{d:current_file}/../utils/status_module.conf"
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# vim:set ft=tmux:
|
||||||
|
%hidden MODULE_NAME="battery"
|
||||||
|
|
||||||
|
set -ogq @batt_icon_charge_tier8 ""
|
||||||
|
set -ogq @batt_icon_charge_tier7 ""
|
||||||
|
set -ogq @batt_icon_charge_tier6 ""
|
||||||
|
set -ogq @batt_icon_charge_tier5 ""
|
||||||
|
set -ogq @batt_icon_charge_tier4 ""
|
||||||
|
set -ogq @batt_icon_charge_tier3 ""
|
||||||
|
set -ogq @batt_icon_charge_tier2 ""
|
||||||
|
set -ogq @batt_icon_charge_tier1 ""
|
||||||
|
set -ogq @batt_icon_status_charged ""
|
||||||
|
set -ogq @batt_icon_status_charging ""
|
||||||
|
set -ogq @batt_icon_status_discharging ""
|
||||||
|
set -ogq @batt_icon_status_unknown ""
|
||||||
|
set -ogq @batt_icon_status_attached ""
|
||||||
|
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_icon" "#{l:#{battery_icon}} "
|
||||||
|
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_lavender}"
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{battery_percentage}}"
|
||||||
|
|
||||||
|
source -F "#{d:current_file}/../utils/status_module.conf"
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# vim:set ft=tmux:
|
||||||
|
# Requires https://github.com/vascomfnunes/tmux-clima
|
||||||
|
%hidden MODULE_NAME="clima"
|
||||||
|
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
|
||||||
|
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
|
||||||
|
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{clima}}"
|
||||||
|
|
||||||
|
source -F "#{d:current_file}/../utils/status_module.conf"
|
||||||