mirror of
https://git.sr.ht/~neverness/ultima
synced 2024-12-02 21:51:11 +00:00
update
This commit is contained in:
commit
bf1386c87f
24
LICENSE
Normal file
24
LICENSE
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
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 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.
|
||||||
|
|
||||||
|
For more information, please refer to <https://unlicense.org>
|
75
README.md
Normal file
75
README.md
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
<div align="center">
|
||||||
|
<h1>❄️【 NIXOS DOTFILES 】❄️</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## [WALLPAPERS](https://git.sr.ht/~azikx/wallpapers) & [USERSTYLES](https://git.sr.ht/~azikx/userstyles)
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Software</summary>
|
||||||
|
|
||||||
|
|
||||||
|
| Name | Desciption |
|
||||||
|
| ------------- | ------------- |
|
||||||
|
| Desktop utilites |
|
||||||
|
| [hyprland](https://github.com/hyprwm/hyprland) | Best window manager |
|
||||||
|
| [kitty](https://github.com/kovidgoyal/kitty) | Very good terminal with image preview |
|
||||||
|
| [foot](https://codeberg.org/dnkl/foot) | Simplest terminal |
|
||||||
|
| [grimblast](https://github.com/hyprwm/contrib/tree/main/grimblast) | Screenshoter |
|
||||||
|
| [nwg-drawer](https://github.com/nwg-piotr/nwg-drawer) | Gnome-like launcher |
|
||||||
|
| [waybar](https://github.com/Alexays/Waybar) | Bar for waylands |
|
||||||
|
| CLI utilites |
|
||||||
|
| [fish](https://github.com/fish-shell/fish-shell) | Just working shell |
|
||||||
|
| [fastfetch](https://github.com/fastfetch-cli/fastfetch) | Fetch for be cool rices |
|
||||||
|
| [yazi](https://github.com/sxyazi/yazi) | Rusted file-manager great!!! |
|
||||||
|
| [joshuto](https://github.com/kamiyaa/joshuto) | Rusted file-manager |
|
||||||
|
| [helix](https://github.com/helix-editor/helix) | Best text editor with vi-like keys |
|
||||||
|
| [micro](https://github.com/zyedidia/micro) | Simplest fucking text editor |
|
||||||
|
| [cava](https://github.com/karlstav/cava) | Sound visualizer |
|
||||||
|
| [eza](https://github.com/eza-community/eza) | Rusted ls with icons |
|
||||||
|
| [lutgen](https://github.com/ozwaldorf/lutgen-rs) | Rusted lut |
|
||||||
|
| [jpegoptim](https://github.com/tjko/jpegoptim) | Low size for jpeg |
|
||||||
|
| [optipng](https://optipng.sourceforge.net) | Low size for png |
|
||||||
|
| [nvtop](https://github.com/Syllo/nvtop) | Top for GPU |
|
||||||
|
| [btop](https://github.com/aristocratos/btop) | Very informated top |
|
||||||
|
| [optinix](https://github.com/hmajid2301/OptiNix) | Search pkgs and options nix |
|
||||||
|
| [trashy](https://github.com/oberblastmeister/trashy) | Trash manager |
|
||||||
|
| [fuc](https://github.com/SUPERCILEX/fuc) | Rusted cp and rm |
|
||||||
|
| [doas](https://wiki.archlinux.org/title/Doas) | Sudo from bsd systems |
|
||||||
|
| GUI utilites |
|
||||||
|
| [floorp](https://github.com/Floorp-Projects/Floorp) | One of best browser on FF |
|
||||||
|
| [zen](https://github.com/zen-browser/desktop) | Stylish and modern |
|
||||||
|
| [bottles](https://github.com/bottlesdevs/Bottles) | Wine launcher |
|
||||||
|
| [nemo](https://github.com/linuxmint/nemo) | File manager from Cinnamon |
|
||||||
|
| [obsidian](https://obsidian.md) | Markdown editor |
|
||||||
|
| [komikku](https://valos.gitlab.io/Komikku) | Manga/comix reader |
|
||||||
|
| [mousai](https://github.com/SeaDve/Mousai) | Recognizer for songs |
|
||||||
|
| [onlyoffice](https://github.com/ONLYOFFICE/DesktopEditors) | Office suite |
|
||||||
|
| [prismlauncher](https://github.com/PrismLauncher/PrismLauncher) | Fuckm all my homies plays this shit man |
|
||||||
|
| [vesktop](https://github.com/Vencord/Vesktop) | Wayland Discord client |
|
||||||
|
| [qbittorrent](https://github.com/qbittorrent/qBittorrent) | Torrents))))) hahah)))) |
|
||||||
|
| [ayugram](https://github.com/AyuGram/AyuGramDesktop) | Telegram client with ghost mode |
|
||||||
|
| [file-Roller](https://gitlab.gnome.org/GNOME/file-roller) | Archiver |
|
||||||
|
| [mpv](https://github.com/mpv-player/mpv) | Simplest video player |
|
||||||
|
| [anime4k](https://github.com/bloc97/Anime4K) | Anime upscaler |
|
||||||
|
| [swayimg](https://github.com/artemsen/swayimg) | Simple image viewer |
|
||||||
|
| Misc |
|
||||||
|
| [nix-tree](https://github.com/utdemir/nix-tree) | Tree for your generations&derivations |
|
||||||
|
| [prefetch-github](https://github.com/seppeljordan/nix-prefetch-github) | Tool for fetching github repo |
|
||||||
|
| [tenki](https://github.com/ckaznable/tenki) | TUI clock with effects |
|
||||||
|
| [confetty](https://github.com/maaslalani/confetty) | Confetty and fireworks in terminal |
|
||||||
|
| [jetbrains](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/JetBrainsMono) | Nerded JetBrains |
|
||||||
|
- IDK WHAT ALSO DUDES
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
![aye](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/workst/fetch.png)
|
||||||
|
|
||||||
|
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/workst/zen.png)
|
||||||
|
|
||||||
|
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/workst/btop.png)
|
||||||
|
|
||||||
|
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/workst/yazi.png)
|
||||||
|
|
||||||
|
|
||||||
|
#### ENGLISH OR SPANISH??? WHOEVER MOVES IS GAY)))))))
|
||||||
|
#### THANKS FOR [hezaki](https://codeberg.org/Hezaki/Touka/), [maxmurr](https://github.com/TheMaxMur/NixOS-Configuration), [artem](https://github.com/ArtemChandragupta/NixFlake)
|
992
flake.lock
Normal file
992
flake.lock
Normal file
|
@ -0,0 +1,992 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"aquamarine": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"hyprwayland-scanner": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730968822,
|
||||||
|
"narHash": "sha256-NocDjINsh6ismkhb0Xr6xPRksmhuB2WGf8ZmXMhxu7Y=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "aquamarine",
|
||||||
|
"rev": "a49bc3583ff223f426cb3526fdaa4bcaa247ec14",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "aquamarine",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16": {
|
||||||
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708890466,
|
||||||
|
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-fish": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1622559957,
|
||||||
|
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-helix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725860795,
|
||||||
|
"narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716150083,
|
||||||
|
"narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731549112,
|
||||||
|
"narHash": "sha256-c9I3i1CwZ10SoM5npQQVnfwgvB86jAS3lT4ZqkRoSOI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "5fd852c4155a689098095406500d0ae3d04654a8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox-addons": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"lastModified": 1731470588,
|
||||||
|
"narHash": "sha256-radsH6TieMS9S2+NQgWOV+Md6/Kz7lD+Q1GEmIxvjCY=",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"rev": "6cfc4ff20b755e675848c0417da3017a92a206e1",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "pkgs/firefox-addons",
|
||||||
|
"owner": "rycee",
|
||||||
|
"repo": "nur-expressions",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730504689,
|
||||||
|
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730504689,
|
||||||
|
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1629284811,
|
||||||
|
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": [
|
||||||
|
"stylix",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fromYaml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689549921,
|
||||||
|
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"pre-commit-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": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713702291,
|
||||||
|
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GNOME",
|
||||||
|
"ref": "46.1",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731235328,
|
||||||
|
"narHash": "sha256-NjavpgE9/bMe/ABvZpyHIUeYF1mqR5lhaep3wB79ucs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "60bb110917844d354f3c18e05450606a435d2d10",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724435763,
|
||||||
|
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprcursor": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728669738,
|
||||||
|
"narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"aquamarine": "aquamarine",
|
||||||
|
"hyprcursor": "hyprcursor",
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
"hyprlang": "hyprlang",
|
||||||
|
"hyprutils": "hyprutils",
|
||||||
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
|
"systems": "systems",
|
||||||
|
"xdph": "xdph"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731425185,
|
||||||
|
"narHash": "sha256-/v5mz2LKOsBjwW9M+2kg0jVhpkFNIAvM/fUDy3OiOj4=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"rev": "bb160cfe377da2d2b2e4431a3399fa60114f3911",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728345020,
|
||||||
|
"narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "a7c183800e74f337753de186522b9017a07a8cee",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728168612,
|
||||||
|
"narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprutils": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731163338,
|
||||||
|
"narHash": "sha256-Qflei0JBeqQ0c8jxA8e982xAxJvfMwfx4Aci2eJi84s=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprutils",
|
||||||
|
"rev": "60d3dece30f98e8ad85131829c8529950630d6bc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprutils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprwayland-scanner": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726874836,
|
||||||
|
"narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwayland-scanner",
|
||||||
|
"rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprwayland-scanner",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-gaming": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"umu": "umu"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731375435,
|
||||||
|
"narHash": "sha256-O2piDr6aQmJd7USZkehOKTZale6jlG+DkoxEVRiu8Iw=",
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"rev": "e9adb42d82ec425ff6218b6e45feb6a1a8eaddb0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731403644,
|
||||||
|
"narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "f6581f1c3b137086e42a08a906bdada63045f991",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730785428,
|
||||||
|
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730504152,
|
||||||
|
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730504152,
|
||||||
|
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730741070,
|
||||||
|
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731239293,
|
||||||
|
"narHash": "sha256-q2yjIWFFcTzp5REWQUOU9L6kHdCDmFDpqeix86SOvDc=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9256f7c71a195ebe7a218043d9f93390d49e6884",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730958623,
|
||||||
|
"narHash": "sha256-JwQZIGSYnRNOgDDoIgqKITrPVil+RMWHsZH1eE1VGN0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "85f7e662eda4fa3a995556527c87b2524b691933",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731139594,
|
||||||
|
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725194671,
|
||||||
|
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731494868,
|
||||||
|
"narHash": "sha256-gFzX+e1ATJmhjOMvbBmqf1v4WgMz770dZhtGN4dZtng=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "4b0e599bebf4bdf6725cdf8036a335096bf13097",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nypkgs": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726657437,
|
||||||
|
"narHash": "sha256-eBeVOFceQkYfWHAwdQ+aM8vLAbsuuWUgek2f6dFBTl0=",
|
||||||
|
"owner": "yunfachi",
|
||||||
|
"repo": "nypkgs",
|
||||||
|
"rev": "698ab4159dc38affee2fc5886468af139de8d95e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "yunfachi",
|
||||||
|
"repo": "nypkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre-commit-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730814269,
|
||||||
|
"narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "d70155fdc00df4628446352fc58adc640cd705c2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"disko": "disko",
|
||||||
|
"firefox-addons": "firefox-addons",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"hyprland": "hyprland",
|
||||||
|
"nix-gaming": "nix-gaming",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
|
"nur": "nur",
|
||||||
|
"nypkgs": "nypkgs",
|
||||||
|
"spicetify-nix": "spicetify-nix",
|
||||||
|
"stylix": "stylix",
|
||||||
|
"walls": "walls",
|
||||||
|
"zen-browser": "zen-browser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spicetify-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731471404,
|
||||||
|
"narHash": "sha256-xrqZLeXOI5qm90iN5sgyINMU2621jf+WBMJivpTNEWc=",
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"rev": "c80ea8541d55731f143828a574e00d50553e9c7c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "spicetify-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stylix": {
|
||||||
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
|
"base16-fish": "base16-fish",
|
||||||
|
"base16-helix": "base16-helix",
|
||||||
|
"base16-vim": "base16-vim",
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"gnome-shell": "gnome-shell",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"systems": "systems_2",
|
||||||
|
"tinted-foot": "tinted-foot",
|
||||||
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
"tinted-tmux": "tinted-tmux"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731657386,
|
||||||
|
"narHash": "sha256-Mm/JL8tFUS1SOmmZDPcswExUxzw0VpHcEyZI1h58CGA=",
|
||||||
|
"owner": "danth",
|
||||||
|
"repo": "stylix",
|
||||||
|
"rev": "5ab1207b2fdeb5a022f2dd7cccf6be760f1b150f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "danth",
|
||||||
|
"repo": "stylix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-foot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726913040,
|
||||||
|
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-kitty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716423189,
|
||||||
|
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-tmux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696725902,
|
||||||
|
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"umu": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-gaming",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"dir": "packaging/nix",
|
||||||
|
"lastModified": 1730836236,
|
||||||
|
"narHash": "sha256-8jrg1DQrgYVaO4hpPRxRTAVluo8cE1Lcuvyv2EXuXpA=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "90352466d502c40e147cfd11a428dde6c2899ab3",
|
||||||
|
"revCount": 833,
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "packaging/nix",
|
||||||
|
"submodules": true,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"walls": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732099728,
|
||||||
|
"narHash": "sha256-UYWN12WMXGMj73phfN3vu3t0bXZZFFkmyPQAphTu5/M=",
|
||||||
|
"owner": "~neverness",
|
||||||
|
"repo": "wallpapers",
|
||||||
|
"rev": "f8d6552d521b6ed4075a0d3e427a1263749ef78f",
|
||||||
|
"type": "sourcehut"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "~neverness",
|
||||||
|
"ref": "main",
|
||||||
|
"repo": "wallpapers",
|
||||||
|
"type": "sourcehut"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xdph": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-protocols"
|
||||||
|
],
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"hyprutils": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"hyprwayland-scanner": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730743262,
|
||||||
|
"narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zen-browser": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731281366,
|
||||||
|
"narHash": "sha256-GALaKG3LyiYw4EdFxSwJidgLHgaDsTuic5uiJlkpdrc=",
|
||||||
|
"owner": "ch4og",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"rev": "d7c020d6b192bfa040a58efaf62be74f9155d1a0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ch4og",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
49
flake.nix
Normal file
49
flake.nix
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # UNSTABLE
|
||||||
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; # STABLE
|
||||||
|
nur.url = "github:nix-community/NUR"; # NUR
|
||||||
|
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE
|
||||||
|
# impermanence.url = "github:nix-community/impermanence"; # IMPERMAN
|
||||||
|
flake-parts.url = "github:hercules-ci/flake-parts"; # PARTS
|
||||||
|
nix-gaming.url = "github:fufexan/nix-gaming"; # GAMING
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland"; # HYPRLAND
|
||||||
|
stylix.url = "github:danth/stylix"; # STYLIX
|
||||||
|
|
||||||
|
home-manager = { # HM
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
disko = {
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
nypkgs = {
|
||||||
|
url = "github:yunfachi/nypkgs";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
zen-browser = {
|
||||||
|
url = "github:ch4og/zen-browser-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
spicetify-nix = { # SPOTIFY
|
||||||
|
url = "github:Gerg-L/spicetify-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
firefox-addons = { # FIREFOX
|
||||||
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
walls = { # WALLS
|
||||||
|
url = "sourcehut:~neverness/wallpapers?ref=main";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs: # THIS IS SEPARATES OUTPUTS FROM FLAKE
|
||||||
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
|
systems = [ "x86_64-linux" ];
|
||||||
|
imports = [ ./workst ];
|
||||||
|
};
|
||||||
|
}
|
39
laptop/default.nix
Normal file
39
laptop/default.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
let
|
||||||
|
hostName = "wyswort";
|
||||||
|
userName = "megamozg";
|
||||||
|
in {
|
||||||
|
flake = let
|
||||||
|
args = rec { # IMPORTS LET_IN FROM HOSTS TO ALL SYSTEM
|
||||||
|
# DIRECTORIES
|
||||||
|
flakeDir = "/persist/flake";
|
||||||
|
homeDir = "${flakeDir}/modules/home";
|
||||||
|
nixosDir = "${flakeDir}/modules/nixos";
|
||||||
|
# OTHER
|
||||||
|
True = { enable = true; };
|
||||||
|
False = { enable = false; };
|
||||||
|
wm = {
|
||||||
|
sh = "Hyprland";
|
||||||
|
bar = "hyprland";
|
||||||
|
};
|
||||||
|
# SYSINFO
|
||||||
|
stateVersion = "24.05"; # IDK
|
||||||
|
platform = "x86_64-linux";
|
||||||
|
inherit inputs hostName userName;
|
||||||
|
};
|
||||||
|
in with inputs; {
|
||||||
|
nixosConfigurations = {
|
||||||
|
${hostName} = nixpkgs.lib.nixosSystem {
|
||||||
|
modules = [ ./host ];
|
||||||
|
specialArgs = args;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeConfigurations = {
|
||||||
|
${userName} = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.${platform};
|
||||||
|
modules = [ ./home ];
|
||||||
|
extraSpecialArgs = args;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
73
laptop/home/default.nix
Normal file
73
laptop/home/default.nix
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
{ userName, True, False, ... }: {
|
||||||
|
imports = [ ./parts ../../modules/home ];
|
||||||
|
module = {
|
||||||
|
programs = { # PROGRAMS
|
||||||
|
cli = { # CLI PROGRAMS
|
||||||
|
anicli = True;
|
||||||
|
bat = True;
|
||||||
|
cava = True;
|
||||||
|
eza = True;
|
||||||
|
fetch = True;
|
||||||
|
fzf = True;
|
||||||
|
git = True // {
|
||||||
|
name = "azikx";
|
||||||
|
email = "irongidra@gmail.com";
|
||||||
|
path = "/home/${userName}/.flake";
|
||||||
|
};
|
||||||
|
helix = True;
|
||||||
|
micro = False;
|
||||||
|
nixvim = False;
|
||||||
|
rmpc = False;
|
||||||
|
top = True;
|
||||||
|
yazi = True;
|
||||||
|
zoxide = True;
|
||||||
|
};
|
||||||
|
gui = { # GUI PROGRAMS
|
||||||
|
floorp = False;
|
||||||
|
mpv = True;
|
||||||
|
obs = False;
|
||||||
|
qbittorrent = True;
|
||||||
|
spotify = True;
|
||||||
|
swayimg = True;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
shells = { # SHELLS
|
||||||
|
alias = True;
|
||||||
|
fish = True;
|
||||||
|
nushell = False;
|
||||||
|
tmux = False;
|
||||||
|
zsh = False;
|
||||||
|
starship = False;
|
||||||
|
var = True;
|
||||||
|
};
|
||||||
|
themes = { # THEMING ENV
|
||||||
|
gtk = True // { # GTK APPS
|
||||||
|
icon = "adwaita";
|
||||||
|
};
|
||||||
|
qt = True; # QT APPS
|
||||||
|
stylix = True // { # ALL_OVER
|
||||||
|
image = "epic";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wm = { # WINDOW MANAGER
|
||||||
|
hyprland = True;
|
||||||
|
sway = False;
|
||||||
|
terminals = { # TERMINALS
|
||||||
|
kitty = True;
|
||||||
|
foot = False;
|
||||||
|
};
|
||||||
|
misc = { # IDK
|
||||||
|
mako = True;
|
||||||
|
waybar = True;
|
||||||
|
nwg = True;
|
||||||
|
wob = False;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
misc = { # MISC MODULES
|
||||||
|
home-manager = True;
|
||||||
|
dconf = True;
|
||||||
|
nix = True;
|
||||||
|
xdg = True;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
62
laptop/home/parts/alias.nix
Normal file
62
laptop/home/parts/alias.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
module.shells.alias = with pkgs; {
|
||||||
|
e = "$EDITOR";
|
||||||
|
c = "clear";
|
||||||
|
x = "exit";
|
||||||
|
|
||||||
|
# RUSTED CP & RM
|
||||||
|
cp = "${fuc}/bin/cpz";
|
||||||
|
rm = "${fuc}/bin/rmz";
|
||||||
|
|
||||||
|
# NH HELPER
|
||||||
|
nhs = "${nh}/bin/nh home switch";
|
||||||
|
nos = "${nh}/bin/nh os switch";
|
||||||
|
nca = "${nh}/bin/nh clean all";
|
||||||
|
|
||||||
|
# NIX TOOLS
|
||||||
|
nurl = "${nurl}/bin/nurl";
|
||||||
|
nxU = "${nix}/bin/nix flake lock --update-input";
|
||||||
|
nxu = "${nix}/bin/nix flake update";
|
||||||
|
nxt = "${nix-tree}/bin/nix-tree";
|
||||||
|
|
||||||
|
# USEFUL
|
||||||
|
ca = "${cava}/bin/cava";
|
||||||
|
y = "${yazi}/bin/yazi";
|
||||||
|
cat = "${bat}/bin/bat";
|
||||||
|
pmx = "${pulsemixer}/bin/pulsemixer";
|
||||||
|
blt = "${bluetuith}/bin/bluetuith";
|
||||||
|
ff = "${fastfetch}/bin/fastfetch";
|
||||||
|
icat = "${kitty}/bin/kitten icat";
|
||||||
|
of =
|
||||||
|
"${onefetch}/bin/onefetch -d commits churn license head --no-art --no-color-palette -t 5";
|
||||||
|
|
||||||
|
# TOPS
|
||||||
|
btop = "${btop}/bin/btop";
|
||||||
|
ntop = "${nvtopPackages.amd}/bin/nvtop -i";
|
||||||
|
|
||||||
|
# TRASHY
|
||||||
|
tres = "${trashy}/bin/trash restore";
|
||||||
|
tput = "${trashy}/bin/trash put";
|
||||||
|
tempty = "${trashy}/bin/trash empty -all";
|
||||||
|
|
||||||
|
# CLOCK
|
||||||
|
ter =
|
||||||
|
"${tenki}/bin/tenki --mode rain --wind disable --timer-color cyan -f 80";
|
||||||
|
tes =
|
||||||
|
"${tenki}/bin/tenki --mode snow --wind disable --timer-color yellow -f 80";
|
||||||
|
tem =
|
||||||
|
"${tenki}/bin/tenki --mode meteor --wind disable --timer-color red -f 80";
|
||||||
|
|
||||||
|
# VPN
|
||||||
|
vpn = "${openvpn}/bin/openvpn";
|
||||||
|
|
||||||
|
# IMAGES
|
||||||
|
imgmag = "${imagemagick}/bin/imagemagick";
|
||||||
|
jpgop = "${jpegoptim}/bin/jpegoptim";
|
||||||
|
pngop = "${optipng}/bin/optipng";
|
||||||
|
|
||||||
|
# LUTGEN
|
||||||
|
lut = "${lutgen}/bin/lutgen apply -p paradise";
|
||||||
|
lutall = "${lutgen}/bin/lutgen apply -p paradise ./*";
|
||||||
|
};
|
||||||
|
}
|
1
laptop/home/parts/default.nix
Normal file
1
laptop/home/parts/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./alias.nix ./hyprland.nix ./pkgs.nix ./sway.nix ]; }
|
37
laptop/home/parts/hyprland.nix
Normal file
37
laptop/home/parts/hyprland.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ pkgs, inputs, ... }: {
|
||||||
|
module.wm.hyprland = with pkgs;
|
||||||
|
with inputs; {
|
||||||
|
autostart = [ "${mako}/bin/mako" "${waybar}/bin/waybar" ];
|
||||||
|
programs = let
|
||||||
|
zen = zen-browser.packages."${system}".specific;
|
||||||
|
kit = "${kitty}/bin/kitty";
|
||||||
|
pic = "$(xdg-user-dir PICTURES)/$(date +'scr_%d-%m-%y|%H:%M:%S.png')";
|
||||||
|
in [
|
||||||
|
# PROGRAMS
|
||||||
|
"$m $s, $sp, $ex, ${killall}/bin/killall -SIGUSR1 .waybar-wrapped"
|
||||||
|
|
||||||
|
"$m, $rt, $ex, ${kit} -T Terminal"
|
||||||
|
"$m $s, $rt, $ex, ${kit} --class=termfloat -T Terminal"
|
||||||
|
|
||||||
|
"$m, $tb, $ex, ${nwg-drawer}/bin/nwg-drawer -ovl -nocats -nofs -d -c 5 -mb -49"
|
||||||
|
|
||||||
|
"$m, V, $ex, ${_64gram}/bin/telegram-desktop"
|
||||||
|
"$m $s, V, $ex, ${vesktop}/bin/vesktop"
|
||||||
|
"$m $a, V, $ex, ${qbittorrent-enhanced}/bin/qbittorrent"
|
||||||
|
|
||||||
|
"$m, B, $ex, ${zen}/bin/zen"
|
||||||
|
"$m $s, B, $ex, ${tor-browser}/bin/tor-browser"
|
||||||
|
|
||||||
|
"$m, N, $ex, ${kit} -T Explorer yazi"
|
||||||
|
"$m $s, N, $ex, ${nemo}/bin/nemo"
|
||||||
|
|
||||||
|
"$m, U, $ex, ${onlyoffice-bin}/bin/onlyoffice-desktopeditors"
|
||||||
|
"$m $s, U, $ex, ${libreoffice-fresh}/lib/libreoffice/program/soffice.bin"
|
||||||
|
"$m $a, U, $ex, ${komikku}/bin/komikku"
|
||||||
|
|
||||||
|
" , $PR, $ex, ${grimblast}/bin/grimblast copysave area"
|
||||||
|
"$s, $PR, $ex, ${grimblast}/bin/grimblast copysave output ${pic}"
|
||||||
|
"$a, $PR, $ex, ${grimblast}/bin/grimblast copysave active ${pic}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
23
laptop/home/parts/pkgs.nix
Normal file
23
laptop/home/parts/pkgs.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ pkgs, inputs, homeDir, ... }: {
|
||||||
|
imports = [ inputs.nur.hmModules.nur ];
|
||||||
|
module.programs = {
|
||||||
|
gui.pkgs = with pkgs; [ nemo-fileroller ];
|
||||||
|
cli.pkgs = with pkgs; [
|
||||||
|
home-manager
|
||||||
|
|
||||||
|
openvpn
|
||||||
|
nix-tree
|
||||||
|
nix-prefetch-github
|
||||||
|
|
||||||
|
tenki
|
||||||
|
trashy
|
||||||
|
fuc
|
||||||
|
zip
|
||||||
|
atool
|
||||||
|
|
||||||
|
imagemagick
|
||||||
|
jpegoptim
|
||||||
|
optipng
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
24
laptop/home/parts/sway.nix
Normal file
24
laptop/home/parts/sway.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, inputs, config, False, ... }:
|
||||||
|
let
|
||||||
|
# MODIFICATORS
|
||||||
|
m = config.wayland.windowManager.sway.config.modifier;
|
||||||
|
s = "Shift";
|
||||||
|
a = "Alt";
|
||||||
|
ex = "exec";
|
||||||
|
in with pkgs; {
|
||||||
|
module.wm.sway = with inputs; {
|
||||||
|
bars = False;
|
||||||
|
programs = let
|
||||||
|
zen = zen-browser.packages."${system}".specific;
|
||||||
|
kit = "${kitty}/bin/kitty";
|
||||||
|
in {
|
||||||
|
"${m}+b" = "${ex} ${zen}/bin/zen";
|
||||||
|
"${m}+${s}+b" = "${ex} ${floorp}/bin/floorp";
|
||||||
|
"${m}+v" = "${ex} ${_64gram}/bin/telegram-desktop";
|
||||||
|
"${m}+n" = "${ex} ${kit} -T Explorer ${yazi}/bin/yazi";
|
||||||
|
"${m}+u" = "${ex} ${onlyoffice-bin}/bin/onlyoffice-desktopeditors";
|
||||||
|
"${m}+${s}+u" =
|
||||||
|
"${ex} ${libreoffice-fresh}/lib/libreoffice/program/soffice.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
50
laptop/host/default.nix
Normal file
50
laptop/host/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{ lib, stateVersion ? null, userName, True, False, ... }: {
|
||||||
|
imports = [ ./parts ../../modules/nixos ];
|
||||||
|
module = {
|
||||||
|
theme.stylix = True;
|
||||||
|
# HARDWARE MODULES
|
||||||
|
hardware = {
|
||||||
|
bluetooth = True;
|
||||||
|
boot = True;
|
||||||
|
cpu = True;
|
||||||
|
gpu = True;
|
||||||
|
network = True;
|
||||||
|
security = True;
|
||||||
|
sound = True;
|
||||||
|
};
|
||||||
|
# SERVICES MODULES
|
||||||
|
services = {
|
||||||
|
autocpu = True;
|
||||||
|
dbus = True;
|
||||||
|
getty = True;
|
||||||
|
gvfs = True;
|
||||||
|
mpd = False;
|
||||||
|
polkit = True;
|
||||||
|
tailscale = True;
|
||||||
|
tlp = True;
|
||||||
|
zram = True // { algo = "zstd"; };
|
||||||
|
};
|
||||||
|
# PROGRAMS MODULES
|
||||||
|
programs = {
|
||||||
|
common = True;
|
||||||
|
hyprland = True;
|
||||||
|
steam = False;
|
||||||
|
torrserver = False;
|
||||||
|
};
|
||||||
|
misc = {
|
||||||
|
console = False;
|
||||||
|
locales = True // { zone = "Asia/Chita"; };
|
||||||
|
minimal = True;
|
||||||
|
power = True;
|
||||||
|
system76 = True;
|
||||||
|
trackpoint = True;
|
||||||
|
users = True // { shell = "fish"; };
|
||||||
|
variables = True;
|
||||||
|
zapret = False;
|
||||||
|
nix = True;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
system.stateVersion = stateVersion;
|
||||||
|
}
|
1
laptop/host/parts/default.nix
Normal file
1
laptop/host/parts/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./disks.nix ]; }
|
17
laptop/host/parts/disks.nix
Normal file
17
laptop/host/parts/disks.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ modulesPath, ... }: {
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
fileSystems = {
|
||||||
|
"/" = { # ROOT
|
||||||
|
device = "/dev/disk/by-uuid/9913d333-cd8d-4960-8e3c-4af764b9a9ca";
|
||||||
|
label = "nixos";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=@" "compress=zstd" ];
|
||||||
|
};
|
||||||
|
"/boot" = { # EFI
|
||||||
|
device = "/dev/disk/by-uuid/8547-1299";
|
||||||
|
label = "esp";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
1
modules/home/default.nix
Normal file
1
modules/home/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./misc ./programs ./shells ./themes ./wm ]; }
|
44
modules/home/misc/dconf.nix
Normal file
44
modules/home/misc/dconf.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.misc.dconf;
|
||||||
|
in {
|
||||||
|
options = { module.misc.dconf = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
dconf = True // {
|
||||||
|
settings = let
|
||||||
|
gnome = "org/gnome/desktop";
|
||||||
|
nemo = "org/nemo";
|
||||||
|
in {
|
||||||
|
"${gnome}/wm/preferences" = { button-layout = ""; };
|
||||||
|
"${gnome}/applications/terminal" = { exec = "kitty"; };
|
||||||
|
"${nemo}/icon-view" = {
|
||||||
|
default-zoom-level = "larger";
|
||||||
|
captions = [ "none" "none" "none" ];
|
||||||
|
};
|
||||||
|
"${nemo}/window-state" = {
|
||||||
|
network-expanded = false;
|
||||||
|
start-with-sidebar = true;
|
||||||
|
start-with-status-bar = false;
|
||||||
|
start-with-menu-bar = false;
|
||||||
|
};
|
||||||
|
"${nemo}/preferences" = {
|
||||||
|
disable-menu-warning = true;
|
||||||
|
show-computer-icon-toolbar = true;
|
||||||
|
show-edit-icon-toolbar = false;
|
||||||
|
show-home-icon-toolbar = true;
|
||||||
|
show-icon-view-icon-toolbar = false;
|
||||||
|
show-list-view-icon-toolbar = false;
|
||||||
|
show-next-icon-toolbar = false;
|
||||||
|
show-previous-icon-toolbar = false;
|
||||||
|
show-search-icon-toolbar = false;
|
||||||
|
show-up-icon-toolbar = false;
|
||||||
|
thumbnail-limit = "2147483648";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
4
modules/home/misc/default.nix
Normal file
4
modules/home/misc/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
imports = [ ./home-manager ./markdown ./minimal ./xdg ./dconf.nix ./nix.nix ];
|
||||||
|
}
|
||||||
|
|
18
modules/home/misc/home-manager/default.nix
Normal file
18
modules/home/misc/home-manager/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ lib, config, userName, stateVersion ? null, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.misc.home-manager;
|
||||||
|
in {
|
||||||
|
options = { module.misc.home-manager = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.home-manager = True;
|
||||||
|
home = {
|
||||||
|
username = userName;
|
||||||
|
homeDirectory = "/home/${userName}";
|
||||||
|
stateVersion = stateVersion;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
166
modules/home/misc/markdown/default.nix
Normal file
166
modules/home/misc/markdown/default.nix
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.misc.markdown;
|
||||||
|
in {
|
||||||
|
options = { module.misc.markdown = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
# VIEWERS
|
||||||
|
glow
|
||||||
|
# PRESENTATION
|
||||||
|
slides # VERY SIMPLE
|
||||||
|
presenterm # WITH IMAGES AND OTHER STUFF
|
||||||
|
# TOOLS
|
||||||
|
graph-easy # CREATE GRAPHS
|
||||||
|
];
|
||||||
|
};
|
||||||
|
xdg.configFile."mdtheme.json".text = with config.lib.stylix.colors; ''
|
||||||
|
{
|
||||||
|
"document": { "color": "#${base06}", "margin": 2 },
|
||||||
|
"block_quote": { "indent": 1, "indent_token": " │ " },
|
||||||
|
"list": { "level_indent": 2, "margin": 4 },
|
||||||
|
"paragraph": {
|
||||||
|
"color": "#${base06}",
|
||||||
|
"background_color": "#${base00}",
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"heading": {
|
||||||
|
"block_suffix": "\n",
|
||||||
|
"color": "#${base0E}",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"h1": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base08}",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"h2": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base09}",
|
||||||
|
"bold": true,
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"h3": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base0B}",
|
||||||
|
"bold": true,
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"h4": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base0C}",
|
||||||
|
"bold": true,
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"h5": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base0D}",
|
||||||
|
"bold": true,
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"h6": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#${base00}",
|
||||||
|
"background_color": "#${base0E}",
|
||||||
|
"bold": true,
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"text": {},
|
||||||
|
"strikethrough": { "crossed_out": true },
|
||||||
|
"emph": { "italic": true },
|
||||||
|
"strong": { "bold": true },
|
||||||
|
"hr": {
|
||||||
|
"color": "#${base0D}",
|
||||||
|
"format": "---"
|
||||||
|
},
|
||||||
|
"item": {
|
||||||
|
"block_prefix": "• "
|
||||||
|
},
|
||||||
|
"enumeration": {
|
||||||
|
"block_prefix": ". "
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"ticked": "[✓] ",
|
||||||
|
"unticked": "[✗] "
|
||||||
|
},
|
||||||
|
"link": {
|
||||||
|
"color": "30",
|
||||||
|
"underline": true
|
||||||
|
},
|
||||||
|
"link_text": {
|
||||||
|
"color": "#${base0B}",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"color": "#${base08}",
|
||||||
|
"underline": true
|
||||||
|
},
|
||||||
|
"image_text": {
|
||||||
|
"color": "#${base09}",
|
||||||
|
"format": "{{.text}} →"
|
||||||
|
},
|
||||||
|
"code": { "color": "#${base0D}" },
|
||||||
|
"code_block": {
|
||||||
|
"color": "#${base0E}",
|
||||||
|
"block_prefix": "• ",
|
||||||
|
"margin": 4,
|
||||||
|
"chroma": {
|
||||||
|
"text": { "color": "#${base06}" },
|
||||||
|
"error": { "color": "#${base00}", "background_color": "#${base08}" },
|
||||||
|
"comment": { "color": "#${base02}" },
|
||||||
|
"comment_preproc": { "color": "#${base03}" },
|
||||||
|
"keyword": { "color": "#${base09}" },
|
||||||
|
"keyword_reserved": { "color": "#${base09}" },
|
||||||
|
"keyword_namespace": { "color": "#${base09}" },
|
||||||
|
"keyword_type": { "color": "#${base09}" },
|
||||||
|
"operator": { "color": "#${base0B}" },
|
||||||
|
"punctuation": { "color": "#${base0C}" },
|
||||||
|
"name": { "color": "#${base08}" },
|
||||||
|
"name_builtin": { "color": "#${base08}" },
|
||||||
|
"name_tag": { "color": "#${base08}" },
|
||||||
|
"name_attribute": { "color": "#${base08}" },
|
||||||
|
"name_class": { "color": "#${base08}", "underline": true, "bold": true },
|
||||||
|
"name_constant": {},
|
||||||
|
"name_decorator": { "color": "#${base08}" },
|
||||||
|
"name_exception": {},
|
||||||
|
"name_function": { "color": "#${base08}" },
|
||||||
|
"name_other": {},
|
||||||
|
"literal": {},
|
||||||
|
"literal_number": { "color": "#${base0D}" },
|
||||||
|
"literal_date": {},
|
||||||
|
"literal_string": { "color": "#${base0D}" },
|
||||||
|
"literal_string_escape": { "color": "#${base0D}" },
|
||||||
|
"generic_deleted": { "color": "#${base0E}" },
|
||||||
|
"generic_emph": { "italic": true },
|
||||||
|
"generic_inserted": { "color": "#${base0E}" },
|
||||||
|
"generic_strong": { "bold": true },
|
||||||
|
"generic_subheading": { "color": "#${base0E}" },
|
||||||
|
"background": { "background_color": "#${base0E}" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"table": {},
|
||||||
|
"definition_list": {},
|
||||||
|
"definition_term": {},
|
||||||
|
"definition_description": { "block_prefix": "\n🠶 " },
|
||||||
|
"html_block": {},
|
||||||
|
"html_span": {}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
19
modules/home/misc/minimal/default.nix
Normal file
19
modules/home/misc/minimal/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ lib, config, False, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.misc.minimal;
|
||||||
|
in {
|
||||||
|
options = { module.misc.minimal = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
news.display = "silent";
|
||||||
|
programs.man = False;
|
||||||
|
manual = {
|
||||||
|
html = False;
|
||||||
|
json = False;
|
||||||
|
manpages = False;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
37
modules/home/misc/nix.nix
Normal file
37
modules/home/misc/nix.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ pkgs, lib, config, userName, False, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.misc.nix;
|
||||||
|
in {
|
||||||
|
options = { module.misc.nix = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nix;
|
||||||
|
settings = {
|
||||||
|
warn-dirty = false;
|
||||||
|
extra-experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
builders-use-substitutes = true;
|
||||||
|
auto-optimise-store = true;
|
||||||
|
extra-substituters = [
|
||||||
|
"https://nix-gaming.cachix.org" # NIX GAMING
|
||||||
|
"https://hyprland.cachix.org" # HYPRLAND
|
||||||
|
];
|
||||||
|
extra-trusted-public-keys = [
|
||||||
|
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" # NIX GAMING
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" # HYPRLAND
|
||||||
|
];
|
||||||
|
trusted-users = [ "${userName}" "@wheel" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
news.display = "silent";
|
||||||
|
manual = {
|
||||||
|
manpages = False;
|
||||||
|
json = False;
|
||||||
|
html = False;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
36
modules/home/misc/xdg/default.nix
Normal file
36
modules/home/misc/xdg/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.misc.xdg;
|
||||||
|
hmdir = config.home.homeDirectory;
|
||||||
|
in {
|
||||||
|
options = { module.misc.xdg = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./mimeApps.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
xdg = {
|
||||||
|
mime = True;
|
||||||
|
portal = True // {
|
||||||
|
config.common.default = "gtk";
|
||||||
|
extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
userDirs = True // {
|
||||||
|
createDirectories = true;
|
||||||
|
desktop = "${hmdir}/Desktop";
|
||||||
|
documents = "${hmdir}/Documents";
|
||||||
|
download = "${hmdir}/Downloads";
|
||||||
|
music = "${hmdir}/Music";
|
||||||
|
pictures = "${hmdir}/Pictures";
|
||||||
|
publicShare = "${hmdir}/";
|
||||||
|
templates = "${hmdir}/";
|
||||||
|
videos = "${hmdir}/Videos";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
118
modules/home/misc/xdg/mimeApps.nix
Normal file
118
modules/home/misc/xdg/mimeApps.nix
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
{ True, ... }:
|
||||||
|
let ds = "desktop";
|
||||||
|
in {
|
||||||
|
xdg.mimeApps = True // {
|
||||||
|
defaultApplications = {
|
||||||
|
# TEXT FORMATS
|
||||||
|
"text/plain" = "Helix.${ds}";
|
||||||
|
"text/x-cmake" = "Helix.${ds}";
|
||||||
|
"text/markdown" = "Helix.${ds}";
|
||||||
|
"text/rhtml" = "Helix.${ds}";
|
||||||
|
"text/x-tex" = "Helix.${ds}";
|
||||||
|
"text/x-java" = "Helix.${ds}";
|
||||||
|
"text/x-ruby" = "Helix.${ds}";
|
||||||
|
"inode/x-empty" = "Helix.${ds}";
|
||||||
|
"text/x-python" = "Helix.${ds}";
|
||||||
|
"text/x-readme" = "Helix.${ds}";
|
||||||
|
"text/x-markdown" = "Helix.${ds}";
|
||||||
|
"application/json" = "Helix.${ds}";
|
||||||
|
"application/x-ruby" = "Helix.${ds}";
|
||||||
|
"application/x-yaml" = "Helix.${ds}";
|
||||||
|
"application/x-shellscript" = "Helix.${ds}";
|
||||||
|
"application/x-docbook+xml" = "Helix.${ds}";
|
||||||
|
# IMAGE FORMATS
|
||||||
|
"image/avif" = "swayimg.${ds}";
|
||||||
|
"image/gif" = "swayimg.${ds}";
|
||||||
|
"image/heif" = "swayimg.${ds}";
|
||||||
|
"image/jpg" = "swayimg.${ds}";
|
||||||
|
"image/jpeg" = "swayimg.${ds}";
|
||||||
|
"image/jxl" = "swayimg.${ds}";
|
||||||
|
"image/png" = "swayimg.${ds}";
|
||||||
|
"image/bmp" = "swayimg.${ds}";
|
||||||
|
"image/x-eps" = "swayimg.${ds}";
|
||||||
|
"image/x-icns" = "swayimg.${ds}";
|
||||||
|
"image/x-ico" = "swayimg.${ds}";
|
||||||
|
"image/x-portable-bitmap" = "swayimg.${ds}";
|
||||||
|
"image/x-portable-graymap" = "swayimg.${ds}";
|
||||||
|
"image/x-portable-swayimgmap" = "swayimg.${ds}";
|
||||||
|
"image/x-xbitmap" = "swayimg.${ds}";
|
||||||
|
"image/x-xswayimgmap" = "swayimg.${ds}";
|
||||||
|
"image/tiff" = "swayimg.${ds}";
|
||||||
|
"image/x-psd" = "swayimg.${ds}";
|
||||||
|
"image/x-webp" = "swayimg.${ds}";
|
||||||
|
"image/webp" = "swayimg.${ds}";
|
||||||
|
"image/x-tga" = "swayimg.${ds}";
|
||||||
|
"image/svg+xml" = "swayimg.${ds}";
|
||||||
|
# VIDEO FORMATS
|
||||||
|
"video/3gp" = "mpv.${ds}";
|
||||||
|
"video/3gpp" = "mpv.${ds}";
|
||||||
|
"video/3gpp2" = "mpv.${ds}";
|
||||||
|
"video/avi" = "mpv.${ds}";
|
||||||
|
"video/divx" = "mpv.${ds}";
|
||||||
|
"video/dv" = "mpv.${ds}";
|
||||||
|
"video/fli" = "mpv.${ds}";
|
||||||
|
"video/flv" = "mpv.${ds}";
|
||||||
|
"video/mp2t" = "mpv.${ds}";
|
||||||
|
"video/mp4" = "mpv.${ds}";
|
||||||
|
"video/mp4v-es" = "mpv.${ds}";
|
||||||
|
"video/mpeg" = "mpv.${ds}";
|
||||||
|
"video/msvideo" = "mpv.${ds}";
|
||||||
|
"video/ogg" = "mpv.${ds}";
|
||||||
|
"video/quicktime" = "mpv.${ds}";
|
||||||
|
"video/vnd.divx" = "mpv.${ds}";
|
||||||
|
"video/vnd.mpegurl" = "mpv.${ds}";
|
||||||
|
"video/vnd.rn-realvideo" = "mpv.${ds}";
|
||||||
|
"video/webm" = "mpv.${ds}";
|
||||||
|
"video/x-avi" = "mpv.${ds}";
|
||||||
|
"video/x-flv" = "mpv.${ds}";
|
||||||
|
"video/x-m4v" = "mpv.${ds}";
|
||||||
|
"video/x-matroska" = "mpv.${ds}";
|
||||||
|
"video/x-mpeg2" = "mpv.${ds}";
|
||||||
|
"video/x-ms-asf" = "mpv.${ds}";
|
||||||
|
"video/x-msvideo" = "mpv.${ds}";
|
||||||
|
"video/x-ms-wmv" = "mpv.${ds}";
|
||||||
|
"video/x-ms-wmx" = "mpv.${ds}";
|
||||||
|
"video/x-ogm" = "mpv.${ds}";
|
||||||
|
"video/x-ogm+ogg" = "mpv.${ds}";
|
||||||
|
"video/x-theora" = "mpv.${ds}";
|
||||||
|
"video/x-theora+ogg" = "mpv.${ds}";
|
||||||
|
"application/x-matroska" = "mpv.${ds}";
|
||||||
|
# AUDIO FORMATS
|
||||||
|
"audio/aac" = "mpv.${ds}";
|
||||||
|
"audio/mp4" = "mpv.${ds}";
|
||||||
|
"audio/mpeg" = "mpv.${ds}";
|
||||||
|
"audio/mpegurl" = "mpv.${ds}";
|
||||||
|
"audio/ogg" = "mpv.${ds}";
|
||||||
|
"audio/vnd.rn-realaudio" = "mpv.${ds}";
|
||||||
|
"audio/vorbis" = "mpv.${ds}";
|
||||||
|
"audio/x-flac" = "mpv.${ds}";
|
||||||
|
"audio/x-mp3" = "mpv.${ds}";
|
||||||
|
"audio/x-mpegurl" = "mpv.${ds}";
|
||||||
|
"audio/x-ms-wma" = "mpv.${ds}";
|
||||||
|
"audio/x-musepack" = "mpv.${ds}";
|
||||||
|
"audio/x-oggflac" = "mpv.${ds}";
|
||||||
|
"audio/x-pn-realaudio" = "mpv.${ds}";
|
||||||
|
"audio/x-scpls" = "mpv.${ds}";
|
||||||
|
"audio/x-speex" = "mpv.${ds}";
|
||||||
|
"audio/x-vorbis" = "mpv.${ds}";
|
||||||
|
"audio/x-vorbis+ogg" = "mpv.${ds}";
|
||||||
|
"audio/x-wav" = "mpv.${ds}";
|
||||||
|
# WEB
|
||||||
|
"text/html" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/ftp" = "zen.${ds}";
|
||||||
|
"application/xhtml+xml" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/http" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/https" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/chrome" = "zen.${ds}";
|
||||||
|
"application/x-extension-htm" = "zen.${ds}";
|
||||||
|
"application/x-extension-xht" = "zen.${ds}";
|
||||||
|
"application/x-extension-html" = "zen.${ds}";
|
||||||
|
"application/x-extension-shtml" = "zen.${ds}";
|
||||||
|
"application/x-extension-xhtml" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/about" = "zen.${ds}";
|
||||||
|
"x-scheme-handler/unknown" = "zen.${ds}";
|
||||||
|
# OTHER
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
32
modules/home/programs/cli/anicli/anicli-api.nix
Normal file
32
modules/home/programs/cli/anicli/anicli-api.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ lib, fetchPypi, python3Packages, python3 }:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "anicli_api";
|
||||||
|
version = "0.6.11";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
pname = "anicli_api";
|
||||||
|
inherit version;
|
||||||
|
hash = "sha256-1jfPl+Vh7c4zWjQJ/qdvFOhXBvVTX4iqShxoMtbN6j4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = with python3Packages; [ poetry-core ];
|
||||||
|
|
||||||
|
dependencies = with python3Packages; [
|
||||||
|
(python3.withPackages
|
||||||
|
(ps: with ps; [ httpx ] ++ httpx.optional-dependencies.http2))
|
||||||
|
(pkgs.callPackage ./chompjs.nix { })
|
||||||
|
attrs
|
||||||
|
parsel
|
||||||
|
tqdm
|
||||||
|
];
|
||||||
|
|
||||||
|
dontCheckRuntimeDeps = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/vypivshiy/anicli-api";
|
||||||
|
maintainers = with maintainers; [ DADA30000 azikx ];
|
||||||
|
mainProgram = "anicli-api";
|
||||||
|
};
|
||||||
|
}
|
27
modules/home/programs/cli/anicli/anicli-ru.nix
Normal file
27
modules/home/programs/cli/anicli/anicli-ru.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ lib, pkgs, fetchPypi, python3Packages }:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "ani-cli-ru";
|
||||||
|
version = "5.0.12";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
pname = "anicli_ru";
|
||||||
|
inherit version;
|
||||||
|
hash = "sha256-s8uI0ch+SPqthHy+d0jcB6o5/Zqx89JHM68Q00nwCFA=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = with python3Packages; [ hatchling setuptools ];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
python3Packages.hatchling
|
||||||
|
(pkgs.callPackage ./eggella.nix { })
|
||||||
|
(pkgs.callPackage ./anicli-api.nix { })
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/vypivshiy/ani-cli-ru";
|
||||||
|
maintainers = with maintainers; [ DADA30000 azikx ];
|
||||||
|
mainProgram = "anicli-ru";
|
||||||
|
};
|
||||||
|
}
|
23
modules/home/programs/cli/anicli/chompjs.nix
Normal file
23
modules/home/programs/cli/anicli/chompjs.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ lib, pkgs, fetchPypi, python3Packages }:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "chompjs";
|
||||||
|
version = "1.3.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
pname = "chompjs";
|
||||||
|
inherit version;
|
||||||
|
hash = "sha256-isCzF1XpOTSPsq8cwBw1fbUMhU+j1QbOeSGPwV8FaGg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = with python3Packages; [ setuptools ];
|
||||||
|
|
||||||
|
dependencies = with python3Packages; [ setuptools ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/Nykakin/chompjs";
|
||||||
|
maintainers = with maintainers; [ DADA30000 ];
|
||||||
|
mainProgram = "chompjs";
|
||||||
|
};
|
||||||
|
}
|
13
modules/home/programs/cli/anicli/default.nix
Normal file
13
modules/home/programs/cli/anicli/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.anicli;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.anicli = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = [ (pkgs.callPackage ./anicli-ru.nix { }) ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
27
modules/home/programs/cli/anicli/eggella.nix
Normal file
27
modules/home/programs/cli/anicli/eggella.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ lib, pkgs, fetchPypi, python3Packages }:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
pname = "eggella";
|
||||||
|
version = "0.1.7";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
pname = "eggella";
|
||||||
|
inherit version;
|
||||||
|
hash = "sha256-8Vo39BePA86wcLKs/F+u2N7tpIpPrEyEPp3POszy050=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = with python3Packages; [ hatchling setuptools ];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
python3Packages.prompt-toolkit
|
||||||
|
python3Packages.rich
|
||||||
|
python3Packages.typer
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/vypivshiy/eggella";
|
||||||
|
maintainers = with maintainers; [ DADA30000 azikx ];
|
||||||
|
mainProgram = "eggella";
|
||||||
|
};
|
||||||
|
}
|
21
modules/home/programs/cli/bat/default.nix
Normal file
21
modules/home/programs/cli/bat/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.bat;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.bat = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.bat = True // {
|
||||||
|
extraPackages = with pkgs.bat-extras; [
|
||||||
|
# prettybat
|
||||||
|
batwatch
|
||||||
|
batgrep
|
||||||
|
batdiff
|
||||||
|
];
|
||||||
|
config = { wrap = "character"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
26
modules/home/programs/cli/cava/default.nix
Normal file
26
modules/home/programs/cli/cava/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.cava;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.cava = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.cava = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
color = with config.lib.stylix.colors; {
|
||||||
|
gradient = 1;
|
||||||
|
gradient_color_1 = "'#${base0E}'";
|
||||||
|
gradient_color_2 = "'#${base0D}'";
|
||||||
|
gradient_color_3 = "'#${base0C}'";
|
||||||
|
gradient_color_4 = "'#${base0B}'";
|
||||||
|
gradient_color_5 = "'#${base0A}'";
|
||||||
|
gradient_color_6 = "'#${base09}'";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
18
modules/home/programs/cli/default.nix
Normal file
18
modules/home/programs/cli/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./anicli
|
||||||
|
./bat
|
||||||
|
./cava
|
||||||
|
./eza
|
||||||
|
./fetch
|
||||||
|
./fzf
|
||||||
|
./git
|
||||||
|
./helix
|
||||||
|
./micro
|
||||||
|
./rmpc
|
||||||
|
./top
|
||||||
|
./yazi
|
||||||
|
./zoxide
|
||||||
|
./pkgs.nix
|
||||||
|
];
|
||||||
|
}
|
16
modules/home/programs/cli/eza/default.nix
Normal file
16
modules/home/programs/cli/eza/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.eza;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.eza = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.eza = True // {
|
||||||
|
icons = "auto";
|
||||||
|
extraOptions = [ "--group-directories-first" "--icons=always" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
77
modules/home/programs/cli/fetch/default.nix
Normal file
77
modules/home/programs/cli/fetch/default.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.fetch;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.fetch = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ onefetch ];
|
||||||
|
programs.fastfetch = True // {
|
||||||
|
settings = {
|
||||||
|
logo = {
|
||||||
|
type = "builtin";
|
||||||
|
source = "nixos_small";
|
||||||
|
padding = {
|
||||||
|
left = 1;
|
||||||
|
right = 2;
|
||||||
|
top = 1;
|
||||||
|
};
|
||||||
|
color = {
|
||||||
|
"1" = "cyan";
|
||||||
|
"2" = "blue";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
display = {
|
||||||
|
separator = ": ";
|
||||||
|
color = {
|
||||||
|
keys = "cyan";
|
||||||
|
title = "blue";
|
||||||
|
};
|
||||||
|
size = {
|
||||||
|
ndigits = 2;
|
||||||
|
maxPrefix = "GB";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
type = "title";
|
||||||
|
color = {
|
||||||
|
user = "cyan";
|
||||||
|
at = "cyan";
|
||||||
|
host = "cyan";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "uptime";
|
||||||
|
key = "UPT ";
|
||||||
|
format = "{2} hours, {3} mins";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "packages";
|
||||||
|
key = "PKG ";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "shell";
|
||||||
|
key = "SHL ";
|
||||||
|
format = "{6} {4}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "wm";
|
||||||
|
key = "DWM ";
|
||||||
|
format = "{2} / {3}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "memory";
|
||||||
|
key = "MEM ";
|
||||||
|
format = "{} / {}";
|
||||||
|
}
|
||||||
|
{ type = "break"; }
|
||||||
|
{ type = "colors"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
21
modules/home/programs/cli/fzf/default.nix
Normal file
21
modules/home/programs/cli/fzf/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.fzf;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.fzf = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.fzf = True // {
|
||||||
|
defaultOptions = [
|
||||||
|
"--border=rounded"
|
||||||
|
"--info=hidden"
|
||||||
|
"--no-mouse"
|
||||||
|
"--margin=1,49%,1,1"
|
||||||
|
"--padding=0"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
71
modules/home/programs/cli/git/default.nix
Normal file
71
modules/home/programs/cli/git/default.nix
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
{ pkgs, lib, config, flakeDir, True, False, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.programs.cli.git;
|
||||||
|
never = "git@git.sr.ht:~neverness";
|
||||||
|
interval = 300;
|
||||||
|
repo = {
|
||||||
|
ultima = "/persist/flake";
|
||||||
|
wallpapers = "/persist/wallpapers";
|
||||||
|
readme = "/persist/readme";
|
||||||
|
niXtended = "/persist/niXtended";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.programs.cli.git = {
|
||||||
|
enable = mkEnableOption "";
|
||||||
|
path = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
name = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
email = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.git = True // {
|
||||||
|
package = pkgs.gitMinimal;
|
||||||
|
userName = cfg.name;
|
||||||
|
userEmail = cfg.email;
|
||||||
|
extraConfig = {
|
||||||
|
color.ui = true;
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
safe.directory = flakeDir;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.git-sync = False // {
|
||||||
|
repositories = {
|
||||||
|
"ultima" = {
|
||||||
|
inherit interval;
|
||||||
|
uri = "${never}/ultima";
|
||||||
|
path = repo.ultima;
|
||||||
|
};
|
||||||
|
"wallpapers" = {
|
||||||
|
inherit interval;
|
||||||
|
uri = "${never}/wallpapers";
|
||||||
|
path = repo.wallpapers;
|
||||||
|
};
|
||||||
|
"readme" = {
|
||||||
|
inherit interval;
|
||||||
|
uri = "${never}/readme";
|
||||||
|
path = repo.readme;
|
||||||
|
};
|
||||||
|
"niXtended" = {
|
||||||
|
inherit interval;
|
||||||
|
uri = "${never}/niXtended";
|
||||||
|
path = repo.niXtended;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
25
modules/home/programs/cli/helix/binds.nix
Normal file
25
modules/home/programs/cli/helix/binds.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ ... }: {
|
||||||
|
programs.helix.settings.keys = {
|
||||||
|
normal = {
|
||||||
|
y = "yank";
|
||||||
|
Y = "yank_to_clipboard";
|
||||||
|
D = "delete_selection_noyank";
|
||||||
|
space = {
|
||||||
|
space = "file_picker";
|
||||||
|
c = "toggle_comments";
|
||||||
|
f = "file_picker_in_current_directory";
|
||||||
|
F = "file_picker";
|
||||||
|
b = {
|
||||||
|
b = "buffer_picker";
|
||||||
|
n = ":buffer-next";
|
||||||
|
p = ":buffer-previous";
|
||||||
|
d = ":buffer-close";
|
||||||
|
D = ":buffer-close!";
|
||||||
|
O = ":buffer-close-others";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
insert = { };
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
13
modules/home/programs/cli/helix/default.nix
Normal file
13
modules/home/programs/cli/helix/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.helix;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.helix = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./sets.nix ./binds.nix ./langs.nix ./theme.nix ];
|
||||||
|
config =
|
||||||
|
mkIf cfg.enable { programs.helix = True // { defaultEditor = true; }; };
|
||||||
|
}
|
||||||
|
|
109
modules/home/programs/cli/helix/langs.nix
Normal file
109
modules/home/programs/cli/helix/langs.nix
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
indent = {
|
||||||
|
tab-width = 2;
|
||||||
|
unit = " ";
|
||||||
|
};
|
||||||
|
auto-format = true;
|
||||||
|
in {
|
||||||
|
programs.helix = with pkgs; {
|
||||||
|
languages = {
|
||||||
|
language = let prettier = nodePackages_latest.prettier;
|
||||||
|
in [
|
||||||
|
{ # NIX LSP
|
||||||
|
name = "nix";
|
||||||
|
language-servers = [ "nixd" ];
|
||||||
|
formatter.command = "${nixfmt-classic}/bin/nixfmt";
|
||||||
|
indent = indent;
|
||||||
|
inherit auto-format;
|
||||||
|
}
|
||||||
|
{ # FISH LSP
|
||||||
|
name = "fish";
|
||||||
|
language-servers = [ "fish_indent" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter.command = "${fish}/bin/fish_indent";
|
||||||
|
indent = indent;
|
||||||
|
}
|
||||||
|
{ # HTML
|
||||||
|
name = "html";
|
||||||
|
language-servers = [ "vscode-html-language-server" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "html" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ # JSON
|
||||||
|
name = "json";
|
||||||
|
language-servers = [ "vscode-json-language-server" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "json" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ # JSON
|
||||||
|
name = "jsonc";
|
||||||
|
language-servers = [ "vscode-json-language-server" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "json" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ # CSS
|
||||||
|
name = "css";
|
||||||
|
language-servers = [ "vscode-css-language-server" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "css" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ # MARKDOWN
|
||||||
|
name = "markdown";
|
||||||
|
language-servers = [ "marksman" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "markdown" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ # TYPESCRIP
|
||||||
|
name = "typescript";
|
||||||
|
language-servers = [ "typescript" ];
|
||||||
|
inherit auto-format;
|
||||||
|
formatter = {
|
||||||
|
command = "${prettier}/bin/prettier";
|
||||||
|
args = [ "--use-tabs" "--parser" "typescript" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
language-server = let vscode = vscode-langservers-extracted;
|
||||||
|
in {
|
||||||
|
nixd = { command = "${nixd}/bin/nixd"; };
|
||||||
|
fish_indent = { command = "${fish}/bin/fish_indent"; };
|
||||||
|
vscode-html-language-server = {
|
||||||
|
command = "${vscode}/bin/vscode-html-language-server";
|
||||||
|
};
|
||||||
|
vscode-json-language-server = {
|
||||||
|
command = "${vscode}/bin/vscode-json-language-server";
|
||||||
|
};
|
||||||
|
vscode-css-language-server = {
|
||||||
|
command = "${vscode}/bin/vscode-css-language-server";
|
||||||
|
};
|
||||||
|
marksman = { command = "${marksman}/bin/marksman"; };
|
||||||
|
typescript = {
|
||||||
|
command =
|
||||||
|
"${typescript-language-server}/bin/typescript-language-server";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# OTHER LSP
|
||||||
|
yaml-language-server
|
||||||
|
lua-language-server
|
||||||
|
taplo
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
62
modules/home/programs/cli/helix/prettier.nix
Normal file
62
modules/home/programs/cli/helix/prettier.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{ fetchurl, nodeEnv, globalBuildInputs ? [ ], ... }:
|
||||||
|
let
|
||||||
|
sources = {
|
||||||
|
"@taplo/core-0.1.1" = {
|
||||||
|
name = "_at_taplo_slash_core";
|
||||||
|
packageName = "@taplo/core";
|
||||||
|
version = "0.1.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://registry.npmjs.org/@taplo/core/-/core-0.1.1.tgz";
|
||||||
|
sha512 =
|
||||||
|
"BG/zLGf5wiNXGEVPvUAAX/4ilB3PwDUY2o0MV0y47mZbDZ9ad9UK/cIQsILat3bqbPJsALVbU6k3cskNZ3vAQg==";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"@taplo/lib-0.4.0-alpha.2" = {
|
||||||
|
name = "_at_taplo_slash_lib";
|
||||||
|
packageName = "@taplo/lib";
|
||||||
|
version = "0.4.0-alpha.2";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://registry.npmjs.org/@taplo/lib/-/lib-0.4.0-alpha.2.tgz";
|
||||||
|
sha512 =
|
||||||
|
"DV/Re3DPVY+BhBtLZ3dmP4mP6YMLSsgq9qGLXwOV38lvNF/fBlgvQswzlXmzCEefL/3q2eMoefZpOI/+GLuCNA==";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"prettier-3.3.3" = {
|
||||||
|
name = "prettier";
|
||||||
|
packageName = "prettier";
|
||||||
|
version = "3.3.3";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz";
|
||||||
|
sha512 =
|
||||||
|
"i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
prettier-plugin-sh = nodeEnv.buildNodePackage {
|
||||||
|
name = "prettier-plugin-sh";
|
||||||
|
packageName = "prettier-plugin-sh";
|
||||||
|
version = "0.14.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url =
|
||||||
|
"https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-2.0.1.tgz";
|
||||||
|
sha512 =
|
||||||
|
"99z1YOkViECHtXQjGIigd3talI/ybUI1zB3yniAwUrlWBXupNXThB1hM6bwSMUEj2/+tomTlMtT98F5t4s8IWA==";
|
||||||
|
};
|
||||||
|
dependencies = [
|
||||||
|
sources."@taplo/core-0.1.1"
|
||||||
|
sources."@taplo/lib-0.4.0-alpha.2"
|
||||||
|
sources."prettier-3.3.3"
|
||||||
|
];
|
||||||
|
buildInputs = globalBuildInputs;
|
||||||
|
meta = {
|
||||||
|
description = "An opinionated `toml` formatter plugin for Prettier";
|
||||||
|
homepage =
|
||||||
|
"https://github.com/un-ts/prettier/tree/master/packages/prettier";
|
||||||
|
license = "MIT";
|
||||||
|
};
|
||||||
|
production = true;
|
||||||
|
bypassCache = true;
|
||||||
|
reconstructLock = true;
|
||||||
|
};
|
||||||
|
}
|
62
modules/home/programs/cli/helix/sets.nix
Normal file
62
modules/home/programs/cli/helix/sets.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{ ... }: {
|
||||||
|
programs.helix = {
|
||||||
|
settings = {
|
||||||
|
theme = "themo";
|
||||||
|
editor = {
|
||||||
|
line-number = "relative";
|
||||||
|
mouse = true;
|
||||||
|
cursorline = true;
|
||||||
|
auto-completion = true;
|
||||||
|
completion-replace = true;
|
||||||
|
auto-info = true;
|
||||||
|
auto-pairs = true;
|
||||||
|
true-color = true;
|
||||||
|
color-modes = true;
|
||||||
|
bufferline = "multiple";
|
||||||
|
indent-guides = {
|
||||||
|
render = true;
|
||||||
|
character = "»";
|
||||||
|
skip-levels = 0;
|
||||||
|
};
|
||||||
|
cursor-shape = {
|
||||||
|
insert = "bar";
|
||||||
|
normal = "block";
|
||||||
|
select = "underline";
|
||||||
|
};
|
||||||
|
soft-wrap = {
|
||||||
|
enable = true;
|
||||||
|
max-wrap = 25;
|
||||||
|
wrap-indicator = "┆ ";
|
||||||
|
};
|
||||||
|
statusline = {
|
||||||
|
left = [
|
||||||
|
"mode"
|
||||||
|
"spacer"
|
||||||
|
"spinner"
|
||||||
|
"file-name"
|
||||||
|
"file-modification-indicator"
|
||||||
|
"read-only-indicator"
|
||||||
|
];
|
||||||
|
center = [ ];
|
||||||
|
right = [
|
||||||
|
"register"
|
||||||
|
"file-type"
|
||||||
|
"separator"
|
||||||
|
"spacer"
|
||||||
|
"position"
|
||||||
|
"position-percentage"
|
||||||
|
"separator"
|
||||||
|
"total-line-numbers"
|
||||||
|
"spacer"
|
||||||
|
];
|
||||||
|
separator = "|";
|
||||||
|
mode.normal = "NORMAL";
|
||||||
|
mode.insert = "INSERT";
|
||||||
|
mode.select = "SELECT";
|
||||||
|
};
|
||||||
|
file-picker = { hidden = false; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
192
modules/home/programs/cli/helix/theme.nix
Normal file
192
modules/home/programs/cli/helix/theme.nix
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
{ lib, config, ... }: {
|
||||||
|
programs.helix.themes = with config.lib.stylix.colors;
|
||||||
|
lib.mkForce {
|
||||||
|
themo = let
|
||||||
|
BASE00 = "#${base00}";
|
||||||
|
BASE01 = "#${base01}";
|
||||||
|
BASE02 = "#${base02}";
|
||||||
|
BASE03 = "#${base03}";
|
||||||
|
BASE04 = "#${base04}";
|
||||||
|
BASE05 = "#${base05}";
|
||||||
|
BASE06 = "#${base06}";
|
||||||
|
BASE07 = "#${base07}";
|
||||||
|
BASE08 = "#${base08}";
|
||||||
|
BASE09 = "#${base09}";
|
||||||
|
BASE0A = "#${base0A}";
|
||||||
|
BASE0B = "#${base0B}";
|
||||||
|
BASE0C = "#${base0C}";
|
||||||
|
BASE0D = "#${base0D}";
|
||||||
|
BASE0E = "#${base0E}";
|
||||||
|
BASE0F = "#${base0F}";
|
||||||
|
in {
|
||||||
|
"attributes" = BASE09;
|
||||||
|
"comment" = {
|
||||||
|
fg = BASE03;
|
||||||
|
modifiers = [ "italic" ];
|
||||||
|
};
|
||||||
|
"constant" = BASE09;
|
||||||
|
"constant.character.escape" = BASE0C;
|
||||||
|
"constant.numeric" = BASE09;
|
||||||
|
"constructor" = BASE0D;
|
||||||
|
"debug" = BASE03;
|
||||||
|
"diagnostic" = { modifiers = [ "underlined" ]; };
|
||||||
|
"diff.delta" = BASE09;
|
||||||
|
"diff.minus" = BASE08;
|
||||||
|
"diff.plus" = BASE0B;
|
||||||
|
"error" = BASE08;
|
||||||
|
"function" = BASE0D;
|
||||||
|
"hint" = BASE03;
|
||||||
|
"info" = BASE0D;
|
||||||
|
"keyword" = BASE0E;
|
||||||
|
"label" = BASE0E;
|
||||||
|
"namespace" = BASE0E;
|
||||||
|
"operator" = BASE05;
|
||||||
|
"special" = BASE0D;
|
||||||
|
"string" = BASE0B;
|
||||||
|
"type" = BASE0A;
|
||||||
|
"variable" = BASE08;
|
||||||
|
"variable.other.member" = BASE0B;
|
||||||
|
"warning" = BASE09;
|
||||||
|
|
||||||
|
"markup.bold" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"markup.heading" = BASE0D;
|
||||||
|
"markup.italic" = {
|
||||||
|
fg = BASE0E;
|
||||||
|
modifiers = [ "italic" ];
|
||||||
|
};
|
||||||
|
"markup.link.text" = BASE08;
|
||||||
|
"markup.link.url" = {
|
||||||
|
fg = BASE09;
|
||||||
|
modifiers = [ "underlined" "italic" ];
|
||||||
|
};
|
||||||
|
"markup.list" = BASE08;
|
||||||
|
"markup.quote" = BASE0C;
|
||||||
|
"markup.raw" = BASE0B;
|
||||||
|
"markup.strikethrough" = { modifiers = [ "crossed_out" ]; };
|
||||||
|
|
||||||
|
"diagnostic.hint" = { underline = { style = "curl"; }; };
|
||||||
|
"diagnostic.info" = { underline = { style = "curl"; }; };
|
||||||
|
"diagnostic.warning" = { underline = { style = "curl"; }; };
|
||||||
|
"diagnostic.error" = { underline = { style = "curl"; }; };
|
||||||
|
|
||||||
|
"ui.background" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE00;
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.bufferline.separator" = {
|
||||||
|
fg = BASE00;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
"ui.bufferline.active" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE02;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"ui.bufferline" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE00;
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.cursor" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "reversed" ];
|
||||||
|
};
|
||||||
|
"ui.cursor.insert" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "reversed" ];
|
||||||
|
};
|
||||||
|
"ui.cursorline.primary" = {
|
||||||
|
fg = BASE05;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
"ui.cursor.match" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "reversed" ];
|
||||||
|
};
|
||||||
|
"ui.cursor.select" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "reversed" ];
|
||||||
|
};
|
||||||
|
"ui.gutter" = { bg = BASE00; };
|
||||||
|
|
||||||
|
"ui.help" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.linenr" = {
|
||||||
|
fg = BASE03;
|
||||||
|
bg = BASE00;
|
||||||
|
};
|
||||||
|
"ui.linenr.selected" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE01;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.menu" = {
|
||||||
|
fg = BASE05;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
"ui.menu.scroll" = {
|
||||||
|
fg = BASE03;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
"ui.menu.selected" = {
|
||||||
|
fg = BASE01;
|
||||||
|
bg = BASE04;
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.popup" = { bg = BASE01; };
|
||||||
|
|
||||||
|
"ui.selection" = { bg = BASE02; };
|
||||||
|
"ui.selection.primary" = { bg = BASE02; };
|
||||||
|
"ui.statusline" = {
|
||||||
|
fg = BASE04;
|
||||||
|
bg = BASE01;
|
||||||
|
};
|
||||||
|
"ui.statusline.inactive" = {
|
||||||
|
bg = BASE01;
|
||||||
|
fg = BASE03;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"ui.statusline.insert" = {
|
||||||
|
fg = BASE00;
|
||||||
|
bg = BASE0B;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"ui.statusline.normal" = {
|
||||||
|
fg = BASE06;
|
||||||
|
bg = BASE02;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
"ui.statusline.select" = {
|
||||||
|
fg = BASE00;
|
||||||
|
bg = BASE0A;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.text" = BASE05;
|
||||||
|
"ui.text.focus" = BASE05;
|
||||||
|
|
||||||
|
"ui.virtual.indent-guide" = { fg = BASE03; };
|
||||||
|
"ui.virtual.wrap" = { fg = BASE03; };
|
||||||
|
"ui.virtual.inlay-hint" = { fg = BASE03; };
|
||||||
|
"ui.virtual.ruler" = { bg = BASE01; };
|
||||||
|
"ui.virtual.jump-label" = {
|
||||||
|
fg = BASE0A;
|
||||||
|
modifiers = [ "bold" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.window" = {
|
||||||
|
bg = BASE01;
|
||||||
|
fg = BASE04;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
74
modules/home/programs/cli/micro/default.nix
Normal file
74
modules/home/programs/cli/micro/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.micro;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.micro = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.micro = True // {
|
||||||
|
settings = {
|
||||||
|
clipboard = "terminal";
|
||||||
|
colorscheme = "base16";
|
||||||
|
autosu = true;
|
||||||
|
mkparents = true;
|
||||||
|
scrollbar = true;
|
||||||
|
softwrap = true;
|
||||||
|
status = false;
|
||||||
|
statusline = false;
|
||||||
|
statusformatl = "q";
|
||||||
|
savehistory = true;
|
||||||
|
saveundo = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xdg.configFile."micro/colorschemes/base16.micro".text = ''
|
||||||
|
color-link comment "bold white"
|
||||||
|
color-link constant "cyan"
|
||||||
|
color-link constant.bool "bold cyan"
|
||||||
|
color-link constant.bool.true "bold green"
|
||||||
|
color-link constant.bool.false "bold red"
|
||||||
|
color-link constant.string "yellow"
|
||||||
|
color-link constant.string.url "underline blue, white"
|
||||||
|
#color-link constant.number "constant"
|
||||||
|
color-link constant.specialChar "bold magenta"
|
||||||
|
color-link identifier "bold red"
|
||||||
|
color-link identifier.macro "bold red"
|
||||||
|
color-link identifier.var "bold blue"
|
||||||
|
#color-link identifier.class "bold green"
|
||||||
|
color-link identifier.class "bold white"
|
||||||
|
color-link statement "bold yellow"
|
||||||
|
color-link symbol "red"
|
||||||
|
color-link symbol.brackets "blue"
|
||||||
|
color-link symbol.tag "bold blue"
|
||||||
|
color-link symbol.tag.extended "bold green"
|
||||||
|
color-link preproc "bold cyan"
|
||||||
|
color-link type "green"
|
||||||
|
color-link type.keyword "bold green"
|
||||||
|
color-link special "magenta"
|
||||||
|
color-link ignore "default"
|
||||||
|
color-link error "bold ,brightred"
|
||||||
|
color-link todo "underline black,brightyellow"
|
||||||
|
color-link hlsearch "white,darkgreen"
|
||||||
|
color-link indent-char ",brightgreen"
|
||||||
|
color-link line-number "white"
|
||||||
|
color-link line-number.scrollbar "green"
|
||||||
|
color-link statusline "white,blue"
|
||||||
|
color-link tabbar "white,blue"
|
||||||
|
color-link current-line-number "red"
|
||||||
|
color-link current-line-number.scroller "red"
|
||||||
|
color-link diff-added "green"
|
||||||
|
color-link diff-modified "yellow"
|
||||||
|
color-link diff-deleted "red"
|
||||||
|
color-link gutter-error ",red"
|
||||||
|
color-link gutter-warning "red"
|
||||||
|
color-link color-column "cyan"
|
||||||
|
color-link underlined.url "underline blue, white"
|
||||||
|
color-link divider "blue"
|
||||||
|
color-link match-brace "black,cyan"
|
||||||
|
color-link tab-error "brightred"
|
||||||
|
color-link trailingws "brightred"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
17
modules/home/programs/cli/pkgs.nix
Normal file
17
modules/home/programs/cli/pkgs.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.programs.cli = {
|
||||||
|
pkgs = mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = { home.packages = [ ] ++ cfg.pkgs; };
|
||||||
|
}
|
143
modules/home/programs/cli/rmpc/config.ron
Normal file
143
modules/home/programs/cli/rmpc/config.ron
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
#![enable(implicit_some)]
|
||||||
|
#![enable(unwrap_newtypes)]
|
||||||
|
#![enable(unwrap_variant_newtypes)]
|
||||||
|
(
|
||||||
|
address: "127.0.0.1:6600",
|
||||||
|
password: None,
|
||||||
|
theme: None,
|
||||||
|
cache_dir: None,
|
||||||
|
on_song_change: None,
|
||||||
|
volume_step: 5,
|
||||||
|
scrolloff: 0,
|
||||||
|
wrap_navigation: false,
|
||||||
|
enable_mouse: false,
|
||||||
|
status_update_interval_ms: 1000,
|
||||||
|
select_current_song_on_change: false,
|
||||||
|
album_art: (
|
||||||
|
method: Auto,
|
||||||
|
max_size_px: (width: 600, height: 600),
|
||||||
|
),
|
||||||
|
keybinds: (
|
||||||
|
global: {
|
||||||
|
":": CommandMode,
|
||||||
|
",": VolumeDown,
|
||||||
|
"s": Stop,
|
||||||
|
".": VolumeUp,
|
||||||
|
"c": ToggleSingle,
|
||||||
|
"<Tab>": NextTab,
|
||||||
|
"<S-Tab>": PreviousTab,
|
||||||
|
"1": SwitchToTab("Queue"),
|
||||||
|
"2": SwitchToTab("Directories"),
|
||||||
|
"3": SwitchToTab("Artists"),
|
||||||
|
"4": SwitchToTab("Albums"),
|
||||||
|
"5": SwitchToTab("Playlists"),
|
||||||
|
"6": SwitchToTab("Search"),
|
||||||
|
"q": Quit,
|
||||||
|
"x": ToggleRandom,
|
||||||
|
">": NextTrack,
|
||||||
|
"<": PreviousTrack,
|
||||||
|
"f": SeekForward,
|
||||||
|
"v": ToggleConsume,
|
||||||
|
"p": TogglePause,
|
||||||
|
"z": ToggleRepeat,
|
||||||
|
"b": SeekBack,
|
||||||
|
"~": ShowHelp,
|
||||||
|
"I": ShowCurrentSongInfo,
|
||||||
|
"O": ShowOutputs,
|
||||||
|
},
|
||||||
|
navigation: {
|
||||||
|
"k": Up,
|
||||||
|
"j": Down,
|
||||||
|
"h": Left,
|
||||||
|
"l": Right,
|
||||||
|
"<Up>": Up,
|
||||||
|
"<Down>": Down,
|
||||||
|
"<Left>": Left,
|
||||||
|
"<Right>": Right,
|
||||||
|
"<C-k>": PaneUp,
|
||||||
|
"<C-j>": PaneDown,
|
||||||
|
"<C-h>": PaneLeft,
|
||||||
|
"<C-l>": PaneRight,
|
||||||
|
"<C-u>": UpHalf,
|
||||||
|
"N": PreviousResult,
|
||||||
|
"a": Add,
|
||||||
|
"A": AddAll,
|
||||||
|
"r": Rename,
|
||||||
|
"n": NextResult,
|
||||||
|
"g": Top,
|
||||||
|
"<Space>": Select,
|
||||||
|
"G": Bottom,
|
||||||
|
"<CR>": Confirm,
|
||||||
|
"i": FocusInput,
|
||||||
|
"J": MoveDown,
|
||||||
|
"<C-d>": DownHalf,
|
||||||
|
"/": EnterSearch,
|
||||||
|
"<C-c>": Close,
|
||||||
|
"<Esc>": Close,
|
||||||
|
"K": MoveUp,
|
||||||
|
"D": Delete,
|
||||||
|
},
|
||||||
|
queue: {
|
||||||
|
"D": DeleteAll,
|
||||||
|
"<CR>": Play,
|
||||||
|
"<C-s>": Save,
|
||||||
|
"a": AddToPlaylist,
|
||||||
|
"d": Delete,
|
||||||
|
"i": ShowInfo,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
search: (
|
||||||
|
case_sensitive: false,
|
||||||
|
mode: Contains,
|
||||||
|
tags: [
|
||||||
|
(value: "any", label: "Any Tag"),
|
||||||
|
(value: "artist", label: "Artist"),
|
||||||
|
(value: "album", label: "Album"),
|
||||||
|
(value: "albumartist", label: "Album Artist"),
|
||||||
|
(value: "title", label: "Title"),
|
||||||
|
(value: "filename", label: "Filename"),
|
||||||
|
(value: "genre", label: "Genre"),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
tabs: [
|
||||||
|
(
|
||||||
|
name: "Queue",
|
||||||
|
border_type: None,
|
||||||
|
pane: Split(
|
||||||
|
direction: Horizontal,
|
||||||
|
panes: [(size: "40%", pane: Pane(AlbumArt)), (size: "60%", pane: Pane(Queue))],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Directories",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(Directories),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Artists",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(Artists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Album Artists",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(AlbumArtists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Albums",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(Albums),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Playlists",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(Playlists),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
name: "Search",
|
||||||
|
border_type: None,
|
||||||
|
pane: Pane(Search),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
17
modules/home/programs/cli/rmpc/default.nix
Normal file
17
modules/home/programs/cli/rmpc/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.rmpc;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.rmpc = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ rmpc ];
|
||||||
|
xdg.configFile = {
|
||||||
|
"rmpc/config.ron".source = ./config.ron;
|
||||||
|
# "rmpc/themes/base16.ron".source = ./theme.ron;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
21
modules/home/programs/cli/top/default.nix
Normal file
21
modules/home/programs/cli/top/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.top;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.top = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ nvtopPackages.amd ];
|
||||||
|
programs.btop = True // {
|
||||||
|
settings = {
|
||||||
|
color_theme = "TTY";
|
||||||
|
theme_background = true;
|
||||||
|
vim_keys = true;
|
||||||
|
rounded_corners = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
226
modules/home/programs/cli/yazi/binds.nix
Normal file
226
modules/home/programs/cli/yazi/binds.nix
Normal file
|
@ -0,0 +1,226 @@
|
||||||
|
{ flakeDir, ... }: {
|
||||||
|
programs.yazi.keymap = {
|
||||||
|
manager = {
|
||||||
|
prepend_keymap = [
|
||||||
|
# MAIN
|
||||||
|
{
|
||||||
|
on = "q";
|
||||||
|
run = "close";
|
||||||
|
desc = "Close tab/yazi";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "l";
|
||||||
|
run = "plugin --sync smart-enter";
|
||||||
|
desc = "Enter/open";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "!";
|
||||||
|
run = "shell '$SHELL' --block --confirm";
|
||||||
|
desc = "Enter to shell";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
on = "<Esc>";
|
||||||
|
run = "close";
|
||||||
|
desc = "Close";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "<Right>";
|
||||||
|
run = "plugin --sync smart-enter";
|
||||||
|
desc = "Enter/open";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "<Enter>";
|
||||||
|
run = "plugin --sync smart-enter";
|
||||||
|
desc = "Enter/open";
|
||||||
|
}
|
||||||
|
|
||||||
|
# VISUAL
|
||||||
|
{
|
||||||
|
on = [ "v" "m" ];
|
||||||
|
run = "plugin --sync max-preview";
|
||||||
|
desc = "Maximize preview";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "p" ];
|
||||||
|
run = "plugin --sync hide-preview";
|
||||||
|
desc = "Hide preview";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "v" ];
|
||||||
|
run = "visual_mode";
|
||||||
|
desc = "Select mode";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "V" ];
|
||||||
|
run = "visual_mode --unset";
|
||||||
|
desc = "Un-select mode";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "a" ];
|
||||||
|
run = "select_all --state=true";
|
||||||
|
desc = "Select all";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "r" ];
|
||||||
|
run = "select_all --state=none";
|
||||||
|
desc = "Unselect all";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "v" "h" ];
|
||||||
|
run = "hidden toggle";
|
||||||
|
desc = "Hidden files with .*";
|
||||||
|
}
|
||||||
|
|
||||||
|
# DELETION
|
||||||
|
{
|
||||||
|
on = [ "d" "d" ];
|
||||||
|
run = "remove";
|
||||||
|
desc = "Delete";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "d" "D" ];
|
||||||
|
run = "remove --permanently";
|
||||||
|
desc = "Delete permanently";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "D" "d" ];
|
||||||
|
run = "remove --force";
|
||||||
|
desc = "Delete force";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "D" "D" ];
|
||||||
|
run = "remove --permanently --force";
|
||||||
|
desc = "Delete permanently via force";
|
||||||
|
}
|
||||||
|
|
||||||
|
# CREATE
|
||||||
|
{
|
||||||
|
on = [ "a" "f" ];
|
||||||
|
run = "create";
|
||||||
|
desc = "Create file";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "a" "d" ];
|
||||||
|
run = "create --dir";
|
||||||
|
desc = "Create directory";
|
||||||
|
}
|
||||||
|
|
||||||
|
# RENAME
|
||||||
|
{
|
||||||
|
on = [ "r" "r" ];
|
||||||
|
run = "rename";
|
||||||
|
desc = "Rename";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "r" "n" ];
|
||||||
|
run = "rename --empty=stem --cursor=start";
|
||||||
|
desc = "Rename namefile";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "r" "e" ];
|
||||||
|
run = "rename --empty=ext --cursor=end";
|
||||||
|
desc = "Rename extension";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "r" "a" ];
|
||||||
|
run = "rename --empty=all";
|
||||||
|
desc = "Delete all and rename";
|
||||||
|
}
|
||||||
|
|
||||||
|
# NAVIGATE
|
||||||
|
{
|
||||||
|
on = [ "c" "d" ];
|
||||||
|
run = "cd --interactive";
|
||||||
|
desc = "Jump interactively";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "g" "f" "f" ];
|
||||||
|
run = "cd ${flakeDir}";
|
||||||
|
desc = "Go to flake main dir";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "g" "f" "h" ];
|
||||||
|
run = "cd ${flakeDir}/modules/home";
|
||||||
|
desc = "Go to home modules";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "g" "f" "H" ];
|
||||||
|
run = "cd ${flakeDir}/modules/host";
|
||||||
|
desc = "Go to nixos modules";
|
||||||
|
}
|
||||||
|
|
||||||
|
# TABS
|
||||||
|
{
|
||||||
|
on = [ "]" ];
|
||||||
|
run = "tab_switch -1 --relative";
|
||||||
|
desc = "Switch to the next tab";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "[" ];
|
||||||
|
run = "tab_switch 1 --relative";
|
||||||
|
desc = "Switch to the previous tab";
|
||||||
|
}
|
||||||
|
|
||||||
|
# PASTE
|
||||||
|
{
|
||||||
|
on = [ "p" "p" ];
|
||||||
|
run = "paste";
|
||||||
|
desc = "Paste yanked files";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "p" "P" ];
|
||||||
|
run = "plugin --sync smart-paste";
|
||||||
|
desc = "Paste yanked files in preview dir";
|
||||||
|
}
|
||||||
|
|
||||||
|
# MOUNTOPTIONS
|
||||||
|
{
|
||||||
|
on = [ "m" "a" ];
|
||||||
|
run = "plugin archivemount --args=mount";
|
||||||
|
desc = "Mount selected archive";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "m" "u" ];
|
||||||
|
run = "plugin archivemount --args=unmount";
|
||||||
|
desc = "Unmount and save changes to original archive";
|
||||||
|
}
|
||||||
|
|
||||||
|
# MTPFS
|
||||||
|
{
|
||||||
|
on = [ "M" "m" ];
|
||||||
|
run = "plugin simple-mtpfs --args=select-then-mount";
|
||||||
|
desc = "Select device then mount";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "M" "u" ];
|
||||||
|
run = "plugin simple-mtpfs --args=select-then-unmount";
|
||||||
|
desc = "Select device then unmount";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "g" "m" ];
|
||||||
|
run = "plugin simple-mtpfs --args=jump-to-device";
|
||||||
|
desc = "Select device then jump to its mount point";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = [ "`" "`" ];
|
||||||
|
run = "plugin simple-mtpfs --args=jump-back-prev-cwd";
|
||||||
|
desc = "Jump back to the position before jumped to device";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
completion = {
|
||||||
|
prepend_keymap = [
|
||||||
|
{
|
||||||
|
on = "<C-j>";
|
||||||
|
run = "arrow 1";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
on = "<C-k>";
|
||||||
|
run = "arrow -1";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
19
modules/home/programs/cli/yazi/default.nix
Normal file
19
modules/home/programs/cli/yazi/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.yazi;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.yazi = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./sets.nix
|
||||||
|
./binds.nix
|
||||||
|
./theme.nix
|
||||||
|
./lua.nix
|
||||||
|
./plugins.nix
|
||||||
|
./starship.nix
|
||||||
|
];
|
||||||
|
config = mkIf cfg.enable { programs.yazi = True // { }; };
|
||||||
|
}
|
||||||
|
|
96
modules/home/programs/cli/yazi/lua.nix
Normal file
96
modules/home/programs/cli/yazi/lua.nix
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
{ ... }: {
|
||||||
|
programs.yazi.initLua = ''
|
||||||
|
require("no-status"):setup()
|
||||||
|
require("archivemount"):setup()
|
||||||
|
require("full-border"):setup { type = ui.Border.ROUNDED, }
|
||||||
|
|
||||||
|
require("yatline"):setup({
|
||||||
|
section_separator = { open = "", close = "" },
|
||||||
|
part_separator = { open = "", close = "" },
|
||||||
|
inverse_separator = { open = "", close = "" },
|
||||||
|
|
||||||
|
style_a = {
|
||||||
|
fg = "black",
|
||||||
|
bg_mode = {
|
||||||
|
normal = "blue",
|
||||||
|
select = "yellow",
|
||||||
|
un_set = "red"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
style_b = { bg = "brightblack", fg = "brightwhite" },
|
||||||
|
style_c = { bg = "black", fg = "brightwhite" },
|
||||||
|
|
||||||
|
permissions_t_fg = "green",
|
||||||
|
permissions_r_fg = "yellow",
|
||||||
|
permissions_w_fg = "red",
|
||||||
|
permissions_x_fg = "cyan",
|
||||||
|
permissions_s_fg = "darkgray",
|
||||||
|
|
||||||
|
tab_width = 20,
|
||||||
|
tab_use_inverse = true,
|
||||||
|
|
||||||
|
selected = { icon = "", fg = "yellow" },
|
||||||
|
copied = { icon = "", fg = "green" },
|
||||||
|
cut = { icon = "", fg = "red" },
|
||||||
|
|
||||||
|
total = { icon = "", fg = "yellow" },
|
||||||
|
succ = { icon = "", fg = "green" },
|
||||||
|
fail = { icon = "", fg = "red" },
|
||||||
|
found = { icon = "", fg = "blue" },
|
||||||
|
processed = { icon = "", fg = "green" },
|
||||||
|
|
||||||
|
show_background = false,
|
||||||
|
|
||||||
|
display_header_line = true,
|
||||||
|
display_status_line = true,
|
||||||
|
|
||||||
|
header_line = {
|
||||||
|
left = {
|
||||||
|
section_a = {
|
||||||
|
{type = "string", custom = false, name = "tab_path"},
|
||||||
|
},
|
||||||
|
section_b = {
|
||||||
|
},
|
||||||
|
section_c = {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
right = {
|
||||||
|
section_a = {
|
||||||
|
{type = "line", custom = false, name = "tabs", params = {"right"}},
|
||||||
|
},
|
||||||
|
section_b = {
|
||||||
|
},
|
||||||
|
section_c = {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
status_line = {
|
||||||
|
left = {
|
||||||
|
section_a = {
|
||||||
|
{type = "string", custom = false, name = "tab_mode"},
|
||||||
|
},
|
||||||
|
section_b = {
|
||||||
|
{type = "string", custom = false, name = "hovered_size"},
|
||||||
|
},
|
||||||
|
section_c = {
|
||||||
|
{type = "string", custom = false, name = "hovered_name"},
|
||||||
|
{type = "coloreds", custom = false, name = "count"},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
right = {
|
||||||
|
section_a = {
|
||||||
|
{type = "string", custom = false, name = "date", params = {"%d/%m/%Y"}},
|
||||||
|
},
|
||||||
|
section_b = {
|
||||||
|
{type = "string", custom = false, name = "hovered_file_extension", params = {true}},
|
||||||
|
},
|
||||||
|
section_c = {
|
||||||
|
{type = "coloreds", custom = false, name = "permissions"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
89
modules/home/programs/cli/yazi/plugins.nix
Normal file
89
modules/home/programs/cli/yazi/plugins.nix
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
yazi-plugins = pkgs.fetchFromGitHub {
|
||||||
|
owner = "yazi-rs";
|
||||||
|
repo = "plugins";
|
||||||
|
rev = "main";
|
||||||
|
hash = "sha256-RYa7wbFGZ9citYYdF9FYJwzUGBmIUvNBdORpBPb6ZnQ=";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
programs.yazi.plugins = with pkgs; {
|
||||||
|
# BUILTINED
|
||||||
|
chmod = "${yazi-plugins}/chmod.yazi";
|
||||||
|
max-preview = "${yazi-plugins}/max-preview.yazi";
|
||||||
|
no-status = "${yazi-plugins}/no-status.yazi";
|
||||||
|
hide-preview = "${yazi-plugins}/hide-preview.yazi";
|
||||||
|
full-border = "${yazi-plugins}/full-border.yazi";
|
||||||
|
|
||||||
|
# FETCHED
|
||||||
|
ouch = fetchFromGitHub {
|
||||||
|
owner = "ndtoan96";
|
||||||
|
repo = "ouch.yazi";
|
||||||
|
rev = "251da6930ca8b7ee0384810086c3bf644caede3e";
|
||||||
|
hash = "sha256-yLt9aY6hUIOdBI5bMdCs7VYFJGyD3WIkmPxvWKNCskA=";
|
||||||
|
};
|
||||||
|
glow = fetchFromGitHub {
|
||||||
|
owner = "Reledia";
|
||||||
|
repo = "glow.yazi";
|
||||||
|
rev = "4e016fa2357e5e7e9b1a4881e1492d73a0a2f2cc";
|
||||||
|
hash = "sha256-d73C8s8p85c0xfq8Nfzlnp83JUakMPbviQDFCX0G+qE=";
|
||||||
|
};
|
||||||
|
ffmpeg = fetchFromGitHub {
|
||||||
|
owner = "Tyarel8";
|
||||||
|
repo = "video-ffmpeg.yazi";
|
||||||
|
rev = "fe26a18f9b32880e10b686df5c4559d9af2bce6b";
|
||||||
|
hash = "sha256-PIsetF42mlxDv7hEBgjt4FdryDhWTAF/o0Z3Z1G8HJE=";
|
||||||
|
};
|
||||||
|
relative = fetchFromGitHub {
|
||||||
|
owner = "dedukun";
|
||||||
|
repo = "relative-motions.yazi";
|
||||||
|
rev = "89d0cb9c84a7bba98d2e7ca4bac706d2458d0c06";
|
||||||
|
hash = "sha256-qtjAgH+NS4YFVIwq+x2sC90y4vDSXNI8pGXIZ3FuQMU=";
|
||||||
|
};
|
||||||
|
enter = fetchFromGitHub {
|
||||||
|
owner = "ourongxing";
|
||||||
|
repo = "fast-enter.yazi";
|
||||||
|
rev = "dd498123cb0696d7fa50b32d2268fb8c2084a4a4";
|
||||||
|
hash = "sha256-jjluqFboFXV4yqBMvW7WhO61Urn2FQ/O31PqlaCxB2c=";
|
||||||
|
};
|
||||||
|
yatline = fetchFromGitHub {
|
||||||
|
owner = "imsi32";
|
||||||
|
repo = "yatline.yazi";
|
||||||
|
rev = "7b56434864d6a0b5d547fed2339b99346a018522";
|
||||||
|
hash = "sha256-4qxBAXFyPBQhSU24xL7fzhgM5e8Cq7BigEp4GPxSjD4=";
|
||||||
|
};
|
||||||
|
archivemount = fetchFromGitHub {
|
||||||
|
owner = "AnirudhG07";
|
||||||
|
repo = "archivemount.yazi";
|
||||||
|
rev = "e82e38eda858716a1328b5e0c34382547777cb28";
|
||||||
|
hash = "sha256-gHk4PJDXq3OPUDD9sFZI+CcIFVDOxUzPLOezX3DDNVU=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# CUSTOM PLUGINS
|
||||||
|
xdg.configFile = {
|
||||||
|
"yazi/plugins/smart-enter.yazi/init.lua".text = ''
|
||||||
|
return {
|
||||||
|
entry = function()
|
||||||
|
local h = cx.active.current.hovered
|
||||||
|
ya.manager_emit(h and h.cha.is_dir and "enter" or "open", { hovered = true })
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
"yazi/plugins/smart-paste.yazi/init.lua".text = ''
|
||||||
|
return {
|
||||||
|
entry = function()
|
||||||
|
local h = cx.active.current.hovered
|
||||||
|
if h and h.cha.is_dir then
|
||||||
|
ya.manager_emit("enter", {})
|
||||||
|
ya.manager_emit("paste", {})
|
||||||
|
ya.manager_emit("leave", {})
|
||||||
|
else
|
||||||
|
ya.manager_emit("paste", {})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
149
modules/home/programs/cli/yazi/sets.nix
Normal file
149
modules/home/programs/cli/yazi/sets.nix
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
{ pkgs, userName, ... }: {
|
||||||
|
programs.yazi = {
|
||||||
|
shellWrapperName = "yy";
|
||||||
|
settings = {
|
||||||
|
manager = {
|
||||||
|
ratio = [ 1 4 4 ];
|
||||||
|
show_hidden = false;
|
||||||
|
sort_by = "natural";
|
||||||
|
sort_dir_first = true;
|
||||||
|
sort_reverse = false;
|
||||||
|
linemode = "size";
|
||||||
|
show_symlink = true;
|
||||||
|
};
|
||||||
|
preview = {
|
||||||
|
wrap = "yes";
|
||||||
|
tab_size = 1;
|
||||||
|
image_filter = "lanczos3";
|
||||||
|
image_quality = 90;
|
||||||
|
max_height = 1000;
|
||||||
|
max_width = 1000;
|
||||||
|
};
|
||||||
|
opener = {
|
||||||
|
open = [{ run = "xdg-open $1"; }];
|
||||||
|
edit = [{
|
||||||
|
run = ''hx "$@"'';
|
||||||
|
block = true;
|
||||||
|
}];
|
||||||
|
reveal = [{ run = ''xdg-open "$(dirname "$1")"''; }];
|
||||||
|
play = [{
|
||||||
|
run = ''mpv --force-window "$@"'';
|
||||||
|
orphan = true;
|
||||||
|
}];
|
||||||
|
image = [{
|
||||||
|
run = ''swayimg "$@"'';
|
||||||
|
block = true;
|
||||||
|
}];
|
||||||
|
document = [{
|
||||||
|
desc = "Document";
|
||||||
|
orphan = true;
|
||||||
|
run = "onlyoffice-desktopeditors";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
open = {
|
||||||
|
rules = [
|
||||||
|
# Folder
|
||||||
|
{
|
||||||
|
name = "*/";
|
||||||
|
use = [ "edit" "open" "reveal" ];
|
||||||
|
}
|
||||||
|
# Text
|
||||||
|
{
|
||||||
|
mime = "text/*";
|
||||||
|
use = [ "edit" "reveal" ];
|
||||||
|
}
|
||||||
|
# Image
|
||||||
|
{
|
||||||
|
mime = "image/*";
|
||||||
|
use = [ "open" "reveal" ];
|
||||||
|
}
|
||||||
|
# Media
|
||||||
|
{
|
||||||
|
mime = "{audio,video}/*";
|
||||||
|
use = [ "play" "reveal" ];
|
||||||
|
}
|
||||||
|
# Archive
|
||||||
|
{
|
||||||
|
mime = "application/{,g}zip";
|
||||||
|
use = [ "extract" "reveal" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}";
|
||||||
|
use = [ "extract" "reveal" ];
|
||||||
|
}
|
||||||
|
# JSON
|
||||||
|
{
|
||||||
|
mime = "application/{json,x-ndjson,octet-stream}";
|
||||||
|
use = [ "edit" "reveal" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "*/javascript";
|
||||||
|
use = [ "edit" "reveal" ];
|
||||||
|
}
|
||||||
|
# Empty file
|
||||||
|
{
|
||||||
|
mime = "inode/x-empty";
|
||||||
|
use = [ "edit" "reveal" ];
|
||||||
|
}
|
||||||
|
# Fallback
|
||||||
|
{
|
||||||
|
name = "*";
|
||||||
|
use = [ "open" "reveal" ];
|
||||||
|
}
|
||||||
|
# Documents
|
||||||
|
{
|
||||||
|
mime = "application/vnd.openxmlformats-officedocument.*";
|
||||||
|
use = "document";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
plugin = {
|
||||||
|
prepend_previewers = [
|
||||||
|
{
|
||||||
|
mime = "application/*zip";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-tar";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-bzip2";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-7z-compressed";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-rar";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mime = "application/x-xz";
|
||||||
|
run = "ouch";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "*.md";
|
||||||
|
run = "glow";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
ffmpegthumbnailer
|
||||||
|
|
||||||
|
atool
|
||||||
|
p7zip
|
||||||
|
zip
|
||||||
|
|
||||||
|
jq
|
||||||
|
poppler_min
|
||||||
|
|
||||||
|
imagemagick
|
||||||
|
glow
|
||||||
|
ouch
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
37
modules/home/programs/cli/yazi/starship.nix
Normal file
37
modules/home/programs/cli/yazi/starship.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ lib, config, ... }: {
|
||||||
|
xdg.configFile = {
|
||||||
|
"yazi/star.toml".text = ''
|
||||||
|
format = """
|
||||||
|
$directory\
|
||||||
|
$git_branch\
|
||||||
|
$git_status\
|
||||||
|
$git_metrics\
|
||||||
|
"""
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
style = "bold fg:green"
|
||||||
|
format = "in [$path ]($style)"
|
||||||
|
truncation_length = 3
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
read_only = '[]'
|
||||||
|
read_only_style = 'bold fg:red'
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
style = "bold fg:yellow"
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
style = "bold fg:red"
|
||||||
|
|
||||||
|
[git_metrics]
|
||||||
|
added_style = "bold fg:blue"
|
||||||
|
deleted_style = "bold fg:red"
|
||||||
|
|
||||||
|
[directory.substitutions]
|
||||||
|
"Documents" = " "
|
||||||
|
"Downloads" = " "
|
||||||
|
"Music" = " "
|
||||||
|
"Pictures" = " "
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
2978
modules/home/programs/cli/yazi/theme.nix
Normal file
2978
modules/home/programs/cli/yazi/theme.nix
Normal file
File diff suppressed because it is too large
Load diff
17
modules/home/programs/cli/zoxide/default.nix
Normal file
17
modules/home/programs/cli/zoxide/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.cli.zoxide;
|
||||||
|
in {
|
||||||
|
options = { module.programs.cli.zoxide = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.zoxide = True // {
|
||||||
|
enableFishIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
options = [ "--cmd cd" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
1
modules/home/programs/default.nix
Normal file
1
modules/home/programs/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./cli ./gui ]; }
|
13
modules/home/programs/gui/default.nix
Normal file
13
modules/home/programs/gui/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./floorp
|
||||||
|
./mpv
|
||||||
|
./obs
|
||||||
|
./qbittorrent
|
||||||
|
./spotify
|
||||||
|
./swayimg
|
||||||
|
./thunderbird
|
||||||
|
./pkgs.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
53
modules/home/programs/gui/floorp/addons.nix
Normal file
53
modules/home/programs/gui/floorp/addons.nix
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{ buildFirefoxXpiAddon, lib, }: {
|
||||||
|
"torrserver-adder" = buildFirefoxXpiAddon {
|
||||||
|
pname = "torrserver-adder";
|
||||||
|
version = "2.0.5";
|
||||||
|
addonId = "84z74tXJKt8OUrTD@TSA";
|
||||||
|
url =
|
||||||
|
"https://addons.mozilla.org/firefox/downloads/file/4264581/torrserver_adder-2.0.5.xpi";
|
||||||
|
sha256 = "6783c13fe423c14fbf9dd23ea3232167dc78eeb298594ab802aa9a7b094fb365";
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://github.com/Noperkot/TorrServerAdder";
|
||||||
|
description =
|
||||||
|
"Allows you to add torrents to TorrServer and play them using the system media player";
|
||||||
|
license = licenses.mpl20;
|
||||||
|
mozPermissions = [
|
||||||
|
"http://*/*"
|
||||||
|
"https://*/*"
|
||||||
|
"contextMenus"
|
||||||
|
"downloads"
|
||||||
|
"storage"
|
||||||
|
"tabs"
|
||||||
|
"webRequest"
|
||||||
|
"webRequestBlocking"
|
||||||
|
];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"proton-pass" = buildFirefoxXpiAddon {
|
||||||
|
pname = "proton-pass";
|
||||||
|
version = "1.24.1";
|
||||||
|
addonId = "78272b6fa58f4a1abaac99321d503a20@proton.me";
|
||||||
|
url =
|
||||||
|
"https://addons.mozilla.org/firefox/downloads/file/4379392/proton_pass-1.24.1.xpi";
|
||||||
|
sha256 = "1290a7d3b91204fae8f392c8dd4b3f62e4fa0182ae98de1d0042280af744be80";
|
||||||
|
meta = with lib; {
|
||||||
|
homepage = "https://proton.me";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
mozPermissions = [
|
||||||
|
"activeTab"
|
||||||
|
"alarms"
|
||||||
|
"scripting"
|
||||||
|
"storage"
|
||||||
|
"unlimitedStorage"
|
||||||
|
"webRequest"
|
||||||
|
"webRequestBlocking"
|
||||||
|
"https://*/*"
|
||||||
|
"http://*/*"
|
||||||
|
"https://account.proton.me/*"
|
||||||
|
"https://pass.proton.me/*"
|
||||||
|
];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
70
modules/home/programs/gui/floorp/default.nix
Normal file
70
modules/home/programs/gui/floorp/default.nix
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{ pkgs, lib, config, inputs, userName, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.programs.gui.floorp;
|
||||||
|
customAddons = pkgs.callPackage ./addons.nix {
|
||||||
|
inherit (inputs.firefox-addons.lib."x86_64-linux") buildFirefoxXpiAddon;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options = { module.programs.gui.floorp = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./user ./settings.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.floorp = True // {
|
||||||
|
profiles.${userName} = {
|
||||||
|
id = 0;
|
||||||
|
isDefault = true;
|
||||||
|
name = "${userName}";
|
||||||
|
extensions = with inputs.firefox-addons.packages."x86_64-linux";
|
||||||
|
[
|
||||||
|
#VERY IMPORTANT
|
||||||
|
ublock-origin
|
||||||
|
sponsorblock
|
||||||
|
darkreader
|
||||||
|
vimium-c
|
||||||
|
censor-tracker
|
||||||
|
|
||||||
|
# MISC
|
||||||
|
tabcenter-reborn
|
||||||
|
firefox-color
|
||||||
|
stylus
|
||||||
|
translate-web-pages
|
||||||
|
] ++ (with customAddons; [ torrserver-adder ]);
|
||||||
|
};
|
||||||
|
policies = {
|
||||||
|
CaptivePortal = false;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisableFormHistory = true;
|
||||||
|
DisplayBookmarksToolbar = false;
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
DisableProfileRefresh = true;
|
||||||
|
PromptForDownloadLocation = false;
|
||||||
|
NetworkPrediction = false;
|
||||||
|
showSearchBar = true;
|
||||||
|
DisableSetDesktopBackground = true;
|
||||||
|
LegacyProfiles = true;
|
||||||
|
ManualAppUpdateOnly = true;
|
||||||
|
DisableFirefoxScreenshots = true;
|
||||||
|
HardwareAcceleration = true;
|
||||||
|
PasswordManagerEnabled = true;
|
||||||
|
FirefoxHome = {
|
||||||
|
Pocket = false;
|
||||||
|
Snippets = false;
|
||||||
|
};
|
||||||
|
SanitizeOnShutdown = {
|
||||||
|
Cache = true;
|
||||||
|
History = false;
|
||||||
|
Cookies = false;
|
||||||
|
Downloads = true;
|
||||||
|
FormData = true;
|
||||||
|
Sessions = true;
|
||||||
|
OfflineApps = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
modules/home/programs/gui/floorp/settings.nix
Normal file
10
modules/home/programs/gui/floorp/settings.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ userName, ... }: {
|
||||||
|
programs.floorp.profiles.${userName}.settings = {
|
||||||
|
# OTHER
|
||||||
|
"extensions.autoDisableScopes" = 0;
|
||||||
|
"layers.acceleration.force-enabled" = true;
|
||||||
|
"gfx.webrender.all" = true;
|
||||||
|
"svg.context-properties.content.enabled" = true;
|
||||||
|
"ui.key.menuAccessKeyFocuses" = false;
|
||||||
|
};
|
||||||
|
}
|
8
modules/home/programs/gui/floorp/user/chrome.nix
Normal file
8
modules/home/programs/gui/floorp/user/chrome.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ userName, ... }: {
|
||||||
|
programs.floorp.profiles.${userName}.userChrome = ''
|
||||||
|
* {
|
||||||
|
font-family: "JetBrainsMono Nerd Font" !important;
|
||||||
|
font-size: 12pt !important;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
6
modules/home/programs/gui/floorp/user/content.nix
Normal file
6
modules/home/programs/gui/floorp/user/content.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ userName, ... }:
|
||||||
|
let repo = "https://github.com/axax-loll/fuji-wallpapers/blob/main";
|
||||||
|
in {
|
||||||
|
programs.floorp.profiles.${userName}.userContent =
|
||||||
|
" @-moz-document url(about:home), url(about:newtab), url(about:privatebrowsing) {\n .click-target-container *, .top-sites-list * {\n color: #fff !important ;\n text-shadow: 2px 2px 2px #222 !important ;\n }\n body::before {\n content: \"\" ;\n z-index: -1 ;\n position: fixed ;\n top: 0 ;\n left: 0 ;\n background: #0F0F0F no-repeat url(\"${repo}/synth.png?raw=true\") center ;\n background-size: cover ;\n width: 100vw ;\n height: 100vh ;\n }\n .logo { background-image: url(\"${repo}/logo.png?raw=true\") !important; }\n .search-wrapper input { background: #0F0F0F !important; }\n #PlacesToolbarItems {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n }\n";
|
||||||
|
}
|
1
modules/home/programs/gui/floorp/user/default.nix
Normal file
1
modules/home/programs/gui/floorp/user/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./chrome.nix ./tcr.nix ]; }
|
112
modules/home/programs/gui/floorp/user/tabcenter.nix
Normal file
112
modules/home/programs/gui/floorp/user/tabcenter.nix
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
css = ''
|
||||||
|
:root {
|
||||||
|
|
||||||
|
/* These colours are (mainly) used by the
|
||||||
|
Container Tabs Plugin */
|
||||||
|
--uc-identity-colour-blue: #8DA3B9;
|
||||||
|
--uc-identity-colour-turquoise: #8AA6A2;
|
||||||
|
--uc-identity-colour-green: #8C977D;
|
||||||
|
--uc-identity-colour-yellow: #D9BC8C;
|
||||||
|
--uc-identity-colour-orange: #D9BC8C;
|
||||||
|
--uc-identity-colour-red: #B66467;
|
||||||
|
--uc-identity-colour-pink: #A988B0;
|
||||||
|
--uc-identity-colour-purple: #A988B0;
|
||||||
|
|
||||||
|
/* Cascades main Colour Scheme */
|
||||||
|
--uc-base-colour: #151515;
|
||||||
|
--uc-highlight-colour: #1F1F1F;
|
||||||
|
--uc-inverted-colour: #E8E3E3;
|
||||||
|
--uc-muted-colour: #BBB6B6;
|
||||||
|
--uc-accent-colour: var(--uc-identity-colour-purple);
|
||||||
|
--uc-shadow-colour: #151515;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#topmenu { display: none !important; }
|
||||||
|
|
||||||
|
|
||||||
|
#tablist-wrapper,
|
||||||
|
#pinnedtablist { background: var(--uc-base-colour); }
|
||||||
|
|
||||||
|
.tab:hover,
|
||||||
|
.tab.active { background: var(--uc-highlight-colour); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#tablist-wrapper .tab-title-wrapper {
|
||||||
|
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(-10px);
|
||||||
|
|
||||||
|
transition: all 200ms ease;
|
||||||
|
transition-delay: 0ms;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
body:hover #tablist-wrapper .tab-title-wrapper {
|
||||||
|
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateX(0);
|
||||||
|
|
||||||
|
transition-delay: 50ms;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.tab,
|
||||||
|
.tab.active { border-bottom: none !important; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#pinnedtablist:not(.compact) .tab { padding: 6px; }
|
||||||
|
#tablist .tab { padding: 0 0 0 6px; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.tab { overflow: visible; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#pinnedtablist:not(.compact) .tab[data-identity-color] .tab-context::before,
|
||||||
|
#tablist .tab[data-identity-color] .tab-context::before {
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
top: 4px; bottom: 4px;
|
||||||
|
|
||||||
|
width: 2px;
|
||||||
|
|
||||||
|
background: var(--identity-color);
|
||||||
|
|
||||||
|
content: '';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#tablist .tab[data-identity-color] .tab-context::before { left: -3px; }
|
||||||
|
|
||||||
|
|
||||||
|
#pinnedtablist:not(.compact) .tab .tab-pin,
|
||||||
|
.tab-close,
|
||||||
|
.tab-loading-burst { display: none; }
|
||||||
|
|
||||||
|
#pinnedtablist:not(.compact) .tab[data-identity-color] .tab-context { box-shadow: none !important; }
|
||||||
|
|
||||||
|
[data-identity-color="blue"] { --identity-color: var(--uc-identity-colour-blue); }
|
||||||
|
[data-identity-color="turquoise"] { --identity-color: var(--uc-identity-colour-turquoise); }
|
||||||
|
[data-identity-color="green"] { --identity-color: var(--uc-identity-colour-green); }
|
||||||
|
[data-identity-color="yellow"] { --identity-color: var(--uc-identity-colour-yellow); }
|
||||||
|
[data-identity-color="orange"] { --identity-color: var(--uc-identity-colour-orange); }
|
||||||
|
[data-identity-color="red"] { --identity-color: var(--uc-identity-colour-red); }
|
||||||
|
[data-identity-color="pink"] { --identity-color: var(--uc-identity-colour-pink); }
|
||||||
|
[data-identity-color="purple"] { --identity-color: var(--uc-identity-colour-purple); }
|
||||||
|
|
||||||
|
.can-scroll-top #tablist { mask: linear-gradient(transparent, var(--uc-shadow-colour) 40px); }
|
||||||
|
.can-scroll-bottom #tablist { mask: linear-gradient(var(--uc-shadow-colour) calc(100% - 40px), transparent); }
|
||||||
|
.can-scroll-bottom.can-scroll-top #tablist { mask: linear-gradient(transparent, var(--uc-shadow-colour) 40px calc(100% - 40px), transparent); }
|
||||||
|
#topshadow, #bottomshadow { display: none; }
|
||||||
|
'';
|
||||||
|
}
|
30
modules/home/programs/gui/floorp/user/tcr.nix
Normal file
30
modules/home/programs/gui/floorp/user/tcr.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ userName, ... }: {
|
||||||
|
programs.floorp.profiles.${userName}.userChrome = ''
|
||||||
|
#TabsToolbar { display: none !important; }
|
||||||
|
#nav-bar { width: 100vw !important; }
|
||||||
|
|
||||||
|
#browser { position: relative; }
|
||||||
|
#sidebar-box[sidebarcommand*=\"tabcenter\"] #sidebar-header { display: none; }
|
||||||
|
|
||||||
|
#sidebar-box[sidebarcommand*=\"tabcenter\"]:not([hidden]) {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0; bottom: 0;
|
||||||
|
z-index: 1;
|
||||||
|
min-width: 50px !important; max-width: 50px !important;
|
||||||
|
border-right: none;
|
||||||
|
transition: all 0.8s ease;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
[sidebarcommand*=\"tabcenter\"] #sidebar,
|
||||||
|
#sidebar-box[sidebarcommand*=\"tabcenter\"]:hover { min-width: 10vw !important; width: 30vw !important; max-width: 250px !important; }
|
||||||
|
[sidebarcommand*=\"tabcenter\"] #sidebar { height: 100%; max-height: 100%; }
|
||||||
|
#sidebar-box[sidebarcommand*=\"tabcenter\"]:not([hidden]) ~ #appcontent { margin-left: 50px; }
|
||||||
|
#main-window[inFullscreen][inDOMFullscreen] #appcontent { margin-left: 0; }
|
||||||
|
/* Removes gap between active tab highlight and edge of bar */
|
||||||
|
#sidebar-box[sidebarcommand=\"tabcenter-reborn_ariasuni-sidebar-action\"] #sidebar-header, #sidebar-box[sidebarcommand=\"tabcenter-reborn_ariasuni-sidebar-action\"] ~ #sidebar-splitter {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
95
modules/home/programs/gui/mpv/default.nix
Normal file
95
modules/home/programs/gui/mpv/default.nix
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui.mpv;
|
||||||
|
in {
|
||||||
|
options = { module.programs.gui.mpv = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.mpv = True // {
|
||||||
|
scripts = with pkgs.mpvScripts; [ thumbnail sponsorblock-minimal ];
|
||||||
|
scriptOpts = {
|
||||||
|
sponsorblock-minimal = {
|
||||||
|
sponsorblock_minimal-server =
|
||||||
|
"https://sponsor.ajay.app/api/skipSegments";
|
||||||
|
sponsorblock_minimal-categories = [ "sponsor" ];
|
||||||
|
};
|
||||||
|
mpv_thumbnail_script = {
|
||||||
|
autogenerate = "yes";
|
||||||
|
autogenerate_max_duration = "3600";
|
||||||
|
prefer_mpv = "yes";
|
||||||
|
mpv_no_sub = "no";
|
||||||
|
thumbnail_width = 200;
|
||||||
|
thumbnail_height = 200;
|
||||||
|
thumbnail_count = 150;
|
||||||
|
thumbnail_network = "no";
|
||||||
|
background_color = "282828";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = {
|
||||||
|
fs = "yes";
|
||||||
|
osc = "no";
|
||||||
|
glsl-shaders =
|
||||||
|
"${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl";
|
||||||
|
};
|
||||||
|
bindings = {
|
||||||
|
WHEEL_UP = "add volume 2";
|
||||||
|
WHEEL_DOWN = "add volume -2";
|
||||||
|
"Shift+WHEEL_UP" = "add volume 5";
|
||||||
|
"Shift+WHEEL_DOWN" = "add volume -5";
|
||||||
|
|
||||||
|
RIGHT = "seek 5";
|
||||||
|
l = "seek 5";
|
||||||
|
"д" = "seek 5";
|
||||||
|
|
||||||
|
LEFT = "seek -5";
|
||||||
|
h = "seek -5";
|
||||||
|
"р" = "seek -5";
|
||||||
|
|
||||||
|
UP = "add volume 2";
|
||||||
|
k = "add volume 2";
|
||||||
|
"л" = "add volume 2";
|
||||||
|
|
||||||
|
DOWN = "add volume -2";
|
||||||
|
j = "add volume -2";
|
||||||
|
"о" = "add volume -2";
|
||||||
|
|
||||||
|
"Shift+RIGHT" = "seek 10";
|
||||||
|
"Shift+LEFT" = "seek -10";
|
||||||
|
|
||||||
|
"Shift+UP" = "add volume 5";
|
||||||
|
"Shift+DOWN" = "add volume -5";
|
||||||
|
|
||||||
|
q = "quit";
|
||||||
|
"й" = "quit";
|
||||||
|
Q = "quit-watch-later";
|
||||||
|
|
||||||
|
SPACE = "cycle pause";
|
||||||
|
p = "cycle pause";
|
||||||
|
"з" = "cycle pause";
|
||||||
|
|
||||||
|
m = "cycle mute";
|
||||||
|
"ь" = "cycle mute";
|
||||||
|
|
||||||
|
o = "show-progress";
|
||||||
|
"щ" = "show-progress";
|
||||||
|
|
||||||
|
f = "cycle fullscreen";
|
||||||
|
"а" = "cycle fullscreen";
|
||||||
|
ESC = "set fullscreen no";
|
||||||
|
};
|
||||||
|
extraInput = ''
|
||||||
|
CTRL+1 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
||||||
|
CTRL+2 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
||||||
|
CTRL+3 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
||||||
|
CTRL+4 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
||||||
|
CTRL+5 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
||||||
|
CTRL+6 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
||||||
|
|
||||||
|
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
20
modules/home/programs/gui/obs/default.nix
Normal file
20
modules/home/programs/gui/obs/default.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui.obs;
|
||||||
|
in {
|
||||||
|
options = { module.programs.gui.obs = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.obs-studio = True // {
|
||||||
|
package = pkgs.obs-studio;
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vkcapture
|
||||||
|
input-overlay
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
17
modules/home/programs/gui/pkgs.nix
Normal file
17
modules/home/programs/gui/pkgs.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.programs.gui = {
|
||||||
|
pkgs = mkOption {
|
||||||
|
type = lib.types.listOf lib.types.package;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = { home.packages = [ ] ++ cfg.pkgs; };
|
||||||
|
}
|
47
modules/home/programs/gui/qbittorrent/default.nix
Normal file
47
modules/home/programs/gui/qbittorrent/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui.qbittorrent;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.programs.gui.qbittorrent = { enable = mkEnableOption ""; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
xdg.configFile = {
|
||||||
|
# COLORSCHEME
|
||||||
|
"qBittorrent/themes/default/config.json".text = ''
|
||||||
|
{
|
||||||
|
"colors.dark": {
|
||||||
|
"Log.BannedPeer": "#b66467",
|
||||||
|
"Log.Critical": "#b66467",
|
||||||
|
"Log.Info": "#8da3b9",
|
||||||
|
"Log.TimeStamp": "#bbb6b6",
|
||||||
|
"Log.Warning": "#d9bc8c",
|
||||||
|
"TransferList.CheckingDownloading": "#8c977d",
|
||||||
|
"TransferList.CheckingResumeData": "#8c977d",
|
||||||
|
"TransferList.CheckingUploading": "#8c977d",
|
||||||
|
"TransferList.Downloading": "#d9bc8c",
|
||||||
|
"TransferList.DownloadingMetadata": "#d9bc8c",
|
||||||
|
"TransferList.Error": "#b66467",
|
||||||
|
"TransferList.ForcedDownloading": "#d9bc8c",
|
||||||
|
"TransferList.ForcedDownloadingMetadata": "#d9bc8c",
|
||||||
|
"TransferList.ForcedUploading": "#d9bc8c",
|
||||||
|
"TransferList.MissingFiles": "#b66467",
|
||||||
|
"TransferList.Moving": "#8aa6a2",
|
||||||
|
"TransferList.PausedDownloading": "#a988b0",
|
||||||
|
"TransferList.PausedUploading": "#a988b0",
|
||||||
|
"TransferList.QueuedDownloading": "#d9bc8c",
|
||||||
|
"TransferList.QueuedUploading": "#d9bc8c",
|
||||||
|
"TransferList.StalledDownloading": "#8c977d",
|
||||||
|
"TransferList.StalledUploading": "#bbb6b6",
|
||||||
|
"TransferList.Uploading": "#bbb6b6"
|
||||||
|
},
|
||||||
|
"version": 2
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
87
modules/home/programs/gui/spotify/default.nix
Normal file
87
modules/home/programs/gui/spotify/default.nix
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
{ pkgs, lib, config, inputs, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.programs.gui.spotify;
|
||||||
|
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||||
|
in {
|
||||||
|
options = { module.programs.gui.spotify = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.spicetify = True // {
|
||||||
|
theme = spicePkgs.themes.sleek // {
|
||||||
|
additionalCss = ''*{font-family:"JetBrainsMono Nerd Font"!important}'';
|
||||||
|
};
|
||||||
|
colorScheme = "custom";
|
||||||
|
customColorScheme = with config.lib.stylix.colors; {
|
||||||
|
# BASE 16 SCHEME
|
||||||
|
accent = "${base03}";
|
||||||
|
accent-active = "${base03}";
|
||||||
|
accent-inactive = "${base02}";
|
||||||
|
banner = "${base03}";
|
||||||
|
border-active = "${base03}";
|
||||||
|
border-inactive = "${base03}";
|
||||||
|
header = "${base00}";
|
||||||
|
highlight = "${base04}";
|
||||||
|
text = "${base06}";
|
||||||
|
|
||||||
|
subtext = "${base06}";
|
||||||
|
sidebar-text = "${base07}";
|
||||||
|
main = "${base00}";
|
||||||
|
sidebar = "${base01}";
|
||||||
|
player = "${base00}";
|
||||||
|
card = "${base00}";
|
||||||
|
shadow = "${base00}";
|
||||||
|
selected-row = "${base03}";
|
||||||
|
button = "${base0B}";
|
||||||
|
button-active = "${base0B}";
|
||||||
|
button-disabled = "${base03}";
|
||||||
|
tab-active = "${base04}";
|
||||||
|
notification = "${base0A}";
|
||||||
|
notification-error = "${base08}";
|
||||||
|
misc = "${base02}";
|
||||||
|
};
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
# IMPORTANT
|
||||||
|
fullAppDisplay
|
||||||
|
betterGenres
|
||||||
|
keyboardShortcut
|
||||||
|
|
||||||
|
#COMMUNITY
|
||||||
|
adblockify
|
||||||
|
historyShortcut
|
||||||
|
beautifulLyrics
|
||||||
|
powerBar
|
||||||
|
seekSong
|
||||||
|
history
|
||||||
|
];
|
||||||
|
enabledSnippets = with spicePkgs.snippets; [
|
||||||
|
fixLikedButton
|
||||||
|
smoothPlaylistRevealGradient
|
||||||
|
hideFriendActivityButton
|
||||||
|
centeredLyrics
|
||||||
|
pointer
|
||||||
|
removeConnectBar
|
||||||
|
fixedEpisodesIcon
|
||||||
|
fixProgressBar
|
||||||
|
roundedImages
|
||||||
|
fixMainViewWidth
|
||||||
|
fixPlaylistHover
|
||||||
|
hideNowPlayingViewButton
|
||||||
|
fixLikedIcon
|
||||||
|
removeTopSpacing
|
||||||
|
hideFriendsActivityButton
|
||||||
|
hideFullScreenButton
|
||||||
|
hideDownloadButton
|
||||||
|
hideMiniPlayerButton
|
||||||
|
leftAlignedHeartIcons
|
||||||
|
hideSidebarScrollbar
|
||||||
|
betterLyricsStyle
|
||||||
|
queueTopSidePanel
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
169
modules/home/programs/gui/swayimg/default.nix
Normal file
169
modules/home/programs/gui/swayimg/default.nix
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui.swayimg;
|
||||||
|
in {
|
||||||
|
options = { module.programs.gui.swayimg = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ swayimg ];
|
||||||
|
xdg.configFile = with config.lib.stylix.colors; {
|
||||||
|
"swayimg/config".text = ''
|
||||||
|
[general]
|
||||||
|
mode = viewer
|
||||||
|
position = parent
|
||||||
|
size = fullscreen
|
||||||
|
sigusr1 = reload
|
||||||
|
sigusr2 = next_file
|
||||||
|
app_id = swayimg
|
||||||
|
|
||||||
|
[viewer]
|
||||||
|
window = #000000ff
|
||||||
|
transparency = grid
|
||||||
|
scale = optimal
|
||||||
|
fixed = yes
|
||||||
|
antialiasing = no
|
||||||
|
slideshow = no
|
||||||
|
slideshow_time = 3
|
||||||
|
history = 1
|
||||||
|
preload = 1
|
||||||
|
|
||||||
|
[gallery]
|
||||||
|
size = 200
|
||||||
|
cache = 100
|
||||||
|
fill = yes
|
||||||
|
antialiasing = yes
|
||||||
|
window = #${base00}ff
|
||||||
|
background = #${base01}ff
|
||||||
|
select = #${base02}ff
|
||||||
|
border = #${base0E}ff
|
||||||
|
shadow = #${base00}a0
|
||||||
|
|
||||||
|
[list]
|
||||||
|
order = alpha
|
||||||
|
loop = yes
|
||||||
|
recursive = no
|
||||||
|
all = yes
|
||||||
|
|
||||||
|
[font]
|
||||||
|
name = JetBrainsMono NerdFont
|
||||||
|
size = 14
|
||||||
|
color = #${base06}ff
|
||||||
|
shadow = #${base00}a0
|
||||||
|
|
||||||
|
[info]
|
||||||
|
show = yes
|
||||||
|
info_timeout = 5
|
||||||
|
status_timeout = 3
|
||||||
|
|
||||||
|
[info.viewer]
|
||||||
|
top_left = none
|
||||||
|
top_right = index
|
||||||
|
bottom_left = none
|
||||||
|
bottom_right = none
|
||||||
|
|
||||||
|
[info.gallery]
|
||||||
|
top_left = none
|
||||||
|
top_right = index
|
||||||
|
bottom_left = none
|
||||||
|
bottom_right = none
|
||||||
|
|
||||||
|
[keys.viewer]
|
||||||
|
F1 = help
|
||||||
|
Home = first_file
|
||||||
|
g = first_file
|
||||||
|
End = last_file
|
||||||
|
Shift+g = last_file
|
||||||
|
Prior = prev_file
|
||||||
|
Next = next_file
|
||||||
|
h = zoom +10
|
||||||
|
j = next_file
|
||||||
|
k = prev_file
|
||||||
|
l = zoom -10
|
||||||
|
Space = next_file
|
||||||
|
Shift+d = prev_dir
|
||||||
|
d = next_dir
|
||||||
|
Shift+o = prev_frame
|
||||||
|
o = next_frame
|
||||||
|
c = skip_file
|
||||||
|
Shift+s = slideshow
|
||||||
|
s = animation
|
||||||
|
f = fullscreen
|
||||||
|
Return = mode
|
||||||
|
Left = step_left 10
|
||||||
|
Right = step_right 10
|
||||||
|
Up = step_up 10
|
||||||
|
Down = step_down 10
|
||||||
|
Equal = zoom +10
|
||||||
|
Plus = zoom +10
|
||||||
|
Minus = zoom -10
|
||||||
|
w = zoom width
|
||||||
|
Shift+w = zoom height
|
||||||
|
z = zoom fit
|
||||||
|
Shift+z = zoom fill
|
||||||
|
0 = zoom real
|
||||||
|
BackSpace = zoom optimal
|
||||||
|
bracketleft = rotate_left
|
||||||
|
bracketright = rotate_right
|
||||||
|
m = flip_vertical
|
||||||
|
Shift+m = flip_horizontal
|
||||||
|
a = antialiasing
|
||||||
|
r = reload
|
||||||
|
i = info
|
||||||
|
Shift+Delete = exec rm "%"; skip_file
|
||||||
|
Escape = exit
|
||||||
|
q = exit
|
||||||
|
# Mouse related
|
||||||
|
ScrollLeft = step_right 5
|
||||||
|
ScrollRight = step_left 5
|
||||||
|
ScrollUp = step_up 5
|
||||||
|
ScrollDown = step_down 5
|
||||||
|
Ctrl+ScrollUp = zoom +10
|
||||||
|
Ctrl+ScrollDown = zoom -10
|
||||||
|
Shift+ScrollUp = prev_file
|
||||||
|
Shift+ScrollDown = next_file
|
||||||
|
Alt+ScrollUp = prev_frame
|
||||||
|
Alt+ScrollDown = next_frame
|
||||||
|
|
||||||
|
[keys.gallery]
|
||||||
|
F1 = help
|
||||||
|
|
||||||
|
Home = first_file
|
||||||
|
g = first_file
|
||||||
|
|
||||||
|
End = last_file
|
||||||
|
Shift+g = last_file
|
||||||
|
|
||||||
|
Left = step_left
|
||||||
|
Right = step_right
|
||||||
|
Up = step_up
|
||||||
|
Down = step_down
|
||||||
|
|
||||||
|
h = step_left
|
||||||
|
j = step_down
|
||||||
|
k = step_up
|
||||||
|
l = step_right
|
||||||
|
Prior = page_up
|
||||||
|
Next = page_down
|
||||||
|
|
||||||
|
c = skip_file
|
||||||
|
f = fullscreen
|
||||||
|
Return = mode
|
||||||
|
a = antialiasing
|
||||||
|
r = reload
|
||||||
|
|
||||||
|
i = info
|
||||||
|
Shift+Delete = exec rm "%"; skip_file
|
||||||
|
Escape = exit
|
||||||
|
q = exit
|
||||||
|
# Mouse related
|
||||||
|
ScrollLeft = step_right
|
||||||
|
ScrollRight = step_left
|
||||||
|
ScrollUp = step_up
|
||||||
|
ScrollDown = step_down
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
18
modules/home/programs/gui/thunderbird/default.nix
Normal file
18
modules/home/programs/gui/thunderbird/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ pkgs, lib, config, userName, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.programs.gui.thunderbird;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.programs.gui.thunderbird = { enable = mkEnableOption ""; };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.thunderbird = True // {
|
||||||
|
package = pkgs.thunderbird-esr;
|
||||||
|
profiles.${userName} = { isDefault = true; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
15
modules/home/shells/abbrs.nix
Normal file
15
modules/home/shells/abbrs.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
module.shells = {
|
||||||
|
abbrs = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
23
modules/home/shells/alias.nix
Normal file
23
modules/home/shells/alias.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.alias;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.shells.alias = {
|
||||||
|
enable = mkEnableOption "";
|
||||||
|
alias = mkOption {
|
||||||
|
type = with types; attrsOf str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home = { shellAliases = cfg.alias; };
|
||||||
|
xdg.configFile."lutgen/paradise".text =
|
||||||
|
"151515 1F1F1F 2E2E2E 424242 BBB6B6 E8E3E3 E8E3E3 E8E3E3 B66467 D9BC8C D9BC8C 8C977D 8AA6A2 8DA3B9 A988B0 BBB6B6";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
11
modules/home/shells/bash/default.nix
Normal file
11
modules/home/shells/bash/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ pkgs, lib, config, False, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.bash;
|
||||||
|
in {
|
||||||
|
options = { module.shells.bash = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable { programs.bash = False; };
|
||||||
|
}
|
||||||
|
|
13
modules/home/shells/default.nix
Normal file
13
modules/home/shells/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./bash
|
||||||
|
./fish
|
||||||
|
./nushell
|
||||||
|
./tmux
|
||||||
|
./zsh
|
||||||
|
./abbrs.nix
|
||||||
|
./alias.nix
|
||||||
|
./starship.nix
|
||||||
|
./var.nix
|
||||||
|
];
|
||||||
|
}
|
36
modules/home/shells/fish/colors.nix
Normal file
36
modules/home/shells/fish/colors.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ ... }: {
|
||||||
|
programs.fish = let
|
||||||
|
# VARIABLES
|
||||||
|
col = "set fish_color";
|
||||||
|
pag = "set fish_pager_color";
|
||||||
|
sel = "${pag}_selected";
|
||||||
|
sec = "${pag}_secondary";
|
||||||
|
bol = "--bold";
|
||||||
|
ita = "--italics";
|
||||||
|
bg = "--background";
|
||||||
|
# COLORS
|
||||||
|
colors = ''
|
||||||
|
# COLORS
|
||||||
|
${col}_cancel ${bg}=red ${bol} black
|
||||||
|
${col}_comment gray
|
||||||
|
'';
|
||||||
|
pager = ''
|
||||||
|
# COMPLETIONS
|
||||||
|
${pag}_completion white
|
||||||
|
${sel}_completion black ${bol}
|
||||||
|
${sec}_completion white
|
||||||
|
${pag}_prefix white
|
||||||
|
${sel}_prefix black ${bol}
|
||||||
|
${pag}_description yellow ${ita}
|
||||||
|
${sel}_description black
|
||||||
|
${pag}_background black
|
||||||
|
${sel}_background ${bg}=green
|
||||||
|
${pag}_progress ${bg}=magenta black
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
interactiveShellInit = ''
|
||||||
|
${colors}
|
||||||
|
${pager}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
45
modules/home/shells/fish/default.nix
Normal file
45
modules/home/shells/fish/default.nix
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{ lib, config, userName, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.shells.fish;
|
||||||
|
abbrs = config.module.shells.abbrs;
|
||||||
|
in {
|
||||||
|
options = { module.shells.fish = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./misc ./colors.nix ./functions.nix ./plugins.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.fish = True // {
|
||||||
|
preferAbbrs = true;
|
||||||
|
shellAbbrs = abbrs;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting
|
||||||
|
'';
|
||||||
|
shellInitLast = ''
|
||||||
|
set fish_cursor_default block
|
||||||
|
set fish_cursor_insert line
|
||||||
|
set fish_cursor_replace_one underscore
|
||||||
|
set fish_cursor_replace underscore
|
||||||
|
set fish_cursor_visual block
|
||||||
|
set fish_cursor_external line
|
||||||
|
|
||||||
|
set -g tide_prompt_transient_enabled true
|
||||||
|
set -g tide_prompt_add_newline_before true
|
||||||
|
set -g tide_left_prompt_items pwd git newline character
|
||||||
|
set -g tide_right_prompt_items cmd_duration
|
||||||
|
set -g tide_cmd_duration_icon
|
||||||
|
set -g tide_cmd_duration_threshold 1000
|
||||||
|
set -g tide_pwd_icon_home "home of user ${userName}"
|
||||||
|
set -g tide_pwd_icon
|
||||||
|
set -g tide_pwd_icon_unwritable
|
||||||
|
set -g tide_pwd_transient_enabled true
|
||||||
|
set -g tide_pwd_color_truncated_dirs brblack
|
||||||
|
set -g tide_pwd_color_dirs blue
|
||||||
|
set -g tide_pwd_color_anchors blue
|
||||||
|
set -g tide_git_color_branch -o green
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
38
modules/home/shells/fish/functions.nix
Normal file
38
modules/home/shells/fish/functions.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ ... }: {
|
||||||
|
programs.fish.functions = {
|
||||||
|
clone.body = ''
|
||||||
|
echo "cd ~/git/"
|
||||||
|
cd $HOME/git
|
||||||
|
git clone $argv && cd $(basename $argv .git)
|
||||||
|
'';
|
||||||
|
# NIX
|
||||||
|
rebuild.body = ''
|
||||||
|
git add ~/.flake/.
|
||||||
|
for ARG in $argv
|
||||||
|
if [ $ARG = home ]
|
||||||
|
command home-manager switch --flake ~/.flake
|
||||||
|
return $status
|
||||||
|
else if [ $ARG = host ]
|
||||||
|
command sudo nixos-rebuild switch --flake ~/.flake
|
||||||
|
return $status
|
||||||
|
else
|
||||||
|
command echo "Select 'home' or 'host'"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
nrun.body = ''
|
||||||
|
nix run nixpkgs#$argv
|
||||||
|
'';
|
||||||
|
nshell.body = ''
|
||||||
|
nix shell nixpkgs#$argv
|
||||||
|
'';
|
||||||
|
nbuild.body = ''
|
||||||
|
nix build nixpkgs#$argv
|
||||||
|
'';
|
||||||
|
nclean.body = ''
|
||||||
|
nix-env --delete-generations old
|
||||||
|
nix-store --gc
|
||||||
|
nix-collect-garbage -d
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
6
modules/home/shells/fish/misc/default.nix
Normal file
6
modules/home/shells/fish/misc/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# IDK
|
||||||
|
# ./fish-helix.nix
|
||||||
|
];
|
||||||
|
}
|
25
modules/home/shells/fish/misc/fish-helix.nix
Normal file
25
modules/home/shells/fish/misc/fish-helix.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
xdg.configFile = let
|
||||||
|
fun = "fish/functions";
|
||||||
|
hx = pkgs.fetchFromSourcehut {
|
||||||
|
owner = "~neverness";
|
||||||
|
repo = "fish_hx";
|
||||||
|
rev = "main";
|
||||||
|
sha256 = "sha256-57EWMjsUit8la6t62SVv5ocgY2EqrGx7sF2BjGWDw5Q=";
|
||||||
|
};
|
||||||
|
count = "fish_bind_count.fish";
|
||||||
|
cmd = "fish_helix_command.fish";
|
||||||
|
binds = "fish_helix_key_bindings.fish";
|
||||||
|
mode = "fish_default_mode_prompt.fish";
|
||||||
|
in {
|
||||||
|
"${fun}/${count}".source = "${hx}/${count}";
|
||||||
|
"${fun}/${cmd}".source = "${hx}/${cmd}";
|
||||||
|
"${fun}/${binds}".source = "${hx}/${binds}";
|
||||||
|
"${fun}/${mode}".source = "${hx}/${mode}";
|
||||||
|
};
|
||||||
|
programs.fish.plugins = with pkgs.fishPlugins; [{
|
||||||
|
name = "tide";
|
||||||
|
src = tide.src;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
30
modules/home/shells/fish/plugins.nix
Normal file
30
modules/home/shells/fish/plugins.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
with pkgs; {
|
||||||
|
home.packages = [ grc ];
|
||||||
|
programs.fish.plugins = with fishPlugins; [
|
||||||
|
{
|
||||||
|
name = "grc";
|
||||||
|
src = grc.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "autopair";
|
||||||
|
src = autopair.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "fzf-fish";
|
||||||
|
src = fzf-fish.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "git-abbr";
|
||||||
|
src = git-abbr.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "puffer";
|
||||||
|
src = puffer.src;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "colored-man-pages";
|
||||||
|
src = colored-man-pages.src;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
52
modules/home/shells/nushell/default.nix
Normal file
52
modules/home/shells/nushell/default.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.nushell;
|
||||||
|
in {
|
||||||
|
options = { module.shells.nushell = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.nushell = with pkgs;
|
||||||
|
True // {
|
||||||
|
configFile.text = ''
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false
|
||||||
|
edit_mode: vi
|
||||||
|
footer_mode: always
|
||||||
|
filesize: { metric: true }
|
||||||
|
ls: { clickable_links: false }
|
||||||
|
rm: { always_trash: true }
|
||||||
|
table: {
|
||||||
|
mode: compact_double
|
||||||
|
index_mode: always
|
||||||
|
header_on_separator: true
|
||||||
|
padding: { left: 2, right: 1 }
|
||||||
|
}
|
||||||
|
completions: {
|
||||||
|
algorithm: fuzzy
|
||||||
|
quick: true
|
||||||
|
case_sensitive: false
|
||||||
|
external: {
|
||||||
|
enable: true
|
||||||
|
max_results: 50
|
||||||
|
completer: { |spans| ${carapace}/bin/carapace $spans.0 nushell ...$spans | from json }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def llm [] { ls | sort-by modified }
|
||||||
|
def lls [ term: string ] { ls | where { |it| ($it.name | str contains $term ) } }
|
||||||
|
def pss [ term: string ] { ps | where { |it| ($it.name | str contains $term ) } }
|
||||||
|
def wy [ video_id: string ] { mpv $"https://youtube.com/watch?v=($video_id)" }
|
||||||
|
'';
|
||||||
|
envFile.text = ''
|
||||||
|
$env.EDITOR = "${helix}/bin/hx"
|
||||||
|
$env.BROWSER = "zen"
|
||||||
|
$env.XDG_CONFIG_HOME = $"($env.HOME)/.config"
|
||||||
|
$env.DIRENV_LOG_FORMAT = ""
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
55
modules/home/shells/starship.nix
Normal file
55
modules/home/shells/starship.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{ lib, config, userName, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.starship;
|
||||||
|
in {
|
||||||
|
options = { module.shells.starship = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.starship = True // {
|
||||||
|
# enableFishIntegration = false;
|
||||||
|
enableTransience = true;
|
||||||
|
settings = {
|
||||||
|
add_newline = true;
|
||||||
|
right_format = lib.concatStrings [ "$cmd_duration" "$line_break" ];
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$directory"
|
||||||
|
"$git_branch"
|
||||||
|
"$line_break"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
directory = {
|
||||||
|
format = "[$path]($style) [$read_only]($read_only_style)";
|
||||||
|
style = "bold fg:blue";
|
||||||
|
read_only = "[] ";
|
||||||
|
read_only_style = "bold red";
|
||||||
|
home_symbol = "home of [${userName}]";
|
||||||
|
truncation_length = 2;
|
||||||
|
truncation_symbol = "../";
|
||||||
|
};
|
||||||
|
git_branch = {
|
||||||
|
format = "on [$symbol$branch]($style) ";
|
||||||
|
style = "bold italic fg:green";
|
||||||
|
symbol = " ";
|
||||||
|
truncation_length = 8;
|
||||||
|
truncation_symbol = "";
|
||||||
|
};
|
||||||
|
cmd_duration = {
|
||||||
|
min_time = 1000;
|
||||||
|
format = "[$duration](bold fg:yellow)";
|
||||||
|
};
|
||||||
|
character = {
|
||||||
|
format = "$symbol ";
|
||||||
|
success_symbol = "[❯](bold green)";
|
||||||
|
error_symbol = "[✗](bold red)";
|
||||||
|
vimcmd_symbol = "[N](bold green)";
|
||||||
|
vimcmd_replace_one_symbol = "[R](bold purple)";
|
||||||
|
vimcmd_replace_symbol = "[R](bold purple)";
|
||||||
|
vimcmd_visual_symbol = "[V](bold yellow)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
25
modules/home/shells/tmux/default.nix
Normal file
25
modules/home/shells/tmux/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.tmux;
|
||||||
|
in {
|
||||||
|
options = { module.shells.tmux = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.tmux = True // {
|
||||||
|
shell = "${pkgs.fish}/bin/fish";
|
||||||
|
clock24 = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
disableConfirmationPrompt = true;
|
||||||
|
customPaneNavigationAndResize = true;
|
||||||
|
prefix = "C-a";
|
||||||
|
shortcut = "a";
|
||||||
|
extraConfig = ''
|
||||||
|
set -g status-position bottom
|
||||||
|
set -g status-style bg=color0
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
31
modules/home/shells/var.nix
Normal file
31
modules/home/shells/var.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.shells.var;
|
||||||
|
in {
|
||||||
|
options = { module.shells.var = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.sessionVariables = {
|
||||||
|
TERM = "kitty";
|
||||||
|
TERMINAL = "kitty";
|
||||||
|
|
||||||
|
FILE_MANAGER = "yazi";
|
||||||
|
|
||||||
|
MICRO_TRUECOLOR = "1";
|
||||||
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
RANGER_LOAD_DEFAULT_RC = "false";
|
||||||
|
|
||||||
|
# FFF FILE MANAGER
|
||||||
|
FFF_HIDDEN = "1";
|
||||||
|
FFF_LS_COLORS = "1";
|
||||||
|
FFF_COL1 = "1";
|
||||||
|
FFF_COL2 = "0";
|
||||||
|
FFF_COL3 = "2";
|
||||||
|
FFF_COL4 = "6";
|
||||||
|
FFF_COL5 = "7";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
74
modules/home/shells/zsh/default.nix
Normal file
74
modules/home/shells/zsh/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ pkgs, lib, config, True, wm, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.shells.zsh;
|
||||||
|
abbrs = config.module.shells.abbrs;
|
||||||
|
in {
|
||||||
|
options = { module.shells.zsh = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./plugins.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.zsh = with pkgs;
|
||||||
|
True // {
|
||||||
|
# COOL TOOLS YEYE
|
||||||
|
syntaxHighlighting = True;
|
||||||
|
enableCompletion = true;
|
||||||
|
autosuggestion = True;
|
||||||
|
# SETS
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
completionInit = "autoload -U compinit && compinit";
|
||||||
|
# CONFIGURATION
|
||||||
|
zsh-abbr = True // { abbreviations = abbrs; };
|
||||||
|
initExtra = let
|
||||||
|
completion = {
|
||||||
|
default = ''
|
||||||
|
zstyle ':completion:*' rehash true
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
zstyle ':completion:*:git-checkout:*' sort false
|
||||||
|
zstyle ':completion::complete:*' gain-privileges 1
|
||||||
|
'';
|
||||||
|
fzf-tab = ''
|
||||||
|
zstyle ':completion:*' menu no
|
||||||
|
zstyle ':fzf-tab:*' fzf-command fzf
|
||||||
|
zstyle ':fzf-tab:*' fzf-pad 4
|
||||||
|
zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2,gutter:-1 \
|
||||||
|
--height=60% \
|
||||||
|
--margin=0,30%,0,0 \
|
||||||
|
--padding=0 \
|
||||||
|
--no-mouse --border rounded \
|
||||||
|
--prompt "Prompt: " \
|
||||||
|
--pointer "->" \
|
||||||
|
--info hidden
|
||||||
|
zstyle ':fzf-tab:*' switch-group '<' '>'
|
||||||
|
zstyle ':fzf-tab:*' switch-group F1 F2
|
||||||
|
zstyle ':fzf-tab:*' fzf-bindings 'space:accept'
|
||||||
|
zstyle ':fzf-tab:*' accept-line enter
|
||||||
|
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always \
|
||||||
|
--icons always \
|
||||||
|
$realpath'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
default = ''
|
||||||
|
autoload -U colors && colors
|
||||||
|
setopt sharehistory
|
||||||
|
setopt automenu
|
||||||
|
setopt nobeep
|
||||||
|
fpath=(${zsh-completions}/share/zsh/site-functions $fpath)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in ''
|
||||||
|
# COMPLETION
|
||||||
|
${completion.fzf-tab}
|
||||||
|
# ZSH SETTINGS
|
||||||
|
${settings.default}
|
||||||
|
# BINDINGS
|
||||||
|
${builtins.readFile ./keymap}
|
||||||
|
[ "$(tty)" = "/dev/tty1" ] && exec ${wm.sh} # LAUNCH WM
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
49
modules/home/shells/zsh/keymap
Normal file
49
modules/home/shells/zsh/keymap
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
typeset -g -A key
|
||||||
|
|
||||||
|
key[Home]="${terminfo[khome]}"
|
||||||
|
key[End]="${terminfo[kend]}"
|
||||||
|
key[Insert]="${terminfo[kich1]}"
|
||||||
|
key[Backspace]="${terminfo[kbs]}"
|
||||||
|
key[Delete]="${terminfo[kdch1]}"
|
||||||
|
key[Up]="${terminfo[kcuu1]}"
|
||||||
|
key[Down]="${terminfo[kcud1]}"
|
||||||
|
key[Left]="${terminfo[kcub1]}"
|
||||||
|
key[Right]="${terminfo[kcuf1]}"
|
||||||
|
key[PageUp]="${terminfo[kpp]}"
|
||||||
|
key[PageDown]="${terminfo[knp]}"
|
||||||
|
key[Shift-Tab]="${terminfo[kcbt]}"
|
||||||
|
|
||||||
|
[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
|
||||||
|
[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
|
||||||
|
[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
|
||||||
|
[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
|
||||||
|
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
|
||||||
|
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
|
||||||
|
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
|
||||||
|
[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
|
||||||
|
[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
|
||||||
|
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
|
||||||
|
|
||||||
|
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
||||||
|
autoload -Uz add-zle-hook-widget
|
||||||
|
function zle_application_mode_start { echoti smkx }
|
||||||
|
function zle_application_mode_stop { echoti rmkx }
|
||||||
|
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
|
||||||
|
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# HISTORY MOVEMENT
|
||||||
|
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
|
||||||
|
zle -N up-line-or-beginning-search
|
||||||
|
zle -N down-line-or-beginning-search
|
||||||
|
|
||||||
|
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search
|
||||||
|
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search
|
||||||
|
|
||||||
|
# CTRL MOVEMENT
|
||||||
|
key[Control-Left]="${terminfo[kLFT5]}"
|
||||||
|
key[Control-Right]="${terminfo[kRIT5]}"
|
||||||
|
|
||||||
|
[[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word
|
||||||
|
[[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word
|
||||||
|
|
57
modules/home/shells/zsh/plugins.nix
Normal file
57
modules/home/shells/zsh/plugins.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{ pkgs, True, ... }: {
|
||||||
|
programs.zsh = with pkgs; {
|
||||||
|
oh-my-zsh = True // { plugins = [ "git" "eza" "colored-man-pages" ]; };
|
||||||
|
plugins = let
|
||||||
|
s = "share";
|
||||||
|
rev = "main";
|
||||||
|
in [
|
||||||
|
# FROM REPO
|
||||||
|
# {
|
||||||
|
# name = "zsh-powerlevel10k";
|
||||||
|
# file = "${s}/zsh-powerlevel10k/powerlevel10k.zsh-theme";
|
||||||
|
# src = zsh-powerlevel10k;
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name = "zsh-fzf-tab";
|
||||||
|
file = "${s}/fzf-tab/fzf-tab.plugin.zsh";
|
||||||
|
src = zsh-fzf-tab;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "zsh-autopair";
|
||||||
|
file = "${s}/zsh/zsh-autopair/autopair.zsh";
|
||||||
|
src = zsh-autopair;
|
||||||
|
}
|
||||||
|
# FROM GITHUB
|
||||||
|
# {
|
||||||
|
# name = "zsh-allclear";
|
||||||
|
# file = "zsh-allclear.plugin.zsh";
|
||||||
|
# src = fetchFromSourcehut {
|
||||||
|
# owner = "~azikx";
|
||||||
|
# repo = "zsh_helix";
|
||||||
|
# sha256 = "sha256-vIPkP1soUtnMcwTlwiTP68AwI3DpkMuj614afS37IIs=";
|
||||||
|
# inherit rev;
|
||||||
|
# };
|
||||||
|
# }
|
||||||
|
{
|
||||||
|
name = "eza-zsh";
|
||||||
|
file = "eza-zsh.plugin.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "MohamedElashri";
|
||||||
|
repo = "eza-zsh";
|
||||||
|
sha256 = "sha256-ee56D48unp/Bm1EA2/pYYYJZ8Fdtbu0LsUGHfGlRNK8=";
|
||||||
|
inherit rev;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "helix-mode";
|
||||||
|
file = "helix-mode.zsh";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "allomanta";
|
||||||
|
repo = "zsh-helix-mode";
|
||||||
|
rev = "f5e6cb94fa77f5fa0762b9b2c7c818e8ae87d22e";
|
||||||
|
hash = "sha256-oDRk9JK5agM1Izc6FWf+i6bRKhK3uohG9Cnco3dJwP8=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
1
modules/home/themes/default.nix
Normal file
1
modules/home/themes/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./gtk ./qt ./stylix ]; }
|
47
modules/home/themes/gtk/default.nix
Normal file
47
modules/home/themes/gtk/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ pkgs, lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.themes.gtk;
|
||||||
|
extra = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
gtk-xft-antialias = 1;
|
||||||
|
gtk-xft-hinting = 1;
|
||||||
|
gtk-xft-hintstyle = "hintslight";
|
||||||
|
gtk-xft-rgba = "rgb";
|
||||||
|
gtk-button-images = 0;
|
||||||
|
gtk-menu-images = 0;
|
||||||
|
gtk-enable-event-sounds = 1;
|
||||||
|
gtk-enable-input-feedback-sounds = 0;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.themes.gtk = {
|
||||||
|
enable = mkEnableOption "";
|
||||||
|
icon = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans ];
|
||||||
|
gtk = with pkgs;
|
||||||
|
True // {
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = papirus-icon-theme.override { color = cfg.icon; };
|
||||||
|
};
|
||||||
|
font = lib.mkForce {
|
||||||
|
name = "JetBrainsMono NerdFont";
|
||||||
|
package = nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
|
||||||
|
size = 12;
|
||||||
|
};
|
||||||
|
gtk3 = { extraConfig = extra; };
|
||||||
|
gtk4 = { extraConfig = extra; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
13
modules/home/themes/qt/color.nix
Normal file
13
modules/home/themes/qt/color.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
xdg.configFile = let
|
||||||
|
colors = ''
|
||||||
|
[ColorScheme]
|
||||||
|
active_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
|
||||||
|
disabled_colors=#ff808080, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ff808080, #ffe8e3e3, #ff808080, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ff808080, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
|
||||||
|
inactive_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
"qt5ct/colors/paradise.conf".text = "${colors}";
|
||||||
|
"qt6ct/colors/paradise.conf".text = "${colors}";
|
||||||
|
};
|
||||||
|
}
|
12
modules/home/themes/qt/default.nix
Normal file
12
modules/home/themes/qt/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ lib, config, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.themes.qt;
|
||||||
|
in {
|
||||||
|
options = { module.themes.qt = { enable = mkEnableOption ""; }; };
|
||||||
|
|
||||||
|
imports = [ ./qt5ct.nix ./qt6ct.nix ./color.nix ];
|
||||||
|
config = mkIf cfg.enable { qt = True // { platformTheme.name = "qtct"; }; };
|
||||||
|
}
|
||||||
|
|
43
modules/home/themes/qt/qt5ct.nix
Normal file
43
modules/home/themes/qt/qt5ct.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{ pkgs, config, ... }: {
|
||||||
|
xdg.configFile = {
|
||||||
|
"qt5ct/qt5ct.conf".text = with pkgs.libsForQt5; ''
|
||||||
|
[Appearance]
|
||||||
|
color_scheme_path=${config.home.homeDirectory}/.config/qt5ct/colors/paradise.conf
|
||||||
|
custom_palette=true
|
||||||
|
icon_theme=Papirus-Dark
|
||||||
|
standard_dialogs=default
|
||||||
|
style=Fusion
|
||||||
|
|
||||||
|
[Fonts]
|
||||||
|
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular"
|
||||||
|
general="JetBrainsMono Nerd Font,12,-1,5,50,0,0,0,0,0,Regular"
|
||||||
|
|
||||||
|
[Interface]
|
||||||
|
activate_item_on_single_click=1
|
||||||
|
buttonbox_layout=0
|
||||||
|
cursor_flash_time=1000
|
||||||
|
dialog_buttons_have_icons=1
|
||||||
|
double_click_interval=400
|
||||||
|
gui_effects=@Invalid()
|
||||||
|
keyboard_scheme=2
|
||||||
|
menus_have_icons=true
|
||||||
|
show_shortcuts_in_context_menus=true
|
||||||
|
stylesheets=@Invalid()
|
||||||
|
toolbutton_style=4
|
||||||
|
underline_shortcut=1
|
||||||
|
wheel_scroll_lines=3
|
||||||
|
stylesheets=${qt5ct}/share/qt5ct/qss/scrollbar-simple.qss, ${qt5ct}/share/qt5ct/qss/sliders-simple.qss, ${qt5ct}/share/qt5ct/qss/tooltip-simple.qss, ${qt5ct}/share/qt5ct/qss/traynotification-simple.qss
|
||||||
|
|
||||||
|
[PaletteEditor]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
||||||
|
|
||||||
|
[SettingsWindow]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\x3\xbf\0\0\x4\v\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5)
|
||||||
|
|
||||||
|
[Troubleshooting]
|
||||||
|
force_raster_widgets=1
|
||||||
|
ignored_applications=@Invalid()
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
43
modules/home/themes/qt/qt6ct.nix
Normal file
43
modules/home/themes/qt/qt6ct.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{ pkgs, config, ... }: {
|
||||||
|
xdg.configFile = {
|
||||||
|
"qt6ct/qt6ct.conf".text = with pkgs; ''
|
||||||
|
[Appearance]
|
||||||
|
color_scheme_path=${config.home.homeDirectory}/.config/qt6ct/colors/paradise.conf
|
||||||
|
custom_palette=true
|
||||||
|
icon_theme=Papirus-Dark
|
||||||
|
standard_dialogs=default
|
||||||
|
style=Fusion
|
||||||
|
|
||||||
|
[Fonts]
|
||||||
|
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular"
|
||||||
|
general="JetBrainsMono Nerd Font,12,-1,5,50,0,0,0,0,0,Regular"
|
||||||
|
|
||||||
|
[Interface]
|
||||||
|
activate_item_on_single_click=1
|
||||||
|
buttonbox_layout=0
|
||||||
|
cursor_flash_time=1000
|
||||||
|
dialog_buttons_have_icons=1
|
||||||
|
double_click_interval=400
|
||||||
|
gui_effects=@Invalid()
|
||||||
|
keyboard_scheme=2
|
||||||
|
menus_have_icons=true
|
||||||
|
show_shortcuts_in_context_menus=true
|
||||||
|
stylesheets=@Invalid()
|
||||||
|
toolbutton_style=4
|
||||||
|
underline_shortcut=1
|
||||||
|
wheel_scroll_lines=3
|
||||||
|
stylesheets=${qt6ct}/share/qt6ct/qss/scrollbar-simple.qss, ${qt6ct}/share/qt6ct/qss/sliders-simple.qss, ${qt6ct}/share/qt6ct/qss/tooltip-simple.qss, ${qt6ct}/share/qt6ct/qss/traynotification-simple.qss
|
||||||
|
|
||||||
|
[PaletteEditor]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
||||||
|
|
||||||
|
[SettingsWindow]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\x3\xbf\0\0\x4\v\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5)
|
||||||
|
|
||||||
|
[Troubleshooting]
|
||||||
|
force_raster_widgets=1
|
||||||
|
ignored_applications=@Invalid()
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
37
modules/home/themes/stylix/colors.nix
Normal file
37
modules/home/themes/stylix/colors.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
stylix.base16Scheme = {
|
||||||
|
base00 = "#151515"; # BLACK
|
||||||
|
base01 = "#1F1F1F"; # DARK BLACK
|
||||||
|
base02 = "#2E2E2E"; # DARK GRAY
|
||||||
|
base03 = "#424242"; # GRAY
|
||||||
|
base04 = "#BBB6B6"; # LIGHT-GRAY
|
||||||
|
base05 = "#E8E3E3"; # WHITE
|
||||||
|
base06 = "#E8E3E3"; # WHITE?
|
||||||
|
base07 = "#E8E3E3"; # WHITE??
|
||||||
|
base08 = "#B66467"; # RED
|
||||||
|
base09 = "#D9BC8C"; # YELLOW
|
||||||
|
base0A = "#D9BC8C"; # ORANGE (TRULY YELLOW)
|
||||||
|
base0B = "#8C977D"; # GREEN
|
||||||
|
base0C = "#8AA6A2"; # TEAL
|
||||||
|
base0D = "#8DA3B9"; # BLUE
|
||||||
|
base0E = "#A988B0"; # PURPLE
|
||||||
|
base0F = "#BBB6B6"; # IDK WHITE MAYBE
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# base00 - Default Background
|
||||||
|
# base01 - Lighter Background (Used for status bars)
|
||||||
|
# base02 - Selection Background
|
||||||
|
# base03 - Comments, Invisibles, Line Highlighting
|
||||||
|
# base04 - Dark Foreground (Used for status bars)
|
||||||
|
# base05 - Default Foreground, Caret, Delimiters, Operators
|
||||||
|
# base06 - Light Foreground (Not often used)
|
||||||
|
# base07 - Light Background (Not often used)
|
||||||
|
# base08 - Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
|
||||||
|
# base09 - Integers, Boolean, Constants, XML Attributes, Markup Link Url
|
||||||
|
# base0A - Classes, Markup Bold, Search Text Background
|
||||||
|
# base0B - Strings, Inherited Class, Markup Code, Diff Inserted
|
||||||
|
# base0C - Support, Regular Expressions, Escape Characters, Markup Quotes
|
||||||
|
# base0D - Functions, Methods, Attribute IDs, Headings
|
||||||
|
# base0E - Keywords, Storage, Selector, Markup Italic, Diff Changed
|
||||||
|
# base0F - Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>
|
74
modules/home/themes/stylix/default.nix
Normal file
74
modules/home/themes/stylix/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ pkgs, lib, config, inputs, True, False, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.module.themes.stylix;
|
||||||
|
wal = inputs.walls;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.themes.stylix = {
|
||||||
|
enable = mkEnableOption "";
|
||||||
|
image = mkOption {
|
||||||
|
default = null;
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [ inputs.stylix.homeManagerModules.stylix ./colors.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
stylix = with pkgs;
|
||||||
|
True // {
|
||||||
|
autoEnable = false;
|
||||||
|
image = "${wal}/desktop/${cfg.image}.jpg";
|
||||||
|
cursor = {
|
||||||
|
name = "GoogleDot-Black";
|
||||||
|
package = google-cursor;
|
||||||
|
size = 20;
|
||||||
|
};
|
||||||
|
fonts = let
|
||||||
|
jet = {
|
||||||
|
name = "JetBrainsMono NerdFont";
|
||||||
|
package = nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
serif = jet;
|
||||||
|
monospace = jet;
|
||||||
|
emoji = {
|
||||||
|
name = "OpenMoji Color";
|
||||||
|
package = noto-fonts-emoji;
|
||||||
|
};
|
||||||
|
sizes = {
|
||||||
|
desktop = 10;
|
||||||
|
popups = 10;
|
||||||
|
applications = 12;
|
||||||
|
terminal = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
targets = {
|
||||||
|
# CLI
|
||||||
|
tmux = True;
|
||||||
|
fish = True;
|
||||||
|
nushell = True;
|
||||||
|
# WM
|
||||||
|
hyprland = True;
|
||||||
|
sway = True;
|
||||||
|
foot = True;
|
||||||
|
kitty = True;
|
||||||
|
mako = False;
|
||||||
|
# TOOLS
|
||||||
|
nixvim = True;
|
||||||
|
yazi = True;
|
||||||
|
fzf = True;
|
||||||
|
bat = True;
|
||||||
|
mangohud = True;
|
||||||
|
# GUI
|
||||||
|
vesktop = True;
|
||||||
|
qutebrowser = True;
|
||||||
|
firefox = True;
|
||||||
|
gtk = True;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
1
modules/home/wm/default.nix
Normal file
1
modules/home/wm/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ imports = [ ./hyprland ./misc ./sway ./terminals ]; }
|
147
modules/home/wm/hyprland/binds.nix
Normal file
147
modules/home/wm/hyprland/binds.nix
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.module.wm.hyprland;
|
||||||
|
mic =
|
||||||
|
"fixf4=$(cat /sys/class/leds/platform::micmute/brightness); echo $((1-fixf4)) | doas tee /sys/class/leds/platform::micmute/brightness; wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||||
|
aud = "alsa_output.pci-0000_2b_00.1.hdmi-stereo.monitor";
|
||||||
|
vid = "$(xdg-user-dir VIDEOS)/$(date +'vid_%d-%m-%y|%H:%M:%S.mp4')";
|
||||||
|
workspaces = (builtins.concatLists (builtins.genList (i:
|
||||||
|
let ws = i + 1;
|
||||||
|
in [
|
||||||
|
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
||||||
|
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
||||||
|
]) 10));
|
||||||
|
in {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
# SHORTCUTS
|
||||||
|
"$m" = "SUPER";
|
||||||
|
"$s" = "SHIFT";
|
||||||
|
"$a" = "ALT";
|
||||||
|
"$c" = "CTRL";
|
||||||
|
|
||||||
|
"$rt" = "RETURN";
|
||||||
|
"$sp" = "SPACE";
|
||||||
|
"$tb" = "TAB";
|
||||||
|
|
||||||
|
"$nx" = "Next";
|
||||||
|
"$pr" = "Prior";
|
||||||
|
"$PR" = "Print";
|
||||||
|
|
||||||
|
"$md" = "mouse_down";
|
||||||
|
"$mu" = "mouse_up";
|
||||||
|
"$ex" = "exec";
|
||||||
|
|
||||||
|
# KEYBOARD
|
||||||
|
bind = with cfg;
|
||||||
|
[
|
||||||
|
# MENU
|
||||||
|
"$m, $tb, exec, ${pkgs.nwg-drawer}/bin/nwg-drawer -ovl -nocats -nofs -d -c 5 -mb -49"
|
||||||
|
|
||||||
|
# BUILTIN COMMANDS
|
||||||
|
"$m, $sp, togglefloating"
|
||||||
|
"$m, Q, killactive"
|
||||||
|
|
||||||
|
"$m, F, fullscreen"
|
||||||
|
"$m $s, F, centerwindow"
|
||||||
|
|
||||||
|
"$m, X, pseudo"
|
||||||
|
"$m $s, X, pin"
|
||||||
|
|
||||||
|
"$m, W, cyclenext"
|
||||||
|
"$m $s, W, swapnext "
|
||||||
|
|
||||||
|
"$m, G, togglegroup"
|
||||||
|
"$m $s, G, changegroupactive"
|
||||||
|
"$m $a, G, moveoutofgroup"
|
||||||
|
|
||||||
|
"$m, Z, togglespecialworkspace, extra"
|
||||||
|
"$m $s, Z, movetoworkspace, special:extra"
|
||||||
|
|
||||||
|
"$m, C, togglespecialworkspace, magic"
|
||||||
|
"$m $s, C, movetoworkspace, special:magic"
|
||||||
|
|
||||||
|
"$m, $md, workspace, e+1"
|
||||||
|
"$m, $mu, workspace, e-1"
|
||||||
|
|
||||||
|
"$m, $nx, workspace, e+1"
|
||||||
|
"$m, $pr, workspace, e-1"
|
||||||
|
] ++ workspaces ++ programs;
|
||||||
|
|
||||||
|
# HOLDING BUTTONS
|
||||||
|
binde = let
|
||||||
|
mf = "movefocus";
|
||||||
|
sw = "swapwindow";
|
||||||
|
ra = "resizeactive";
|
||||||
|
ma = "moveactive";
|
||||||
|
in [
|
||||||
|
# HJKL
|
||||||
|
"$m, H, ${mf}, l"
|
||||||
|
"$m, J, ${mf}, d"
|
||||||
|
"$m, K, ${mf}, u"
|
||||||
|
"$m, L, ${mf}, r"
|
||||||
|
|
||||||
|
"$m $s, H, ${sw}, l"
|
||||||
|
"$m $s, J, ${sw}, d"
|
||||||
|
"$m $s, K, ${sw}, u"
|
||||||
|
"$m $s, L, ${sw}, r"
|
||||||
|
|
||||||
|
"$m $a, H, ${ra}, -50 0"
|
||||||
|
"$m $a, J, ${ra}, 0 50"
|
||||||
|
"$m $a, K, ${ra}, 0 -50"
|
||||||
|
"$m $a, L, ${ra}, 50 0"
|
||||||
|
|
||||||
|
"$m $c, H, ${ma}, -50 0"
|
||||||
|
"$m $c, J, ${ma}, 0 50"
|
||||||
|
"$m $c, K, ${ma}, 0 -50"
|
||||||
|
"$m $c, L, ${ma}, 50 0"
|
||||||
|
|
||||||
|
# ARROWS
|
||||||
|
"$m, left, ${mf}, l"
|
||||||
|
"$m, down, ${mf}, d"
|
||||||
|
"$m, up, ${mf}, u"
|
||||||
|
"$m, right, ${mf}, r"
|
||||||
|
|
||||||
|
"$m $s, left, ${sw}, l"
|
||||||
|
"$m $s, down, ${sw}, d"
|
||||||
|
"$m $s, up, ${sw}, u"
|
||||||
|
"$m $s, right, ${sw}, r"
|
||||||
|
|
||||||
|
"$m $a, left, ${ra}, -50 0"
|
||||||
|
"$m $a, down, ${ra}, 0 50"
|
||||||
|
"$m $a, up, ${ra}, 0 -50"
|
||||||
|
"$m $a, right, ${ra}, 50 0"
|
||||||
|
|
||||||
|
"$m $c, left, ${ma}, -50 0"
|
||||||
|
"$m $c, down, ${ma}, 0 50"
|
||||||
|
"$m $c, up, ${ma}, 0 -50"
|
||||||
|
"$m $c, right, ${ma}, 50 0"
|
||||||
|
|
||||||
|
# SOUND
|
||||||
|
", XF86AudioMute, $ex, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
", XF86AudioMicMute, $ex, ${mic}"
|
||||||
|
", XF86AudioRaiseVolume, $ex, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, $ex, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
|
||||||
|
# LIGHT
|
||||||
|
", XF86MonBrightnessDown, $ex, doas light -U 10"
|
||||||
|
", XF86MonBrightnessUp, $ex, doas light -A 10"
|
||||||
|
];
|
||||||
|
|
||||||
|
# MOUSE
|
||||||
|
bindm = [
|
||||||
|
"$m, mouse:272, movewindow"
|
||||||
|
"$m, mouse:273, resizewindow"
|
||||||
|
"$m $s, mouse:273, resizewindow 1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# SELECT AREA FOR VIDEO RECORD
|
||||||
|
xdg.configFile."hypr/wfrec" = {
|
||||||
|
text = with config.lib.stylix.colors; ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
${pkgs.wf-recorder}/bin/wf-recorder -a ${aud} -f ${vid} -g "$(${pkgs.slurp}/bin/slurp -b '${base00}CC' -c '${base0F}FF' -B '${base02}CC' -w '3')"
|
||||||
|
'';
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
30
modules/home/wm/hyprland/default.nix
Normal file
30
modules/home/wm/hyprland/default.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ pkgs, lib, config, inputs, True, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let cfg = config.module.wm.hyprland;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
module.wm.hyprland = {
|
||||||
|
enable = mkEnableOption "";
|
||||||
|
autostart = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
programs = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [ ./binds.nix ./rules.nix ./sets.nix ];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
wayland.windowManager.hyprland = True // {
|
||||||
|
xwayland = True;
|
||||||
|
systemd = True;
|
||||||
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
41
modules/home/wm/hyprland/plugins.nix
Normal file
41
modules/home/wm/hyprland/plugins.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ pkgs, inputs, ... }: {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
plugins = with inputs; [ hyprfocus.packages.${pkgs.system}.default ];
|
||||||
|
settings.plugin = {
|
||||||
|
# FOCUS
|
||||||
|
hyprfocus = let
|
||||||
|
in_bezier = "realsmooth";
|
||||||
|
out_bezier = "realsmooth";
|
||||||
|
in {
|
||||||
|
enabled = "yes";
|
||||||
|
animate_floating = "yes";
|
||||||
|
animate_workspacechange = "yes";
|
||||||
|
focus_animation = "focus";
|
||||||
|
# ANIMATIONS STYLE
|
||||||
|
bezier = [
|
||||||
|
"bezIn, 0.5, 0.0, 1.0, 0.5 "
|
||||||
|
"bezOut, 0.0, 0.5, 0.5, 1.0 "
|
||||||
|
"overshot, 0.05, 0.9, 0.1, 1.05 "
|
||||||
|
"smoothOut, 0.36, 0, 0.66, -0.56"
|
||||||
|
"smoothIn, 0.25, 1, 0.5, 1 "
|
||||||
|
"realsmooth, 0.28, 0.29, .69, 1.08 "
|
||||||
|
];
|
||||||
|
# FLASH MODE
|
||||||
|
flash = {
|
||||||
|
inherit in_bezier out_bezier;
|
||||||
|
flash_opacity = 0.95;
|
||||||
|
in_speed = 0.5;
|
||||||
|
out_speed = 3;
|
||||||
|
};
|
||||||
|
# SHRINK MODE
|
||||||
|
shrink = {
|
||||||
|
inherit in_bezier out_bezier;
|
||||||
|
shrink_percentage = 0.95;
|
||||||
|
in_speed = 1;
|
||||||
|
out_speed = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue