huge change
This commit is contained in:
parent
c159d2f3e3
commit
d86cc3c816
29 changed files with 1151 additions and 792 deletions
BIN
.cache/nix/fetcher-cache-v4.sqlite
Normal file
BIN
.cache/nix/fetcher-cache-v4.sqlite
Normal file
Binary file not shown.
250
flake.lock
generated
250
flake.lock
generated
|
|
@ -20,11 +20,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759499898,
|
"lastModified": 1760101617,
|
||||||
"narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=",
|
"narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "655e067f96fd44b3f5685e17f566b0e4d535d798",
|
"rev": "1826a9923881320306231b1c2090379ebf9fa4f8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -54,16 +54,17 @@
|
||||||
"base16-fish": {
|
"base16-fish": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1622559957,
|
"lastModified": 1754405784,
|
||||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
|
||||||
"owner": "tomyun",
|
"owner": "tomyun",
|
||||||
"repo": "base16-fish",
|
"repo": "base16-fish",
|
||||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tomyun",
|
"owner": "tomyun",
|
||||||
"repo": "base16-fish",
|
"repo": "base16-fish",
|
||||||
|
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -125,11 +126,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759572023,
|
"lastModified": 1761906071,
|
||||||
"narHash": "sha256-2fzYq/m2PXie5WZO5LhyiZrTIUdUFp1SCLZAwvPL5xo=",
|
"narHash": "sha256-uq0X0KRzZkKGlkU1ARM+LWCAVvSYJZtTMpuzMO6LXRs=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "eeada12912d80d04733383d231a9d66172858718",
|
"rev": "fd1bc7b1af0a576edb13c166c4b1f7b5c7555a73",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -189,38 +190,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747046372,
|
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_3": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747046372,
|
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
|
@ -229,11 +198,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759362264,
|
"lastModified": 1762040540,
|
||||||
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
|
"narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
|
"rev": "0010412d62a25d959151790968765a70c436598b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -315,29 +284,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_3",
|
|
||||||
"gitignore": "gitignore_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1759523803,
|
|
||||||
"narHash": "sha256-PTod9NG+i3XbbnBKMl/e5uHDBYpwIWivQ3gOWSEuIEM=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "cfc9f7bb163ad8542029d303e599c0f7eee09835",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -360,28 +306,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -399,31 +323,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hercules-ci-effects": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1758022363,
|
|
||||||
"narHash": "sha256-ENUhCRWgSX4ni751HieNuQoq06dJvApV/Nm89kh+/A0=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"rev": "1a3667d33e247ad35ca250698d63f49a5453d824",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -431,11 +330,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759853171,
|
"lastModified": 1762178366,
|
||||||
"narHash": "sha256-uqbhyXtqMbYIiMqVqUhNdSuh9AEEkiasoK3mIPIVRhk=",
|
"narHash": "sha256-I+8yE5HVR2SFcHnW0771psQ/zn0qVzsKHY/gUM0nEVM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "1a09eb84fa9e33748432a5253102d01251f72d6d",
|
"rev": "8c824254b1ed9e797f6235fc3c62f365893c561a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -489,11 +388,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759490292,
|
"lastModified": 1760445448,
|
||||||
"narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=",
|
"narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "9431db625cd9bb66ac55525479dce694101d6d7a",
|
"rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -518,11 +417,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759837778,
|
"lastModified": 1761869718,
|
||||||
"narHash": "sha256-12GZqSrRYyhKl7NpNMUQECDi/Zyx17QZhhQ7+mBJMns=",
|
"narHash": "sha256-jLfwwlPGpnGRAtVDyoGj9FgH2D9hWwyEu0yHkflG2EI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "5ba2d2217b649c4ca2db7e3f383b3f6af6e70d65",
|
"rev": "8e9add2afda58d233a75e4c5ce8503b24fa59ceb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -543,11 +442,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749046714,
|
"lastModified": 1759610243,
|
||||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-protocols",
|
"repo": "hyprland-protocols",
|
||||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -665,11 +564,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759490926,
|
"lastModified": 1759619523,
|
||||||
"narHash": "sha256-7IbZGJ5qAAfZsGhBHIsP8MBsfuFYS0hsxYHVkkeDG5Q=",
|
"narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "94cce794344538c4d865e38682684ec2bbdb2ef3",
|
"rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -725,20 +624,16 @@
|
||||||
},
|
},
|
||||||
"neovim-nightly-overlay": {
|
"neovim-nightly-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"hercules-ci-effects": "hercules-ci-effects",
|
|
||||||
"neovim-src": "neovim-src",
|
"neovim-src": "neovim-src",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5"
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759795531,
|
"lastModified": 1762128253,
|
||||||
"narHash": "sha256-iY43k/GpJJqv5WmHsJpDsOZsOqb2qydM7wWnpJygiUk=",
|
"narHash": "sha256-U8N1W90dSQJZ8q0xl3aRC4JBp1c9nxxUcVmTO/zhqbk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "neovim-nightly-overlay",
|
"repo": "neovim-nightly-overlay",
|
||||||
"rev": "df3d6d30529e6f4d2c1709914cb3e6e3896dd64e",
|
"rev": "1af775f26be88b3c5177a9fd23f7f4002bdeaf61",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -750,11 +645,11 @@
|
||||||
"neovim-src": {
|
"neovim-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759794827,
|
"lastModified": 1762102676,
|
||||||
"narHash": "sha256-eN26ZJbzwuv0fvc33v4vR5hESWr/+TzJUXaKfdUQx+I=",
|
"narHash": "sha256-x2ZQGCkjdYmwMrtKwSjtS6UcBa+VbL2ynzZcv8cgeI0=",
|
||||||
"owner": "neovim",
|
"owner": "neovim",
|
||||||
"repo": "neovim",
|
"repo": "neovim",
|
||||||
"rev": "1c4e0e50449d95465e7f256d39fea54b307e0e33",
|
"rev": "130ef73e39ee011c40af96624d0c8ef0fa426b09",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -765,11 +660,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760038930,
|
"lastModified": 1761907660,
|
||||||
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
|
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
|
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -781,11 +676,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759381078,
|
"lastModified": 1761672384,
|
||||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
"narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
"rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -813,11 +708,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759381078,
|
"lastModified": 1761114652,
|
||||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
"rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -829,11 +724,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759632233,
|
"lastModified": 1761880412,
|
||||||
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
|
"narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10",
|
"rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -845,11 +740,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759733170,
|
"lastModified": 1761907660,
|
||||||
"narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=",
|
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8913c168d1c56dc49a7718685968f38752171c3b",
|
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -945,11 +840,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758108966,
|
"lastModified": 1760663237,
|
||||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -999,11 +894,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759635238,
|
"lastModified": 1760998189,
|
||||||
"narHash": "sha256-UvzKi02LMFP74csFfwLPAZ0mrE7k6EiYaKecplyX9Qk=",
|
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "6e5a38e08a2c31ae687504196a230ae00ea95133",
|
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1033,11 +928,11 @@
|
||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759690047,
|
"lastModified": 1762101397,
|
||||||
"narHash": "sha256-Vlpa0d1xOgPO9waHwxJNi6LcD2PYqB3EjwLRtSxXlHc=",
|
"narHash": "sha256-wGiL2K3kAyBBmIZpJEskaSIgyzzpg0zwfvri+Sy6/CI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "09022804b2bcd217f3a41a644d26b23d30375d12",
|
"rev": "8c0640d5722a02178c8ee80a62c5f019cab4b3c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1187,27 +1082,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"neovim-nightly-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1758728421,
|
|
||||||
"narHash": "sha256-ySNJ008muQAds2JemiyrWYbwbG+V7S5wg3ZVKGHSFu8=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "5eda4ee8121f97b218f7cc73f5172098d458f1d1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"typsite": {
|
"typsite": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
|
|
@ -1258,11 +1132,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755354946,
|
"lastModified": 1760713634,
|
||||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
"narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
"rev": "753bbbdf6a052994da94062e5b753288cef28dfb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
btusb = pkgs.callPackage ../../moduler/btusb.nix { inherit (config.boot.kernelPackages) kernel; };
|
theme = "latte";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -28,6 +28,7 @@ in
|
||||||
../../moduler/hyprland.nix
|
../../moduler/hyprland.nix
|
||||||
../../moduler/sound.nix
|
../../moduler/sound.nix
|
||||||
../../moduler/programs/kubernetes-tools.nix
|
../../moduler/programs/kubernetes-tools.nix
|
||||||
|
../../moduler/programs/confetti
|
||||||
];
|
];
|
||||||
|
|
||||||
kubernetes-tools.enable = true;
|
kubernetes-tools.enable = true;
|
||||||
|
|
@ -40,8 +41,7 @@ in
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${theme}.yaml";
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.ssh.knownHosts = {
|
programs.ssh.knownHosts = {
|
||||||
|
|
@ -53,6 +53,10 @@ in
|
||||||
publicKeyFile = ../../keys/rsa_pubkey;
|
publicKeyFile = ../../keys/rsa_pubkey;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
theme = theme;
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs pkgs; };
|
home-manager.extraSpecialArgs = { inherit inputs pkgs; };
|
||||||
home-manager.users.fw = {
|
home-manager.users.fw = {
|
||||||
|
|
@ -61,10 +65,11 @@ in
|
||||||
./../../moduler/programs/waybar
|
./../../moduler/programs/waybar
|
||||||
inputs.catppuccin.homeModules.catppuccin
|
inputs.catppuccin.homeModules.catppuccin
|
||||||
];
|
];
|
||||||
waybar = {
|
waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc;
|
configPath = ./../../moduler/programs/waybar/waybar.jsonc;
|
||||||
};
|
stylePath = ./../../moduler/programs/waybar/waybar-${theme}.css;
|
||||||
|
};
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
|
|
@ -72,10 +77,37 @@ in
|
||||||
package = pkgs.gruvbox-dark-icons-gtk;
|
package = pkgs.gruvbox-dark-icons-gtk;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
kitty = {
|
||||||
|
enable = true;
|
||||||
|
theme = theme;
|
||||||
|
};
|
||||||
|
fish = {
|
||||||
|
theme = theme;
|
||||||
|
};
|
||||||
|
k9s = {
|
||||||
|
enable = true;
|
||||||
|
theme = theme;
|
||||||
|
};
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
ll = "ls -l";
|
||||||
|
update = "sudo nixos-rebuild switch";
|
||||||
|
};
|
||||||
|
history.size = 10000;
|
||||||
|
};
|
||||||
|
oh-my-posh = {
|
||||||
|
enable = true;
|
||||||
|
theme = theme;
|
||||||
|
};
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
librewolf = {
|
librewolf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flavor = "latte";
|
flavor = theme;
|
||||||
accent = "peach";
|
accent = "peach";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -90,20 +122,19 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
# boot.extraModulePackages = [
|
|
||||||
# (btusb.overrideAttrs (_: {
|
|
||||||
# patches = [ ../../moduler/btusb-add-mt7925.patch ];
|
|
||||||
# }))
|
|
||||||
# ];
|
|
||||||
|
|
||||||
networking.hostName = myhostname;
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
tailscale = {
|
fprintd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
tod = {
|
||||||
|
enable = true;
|
||||||
|
driver = pkgs.libfprint-2-tod1-goodix;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
networking.hostName = myhostname;
|
||||||
|
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ in
|
||||||
waybar = {
|
waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc;
|
configPath = ./../../moduler/programs/waybar/waybar-laptop.jsonc;
|
||||||
|
stylePath = ./../../moduler/programs/waybar/waybar-latte.css;
|
||||||
};
|
};
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -78,9 +79,6 @@ in
|
||||||
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
tailscale = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
searx = {
|
searx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
redisCreateLocally = true;
|
redisCreateLocally = true;
|
||||||
|
|
|
||||||
|
|
@ -9,28 +9,30 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
modulesDirectory = ../../moduler;
|
modulesDirectory = ../../moduler;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# You can import other NixOS modules here
|
# You can import other NixOS modules here
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
( modulesDirectory + /base.nix )
|
(modulesDirectory + /base.nix)
|
||||||
( modulesDirectory + /users.nix )
|
(modulesDirectory + /users.nix)
|
||||||
( modulesDirectory + /kitchenowl.nix )
|
(modulesDirectory + /kitchenowl.nix)
|
||||||
( modulesDirectory + /radicale.nix )
|
(modulesDirectory + /radicale.nix)
|
||||||
( modulesDirectory + /vaultwarden.nix )
|
(modulesDirectory + /vaultwarden.nix)
|
||||||
( modulesDirectory + /signal.nix )
|
(modulesDirectory + /signal.nix)
|
||||||
( modulesDirectory + /uptime-kuma.nix )
|
(modulesDirectory + /uptime-kuma.nix)
|
||||||
( modulesDirectory + /wedding.nix )
|
(modulesDirectory + /wedding.nix)
|
||||||
|
|
||||||
( modulesDirectory + /services/monitoring )
|
(modulesDirectory + /services/monitoring)
|
||||||
( modulesDirectory + /services/headscale )
|
(modulesDirectory + /services/headscale)
|
||||||
( modulesDirectory + /services/mpd )
|
(modulesDirectory + /services/mpd)
|
||||||
( modulesDirectory + /services/actual )
|
(modulesDirectory + /services/actual)
|
||||||
( modulesDirectory + /services/forgejo )
|
(modulesDirectory + /services/forgejo)
|
||||||
( modulesDirectory + /services/wishlist )
|
(modulesDirectory + /services/wishlist)
|
||||||
( modulesDirectory + /services/glance )
|
(modulesDirectory + /services/glance)
|
||||||
|
(modulesDirectory + /services/gotify)
|
||||||
|
(modulesDirectory + /services/kanboard)
|
||||||
];
|
];
|
||||||
|
|
||||||
sops.defaultSopsFile = ../../secrets/sops.yaml;
|
sops.defaultSopsFile = ../../secrets/sops.yaml;
|
||||||
|
|
@ -40,23 +42,38 @@ in
|
||||||
owner = "root";
|
owner = "root";
|
||||||
mode = "0440";
|
mode = "0440";
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
beets
|
||||||
|
];
|
||||||
|
|
||||||
mpd = {
|
mpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
};
|
||||||
|
kanboard = {
|
||||||
|
enable = true;
|
||||||
|
host = "127.0.0.1";
|
||||||
|
port = 3128;
|
||||||
|
domain = "kanboard.wastring.com";
|
||||||
|
};
|
||||||
|
gotify = {
|
||||||
|
enable = true;
|
||||||
|
host = "127.0.0.1";
|
||||||
|
port = 8121;
|
||||||
|
domain = "message.wastring.com";
|
||||||
};
|
};
|
||||||
glance = {
|
glance = {
|
||||||
enable = true;
|
enable = true;
|
||||||
host = "127.0.0.1";
|
host = "127.0.0.1";
|
||||||
domain = "home.wastring.com";
|
domain = "home.wastring.com";
|
||||||
};
|
};
|
||||||
wishlist = {
|
wishlist = {
|
||||||
enable = true;
|
enable = true;
|
||||||
host = "127.0.0.1";
|
host = "127.0.0.1";
|
||||||
domain = "wish.wastring.com";
|
domain = "wish.wastring.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
forgejo = {
|
forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
actual = {
|
actual = {
|
||||||
|
|
@ -102,7 +119,6 @@ in
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
networking.hostName = myhostname;
|
networking.hostName = myhostname;
|
||||||
|
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,10 @@
|
||||||
nix.nixPath = [ "/etc/nix/path" ];
|
nix.nixPath = [ "/etc/nix/path" ];
|
||||||
users.defaultUserShell = pkgs.bash;
|
users.defaultUserShell = pkgs.bash;
|
||||||
documentation.man.generateCaches = false;
|
documentation.man.generateCaches = false;
|
||||||
programs.fish.enable = true;
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||||
|
|
@ -58,7 +61,7 @@
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
nerd-fonts.comic-shanns-mono
|
nerd-fonts.comic-shanns-mono
|
||||||
nerd-fonts.fira-code
|
nerd-fonts.fira-code
|
||||||
garamond-libre
|
garamond-libre
|
||||||
];
|
];
|
||||||
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
|
||||||
189
moduler/fish.nix
189
moduler/fish.nix
|
|
@ -1,82 +1,113 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
{
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "z";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jethrokuan";
|
|
||||||
repo = "z";
|
|
||||||
rev = "e0e1b9dfdba362f8ab1ae8c1afc7ccf62b89f7eb";
|
|
||||||
sha256 = "0dbnir6jbwjpjalz14snzd3cgdysgcs3raznsijd6savad3qhijc";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "autopair";
|
|
||||||
src = pkgs.fishPlugins.autopair.src;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "foreign-env";
|
|
||||||
src = pkgs.fishPlugins.foreign-env.src;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "fzf";
|
|
||||||
src = pkgs.fishPlugins.fzf.src;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "done";
|
|
||||||
src = pkgs.fishPlugins.done.src;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "grc";
|
|
||||||
src = pkgs.fishPlugins.grc.src;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shellAbbrs = {
|
|
||||||
ls = "eza -l";
|
|
||||||
lg = "lazygit";
|
|
||||||
ka = "kubectl apply -f";
|
|
||||||
t = "timew";
|
|
||||||
todo = "jira issue list -a 'Fredrik Wastring' -s ~Done -s ~Closed -s ~Released --plain";
|
|
||||||
cam = "jira issue create && jira issue assign && jira issue move";
|
|
||||||
e = "kubectx";
|
|
||||||
s = {
|
|
||||||
setCursor = "%";
|
|
||||||
expansion = "cha https://search.wastring.com/search?q=%";
|
|
||||||
};
|
|
||||||
tw = {
|
|
||||||
setCursor = "%";
|
|
||||||
expansion = "typst watch % --open zathura /tmp/zathura.pdf";
|
|
||||||
};
|
|
||||||
c = {
|
|
||||||
setCursor = "%";
|
|
||||||
expansion = "ssh 'fw:%@gateway.internalifacts.se' -p 2222";
|
|
||||||
};
|
|
||||||
dl = {
|
|
||||||
setCursor = "&";
|
|
||||||
expansion = "yt-dlp -o \"~/videor/%(title)s - %(uploader)s\" \"&\"";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
interactiveShellInit = ''
|
|
||||||
fish_vi_key_bindings
|
|
||||||
set fish_greeting
|
|
||||||
set FLAKE_DIR "/home/fw/nix"
|
|
||||||
set JIRA_API_TOKEN ATATT3xFfGF0_fkpGB1ne-QOSJzFVG0yH31j2CRtdNqbePCyEm9enpnA2uA3go75_GQwZPFX_IO9tf10ALJWvDLjsuHl8MSOUkNd703Vqr4uuGLAbHY73Z_b9fDJVrfodTrGAN9sZ5Sp75opCVkXB7MVXSAIvlWimRdwe-tqDPH4vhwY9Hqcs6M=0510D6CD
|
|
||||||
set -Ux FZF_CTRL_R_OPTS "--reverse"
|
|
||||||
set -Ux FZF_TMUX_OPTS "-p"
|
|
||||||
set -e GOROOT
|
|
||||||
set -e GOPATH
|
|
||||||
gh completion -s fish > ~/.config/fish/completions/gh.fish
|
|
||||||
set -gx PATH $PATH $HOME/.krew/bin
|
|
||||||
|
|
||||||
# Mocha
|
let
|
||||||
set -Ux FZF_DEFAULT_OPTS "\
|
inherit (lib) concatStringsSep mkOption types;
|
||||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
|
||||||
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
mkFzfOptionsString = lines: concatStringsSep " " lines;
|
||||||
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
|
|
||||||
--color=selected-bg:#45475a \
|
catppuccinFzfOptions = {
|
||||||
--multi"
|
mocha = mkFzfOptionsString [
|
||||||
'';
|
"--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8"
|
||||||
|
"--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc"
|
||||||
|
"--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
|
||||||
|
"--color=selected-bg:#45475a"
|
||||||
|
"--multi"
|
||||||
|
];
|
||||||
|
latte = mkFzfOptionsString [
|
||||||
|
"--color=bg+:#ccd0da,bg:#eff1f5,spinner:#dc8a78,hl:#d20f39"
|
||||||
|
"--color=fg:#4c4f69,header:#d20f39,info:#1e66f5,pointer:#dc8a78"
|
||||||
|
"--color=marker:#fe640b,fg+:#4c4f69,prompt:#1e66f5,hl+:#d20f39"
|
||||||
|
"--color=selected-bg:#acb0be"
|
||||||
|
"--multi"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.fish = {
|
||||||
|
theme = mkOption {
|
||||||
|
type = types.enum (builtins.attrNames catppuccinFzfOptions);
|
||||||
|
default = "mocha";
|
||||||
|
description = "Catppuccin theme variant used for Fish integrations such as FZF.";
|
||||||
|
example = "latte";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "z";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "jethrokuan";
|
||||||
|
repo = "z";
|
||||||
|
rev = "e0e1b9dfdba362f8ab1ae8c1afc7ccf62b89f7eb";
|
||||||
|
sha256 = "0dbnir6jbwjpjalz14snzd3cgdysgcs3raznsijd6savad3qhijc";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "autopair";
|
||||||
|
src = pkgs.fishPlugins.autopair.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "foreign-env";
|
||||||
|
src = pkgs.fishPlugins.foreign-env.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "fzf";
|
||||||
|
src = pkgs.fishPlugins.fzf.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "done";
|
||||||
|
src = pkgs.fishPlugins.done.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "grc";
|
||||||
|
src = pkgs.fishPlugins.grc.src;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
shellAbbrs = {
|
||||||
|
ls = "eza -l";
|
||||||
|
lg = "lazygit";
|
||||||
|
ka = "kubectl apply -f";
|
||||||
|
t = "timew";
|
||||||
|
todo = "jira issue list -a 'Fredrik Wastring' -s ~Done -s ~Closed -s ~Released --plain";
|
||||||
|
cam = "jira issue create && jira issue assign && jira issue move";
|
||||||
|
e = "kubectx";
|
||||||
|
s = {
|
||||||
|
setCursor = "%";
|
||||||
|
expansion = "cha https://search.wastring.com/search?q=%";
|
||||||
|
};
|
||||||
|
tw = {
|
||||||
|
setCursor = "%";
|
||||||
|
expansion = "typst watch % --open zathura /tmp/zathura.pdf";
|
||||||
|
};
|
||||||
|
c = {
|
||||||
|
setCursor = "%";
|
||||||
|
expansion = "ssh 'fw:%@gateway.internalifacts.se' -p 2222";
|
||||||
|
};
|
||||||
|
dl = {
|
||||||
|
setCursor = "&";
|
||||||
|
expansion = "yt-dlp -o \"~/videor/%(title)s - %(uploader)s\" \"&\"";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
interactiveShellInit =
|
||||||
|
let
|
||||||
|
fzfOpts = catppuccinFzfOptions.${config.fish.theme};
|
||||||
|
in ''
|
||||||
|
fish_vi_key_bindings
|
||||||
|
set fish_greeting
|
||||||
|
set FLAKE_DIR "/home/fw/nix"
|
||||||
|
set JIRA_API_TOKEN ATATT3xFfGF0_fkpGB1ne-QOSJzFVG0yH31j2CRtdNqbePCyEm9enpnA2uA3go75_GQwZPFX_IO9tf10ALJWvDLjsuHl8MSOUkNd703Vqr4uuGLAbHY73Z_b9fDJVrfodTrGAN9sZ5Sp75opCVkXB7MVXSAIvlWimRdwe-tqDPH4vhwY9Hqcs6M=0510D6CD
|
||||||
|
set -Ux FZF_CTRL_R_OPTS "--reverse"
|
||||||
|
set -Ux FZF_TMUX_OPTS "-p"
|
||||||
|
set -e GOROOT
|
||||||
|
set -e GOPATH
|
||||||
|
gh completion -s fish > ~/.config/fish/completions/gh.fish
|
||||||
|
set -gx PATH $PATH $HOME/.krew/bin
|
||||||
|
|
||||||
|
set -Ux FZF_DEFAULT_OPTS "${fzfOpts}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
email = "fredrik@wastring.com";
|
email = "fredrik@wastring.com";
|
||||||
};
|
};
|
||||||
pull = {
|
pull = {
|
||||||
rebase = false;
|
rebase = true;
|
||||||
};
|
};
|
||||||
url."git@github.com:".insteadOf = "https://github.com/";
|
url."git@github.com:".insteadOf = "https://github.com/";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -7,29 +7,30 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../moduler/tmux.nix
|
../moduler/tmux.nix
|
||||||
../moduler/fish.nix
|
../moduler/fish.nix
|
||||||
../moduler/kitty.nix
|
../moduler/kitty.nix
|
||||||
../moduler/dunst.nix
|
../moduler/dunst.nix
|
||||||
../moduler/nixpkgs.nix
|
../moduler/nixpkgs.nix
|
||||||
../moduler/firefox.nix
|
../moduler/firefox.nix
|
||||||
../moduler/zathura.nix
|
../moduler/zathura.nix
|
||||||
../moduler/lazygit.nix
|
../moduler/lazygit.nix
|
||||||
../moduler/ssh.nix
|
../moduler/ssh.nix
|
||||||
../moduler/oh-my-posh.nix
|
../moduler/oh-my-posh.nix
|
||||||
../moduler/gtk.nix
|
../moduler/gtk.nix
|
||||||
# ../moduler/neovim.nix
|
# ../moduler/neovim.nix
|
||||||
../moduler/programs/k9s
|
../moduler/programs/k9s
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
programs.fish.enable = true;
|
|
||||||
|
|
||||||
home.username = "fw";
|
programs.home-manager.enable = true;
|
||||||
home.homeDirectory = "/home/fw";
|
programs.fish.enable = true;
|
||||||
|
|
||||||
home.stateVersion = "25.05";
|
home.username = "fw";
|
||||||
|
home.homeDirectory = "/home/fw";
|
||||||
|
|
||||||
systemd.user.startServices = "sd-switch";
|
home.stateVersion = "25.05";
|
||||||
|
|
||||||
|
systemd.user.startServices = "sd-switch";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,309 +8,324 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
hyprlandPkg = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
in
|
in
|
||||||
|
with lib;
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
options = {
|
||||||
swww
|
hyprland = {
|
||||||
swappy
|
enable = mkEnableOption "enables hyprland";
|
||||||
ydotool
|
theme = lib.mkOption {
|
||||||
wl-clipboard
|
type = lib.types.str;
|
||||||
hyprpolkitagent
|
default = "latte";
|
||||||
hyprland-qtutils
|
description = "the theme for hyprland";
|
||||||
waypipe
|
};
|
||||||
wmenu
|
};
|
||||||
playerctl
|
};
|
||||||
];
|
config = mkIf config.hyprland.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
swww
|
||||||
|
swappy
|
||||||
|
ydotool
|
||||||
|
wl-clipboard
|
||||||
|
hyprpolkitagent
|
||||||
|
hyprland-qtutils
|
||||||
|
waypipe
|
||||||
|
wmenu
|
||||||
|
playerctl
|
||||||
|
];
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
font-awesome
|
font-awesome
|
||||||
];
|
];
|
||||||
|
|
||||||
services = {
|
services.greetd = {
|
||||||
greetd = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = rec {
|
||||||
default_session = {
|
initial_session = {
|
||||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd hyprland";
|
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||||
user = "greeter";
|
user = "fw";
|
||||||
};
|
};
|
||||||
|
default_session = initial_session;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
substituters = [ "https://hyprland.cachix.org" ];
|
substituters = [ "https://hyprland.cachix.org" ];
|
||||||
trusted-substituters = [ "https://hyprland.cachix.org" ];
|
trusted-substituters = [ "https://hyprland.cachix.org" ];
|
||||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||||
};
|
};
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
portalPackage =
|
portalPackage =
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
};
|
};
|
||||||
home-manager.users.fw =
|
home-manager.users.fw =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs = {
|
programs = {
|
||||||
hyprlock = {
|
hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
};
|
||||||
|
rofi = {
|
||||||
|
enable = true;
|
||||||
|
font = lib.mkForce "FiraCode Nerd Font 18";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
rofi = {
|
services = {
|
||||||
enable = true;
|
cliphist = {
|
||||||
font = lib.mkForce "FiraCode Nerd Font 18";
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
hypridle = {
|
||||||
services = {
|
enable = true;
|
||||||
cliphist = {
|
settings = {
|
||||||
enable = true;
|
general = {
|
||||||
};
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
hypridle = {
|
ignore_dbus_inhibit = false;
|
||||||
enable = true;
|
lock_cmd = "hyprlock";
|
||||||
settings = {
|
};
|
||||||
general = {
|
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
listener = [
|
||||||
ignore_dbus_inhibit = false;
|
{
|
||||||
lock_cmd = "hyprlock";
|
timeout = 900;
|
||||||
|
on-timeout = "hyprlock";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 1200;
|
||||||
|
on-timeout = "hyprctl dispatch dpms off";
|
||||||
|
on-resume = "hyprctl dispatch dpms on";
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ipc = "on";
|
||||||
|
splash = false;
|
||||||
|
splash_offset = 2.0;
|
||||||
|
|
||||||
listener = [
|
preload = [
|
||||||
{
|
"/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-${config.hyprland.theme}.png"
|
||||||
timeout = 900;
|
"/home/fw/nix/wallpapers/tux.catppuccin-${config.hyprland.theme}.jpg"
|
||||||
on-timeout = "hyprlock";
|
];
|
||||||
}
|
|
||||||
{
|
wallpaper = [
|
||||||
timeout = 1200;
|
",/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-${config.hyprland.theme}.png"
|
||||||
on-timeout = "hyprctl dispatch dpms off";
|
];
|
||||||
on-resume = "hyprctl dispatch dpms on";
|
};
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hyprpaper = {
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
|
||||||
ipc = "on";
|
|
||||||
splash = false;
|
|
||||||
splash_offset = 2.0;
|
|
||||||
|
|
||||||
preload = [ "/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" "/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-latte.png" ];
|
|
||||||
|
|
||||||
wallpaper = [
|
|
||||||
"DP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-latte.png"
|
|
||||||
"eDP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-latte.png"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
"$terminal" = "kitty";
|
|
||||||
"$mod" = "ALT";
|
|
||||||
|
|
||||||
monitor = [
|
|
||||||
"desc: ASUSTek COMPUTER INC ASUS PA279CV S4LMTF159462 (DP-1), 3840x2160@60, 0x0, 1.5, transform, 1"
|
|
||||||
"desc: ASUSTek COMPUTER INC VG279 JBLMQS021792 (DP-1), 1920x1080@144, 0x0, 1"
|
|
||||||
"eDP-1, 1920x1080@60, 0x0, 1, transform, 0"
|
|
||||||
",prefered,auto,1"
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
xwayland = {
|
||||||
force_zero_scaling = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
general = {
|
settings = {
|
||||||
gaps_in = 7;
|
"$terminal" = "kitty";
|
||||||
gaps_out = 14;
|
"$mod" = "ALT";
|
||||||
border_size = 2;
|
|
||||||
layout = "dwindle";
|
|
||||||
allow_tearing = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
monitor = [
|
||||||
kb_layout = "se";
|
"desc: ASUSTek COMPUTER INC ASUS PA279CV S4LMTF159462 (DP-1), 3840x2160@60, 0x0, 1.5, transform, 0"
|
||||||
kb_options = [
|
"desc: ASUSTek COMPUTER INC VG279 JBLMQS021792 (DP-1), 1920x1080@144, 0x0, 1"
|
||||||
"caps:escape"
|
"eDP-1, 1920x1080@60, 0x0, 1, transform, 0"
|
||||||
|
",prefered,auto,1"
|
||||||
];
|
];
|
||||||
|
|
||||||
follow_mouse = true;
|
xwayland = {
|
||||||
touchpad = {
|
force_zero_scaling = true;
|
||||||
natural_scroll = true;
|
|
||||||
};
|
};
|
||||||
accel_profile = "flat";
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
general = {
|
||||||
rounding = 10;
|
gaps_in = 7;
|
||||||
active_opacity = 0.8;
|
gaps_out = 14;
|
||||||
inactive_opacity = 0.7;
|
border_size = 2;
|
||||||
fullscreen_opacity = 0.9;
|
layout = "dwindle";
|
||||||
|
allow_tearing = true;
|
||||||
|
};
|
||||||
|
|
||||||
blur = {
|
input = {
|
||||||
|
kb_layout = "se";
|
||||||
|
kb_options = [
|
||||||
|
"caps:escape"
|
||||||
|
];
|
||||||
|
|
||||||
|
follow_mouse = true;
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
};
|
||||||
|
accel_profile = "flat";
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 10;
|
||||||
|
active_opacity = 0.9;
|
||||||
|
inactive_opacity = 0.8;
|
||||||
|
fullscreen_opacity = 0.9;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
xray = true;
|
||||||
|
special = false;
|
||||||
|
new_optimizations = true;
|
||||||
|
size = 14;
|
||||||
|
passes = 4;
|
||||||
|
brightness = 1;
|
||||||
|
noise = 0.01;
|
||||||
|
contrast = 1;
|
||||||
|
popups = true;
|
||||||
|
popups_ignorealpha = 0.6;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
xray = true;
|
bezier = [
|
||||||
special = false;
|
"easeOutQuint,0.23,1,0.32,1"
|
||||||
new_optimizations = true;
|
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||||
size = 14;
|
"linear,0,0,1,1"
|
||||||
passes = 4;
|
"almostLinear,0.5,0.5,0.75,1.0#fffff"
|
||||||
brightness = 1;
|
"quick,0.15,0,0.1,1"
|
||||||
noise = 0.01;
|
];
|
||||||
contrast = 1;
|
animation = [
|
||||||
popups = true;
|
"global, 1, 10, default"
|
||||||
popups_ignorealpha = 0.6;
|
"border, 1, 5.39, easeOutQuint"
|
||||||
ignore_opacity = false;
|
"windows, 1, 4.79, easeOutQuint"
|
||||||
|
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||||
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||||
|
"fadeIn, 1, 1.73, almostLinear"
|
||||||
|
"fadeOut, 1, 1.46, almostLinear"
|
||||||
|
"fade, 1, 3.03, quick"
|
||||||
|
"layers, 1, 3.81, easeOutQuint"
|
||||||
|
"layersIn, 1, 4, easeOutQuint, fade"
|
||||||
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
|
"workspaces, 1, 1.94, almostLinear, fade"
|
||||||
|
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||||
|
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
cursor = {
|
||||||
enabled = true;
|
enable_hyprcursor = true;
|
||||||
bezier = [
|
};
|
||||||
"easeOutQuint,0.23,1,0.32,1"
|
|
||||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
dwindle = {
|
||||||
"linear,0,0,1,1"
|
pseudotile = true;
|
||||||
"almostLinear,0.5,0.5,0.75,1.0#fffff"
|
preserve_split = true;
|
||||||
"quick,0.15,0,0.1,1"
|
smart_split = false;
|
||||||
|
smart_resizing = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
enable_swallow = true;
|
||||||
|
swallow_regex = "^(kitty)$";
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
# General
|
||||||
|
"$mod, return, exec, $terminal"
|
||||||
|
"$mod SHIFT, q, killactive"
|
||||||
|
"$mod SHIFT, e, exit"
|
||||||
|
"$mod SHIFT, d, exec, /home/fw/scripts/dmenu_sys"
|
||||||
|
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||||
|
"$mod SHIFT, w, exec, /home/fw/scripts/watch"
|
||||||
|
|
||||||
|
# Screen focus
|
||||||
|
"$mod, v, togglefloating"
|
||||||
|
"$mod, u, focusurgentorlast"
|
||||||
|
"$mod, tab, focuscurrentorlast"
|
||||||
|
"$mod, f, fullscreen"
|
||||||
|
|
||||||
|
# Screen resize
|
||||||
|
"$mod CTRL, h, resizeactive, -20 0"
|
||||||
|
"$mod CTRL, l, resizeactive, 20 0"
|
||||||
|
"$mod CTRL, k, resizeactive, 0 -20"
|
||||||
|
"$mod CTRL, j, resizeactive, 0 20"
|
||||||
|
|
||||||
|
# Workspaces
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
"$mod, 8, workspace, 8"
|
||||||
|
"$mod, 9, workspace, 9"
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
|
||||||
|
# Move to workspaces
|
||||||
|
"$mod SHIFT, 1, movetoworkspace,1"
|
||||||
|
"$mod SHIFT, 2, movetoworkspace,2"
|
||||||
|
"$mod SHIFT, 3, movetoworkspace,3"
|
||||||
|
"$mod SHIFT, 4, movetoworkspace,4"
|
||||||
|
"$mod SHIFT, 5, movetoworkspace,5"
|
||||||
|
"$mod SHIFT, 6, movetoworkspace,6"
|
||||||
|
"$mod SHIFT, 7, movetoworkspace,7"
|
||||||
|
"$mod SHIFT, 8, movetoworkspace,8"
|
||||||
|
"$mod SHIFT, 9, movetoworkspace,9"
|
||||||
|
"$mod SHIFT, 0, movetoworkspace,10"
|
||||||
|
|
||||||
|
# Navigation
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
"$mod, q, exec, ${pkgs.librewolf}/bin/librewolf"
|
||||||
|
"$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '"
|
||||||
|
|
||||||
|
# Screencapture
|
||||||
|
"$mod SHIFT, s, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
||||||
|
|
||||||
|
# special
|
||||||
|
"SUPER+SHIFT, code:201, exec, confetti"
|
||||||
];
|
];
|
||||||
animation = [
|
|
||||||
"global, 1, 10, default"
|
bindm = [
|
||||||
"border, 1, 5.39, easeOutQuint"
|
"$mod, mouse:272, movewindow"
|
||||||
"windows, 1, 4.79, easeOutQuint"
|
"$mod, mouse:273, resizewindow"
|
||||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
];
|
||||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
|
||||||
"fadeIn, 1, 1.73, almostLinear"
|
windowrulev2 = [
|
||||||
"fadeOut, 1, 1.46, almostLinear"
|
"float, class:^(org.pulseaudio.pavucontrol)$"
|
||||||
"fade, 1, 3.03, quick"
|
"size 500 400, class:^(org.pulseaudio.pavucontrol)"
|
||||||
"layers, 1, 3.81, easeOutQuint"
|
"move onscreen cursor -250 10, class:^(org.pulseaudio.pavucontrol)"
|
||||||
"layersIn, 1, 4, easeOutQuint, fade"
|
"float, title:^(Bluetooth Devices)$"
|
||||||
"layersOut, 1, 1.5, linear, fade"
|
"size 500 400, title:^(Bluetooth Devices)"
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
"move onscreen cursor -250 10, title:^(Bluetooth Devices)"
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
|
||||||
"workspaces, 1, 1.94, almostLinear, fade"
|
"float, class:^(.playerctl-gtk-wrapped)$"
|
||||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
"size 300 50, class:^(.playerctl-gtk-wrapped)"
|
||||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
"move onscreen cursor -150 30, class:^(.playerctl-gtk-wrapped)"
|
||||||
|
];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"NIXOS_OZONE_WL,1"
|
||||||
|
"_JAVA_AWT_WM_NONREPARENTING,1"
|
||||||
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||||
|
"QT_QPA_PLATFORM,wayland"
|
||||||
|
"SDL_VIDEODRIVER,wayland"
|
||||||
|
"GDK_BACKEND,wayland"
|
||||||
|
"XDG_SESSION_TYPE,wayland"
|
||||||
|
"XDG_SESSION_DESKTOP,Hyprland"
|
||||||
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
systemd = {
|
||||||
cursor = {
|
enable = true;
|
||||||
enable_hyprcursor = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
preserve_split = true;
|
|
||||||
smart_split = false;
|
|
||||||
smart_resizing = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
enable_swallow = true;
|
|
||||||
swallow_regex = "^(kitty)$";
|
|
||||||
};
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
# General
|
|
||||||
"$mod, return, exec, $terminal"
|
|
||||||
"$mod SHIFT, q, killactive"
|
|
||||||
"$mod SHIFT, e, exit"
|
|
||||||
"$mod SHIFT, d, exec, /home/fw/scripts/dmenu_sys"
|
|
||||||
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
|
||||||
"$mod SHIFT, w, exec, /home/fw/scripts/watch"
|
|
||||||
|
|
||||||
# Screen focus
|
|
||||||
"$mod, v, togglefloating"
|
|
||||||
"$mod, u, focusurgentorlast"
|
|
||||||
"$mod, tab, focuscurrentorlast"
|
|
||||||
"$mod, f, fullscreen"
|
|
||||||
|
|
||||||
# Screen resize
|
|
||||||
"$mod CTRL, h, resizeactive, -20 0"
|
|
||||||
"$mod CTRL, l, resizeactive, 20 0"
|
|
||||||
"$mod CTRL, k, resizeactive, 0 -20"
|
|
||||||
"$mod CTRL, j, resizeactive, 0 20"
|
|
||||||
|
|
||||||
# Workspaces
|
|
||||||
"$mod, 1, workspace, 1"
|
|
||||||
"$mod, 2, workspace, 2"
|
|
||||||
"$mod, 3, workspace, 3"
|
|
||||||
"$mod, 4, workspace, 4"
|
|
||||||
"$mod, 5, workspace, 5"
|
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move to workspaces
|
|
||||||
"$mod SHIFT, 1, movetoworkspace,1"
|
|
||||||
"$mod SHIFT, 2, movetoworkspace,2"
|
|
||||||
"$mod SHIFT, 3, movetoworkspace,3"
|
|
||||||
"$mod SHIFT, 4, movetoworkspace,4"
|
|
||||||
"$mod SHIFT, 5, movetoworkspace,5"
|
|
||||||
"$mod SHIFT, 6, movetoworkspace,6"
|
|
||||||
"$mod SHIFT, 7, movetoworkspace,7"
|
|
||||||
"$mod SHIFT, 8, movetoworkspace,8"
|
|
||||||
"$mod SHIFT, 9, movetoworkspace,9"
|
|
||||||
"$mod SHIFT, 0, movetoworkspace,10"
|
|
||||||
|
|
||||||
# Navigation
|
|
||||||
"$mod, h, movefocus, l"
|
|
||||||
"$mod, l, movefocus, r"
|
|
||||||
"$mod, k, movefocus, u"
|
|
||||||
"$mod, j, movefocus, d"
|
|
||||||
|
|
||||||
# Applications
|
|
||||||
"$mod, q, exec, ${pkgs.librewolf}/bin/librewolf"
|
|
||||||
"$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '"
|
|
||||||
|
|
||||||
# Screencapture
|
|
||||||
"$mod SHIFT, s, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
|
||||||
|
|
||||||
# special
|
|
||||||
"SUPER+SHIFT, code:201, exec, confetti"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
windowrulev2 = [
|
|
||||||
"float, class:^(org.pulseaudio.pavucontrol)$"
|
|
||||||
"size 500 400, class:^(org.pulseaudio.pavucontrol)"
|
|
||||||
"move onscreen cursor -250 10, class:^(org.pulseaudio.pavucontrol)"
|
|
||||||
"float, title:^(Bluetooth Devices)$"
|
|
||||||
"size 500 400, title:^(Bluetooth Devices)"
|
|
||||||
"move onscreen cursor -250 10, title:^(Bluetooth Devices)"
|
|
||||||
|
|
||||||
"float, class:^(.playerctl-gtk-wrapped)$"
|
|
||||||
"size 300 50, class:^(.playerctl-gtk-wrapped)"
|
|
||||||
"move onscreen cursor -150 30, class:^(.playerctl-gtk-wrapped)"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"NIXOS_OZONE_WL,1"
|
|
||||||
"_JAVA_AWT_WM_NONREPARENTING,1"
|
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
||||||
"QT_QPA_PLATFORM,wayland"
|
|
||||||
"SDL_VIDEODRIVER,wayland"
|
|
||||||
"GDK_BACKEND,wayland"
|
|
||||||
"XDG_SESSION_TYPE,wayland"
|
|
||||||
"XDG_SESSION_DESKTOP,Hyprland"
|
|
||||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,46 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
myhostname,
|
myhostname,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
capitalize =
|
||||||
|
s:
|
||||||
|
(lib.strings.toUpper (builtins.substring 0 1 s))
|
||||||
|
+ (builtins.substring 1 (builtins.stringLength s - 1) s);
|
||||||
|
in
|
||||||
|
with lib;
|
||||||
{
|
{
|
||||||
programs.kitty = {
|
options = {
|
||||||
enable = true;
|
kitty = {
|
||||||
font = {
|
enable = mkEnableOption "enables kitty";
|
||||||
# name = "ComicShannsMono Nerd Font";
|
theme = lib.mkOption {
|
||||||
name = "FiraCode Nerd Font Mono";
|
type = lib.types.str;
|
||||||
size = 14;
|
default = "latte";
|
||||||
|
description = "the theme for kitty";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
shellIntegration = {
|
};
|
||||||
mode = "no-cursor";
|
config = mkIf config.kitty.enable {
|
||||||
};
|
|
||||||
# themeFile = "Catppuccin-Mocha";
|
programs.kitty = {
|
||||||
themeFile = "Catppuccin-Latte";
|
enable = true;
|
||||||
settings = {
|
font = {
|
||||||
confirm_os_window_close = 2;
|
name = "FiraCode Nerd Font Mono";
|
||||||
cursor_shape = "block";
|
size = 14;
|
||||||
cursor_blink_interval = 0;
|
};
|
||||||
enable_audio_bell = false;
|
shellIntegration = {
|
||||||
window_padding_width = 10;
|
mode = "no-cursor";
|
||||||
|
};
|
||||||
|
themeFile = "Catppuccin-${capitalize config.kitty.theme}";
|
||||||
|
settings = {
|
||||||
|
confirm_os_window_close = 2;
|
||||||
|
cursor_shape = "block";
|
||||||
|
cursor_blink_interval = 0;
|
||||||
|
enable_audio_bell = false;
|
||||||
|
window_padding_width = 10;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,133 +1,138 @@
|
||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
palettes = {
|
||||||
|
latte = {
|
||||||
|
"os" = "#ACB0BE";
|
||||||
|
"closer" = "p:os";
|
||||||
|
"pink" = "#ea76cb";
|
||||||
|
"lavender" = "#7287FD";
|
||||||
|
"blue" = "#1e66f5";
|
||||||
|
"peach" = "#fe640b";
|
||||||
|
"red" = "#d20f39";
|
||||||
|
"green" = "#40a02b";
|
||||||
|
"mauve" = "#8839ef";
|
||||||
|
};
|
||||||
|
mocha = {
|
||||||
|
"os" = "#ACB0BE";
|
||||||
|
"closer" = "p:os";
|
||||||
|
"pink" = "#F5BDE6";
|
||||||
|
"lavender" = "#B7BDF8";
|
||||||
|
"blue" = "#8aadf4";
|
||||||
|
"peach" = "#f5a97f";
|
||||||
|
"red" = "#ed8796";
|
||||||
|
"green" = "#a6da95";
|
||||||
|
"mauve" = "#c6a0f6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
with lib;
|
||||||
{
|
{
|
||||||
programs.oh-my-posh = {
|
options = {
|
||||||
enable = true;
|
oh-my-posh = {
|
||||||
enableFishIntegration = true;
|
enable = mkEnableOption "enable oh-my-posh";
|
||||||
settings = {
|
theme = mkOption {
|
||||||
"$schema"= "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json";
|
type = types.enum (builtins.attrNames palettes);
|
||||||
# Macchiato
|
default = "latte";
|
||||||
# "palette" = {
|
description = "Catppuccin theme variant for oh-my-posh.";
|
||||||
# "os"= "#ACB0BE";
|
};
|
||||||
# "closer"= "p:os";
|
};
|
||||||
# "pink"= "#F5BDE6";
|
};
|
||||||
# "lavender"= "#B7BDF8";
|
|
||||||
# "blue"= "#8aadf4";
|
config = mkIf config.oh-my-posh.enable {
|
||||||
# "peach" = "#f5a97f";
|
programs.oh-my-posh = {
|
||||||
# "red" = "#ed8796";
|
enable = true;
|
||||||
# "green" = "#a6da95";
|
settings = {
|
||||||
# "mauve" = "#c6a0f6";
|
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json";
|
||||||
# };
|
"palette" = palettes.${config.oh-my-posh.theme};
|
||||||
# Latte
|
"blocks" = [
|
||||||
"palette" = {
|
{
|
||||||
"os"= "#ACB0BE";
|
"alignment" = "left";
|
||||||
"closer"= "p:os";
|
"newline" = true;
|
||||||
"pink" = "#ea76cb";
|
"type" = "prompt";
|
||||||
"lavender" = "#7287FD";
|
"segments" = [
|
||||||
"blue" = "#1e66f5";
|
{
|
||||||
"peach" = "#fe640b";
|
"background" = "transparent";
|
||||||
"red" = "#d20f39";
|
"foreground" = "p:blue";
|
||||||
"green" = "#40a02b";
|
"style" = "diamond";
|
||||||
"mauve" = "#8839ef";
|
"template" = "{{.Icon}} ";
|
||||||
};
|
"type" = "os";
|
||||||
"blocks"= [
|
}
|
||||||
{
|
{
|
||||||
"alignment"= "left";
|
"foreground" = "p:peach";
|
||||||
"newline" = true;
|
"properties" = {
|
||||||
"type"= "prompt";
|
"home_icon" = "~";
|
||||||
"segments" = [
|
"style" = "unique";
|
||||||
{
|
};
|
||||||
"background"= "transparent";
|
"style" = "plain";
|
||||||
"foreground"= "p:blue";
|
"template" = "{{ .Path }} ";
|
||||||
# "powerline_symbol"= "\ue0b4";
|
"type" = "path";
|
||||||
# "leading_diamond"= "\ue0b6";
|
}
|
||||||
"style"= "diamond";
|
{
|
||||||
"template"= "{{.Icon}} ";
|
"foreground" = "p:green";
|
||||||
"type"= "os";
|
"properties" = {
|
||||||
}
|
"fetch_status" = false;
|
||||||
{
|
"fetch_upstream_icon" = false;
|
||||||
"foreground"= "p:peach";
|
};
|
||||||
"properties"= {
|
"template" = "{{ .HEAD }} ";
|
||||||
# "folder_icon"= "..\\ue5fe..";
|
"style" = "plain";
|
||||||
"home_icon"= "~";
|
"type" = "git";
|
||||||
"style"= "unique";
|
}
|
||||||
};
|
{
|
||||||
"style"= "plain";
|
"style" = "plain";
|
||||||
"template"= "{{ .Path }} ";
|
"foreground" = "p:closer";
|
||||||
"type"= "path";
|
"type" = "text";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"foreground"= "p:green";
|
"foreground" = "p:mauve";
|
||||||
"properties"= {
|
"style" = "plain";
|
||||||
# "branch_icon"= "\\ue725 ";
|
"template" = "{{ .UserName }}@";
|
||||||
# "cherry_pick_icon"= "\\ue29b ";
|
"type" = "session";
|
||||||
# "commit_icon"= "\\uf417 ";
|
}
|
||||||
"fetch_status"= false;
|
{
|
||||||
"fetch_upstream_icon"= false;
|
"foreground" = "p:peach";
|
||||||
# "merge_icon"= "\\ue727 ";
|
"style" = "plain";
|
||||||
# "no_commits_icon"= "\\uf0c3 ";
|
"template" = "{{ .HostName }}";
|
||||||
# "rebase_icon"= "\\ue728 ";
|
"type" = "session";
|
||||||
# "revert_icon"= "\\uf0e2 ";
|
}
|
||||||
# "tag_icon"= "\\uf412 ";
|
];
|
||||||
};
|
}
|
||||||
"template"= "{{ .HEAD }} ";
|
{
|
||||||
"style"= "plain";
|
"type" = "prompt";
|
||||||
"type"= "git";
|
"alignment" = "left";
|
||||||
}
|
"newline" = true;
|
||||||
{
|
"segments" = [
|
||||||
"style"= "plain";
|
{
|
||||||
"foreground"= "p:closer";
|
"type" = "text";
|
||||||
"type"= "text";
|
"style" = "plain";
|
||||||
}
|
"background" = "transparent";
|
||||||
{
|
"foreground_templates" = [
|
||||||
"foreground"= "p:mauve";
|
"{{if gt .Code 0}}p:red{{end}}"
|
||||||
"style"= "plain";
|
"{{if eq .Code 0}}p:green{{end}}"
|
||||||
"template"= "{{ .UserName }}@";
|
];
|
||||||
"type"= "session";
|
"template" = ">";
|
||||||
}
|
}
|
||||||
{
|
];
|
||||||
"foreground"= "p:peach";
|
}
|
||||||
"style"= "plain";
|
];
|
||||||
"template"= "{{ .HostName }}";
|
"final_space" = true;
|
||||||
"type"= "session";
|
"version" = 2;
|
||||||
}
|
"transient_prompt" = {
|
||||||
];
|
"background" = "transparent";
|
||||||
}
|
"foreground_templates" = [
|
||||||
{
|
"{{if gt .Code 0}}p:red{{end}}"
|
||||||
"type"= "prompt";
|
"{{if eq .Code 0}}p:green{{end}}"
|
||||||
"alignment"= "left";
|
];
|
||||||
"newline" = true;
|
"template" = ">";
|
||||||
"segments" = [
|
};
|
||||||
{
|
"secondary_prompt" = {
|
||||||
"type" = "text";
|
"background" = "transparent";
|
||||||
"style" = "plain";
|
"foreground_templates" = [
|
||||||
"background"= "transparent";
|
"{{if gt .Code 0}}p:red{{end}}"
|
||||||
"foreground_templates"= [
|
"{{if eq .Code 0}}p:green{{end}}"
|
||||||
"{{if gt .Code 0}}p:red{{end}}"
|
];
|
||||||
"{{if eq .Code 0}}p:green{{end}}"
|
"template" = ">";
|
||||||
];
|
};
|
||||||
"template"= ">";
|
};
|
||||||
}
|
};
|
||||||
];
|
};
|
||||||
}
|
|
||||||
];
|
|
||||||
"final_space"= true;
|
|
||||||
"version"= 2;
|
|
||||||
"transient_prompt"= {
|
|
||||||
"background"= "transparent";
|
|
||||||
"foreground_templates"= [
|
|
||||||
"{{if gt .Code 0}}p:red{{end}}"
|
|
||||||
"{{if eq .Code 0}}p:green{{end}}"
|
|
||||||
];
|
|
||||||
"template"= ">";
|
|
||||||
};
|
|
||||||
"secondary_prompt"= {
|
|
||||||
"background"= "transparent";
|
|
||||||
"foreground_templates"= [
|
|
||||||
"{{if gt .Code 0}}p:red{{end}}"
|
|
||||||
"{{if eq .Code 0}}p:green{{end}}"
|
|
||||||
];
|
|
||||||
"template"= ">";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,15 +30,17 @@
|
||||||
discord
|
discord
|
||||||
slack
|
slack
|
||||||
speedcrunch
|
speedcrunch
|
||||||
remmina
|
# remmina
|
||||||
vial
|
vial
|
||||||
via
|
via
|
||||||
drawio
|
drawio
|
||||||
freecad-wayland
|
freecad-wayland
|
||||||
evince
|
evince
|
||||||
openboard
|
jan
|
||||||
vlc
|
vlc
|
||||||
vscode
|
vscode
|
||||||
|
spotify
|
||||||
|
ansible
|
||||||
|
|
||||||
# TUI
|
# TUI
|
||||||
mpc
|
mpc
|
||||||
|
|
|
||||||
27
moduler/programs/confetti/default.nix
Normal file
27
moduler/programs/confetti/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
confettiListener = pkgs.writeShellScript "confetti-listener" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
exec dbus-monitor "interface='org.freedesktop.Notifications'" | \
|
||||||
|
while read -r line; do
|
||||||
|
if echo "$line" | grep -q "confetti"; then
|
||||||
|
confetti
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
systemd.user.services.confetti-listener = {
|
||||||
|
description = "Listen for notifications and trigger confetti";
|
||||||
|
after = [ "graphical-session.target" ];
|
||||||
|
partOf = [ "graphical-session.target" ];
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
path = with pkgs; [ dbus gnugrep coreutils ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${confettiListener}";
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = "1s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -2,19 +2,35 @@
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
in
|
in
|
||||||
|
with lib;
|
||||||
{
|
{
|
||||||
programs.k9s = {
|
options = {
|
||||||
enable = true;
|
k9s = {
|
||||||
settings = {
|
enable = mkEnableOption "enable k9s";
|
||||||
k9s.ui.skin = "catppuccin-latte";
|
theme = mkOption {
|
||||||
};
|
type = types.str;
|
||||||
skins = {
|
default = "latte";
|
||||||
catppuccin-latte = ./latte-transparent.yml;
|
description = "Catppuccin theme variant for k9s.";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.k9s.enable {
|
||||||
|
programs.k9s = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
k9s.ui.skin = "catppuccin-${config.k9s.theme}";
|
||||||
|
};
|
||||||
|
skins = {
|
||||||
|
catppuccin-latte = ./latte-transparent.yml;
|
||||||
|
catppuccin-mocha = ./mocha-transparent.yml;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
100
moduler/programs/k9s/mocha-transparent.yml
Normal file
100
moduler/programs/k9s/mocha-transparent.yml
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
k9s:
|
||||||
|
body:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
logoColor: '#cba6f7'
|
||||||
|
prompt:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
suggestColor: '#89b4fa'
|
||||||
|
help:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
sectionColor: '#a6e3a1'
|
||||||
|
keyColor: '#89b4fa'
|
||||||
|
numKeyColor: '#eba0ac'
|
||||||
|
frame:
|
||||||
|
title:
|
||||||
|
fgColor: '#94e2d5'
|
||||||
|
bgColor: default
|
||||||
|
highlightColor: '#f5c2e7'
|
||||||
|
counterColor: '#f9e2af'
|
||||||
|
filterColor: '#a6e3a1'
|
||||||
|
border:
|
||||||
|
fgColor: '#cba6f7'
|
||||||
|
focusColor: '#b4befe'
|
||||||
|
menu:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
keyColor: '#89b4fa'
|
||||||
|
numKeyColor: '#eba0ac'
|
||||||
|
crumbs:
|
||||||
|
fgColor: '#1e1e2e'
|
||||||
|
bgColor: default
|
||||||
|
activeColor: '#f2cdcd'
|
||||||
|
status:
|
||||||
|
newColor: '#89b4fa'
|
||||||
|
modifyColor: '#b4befe'
|
||||||
|
addColor: '#a6e3a1'
|
||||||
|
pendingColor: '#fab387'
|
||||||
|
errorColor: '#f38ba8'
|
||||||
|
highlightColor: '#89dceb'
|
||||||
|
killColor: '#cba6f7'
|
||||||
|
completedColor: '#6c7086'
|
||||||
|
info:
|
||||||
|
fgColor: '#fab387'
|
||||||
|
sectionColor: '#cdd6f4'
|
||||||
|
views:
|
||||||
|
table:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
cursorFgColor: '#313244'
|
||||||
|
cursorBgColor: '#45475a'
|
||||||
|
markColor: '#f5e0dc'
|
||||||
|
header:
|
||||||
|
fgColor: '#f9e2af'
|
||||||
|
bgColor: default
|
||||||
|
sorterColor: '#89dceb'
|
||||||
|
xray:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
cursorColor: '#45475a'
|
||||||
|
cursorTextColor: '#1e1e2e'
|
||||||
|
graphicColor: '#f5c2e7'
|
||||||
|
charts:
|
||||||
|
bgColor: default
|
||||||
|
chartBgColor: default
|
||||||
|
dialBgColor: default
|
||||||
|
defaultDialColors:
|
||||||
|
- '#a6e3a1'
|
||||||
|
- '#f38ba8'
|
||||||
|
defaultChartColors:
|
||||||
|
- '#a6e3a1'
|
||||||
|
- '#f38ba8'
|
||||||
|
resourceColors:
|
||||||
|
cpu:
|
||||||
|
- '#cba6f7'
|
||||||
|
- '#89b4fa'
|
||||||
|
mem:
|
||||||
|
- '#f9e2af'
|
||||||
|
- '#fab387'
|
||||||
|
yaml:
|
||||||
|
keyColor: '#89b4fa'
|
||||||
|
valueColor: '#cdd6f4'
|
||||||
|
colonColor: '#a6adc8'
|
||||||
|
logs:
|
||||||
|
fgColor: '#cdd6f4'
|
||||||
|
bgColor: default
|
||||||
|
indicator:
|
||||||
|
fgColor: '#b4befe'
|
||||||
|
bgColor: default
|
||||||
|
toggleOnColor: '#a6e3a1'
|
||||||
|
toggleOffColor: '#a6adc8'
|
||||||
|
dialog:
|
||||||
|
fgColor: '#f9e2af'
|
||||||
|
bgColor: default
|
||||||
|
buttonFgColor: '#1e1e2e'
|
||||||
|
buttonBgColor: default
|
||||||
|
buttonFocusFgColor: '#1e1e2e'
|
||||||
|
buttonFocusBgColor: '#f5c2e7'
|
||||||
|
labelFgColor: '#f5e0dc'
|
||||||
|
fieldFgColor: '#cdd6f4'
|
||||||
|
|
@ -19,6 +19,11 @@ with lib;
|
||||||
default = ./waybar.jsonc;
|
default = ./waybar.jsonc;
|
||||||
description = "The path to the waybar config";
|
description = "The path to the waybar config";
|
||||||
};
|
};
|
||||||
|
stylePath = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
default = ./waybar-latte.css;
|
||||||
|
description = "The path to the waybar config";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = mkIf config.waybar.enable {
|
config = mkIf config.waybar.enable {
|
||||||
|
|
@ -31,7 +36,7 @@ with lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
xdg.configFile."waybar/config.jsonc".source = config.waybar.configPath;
|
xdg.configFile."waybar/config.jsonc".source = config.waybar.configPath;
|
||||||
xdg.configFile."waybar/style.css".source = ./waybar-latte.css;
|
xdg.configFile."waybar/style.css".source = config.waybar.stylePath;
|
||||||
};
|
};
|
||||||
# catppuccin.waybar = {
|
# catppuccin.waybar = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,12 @@
|
||||||
],
|
],
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
"mpris",
|
"mpris",
|
||||||
"bluetooth",
|
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
|
"bluetooth",
|
||||||
"clock"
|
"clock"
|
||||||
],
|
],
|
||||||
"mpris": {
|
"mpris": {
|
||||||
"player": "Feishin",
|
// "player": "Feishin",
|
||||||
"format": "{player_icon} {title} — {artist}",
|
"format": "{player_icon} {title} — {artist}",
|
||||||
"format-paused": " {player_icon} {title}",
|
"format-paused": " {player_icon} {title}",
|
||||||
"format-stopped": "",
|
"format-stopped": "",
|
||||||
|
|
@ -27,8 +27,7 @@
|
||||||
"interval": 1,
|
"interval": 1,
|
||||||
"tooltip": true,
|
"tooltip": true,
|
||||||
"tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}",
|
"tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}",
|
||||||
// "on-click": "playerctl -p Feishin play-pause",
|
"on-click": "playerctl play-pause"
|
||||||
"on-click": "pgrep playerctl-gtk && pkill playerctl-gtk || playerctl-gtk &",
|
|
||||||
},
|
},
|
||||||
"bluetooth": {
|
"bluetooth": {
|
||||||
"format": " {status}",
|
"format": " {status}",
|
||||||
|
|
|
||||||
57
moduler/services/gotify/default.nix
Normal file
57
moduler/services/gotify/default.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
gotify = {
|
||||||
|
enable = mkEnableOption "enables gotify";
|
||||||
|
port = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 8857;
|
||||||
|
description = "The port gotify listens on.";
|
||||||
|
};
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
defaultText = literalExpression "127.0.0.1";
|
||||||
|
description = "The hostname that gotify binds to";
|
||||||
|
};
|
||||||
|
domain = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
defaultText = literalExpression "home.wastring.com";
|
||||||
|
description = "The hostname that gotify binds to";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkMerge [
|
||||||
|
(mkIf config.gotify.enable {
|
||||||
|
sops.secrets.gotify_password = { };
|
||||||
|
|
||||||
|
services.gotify = {
|
||||||
|
enable = true;
|
||||||
|
environmentFiles = [
|
||||||
|
config.sops.secrets.gotify_password.path
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
GOTIFY_DATABASE_DIALECT = "sqlite3";
|
||||||
|
GOTIFY_SERVER_PORT = config.gotify.port;
|
||||||
|
GOTIFY_DEFAULTUSER_NAME = "admin";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${config.gotify.domain} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${toString config.gotify.host}:${toString config.gotify.port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
47
moduler/services/kanboard/default.nix
Normal file
47
moduler/services/kanboard/default.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
kanboard = {
|
||||||
|
enable = mkEnableOption "enables kanboard";
|
||||||
|
port = lib.mkOption {
|
||||||
|
type = lib.types.int;
|
||||||
|
default = 3128;
|
||||||
|
description = "The port kanboard listens on.";
|
||||||
|
};
|
||||||
|
host = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
defaultText = literalExpression "127.0.0.1";
|
||||||
|
description = "The hostname that kanboard binds to";
|
||||||
|
};
|
||||||
|
domain = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
defaultText = literalExpression "home.wastring.com";
|
||||||
|
description = "The hostname that kanboard binds to";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkMerge [
|
||||||
|
(mkIf config.kanboard.enable {
|
||||||
|
services.kanboard = {
|
||||||
|
enable = true;
|
||||||
|
domain = config.kanboard.domain;
|
||||||
|
nginx = null;
|
||||||
|
};
|
||||||
|
services.nginx.virtualHosts.${config.kanboard.domain} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${toString config.kanboard.host}:${toString config.kanboard.port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
bluez-tools
|
bluez-tools
|
||||||
|
|
||||||
# Zathura
|
# Zathura
|
||||||
poppler_utils
|
poppler-utils
|
||||||
|
|
||||||
# Transform
|
# Transform
|
||||||
imagemagick
|
imagemagick
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ in
|
||||||
passwordFile = config.sops.secrets.github_password.path;
|
passwordFile = config.sops.secrets.github_password.path;
|
||||||
registry = "https://ghcr.io";
|
registry = "https://ghcr.io";
|
||||||
};
|
};
|
||||||
image = "ghcr.io/fwastring/wedding:8eed91e3c05fde5f826f25de4c7bccdbc312caef";
|
image = "ghcr.io/fwastring/wedding:28ed2ea29640230e3de7bc998c4cdd63e19ae391";
|
||||||
ports = [ "127.0.0.1:8083:8080" ];
|
ports = [ "127.0.0.1:8083:8080" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ github_password: ENC[AES256_GCM,data:2Q27cc0cqsWFt/lBNUApWPVRQaXi7uZ3UEn051G/Ar8
|
||||||
smtp_password: ENC[AES256_GCM,data:h1K973qeehIIATdoqFhrLiY7XiU=,iv:ltrsG9KZ8rQuSJXNXswMnbIW/N8+CGbRmiTiENzcGTM=,tag:mD/VpM1FqZaiwksWQpAAog==,type:str]
|
smtp_password: ENC[AES256_GCM,data:h1K973qeehIIATdoqFhrLiY7XiU=,iv:ltrsG9KZ8rQuSJXNXswMnbIW/N8+CGbRmiTiENzcGTM=,tag:mD/VpM1FqZaiwksWQpAAog==,type:str]
|
||||||
forgejo-admin-password: ENC[AES256_GCM,data:FuDfqjeQ2T5KcOO1BQ==,iv:ueX7XjbiChuwfYm1B/MJvJaYdWbCmoIs91lj9h9uFYE=,tag:qUszDTRZklwSKrS0PpJhTA==,type:str]
|
forgejo-admin-password: ENC[AES256_GCM,data:FuDfqjeQ2T5KcOO1BQ==,iv:ueX7XjbiChuwfYm1B/MJvJaYdWbCmoIs91lj9h9uFYE=,tag:qUszDTRZklwSKrS0PpJhTA==,type:str]
|
||||||
forgejo-runner-token: ENC[AES256_GCM,data:1AUeTy5Sqoa4u5L/TGjt/v69p2xF/mp0oXVv08TA+squzRVW9/t40xfY2yD8HQ==,iv:uWf9jKIIsajh362vY2NBw8od+iOFGfIQ7NJVFgjWlBw=,tag:hCOzvSKoDbKCGceqNkRx7g==,type:str]
|
forgejo-runner-token: ENC[AES256_GCM,data:1AUeTy5Sqoa4u5L/TGjt/v69p2xF/mp0oXVv08TA+squzRVW9/t40xfY2yD8HQ==,iv:uWf9jKIIsajh362vY2NBw8od+iOFGfIQ7NJVFgjWlBw=,tag:hCOzvSKoDbKCGceqNkRx7g==,type:str]
|
||||||
|
gotify_password: ENC[AES256_GCM,data:Tl9T9yxKSyiemmc5B7kCdwYYHB9anenBg8epFNGqu7sa8YfaZNH9HfTdBtqELIcAkkyfoJUj9tOhxcfa1lDasahJC/8VF0jx6tjsgmTJORAwQa/8,iv:bEtG/ICTqqK3E+YXysDLV/uyawoeILKH+mQXTLOcWpk=,tag:dPqm74eH/Gt9Eg0lv2ptEw==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1jeyw96795qu52swmtkjqgr2w3g4vxc43ckc5r4hlwpje23ptnfwsheah0s
|
- recipient: age1jeyw96795qu52swmtkjqgr2w3g4vxc43ckc5r4hlwpje23ptnfwsheah0s
|
||||||
|
|
@ -34,7 +35,7 @@ sops:
|
||||||
OU8yT0cvcnZMMXphMFVHSXpHNjc4dEkKyXiwholsJthB9O7onb0buF6qHNVNZA3s
|
OU8yT0cvcnZMMXphMFVHSXpHNjc4dEkKyXiwholsJthB9O7onb0buF6qHNVNZA3s
|
||||||
A2+HSl5P0HCyaZhDIDBFdaUL2r0CHKOPCN3Lrd5+Rirnx48RnDxwBA==
|
A2+HSl5P0HCyaZhDIDBFdaUL2r0CHKOPCN3Lrd5+Rirnx48RnDxwBA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-09-23T11:59:25Z"
|
lastmodified: "2025-10-18T13:28:36Z"
|
||||||
mac: ENC[AES256_GCM,data:AND2KnSFn0pgZZ4rT6Vt8sF8IFoysn77JKkiA0c829op3LKZe9NjT0O+PkZegOTlJbqKGyScSNqPidEoVpACAbODd3jtos80AO/LbWHgKo7DUuuPsnB7MgDqFF/khvdQQrvOIVoS0JmDScMnPfzZYYn79dilWuSdUcy0AvCdxPk=,iv:tUG1vtt4hHgHByH8IF9snth34MqesgHQmX6J8QH7vns=,tag:QcUXbmS+8+INuGONOzXL4A==,type:str]
|
mac: ENC[AES256_GCM,data:EaPrjK/m7g+8Vu6vDEzE5nObAWmMXwDEarFEiaoEXh4/tBcAjdhNaYPpGUhfh0NSppTFbkr2ZZKm+m9rTO1J8IeBZMC0FfcFu+34Mz1sL6mozBZX8nynIW3V9bbPKaq2mPd4To1HmphdIpRj72xzYzIzL5fJQxmT8Q4hI6qa5wk=,iv:PvMl479LK7v5hKJ5Ho/kPyajQ/49H+8UqVTre48NxqU=,tag:IE9QCsnhmzamkgX21OCLFA==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.11.0
|
||||||
|
|
|
||||||
61
wallpapers/flake.lock
generated
Normal file
61
wallpapers/flake.lock
generated
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761373498,
|
||||||
|
"narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
46
wallpapers/flake.nix
Normal file
46
wallpapers/flake.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
description = "Dev env for Catppuccin Mocha LUT: ImageMagick + Python (Pillow) with a generator tool";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
|
||||||
|
# Python environment with Pillow
|
||||||
|
pythonEnv = pkgs.python3.withPackages (ps: [ ps.pillow ]);
|
||||||
|
|
||||||
|
# Small helper that writes the LUT (256x1), a preview, and a palette.txt
|
||||||
|
|
||||||
|
in {
|
||||||
|
# `nix develop` (or `nix-shell` via legacy) drops you into this environment
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
packages = [
|
||||||
|
# ImageMagick: on most channels this provides `magick` (v7). If not, you'll have `convert`.
|
||||||
|
pkgs.imagemagick
|
||||||
|
pythonEnv
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
echo
|
||||||
|
echo "Catppuccin Mocha dev shell ready."
|
||||||
|
echo "Generate assets into current dir:"
|
||||||
|
echo " make-mocha-assets ."
|
||||||
|
echo
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# So you can also `nix run .` to execute the generator
|
||||||
|
|
||||||
|
apps.default = {
|
||||||
|
type = "app";
|
||||||
|
};
|
||||||
|
|
||||||
|
formatter = pkgs.nixpkgs-fmt;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
22
wallpapers/mocha.py
Normal file
22
wallpapers/mocha.py
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
from PIL import Image
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
stops = [
|
||||||
|
"#1e1e2e", "#eba0ac", "#f38ba8", "#fab387", "#f9e2af",
|
||||||
|
"#a6e3a1", "#94e2d5", "#89dceb", "#74c7ec", "#89b4fa",
|
||||||
|
"#b4befe", "#cdd6f4"
|
||||||
|
]
|
||||||
|
|
||||||
|
def hex_to_rgb(h): return tuple(int(h[i:i+2], 16) for i in (1,3,5))
|
||||||
|
width, height = 256, 1
|
||||||
|
lut = Image.new("RGB", (width, height))
|
||||||
|
pixels = lut.load()
|
||||||
|
n = len(stops) - 1
|
||||||
|
seg = width / n
|
||||||
|
for x in range(width):
|
||||||
|
i = min(int(x / seg), n-1)
|
||||||
|
t = (x - i * seg) / seg
|
||||||
|
c0, c1 = np.array(hex_to_rgb(stops[i])), np.array(hex_to_rgb(stops[i+1]))
|
||||||
|
pixels[x,0] = tuple(np.round((1-t)*c0 + t*c1).astype(int))
|
||||||
|
lut.save("catppuccin_mocha_lut.png")
|
||||||
|
|
||||||
BIN
wallpapers/tux.catppuccin-mocha.jpg
Normal file
BIN
wallpapers/tux.catppuccin-mocha.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
BIN
wallpapers/tux.jpg
Normal file
BIN
wallpapers/tux.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 175 KiB |
Loading…
Add table
Add a link
Reference in a new issue