mirror of
https://git.sr.ht/~neverness/ultima
synced 2024-12-29 00:33:53 +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