Compare commits
118 commits
flake-lock
...
master
Author | SHA1 | Date | |
---|---|---|---|
aa31299def | |||
1af514e457 | |||
7c2a274d05 | |||
5bf4275652 | |||
808af0c095 | |||
48f8ee9817 | |||
b691294b08 | |||
9582abc5ce | |||
362b9f044f | |||
16bea5ecd0 | |||
10285807d9 | |||
6f3457ba2e | |||
667d99e2e9 | |||
c05cdf7605 | |||
9967772878 | |||
b74f983efd | |||
6e9ebfef1b | |||
fb67c6f3fc | |||
a99c9a70ae | |||
7c41f50433 | |||
246ea2c337 | |||
b6d68a90a7 | |||
f396aa9fe0 | |||
9bfc5b5188 | |||
ea51aa2617 | |||
e1c3a6edc8 | |||
297f095a2a | |||
b8a53b18c1 | |||
d08cd8dcd8 | |||
b769c225bc | |||
16a083673c | |||
b30b226142 | |||
25bb45a1a1 | |||
ebfd92a944 | |||
04b9285f94 | |||
e29ae84e02 | |||
fb373177b9 | |||
a1c226c8d5 | |||
e6be419ddd | |||
1217e90491 | |||
5becd952e6 | |||
ba292ee314 | |||
c65ae2f7a6 | |||
475d7def0c | |||
25c4539a53 | |||
9001f4b643 | |||
22414bc2f2 | |||
62d63aa60d | |||
7c0eb86242 | |||
f625eae63e | |||
5f3b25b4df | |||
1286b2c21e | |||
1ee85bb1e8 | |||
145b072cd0 | |||
2af33264f6 | |||
5801d4337e | |||
b7cd36173f | |||
19e7878a8e | |||
2835c14347 | |||
9cf3ccfa04 | |||
e99a2fe779 | |||
e058969876 | |||
850504f020 | |||
ac9c730b2c | |||
ab2b719e49 | |||
a53a451dad | |||
8918ec15d1 | |||
22744357f8 | |||
d74cf3d450 | |||
df9a4dbe34 | |||
fac0cc86bd | |||
a6ddefe428 | |||
5728053278 | |||
28bd86eba2 | |||
da0b301435 | |||
af12a15320 | |||
0d137d53a4 | |||
9b9e57c87a | |||
09c5c4e81b | |||
3f359aabf3 | |||
414fdf0bc7 | |||
420c50d4d8 | |||
a9e0d4d500 | |||
5b0814a8d7 | |||
a69380665e | |||
6fe24f311f | |||
1a5d835d47 | |||
932df2571a | |||
f2345cf30f | |||
3e5b3ae722 | |||
75674537c2 | |||
ff9007e984 | |||
c2cbad7587 | |||
502791c2a7 | |||
f068b32e5d | |||
e3d59d1147 | |||
20b33a3c3b | |||
a42505b7b1 | |||
127496a192 | |||
6ea24611f6 | |||
d15c8a8085 | |||
dd644e5729 | |||
1d01278932 | |||
baea36f726 | |||
5916091449 | |||
871ee2870e | |||
0670f8f68c | |||
8407e44e47 | |||
3536dc68fb | |||
cdeb1cc672 | |||
0f122d184d | |||
478188ccc9 | |||
7eea9b1bb4 | |||
6c347fc0a3 | |||
bbd93f7218 | |||
4ebb279d63 | |||
db67cddbda | |||
193f2480d7 |
173 changed files with 3276 additions and 3467 deletions
.sops.yamlLICENSEREADME.mdflake.lockflake.nix
home
default.nix
profiles
programs
browsers/firefox
editors
eww
git.nixgtk.nixhyprpanel
mako.nixmedia
opencomposite.nixterminal
themes.nixservices
wayland
hosts
|
@ -19,7 +19,3 @@ creation_rules:
|
|||
key_groups:
|
||||
- age:
|
||||
- *notoh
|
||||
- path_regex: secrets/homepage/[^/]+\.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *notoh
|
||||
|
|
26
LICENSE
26
LICENSE
|
@ -1,21 +1,13 @@
|
|||
MIT License
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (c) 2023 notohh
|
||||
Copyright (C) 2004 notohh <contact@notohh.dev>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
|
|
@ -14,9 +14,10 @@
|
|||
<img src="https://ci.flake.sh/api/badges/9/status.svg" alt="status-badge" />
|
||||
</a>
|
||||
<p></p>
|
||||
<img src="https://i.imgur.com/s2zvbRt.png"></img>
|
||||
<img src="https://i.imgur.com/G34pKzL.png"></img>
|
||||
<img src="https://i.imgur.com/TbveB7E.png"></img>
|
||||
<p>
|
||||
Screenshot updated: 2024-04-26
|
||||
Screenshots updated: 2025-02-09
|
||||
</p>
|
||||
<h4>
|
||||
:warning: this config is a constant WIP,
|
||||
|
@ -38,6 +39,7 @@
|
|||
- :building_construction: [tsuru](hosts/tsuru)
|
||||
- :snowflake: [yuki](hosts/yuki)
|
||||
- :electric_plug: [modules](modules)
|
||||
- :airplane: [overlays](overlays)
|
||||
- :package: [pkgs](pkgs)
|
||||
- :lock: [secrets](secrets)
|
||||
|
||||
|
|
2187
flake.lock
generated
2187
flake.lock
generated
File diff suppressed because it is too large
Load diff
103
flake.nix
103
flake.nix
|
@ -4,8 +4,9 @@
|
|||
outputs = inputs:
|
||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
||||
imports = [
|
||||
inputs.pre-commit-hooks.flakeModule
|
||||
./hosts
|
||||
./overlays
|
||||
./modules
|
||||
./hosts/deploy.nix
|
||||
./home/profiles
|
||||
];
|
||||
|
@ -15,28 +16,6 @@
|
|||
pkgs,
|
||||
...
|
||||
}: {
|
||||
pre-commit = {
|
||||
check.enable = true;
|
||||
settings = {
|
||||
excludes = ["flake.lock"];
|
||||
hooks = {
|
||||
stylua.enable = true;
|
||||
statix.enable = true;
|
||||
alejandra.enable = true;
|
||||
deadnix = {
|
||||
enable = true;
|
||||
excludes = ["overlays.nix"];
|
||||
};
|
||||
prettier = {
|
||||
enable = true;
|
||||
files = "\\.(js|ts|md|json)$";
|
||||
settings = {
|
||||
trailing-comma = "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
devShells.default = pkgs.mkShell {
|
||||
name = "snowflake";
|
||||
shellHook = config.pre-commit.installationScript;
|
||||
|
@ -56,46 +35,27 @@
|
|||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
### hypr
|
||||
hyprland = {
|
||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hypridle.url = "github:hyprwm/hypridle";
|
||||
hyprlock = {
|
||||
url = "github:hyprwm/hyprlock";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.hyprutils.follows = "hyprutils";
|
||||
};
|
||||
hyprpicker = {
|
||||
url = "github:hyprwm/hyprpicker";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.hyprutils.follows = "hyprutils";
|
||||
};
|
||||
hyprpaper = {
|
||||
url = "github:hyprwm/hyprpaper";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.hyprutils.follows = "hyprutils";
|
||||
};
|
||||
# hyprsunset = {
|
||||
# url = "github:hyprwm/hyprsunset";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# inputs.hyprutils.follows = "hyprutils";
|
||||
# };
|
||||
hyprutils = {
|
||||
url = "github:hyprwm/hyprutils";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
xdg-portal-hyprland = {
|
||||
url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.hyprutils.follows = "hyprutils";
|
||||
};
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
hypridle.url = "github:hyprwm/hypridle";
|
||||
hyprlock.url = "github:hyprwm/hyprlock";
|
||||
hyprpicker.url = "github:hyprwm/hyprpicker";
|
||||
hyprpaper.url = "github:hyprwm/hyprpaper";
|
||||
hyprsunset.url = "github:hyprwm/hyprsunset";
|
||||
|
||||
### other stuff
|
||||
### everything else
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
deploy-rs.url = "github:serokell/deploy-rs";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
hyprpanel.url = "github:jas-singhfsu/hyprpanel";
|
||||
zen.url = "github:youwen5/zen-browser-flake";
|
||||
scls.url = "github:estin/simple-completion-language-server";
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
nur.url = "github:nix-community/NUR";
|
||||
yazi.url = "github:sxyazi/yazi";
|
||||
|
@ -104,26 +64,15 @@
|
|||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
atuin.url = "github:atuinsh/atuin";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
stylix.url = "github:danth/stylix";
|
||||
eww.url = "github:elkowar/eww";
|
||||
anyrun.url = "github:Kirottu/anyrun";
|
||||
botoh.url = "git+https://git.flake.sh/notohh/botoh";
|
||||
conduwuit.url = "github:girlbossceo/conduwuit";
|
||||
neptune = {
|
||||
url = "github:uwu/neptune";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
deploy-rs = {
|
||||
url = "github:serokell/deploy-rs";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
|
||||
prismlauncher.url = "github:PrismLauncher/PrismLauncher";
|
||||
manga-tui.url = "github:josueBarretogit/manga-tui";
|
||||
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||
nix-topology.url = "github:oddlama/nix-topology";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
gnupg
|
||||
ripgrep
|
||||
lazydocker
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
nfs-utils
|
||||
dig
|
||||
|
@ -38,8 +39,8 @@
|
|||
unrar
|
||||
p7zip
|
||||
procs
|
||||
atac
|
||||
navi
|
||||
busybox
|
||||
];
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
|
|
|
@ -1,34 +1,20 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../services
|
||||
../../programs/anyrun
|
||||
../../programs/browsers/firefox
|
||||
../../programs/browsers/chromium
|
||||
../../programs/terminal/wezterm
|
||||
../../programs/terminal/zellij
|
||||
../../programs/gtk.nix
|
||||
../../programs/media/cava.nix
|
||||
../../programs/mako.nix
|
||||
../../programs/media/spotify-player.nix
|
||||
../../programs/media/zathura.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
discord
|
||||
discord-canary
|
||||
pavucontrol
|
||||
imv
|
||||
mpv
|
||||
rustypaste-cli
|
||||
playerctl
|
||||
obsidian
|
||||
cryptomator
|
||||
wayland
|
||||
glib
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swww
|
||||
hyprpicker
|
||||
technorino
|
||||
inputs.zen.packages.${pkgs.system}.default
|
||||
];
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
|
@ -65,10 +51,6 @@
|
|||
Hostname 100.73.192.45
|
||||
User notoh
|
||||
IdentityFile ~/.ssh/haru
|
||||
Host kaze
|
||||
Hostname 100.69.79.81
|
||||
User notoh
|
||||
IdentityFile ~/.ssh/kaze
|
||||
Host basegbot
|
||||
HostName 100.83.81.116
|
||||
User basegbot
|
||||
|
|
|
@ -4,19 +4,23 @@
|
|||
...
|
||||
}: {
|
||||
imports = [
|
||||
./stylix.nix
|
||||
inputs.catppuccin.homeManagerModules.catppuccin
|
||||
../../services
|
||||
../../programs/anyrun
|
||||
../../programs/eww
|
||||
../../programs/hyprpanel
|
||||
../../programs/browsers/firefox
|
||||
../../programs/terminal/wezterm
|
||||
../../programs/terminal/zellij
|
||||
../../programs/terminal/television
|
||||
../../programs/editors/zed
|
||||
../../programs/media/cava.nix
|
||||
../../programs/gtk.nix
|
||||
../../programs/mako.nix
|
||||
#../../programs/media/spotify-player.nix
|
||||
../../programs/media/spicetify.nix
|
||||
../../programs/themes.nix
|
||||
../../programs/opencomposite.nix
|
||||
../../programs/media/zathura.nix
|
||||
../../programs/media/easyeffects.nix
|
||||
../../programs/media/mpv.nix
|
||||
../../programs/media/jellyfin-mpv-shim.nix
|
||||
../../wayland/hyprland
|
||||
../../wayland/services/hypridle.nix
|
||||
../../wayland/services/hyprpaper.nix
|
||||
|
@ -26,46 +30,44 @@
|
|||
chromium
|
||||
vesktop
|
||||
technorino
|
||||
obsidian
|
||||
code-cursor
|
||||
signal-desktop
|
||||
obs-studio
|
||||
pavucontrol
|
||||
anki-bin
|
||||
virt-manager
|
||||
qbittorrent
|
||||
miru
|
||||
hyprpicker
|
||||
imv
|
||||
mpv
|
||||
ffmpeg
|
||||
rustypaste-cli
|
||||
gimp
|
||||
cryptomator
|
||||
ventoy-bin-full
|
||||
wine
|
||||
bottles
|
||||
prismlauncher
|
||||
lutris
|
||||
r2modman
|
||||
moonlight-qt
|
||||
tokei
|
||||
jellyfin-media-player
|
||||
jellyfin-rpc
|
||||
wlx-overlay-s
|
||||
losslesscut-bin
|
||||
mangohud
|
||||
uxplay
|
||||
drawio
|
||||
postman
|
||||
gale
|
||||
krita
|
||||
bolt-launcher
|
||||
cinny-desktop
|
||||
jetbrains.goland
|
||||
distrobox
|
||||
tidal-hifi
|
||||
neptune
|
||||
inputs.zen.packages.${pkgs.system}.default
|
||||
inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin
|
||||
# inputs.hyprsunset.packages.${pkgs.system}.default
|
||||
(callPackage ../../../pkgs/passgen {})
|
||||
(callPackage ../../../pkgs/forex {})
|
||||
(callPackage ../../../pkgs/cpm {})
|
||||
inputs.manga-tui.packages.${pkgs.system}.manga-tui
|
||||
inputs.prismlauncher.packages.${pkgs.system}.prismlauncher
|
||||
];
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "pink";
|
||||
};
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
|
@ -101,10 +103,6 @@
|
|||
Hostname 100.73.192.45
|
||||
User notoh
|
||||
IdentityFile ~/.ssh/haru
|
||||
Host kaze
|
||||
Hostname 100.69.79.81
|
||||
User notoh
|
||||
IdentityFile ~/.ssh/kaze
|
||||
Host basegbot
|
||||
HostName 100.83.81.116
|
||||
User basegbot
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.stylix.homeManagerModules.stylix];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = false;
|
||||
polarity = "dark";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
|
||||
fonts = {
|
||||
monospace = {
|
||||
name = "JetBrainsMono NF Medium";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
};
|
||||
serif = {
|
||||
name = "Noto Serif";
|
||||
package = pkgs.noto-fonts;
|
||||
};
|
||||
sansSerif = {
|
||||
name = "Noto Sans";
|
||||
package = pkgs.noto-fonts;
|
||||
};
|
||||
emoji = {
|
||||
name = "Twitter Color Emoji";
|
||||
package = pkgs.twitter-color-emoji;
|
||||
};
|
||||
sizes = {
|
||||
applications = 10;
|
||||
desktop = 10;
|
||||
popups = 10;
|
||||
terminal = 12;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
name = "Bibata-Modern-Classic";
|
||||
package = pkgs.bibata-cursors;
|
||||
size = 24;
|
||||
};
|
||||
opacity = {
|
||||
terminal = 0.6;
|
||||
};
|
||||
targets = {
|
||||
mako.enable = true;
|
||||
lazygit.enable = true;
|
||||
nushell.enable = true;
|
||||
yazi.enable = true;
|
||||
bat.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
policies = {
|
||||
DisablePocket = true;
|
||||
DisplayBookmarksToolbar = true;
|
||||
|
@ -109,16 +109,16 @@
|
|||
"x-scheme-handler/discord-409416265891971072" = ["discord-409416265891971072.desktop"];
|
||||
"x-scheme-handler/discord-402572971681644545" = ["discord-402572971681644545.desktop"];
|
||||
"x-scheme-handler/discord-696343075731144724" = ["discord-696343075731144724.desktop"];
|
||||
"x-scheme-handler/http" = ["firefox.desktop"];
|
||||
"x-scheme-handler/https" = ["firefox.desktop"];
|
||||
"x-scheme-handler/chrome" = ["firefox.desktop"];
|
||||
"x-scheme-handler/http" = ["zen.desktop"];
|
||||
"x-scheme-handler/https" = ["zen.desktop"];
|
||||
"x-scheme-handler/chrome" = ["zen.desktop"];
|
||||
"text/html" = ["firefox.desktop"];
|
||||
"application/x-extension-htm" = ["firefox.desktop"];
|
||||
"application/x-extension-html" = ["firefox.desktop"];
|
||||
"application/x-extension-shtml" = ["firefox.desktop"];
|
||||
"application/xhtml+xml" = ["firefox.desktop"];
|
||||
"application/x-extension-xhtml" = ["firefox.desktop"];
|
||||
"application/x-extension-xht" = ["firefox.desktop"];
|
||||
"application/x-extension-htm" = ["zen.desktop"];
|
||||
"application/x-extension-html" = ["zen.desktop"];
|
||||
"application/x-extension-shtml" = ["zen.desktop"];
|
||||
"application/xhtml+xml" = ["zen.desktop"];
|
||||
"application/x-extension-xhtml" = ["zen.desktop"];
|
||||
"application/x-extension-xht" = ["zen.desktop"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ _: {
|
|||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
theme = "onedark";
|
||||
editor = {
|
||||
auto-save = true;
|
||||
true-color = true;
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home.packages = [(pkgs.callPackage ../../../../pkgs/scls {})];
|
||||
home.packages = [inputs.scls.defaultPackage.${pkgs.system}];
|
||||
programs.helix.languages = {
|
||||
language = with pkgs; [
|
||||
{
|
||||
|
|
29
home/programs/editors/zed/default.nix
Normal file
29
home/programs/editors/zed/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [./usersettings.nix ./userkeymap.nix];
|
||||
programs.zed-editor = {
|
||||
enable = false;
|
||||
package = pkgs.zed-editor.fhsWithPackages (pkgs: [pkgs.zlib pkgs.openssl]);
|
||||
extensions = [
|
||||
# langs
|
||||
"html"
|
||||
"toml"
|
||||
"git-firefly"
|
||||
"latex"
|
||||
"svelte"
|
||||
"scss"
|
||||
"nix"
|
||||
"nu"
|
||||
"gosum"
|
||||
"scls"
|
||||
|
||||
# misc
|
||||
"env"
|
||||
"discord-presence"
|
||||
"wakatime"
|
||||
|
||||
# themes
|
||||
"catppuccin"
|
||||
"material-icon-theme"
|
||||
];
|
||||
};
|
||||
}
|
15
home/programs/editors/zed/userkeymap.nix
Normal file
15
home/programs/editors/zed/userkeymap.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
_: {
|
||||
programs.zed-editor.userKeymaps = [
|
||||
{
|
||||
context = "Workspace";
|
||||
bindings = {
|
||||
ctrl-shift-t = "workspace::NewTerminal";
|
||||
};
|
||||
}
|
||||
{
|
||||
context = "Editor";
|
||||
bindings = {
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
58
home/programs/editors/zed/usersettings.nix
Normal file
58
home/programs/editors/zed/usersettings.nix
Normal file
|
@ -0,0 +1,58 @@
|
|||
_: {
|
||||
programs.zed-editor.userSettings = {
|
||||
ui_font_size = 16;
|
||||
ui_font_family = "JetBrainsMono Nerd Font";
|
||||
buffer_font_size = 16;
|
||||
buffer_font_family = "JetBrainsMono Nerd Font";
|
||||
relative_line_numbers = true;
|
||||
hour_format = "hour24";
|
||||
shell = "nu";
|
||||
theme = {
|
||||
dark = "Catppuccin Mocha (pink)";
|
||||
light = "Catppuccin Mocha (pink)";
|
||||
};
|
||||
tabs = {
|
||||
file_icons = true;
|
||||
git_status = true;
|
||||
};
|
||||
indent_guides = {
|
||||
enable = true;
|
||||
};
|
||||
inlay_hints = {
|
||||
enable = true;
|
||||
};
|
||||
telemetry = {
|
||||
diagnostics = false;
|
||||
metrics = false;
|
||||
};
|
||||
assistant = {
|
||||
default_model = {
|
||||
provider = "copilot_chat";
|
||||
model = "gpt-4o";
|
||||
};
|
||||
version = "2";
|
||||
};
|
||||
languages = {
|
||||
Nix = {
|
||||
language_servers = ["nil"];
|
||||
formatter = {
|
||||
external = {
|
||||
command = "alejandra";
|
||||
arguments = ["--quiet" "--"];
|
||||
};
|
||||
};
|
||||
};
|
||||
lsp = {
|
||||
discord_presence = {
|
||||
initialization_options = {
|
||||
git_integration = false;
|
||||
rules = {
|
||||
mode = "blacklist";
|
||||
paths = ["/home/notoh/dev/ec" "/home/notoh/dev/yamilol"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
* {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
@import "./style/mixins.scss";
|
||||
@import "./style/menu.scss";
|
||||
@import "./style/music.scss";
|
||||
@import "./style/workspaces.scss";
|
||||
@import "./style/sysinfo.scss";
|
||||
|
||||
.logo {
|
||||
margin: 0.4rem 10rem 0.4rem 1rem;
|
||||
border-radius: 8px;
|
||||
background-color: $background;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 16px;
|
||||
margin: 0.5rem 1rem 0.5rem 1rem;
|
||||
padding-left: 0.4rem;
|
||||
padding-right: 0.4rem;
|
||||
border-radius: 8px;
|
||||
background-color: $background;
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
(include "./widgets/logo.yuck")
|
||||
(include "./widgets/workspaces.yuck")
|
||||
(include "./widgets/menu.yuck")
|
||||
(include "./widgets/time.yuck")
|
||||
(include "./widgets/music.yuck")
|
||||
(include "./widgets/sysinfo.yuck")
|
||||
(include "./vars.yuck")
|
||||
|
||||
(defwidget left []
|
||||
(box :orientation "h"
|
||||
:halign "start"
|
||||
(logo)
|
||||
(workspaces)))
|
||||
|
||||
(defwidget center[]
|
||||
(box :orientation "h"
|
||||
:halign "center"
|
||||
(music)))
|
||||
|
||||
(defwidget right []
|
||||
(box :orientation "h"
|
||||
:halign "end"
|
||||
(cpu)
|
||||
(time)
|
||||
(menu)))
|
||||
|
||||
|
||||
(defwidget bar []
|
||||
(centerbox :orientation "h"
|
||||
(left)
|
||||
(center)
|
||||
(right)))
|
||||
|
||||
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
:width "100%"
|
||||
:height "47px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:reserve (struts :distance "40px" :side "top")
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
:exclusive true;
|
||||
(bar))
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
COVER_PATH=$1
|
||||
cd $COVER_PATH
|
||||
IMGPATH="$COVER_PATH/music_cover.png"
|
||||
playerctl -F metadata mpris:artUrl 2>/dev/null | while read -r COVER_URL; do
|
||||
if [[ "$COVER_URL" = https* ]]; then
|
||||
if [ ! -e "$COVER_PATH/$(basename "$COVER_URL")" ]; then
|
||||
wget -N "$COVER_URL" -o /dev/null
|
||||
fi
|
||||
|
||||
rm "$IMGPATH"
|
||||
ln -s "$(basename "$COVER_URL")" "$IMGPATH"
|
||||
|
||||
echo "$IMGPATH"
|
||||
elif [ "$COVER_URL" = "" ]; then
|
||||
echo ""
|
||||
else
|
||||
echo "$COVER_URL"
|
||||
fi
|
||||
done
|
|
@ -1,24 +0,0 @@
|
|||
/* tokyonight */
|
||||
|
||||
$red: #f7768e;
|
||||
$orange: #ff9e64;
|
||||
$yellow: #e0af68;
|
||||
$light-green: #9ece6a;
|
||||
$green: #73daca;
|
||||
$turquoise: #89ddff;
|
||||
$light-cyan: #b4f9f8;
|
||||
$teal: #2ac3de;
|
||||
$cyan: #7dcfff;
|
||||
$blue: #7aa2f7;
|
||||
$magenta: #bb9af7;
|
||||
$white: #c0caf5;
|
||||
$light-gray: #9aa5ce;
|
||||
$parameters: #cfc9c2;
|
||||
$comment: #565f89;
|
||||
$black: #414868;
|
||||
$foreground: #a9b1d6;
|
||||
$foreground-highlight: #c0caf5;
|
||||
$foreground-gutter: #363b54;
|
||||
$background: #1a1b26;
|
||||
$background-highlight: #30374b;
|
||||
$background-menu: #16161e;
|
|
@ -1,64 +0,0 @@
|
|||
@import "./mixins.scss";
|
||||
@import "./colors.scss";
|
||||
|
||||
.menu-widget {
|
||||
font-size: 20px;
|
||||
margin: 0.5rem 1.2rem 0.5rem 1.5rem;
|
||||
padding-right: 0.3rem;
|
||||
border-radius: 8px;
|
||||
background-color: $background;
|
||||
}
|
||||
|
||||
.menubox {
|
||||
border: 3px solid $background-highlight;
|
||||
border-radius: 10px;
|
||||
background-color: $background;
|
||||
}
|
||||
|
||||
.menubox-header {
|
||||
@include button-sizing;
|
||||
font-size: 32px;
|
||||
background-color: $background-highlight;
|
||||
margin: 2rem;
|
||||
}
|
||||
|
||||
.menubox-text {
|
||||
@include button-sizing;
|
||||
background-color: $background;
|
||||
}
|
||||
|
||||
.menubox-widgets {
|
||||
@include button-sizing();
|
||||
background-color: $background-highlight;
|
||||
margin: 2rem;
|
||||
transition: all 100ms ease;
|
||||
&:hover {
|
||||
@include button-sizing();
|
||||
background-color: $red;
|
||||
transition: all 100ms ease;
|
||||
color: $background-highlight;
|
||||
}
|
||||
}
|
||||
|
||||
.cpu {
|
||||
@include sysinfo();
|
||||
color: $red;
|
||||
}
|
||||
|
||||
.mem {
|
||||
@include sysinfo();
|
||||
color: $green;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.storage {
|
||||
@include sysinfo();
|
||||
color: $blue;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
@include button-sizing;
|
||||
background-color: $background-highlight;
|
||||
margin: 2rem;
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
@import "./colors.scss";
|
||||
|
||||
@mixin workspace-font {
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
@mixin button-sizing {
|
||||
margin: 10px;
|
||||
border-radius: 16px;
|
||||
padding: 10px 10px 10px 10px;
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
@mixin sysinfo {
|
||||
margin: 10px;
|
||||
font-size: 24px;
|
||||
background-color: $light-gray;
|
||||
}
|
||||
|
||||
@mixin widget-border-radius {
|
||||
border-radius: 8px;
|
||||
}
|
|
@ -1,92 +0,0 @@
|
|||
@import "./mixins.scss";
|
||||
@import "./colors.scss";
|
||||
|
||||
.music {
|
||||
@include widget-border-radius;
|
||||
font-size: 15px;
|
||||
background-color: $background;
|
||||
margin: 0.5rem 2rem 0.5rem 1rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.music-cover {
|
||||
@include widget-border-radius;
|
||||
background-size: 42px 42px;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
margin-top: 0.3rem;
|
||||
margin-bottom: 0.3rem;
|
||||
min-height: 2rem;
|
||||
min-width: 4rem;
|
||||
border-radius: 0.8rem;
|
||||
}
|
||||
|
||||
.music-cover-big {
|
||||
margin: 0rem;
|
||||
background-size: 450px 450px;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
border-radius: 30%;
|
||||
}
|
||||
|
||||
.music-widget {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1100px 1100px;
|
||||
border: 3px solid $background-highlight;
|
||||
border-radius: 0.7rem;
|
||||
}
|
||||
|
||||
.music-widget-title {
|
||||
@include widget-border-radius;
|
||||
font-size: 24px;
|
||||
margin: 2rem 2rem 0rem 1rem;
|
||||
background-color: $background;
|
||||
padding: 1.1rem;
|
||||
border: 3px solid $background-highlight;
|
||||
}
|
||||
|
||||
.music-controls {
|
||||
@include button-sizing;
|
||||
background-color: $background;
|
||||
margin: 5rem 7rem 2rem 6rem;
|
||||
padding: 0.4rem;
|
||||
border-radius: 8px;
|
||||
border: 3px solid $background-highlight;
|
||||
}
|
||||
|
||||
.hover-play {
|
||||
transition: all 200ms ease;
|
||||
border-radius: 5px;
|
||||
&:hover {
|
||||
background-color: $green;
|
||||
transition: all 200ms ease;
|
||||
color: $background-highlight;
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.hover-pause {
|
||||
transition: all 200ms ease;
|
||||
border-radius: 5px;
|
||||
&:hover {
|
||||
background-color: $red;
|
||||
transition: all 200ms ease;
|
||||
color: $background-highlight;
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.close-button {
|
||||
margin: 0.5rem 2rem 0rem 30rem;
|
||||
background-color: $background;
|
||||
border-radius: 8px;
|
||||
padding: 0.5rem;
|
||||
&:hover {
|
||||
background-color: $red;
|
||||
transition: all 100ms ease-in;
|
||||
color: $background-highlight;
|
||||
border-radius: 5px;
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
@import "./mixins.scss";
|
||||
@import "./colors.scss";
|
||||
|
||||
.sysinfo-cpu {
|
||||
@include sysinfo;
|
||||
color: $red;
|
||||
margin: 0.1rem;
|
||||
}
|
||||
|
||||
.sysinfo-mem {
|
||||
@include sysinfo;
|
||||
color: $green;
|
||||
margin: 0.1rem;
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
@import "./mixins.scss";
|
||||
@import "./colors.scss";
|
||||
|
||||
.workspaces {
|
||||
@include widget-border-radius;
|
||||
margin: 0.5rem 4rem 0.5rem 1rem;
|
||||
padding-left: 1rem;
|
||||
background-color: $background;
|
||||
}
|
||||
|
||||
.ws0 {
|
||||
color: $red;
|
||||
@include workspace-font();
|
||||
}
|
||||
|
||||
.ws1 {
|
||||
color: $teal;
|
||||
@include workspace-font();
|
||||
}
|
||||
.ws2 {
|
||||
color: $cyan;
|
||||
@include workspace-font();
|
||||
}
|
||||
.ws3 {
|
||||
color: $blue;
|
||||
@include workspace-font();
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
(deflisten musicArtist :initial "-" "playerctl --follow metadata --format '{{ artist }}'")
|
||||
(deflisten musicTitle :initial "-" "playerctl --follow metadata --format '{{title}}'")
|
||||
(deflisten musicCover "sh /home/notoh/snowflake/home/programs/eww/config/scripts/get-music-cover.sh /tmp/eww/cache_directory")
|
||||
|
||||
|
||||
(defpoll time :interval "60s"
|
||||
:initial "initial-value"
|
||||
`date +%H:%M`)
|
||||
|
||||
(defpoll date :interval "60s"
|
||||
:initial "initial-value"
|
||||
`date +%D-%Y`)
|
||||
|
||||
(defpoll uptime :interval "1s" "uptime | awk '{print $3}' | tr ',' ' '")
|
|
@ -1,7 +0,0 @@
|
|||
(defwidget container []
|
||||
(box
|
||||
:class "container"
|
||||
:orientation "h"
|
||||
(children)
|
||||
)
|
||||
)
|
|
@ -1,9 +0,0 @@
|
|||
(defpoll time :interval "60s"
|
||||
:initial "initial-value"
|
||||
`date +%H:%M`)
|
||||
|
||||
(defwidget time []
|
||||
(box
|
||||
:class "time"
|
||||
(label
|
||||
:text time)))
|
|
@ -1,6 +0,0 @@
|
|||
(defwidget logo []
|
||||
(box
|
||||
:class "logo"
|
||||
(image :path "/home/notoh/Pictures/icons/nixos.png"
|
||||
:image-width 24
|
||||
:image-height 24)))
|
|
@ -1,71 +0,0 @@
|
|||
(defwidget menu []
|
||||
(button
|
||||
:onclick "eww open menu-window"
|
||||
(label
|
||||
:text "⏻"
|
||||
:class "menu-widget")))
|
||||
|
||||
|
||||
(defwidget menubox []
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly true
|
||||
:class "menubox"
|
||||
:spacing 0
|
||||
(box :class "menubox-header"
|
||||
:orientation "h"
|
||||
(label :halign "start" :text time)
|
||||
(label :halign "end" :text "おかえりなさい!"))
|
||||
(box :class "info-box"
|
||||
:orientation "h"
|
||||
(circular-progress
|
||||
:class "cpu"
|
||||
:start-at 0
|
||||
:thickness 6
|
||||
:clockwise true
|
||||
:value {EWW_CPU.avg}
|
||||
(label
|
||||
:style "font-size: 24px; margin-right: 0.1rem;"
|
||||
:text ""))
|
||||
(circular-progress
|
||||
:class "mem"
|
||||
:start-at 0
|
||||
:thickness 6
|
||||
:clockwise true
|
||||
:value {EWW_RAM.used_mem_perc}
|
||||
(label
|
||||
:style "font-size: 24px; margin-right: 0.8rem;"
|
||||
:text ""))
|
||||
(circular-progress
|
||||
:class "storage"
|
||||
:start-at 0
|
||||
:thickness 6
|
||||
:clockwise true
|
||||
:value {EWW_RAM.used_mem_perc}
|
||||
(label
|
||||
:style "font-size: 24px;"
|
||||
:text ""))
|
||||
(label
|
||||
:text " ${uptime}")
|
||||
)
|
||||
(box :class "menubox-widgets"
|
||||
:orientation "h"
|
||||
(button :class "menubox-widgets text" :onclick "reboot" "")
|
||||
(button :class "menubox-widgets text" :onclick "shutdown now" "")
|
||||
(button :class "menubox-widgets text" :onclick "eww close menu-window" "")))
|
||||
)
|
||||
|
||||
(defwindow menu-window
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:geometry (geometry
|
||||
:x "0.9%"
|
||||
:y "1.5%"
|
||||
:width "25%"
|
||||
:height "600px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:windowtype "dock"
|
||||
:wm-ignore true
|
||||
:exclusive false
|
||||
(menubox))
|
|
@ -1,55 +0,0 @@
|
|||
(defwidget bar-art []
|
||||
(box
|
||||
:space-evenly false
|
||||
(box :class "music-cover"
|
||||
:style "background-image:url('${musicCover}');")
|
||||
(eventbox
|
||||
:onclick "eww open music-widget"
|
||||
(label :class "music"
|
||||
:text "${musicTitle}"))))
|
||||
|
||||
|
||||
|
||||
(defwidget music-widget []
|
||||
(box :class "music-widget"
|
||||
(box :class "music-cover-big"
|
||||
:space-evenly false
|
||||
:orientation "h"
|
||||
:style "background-image:url('${musicCover}');")
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:spacing 0
|
||||
(box
|
||||
(button
|
||||
:class "close-button"
|
||||
:onclick "eww close music-widget"
|
||||
(label :text "" :style "font-size: 18px; margin-right: 0.5rem;")))
|
||||
(label :class "music-widget-title" :text "${musicTitle}")
|
||||
(label :class "music-widget-title" :text "${musicArtist}")
|
||||
(box :class "music-c")
|
||||
(box :class "music-controls"
|
||||
:valign "center"
|
||||
(button :class "hover-play" :onclick "playerctl play" "")
|
||||
(button :class "hover-pause" :onclick "playerctl pause" "")))))
|
||||
|
||||
|
||||
(defwidget music []
|
||||
(box
|
||||
(bar-art)))
|
||||
|
||||
(defwindow music-widget
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:namespace "music-widget"
|
||||
:geometry (geometry
|
||||
:x "0"
|
||||
:y "1.5%"
|
||||
:width "42%"
|
||||
:height "550px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:windowtype "dock"
|
||||
:wm-ignore true
|
||||
:exclusive false
|
||||
(music-widget))
|
|
@ -1,21 +0,0 @@
|
|||
(defwidget cpu []
|
||||
(box
|
||||
:spacing 5
|
||||
(circular-progress
|
||||
:class "sysinfo-cpu"
|
||||
:start-at 0
|
||||
:thickness 4
|
||||
:clockwise true
|
||||
:value {EWW_CPU.avg}
|
||||
(label
|
||||
:style "font-size: 13px; margin-right: 0.1rem;"
|
||||
:text ""))
|
||||
(circular-progress
|
||||
:class "sysinfo-mem"
|
||||
:start-at 0
|
||||
:thickness 4
|
||||
:clockwise true
|
||||
:value {EWW_RAM.used_mem_perc}
|
||||
(label
|
||||
:style "font-size: 10px; margin-right: 0.3rem;"
|
||||
:text ""))))
|
|
@ -1,5 +0,0 @@
|
|||
(defwidget time []
|
||||
(box
|
||||
:class "time"
|
||||
(label
|
||||
:text time)))
|
|
@ -1,16 +0,0 @@
|
|||
(defwidget workspaces []
|
||||
(box :class "workspaces"
|
||||
:space-evenly true
|
||||
:spacing 6
|
||||
(button
|
||||
:class "ws0"
|
||||
:onclick "" " ")
|
||||
(button
|
||||
:class "ws1"
|
||||
:onclick "" " ")
|
||||
(button
|
||||
:class "ws2"
|
||||
:onclick "" " ")
|
||||
(button
|
||||
:class "ws3"
|
||||
:onclick "" " ")))
|
|
@ -1,13 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
eww
|
||||
playerctl
|
||||
imagemagick
|
||||
];
|
||||
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
package = pkgs.eww;
|
||||
configDir = ./config;
|
||||
};
|
||||
}
|
|
@ -15,6 +15,7 @@ _: {
|
|||
enable = true;
|
||||
gitCredentialHelper.enable = true;
|
||||
settings = {
|
||||
git_protocol = "ssh";
|
||||
editor = "hx";
|
||||
prompt = "enabled";
|
||||
};
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
# home.pointerCursor = {
|
||||
# package = pkgs.bibata-cursors;
|
||||
# name = "Bibata-Modern-Classic";
|
||||
# size = 24;
|
||||
# gtk.enable = true;
|
||||
# x11.enable = true;
|
||||
# };
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Tokyonight-Dark-BL";
|
||||
package = pkgs.tokyo-night-gtk;
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
};
|
||||
}
|
49
home/programs/hyprpanel/default.nix
Normal file
49
home/programs/hyprpanel/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.hyprpanel.homeManagerModules.hyprpanel
|
||||
inputs.sops-nix.homeManagerModules.sops
|
||||
./settings.nix
|
||||
];
|
||||
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
hyprland.enable = false;
|
||||
overwrite.enable = true;
|
||||
theme = "catppuccin_mocha";
|
||||
override = {
|
||||
"theme.bar.buttons.workspaces.hover" = "#7f849c";
|
||||
"theme.bar.buttons.workspaces.active" = "#f5c2e7";
|
||||
"theme.bar.buttons.workspaces.occupied" = "#f5c2e7";
|
||||
"theme.bar.buttons.workspaces.available" = "#585b70";
|
||||
"theme.bar.buttons.workspaces.border" = "#f9e2af";
|
||||
"theme.bar.buttons.dashboard.icon" = "#74c7ec";
|
||||
"theme.bar.buttons.media.icon" = "#1ED760";
|
||||
"bar.customModules.cava.showIcon" = false;
|
||||
};
|
||||
layout = {
|
||||
"bar.layouts" = {
|
||||
"0" = {
|
||||
left = ["dashboard" "workspaces" "cava" "hyprsunset"];
|
||||
middle = ["media"];
|
||||
right = ["cpu" "ram" "volume" "clock" "weather" "systray" "notifications"];
|
||||
};
|
||||
"1" = {
|
||||
left = [];
|
||||
middle = [];
|
||||
right = [];
|
||||
};
|
||||
"2" = {
|
||||
left = [];
|
||||
middle = [];
|
||||
right = [];
|
||||
};
|
||||
"3" = {
|
||||
left = [];
|
||||
middle = [];
|
||||
right = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
76
home/programs/hyprpanel/settings.nix
Normal file
76
home/programs/hyprpanel/settings.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
programs.hyprpanel.settings = {
|
||||
bar = {
|
||||
autoHide = "fullscreen";
|
||||
launcher.autoDetectIcon = true;
|
||||
clock = {
|
||||
format = "%m/%d/%y %H:%M";
|
||||
};
|
||||
media = {
|
||||
truncation = true;
|
||||
truncation_size = 40;
|
||||
};
|
||||
workspaces = {
|
||||
workspaces = 4;
|
||||
show_icons = true;
|
||||
showWsIcons = false;
|
||||
showApplicationIcons = false;
|
||||
monitorSpecific = false;
|
||||
};
|
||||
customModules = {
|
||||
hyprsunset = {
|
||||
temperature = "3000k";
|
||||
};
|
||||
weather.unit = "metric";
|
||||
};
|
||||
};
|
||||
notifications = {
|
||||
monitor = 0;
|
||||
active_monitor = false;
|
||||
};
|
||||
menus = {
|
||||
clock = {
|
||||
time = {
|
||||
military = true;
|
||||
hideSeconds = false;
|
||||
};
|
||||
weather = {
|
||||
enabled = false;
|
||||
key = "13b77bbcf0dc420782005246250902";
|
||||
unit = "metric";
|
||||
location = "New York";
|
||||
};
|
||||
};
|
||||
media = {
|
||||
displayTime = true;
|
||||
};
|
||||
dashboard = {
|
||||
stats.enable_gpu = false;
|
||||
directories.enabled = false;
|
||||
shortcuts.enabled = false;
|
||||
powermenu = {
|
||||
sleep = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl dispatch dpms off";
|
||||
avatar = {
|
||||
image = "/home/notoh/dev/assets/pfps/pfp2.jpg";
|
||||
name = "notohh";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
theme = {
|
||||
bar.transparent = false;
|
||||
osd = {
|
||||
monitor = 0;
|
||||
active_monitor = false;
|
||||
};
|
||||
font = {
|
||||
name = "Inter";
|
||||
size = "17px";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
_: {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
icons = true;
|
||||
maxIconSize = 64;
|
||||
maxVisible = 3;
|
||||
defaultTimeout = 5000;
|
||||
ignoreTimeout = true;
|
||||
anchor = "top-right";
|
||||
output = "DP-1";
|
||||
};
|
||||
}
|
|
@ -9,12 +9,6 @@ _: {
|
|||
bar_width = 2;
|
||||
bar_spacing = 3;
|
||||
};
|
||||
color = {
|
||||
gradient = 1;
|
||||
gradient_count = 2;
|
||||
gradient_color_2 = "'#f7768e'";
|
||||
gradient_color_1 = "'#7dcfff'";
|
||||
};
|
||||
smoothing = {
|
||||
monstercat = 1;
|
||||
waves = 1;
|
||||
|
|
116
home/programs/media/jellyfin-mpv-shim.nix
Normal file
116
home/programs/media/jellyfin-mpv-shim.nix
Normal file
|
@ -0,0 +1,116 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.jellyfin-mpv-shim];
|
||||
xdg.configFile."jellyfin-mpv-shim/conf.json".text = ''
|
||||
{
|
||||
"allow_transcode_to_h265": false,
|
||||
"always_transcode": false,
|
||||
"audio_output": "hdmi",
|
||||
"auto_play": true,
|
||||
"check_updates": false,
|
||||
"client_uuid": "a4204cae-4a0a-47cb-8147-6f3e92efdefb",
|
||||
"connect_retry_mins": 0,
|
||||
"direct_paths": false,
|
||||
"discord_presence": false,
|
||||
"display_mirroring": false,
|
||||
"enable_gui": false,
|
||||
"enable_osc": false,
|
||||
"force_audio_codec": null,
|
||||
"force_set_played": false,
|
||||
"force_video_codec": null,
|
||||
"fullscreen": true,
|
||||
"health_check_interval": 300,
|
||||
"idle_cmd": null,
|
||||
"idle_cmd_delay": 60,
|
||||
"idle_ended_cmd": null,
|
||||
"idle_when_paused": false,
|
||||
"ignore_ssl_cert": false,
|
||||
"kb_debug": "~",
|
||||
"kb_fullscreen": "f",
|
||||
"kb_kill_shader": "k",
|
||||
"kb_menu": "c",
|
||||
"kb_menu_down": "down",
|
||||
"kb_menu_esc": "esc",
|
||||
"kb_menu_left": "left",
|
||||
"kb_menu_ok": "enter",
|
||||
"kb_menu_right": "right",
|
||||
"kb_menu_up": "up",
|
||||
"kb_next": ">",
|
||||
"kb_pause": "space",
|
||||
"kb_prev": "<",
|
||||
"kb_stop": "q",
|
||||
"kb_unwatched": "u",
|
||||
"kb_watched": "w",
|
||||
"lang": null,
|
||||
"lang_filter": "und,eng,jpn,mis,mul,zxx",
|
||||
"lang_filter_audio": false,
|
||||
"lang_filter_sub": false,
|
||||
"local_kbps": 2147483,
|
||||
"log_decisions": false,
|
||||
"media_ended_cmd": null,
|
||||
"media_key_seek": false,
|
||||
"media_keys": true,
|
||||
"menu_mouse": true,
|
||||
"mpv_ext": true,
|
||||
"mpv_ext_ipc": false,
|
||||
"mpv_ext_no_ovr": true,
|
||||
"mpv_ext_path": "${pkgs.mpv}",
|
||||
"mpv_ext_start": true,
|
||||
"mpv_log_level": "info",
|
||||
"notify_updates": false,
|
||||
"play_cmd": null,
|
||||
"playback_timeout": 30,
|
||||
"player_name": "tsuki",
|
||||
"pre_media_cmd": null,
|
||||
"prefer_transcode_to_h265": false,
|
||||
"raise_mpv": true,
|
||||
"remote_direct_paths": false,
|
||||
"remote_kbps": 10000,
|
||||
"sanitize_output": true,
|
||||
"screenshot_dir": null,
|
||||
"screenshot_menu": true,
|
||||
"seek_down": -60,
|
||||
"seek_h_exact": false,
|
||||
"seek_left": -5,
|
||||
"seek_right": 5,
|
||||
"seek_up": 60,
|
||||
"seek_v_exact": false,
|
||||
"shader_pack_custom": false,
|
||||
"shader_pack_enable": true,
|
||||
"shader_pack_profile": null,
|
||||
"shader_pack_remember": true,
|
||||
"shader_pack_subtype": "lq",
|
||||
"skip_credits_always": false,
|
||||
"skip_credits_prompt": false,
|
||||
"skip_intro_always": false,
|
||||
"skip_intro_prompt": true,
|
||||
"stop_cmd": null,
|
||||
"stop_idle": false,
|
||||
"subtitle_color": "#FFFFFFFF",
|
||||
"subtitle_position": "bottom",
|
||||
"subtitle_size": 100,
|
||||
"svp_enable": false,
|
||||
"svp_socket": null,
|
||||
"svp_url": "http://127.0.0.1:9901/",
|
||||
"sync_attempts": 5,
|
||||
"sync_max_delay_skip": 300,
|
||||
"sync_max_delay_speed": 50,
|
||||
"sync_method_thresh": 2000,
|
||||
"sync_osd_message": true,
|
||||
"sync_revert_seek": true,
|
||||
"sync_speed_attempts": 3,
|
||||
"sync_speed_time": 1000,
|
||||
"thumbnail_enable": true,
|
||||
"thumbnail_osc_builtin": true,
|
||||
"thumbnail_preferred_size": 320,
|
||||
"transcode_4k": false,
|
||||
"transcode_av1": false,
|
||||
"transcode_dolby_vision": true,
|
||||
"transcode_hdr": false,
|
||||
"transcode_hevc": false,
|
||||
"transcode_hi10p": false,
|
||||
"transcode_warning": true,
|
||||
"use_web_seek": false,
|
||||
"write_logs": false
|
||||
}
|
||||
'';
|
||||
}
|
25
home/programs/media/mpv.nix
Normal file
25
home/programs/media/mpv.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{pkgs, ...}: {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
scripts = with pkgs; [
|
||||
mpvScripts.uosc
|
||||
mpvScripts.mpris
|
||||
mpvScripts.smartskip
|
||||
mpvScripts.thumbfast
|
||||
mpvScripts.videoclip
|
||||
];
|
||||
scriptOpts = {
|
||||
thumbfast = {
|
||||
spawn_first = true;
|
||||
network = true;
|
||||
hwdec = true;
|
||||
};
|
||||
};
|
||||
config = {
|
||||
osc = false;
|
||||
osd-bar = false;
|
||||
volume = 60;
|
||||
save-position-on-quit = true;
|
||||
};
|
||||
};
|
||||
}
|
20
home/programs/media/spicetify.nix
Normal file
20
home/programs/media/spicetify.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
|
||||
in {
|
||||
imports = [inputs.spicetify-nix.homeManagerModules.default];
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
experimentalFeatures = true;
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
hidePodcasts
|
||||
beautifulLyrics
|
||||
fullAlbumDate
|
||||
shuffle
|
||||
];
|
||||
theme = spicePkgs.themes.hazy;
|
||||
};
|
||||
}
|
|
@ -1,74 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.spotify-player];
|
||||
xdg.configFile."spotify-player/app.toml" = {
|
||||
text = ''
|
||||
theme = "tokyonight"
|
||||
client_id = "bc629e700c1740a28b3f594ef1942eac"
|
||||
client_port = 8080
|
||||
playack_format = "{track} • {artists}\n{album}\n{metadata}"
|
||||
notify_format = { summary = "{track} • {artists}", body = "{album}" }
|
||||
copy_command = { command = "wl-copy", args = [] }
|
||||
app_refresh_duration_in_ms = 32
|
||||
playback_refresh_duration_in_ms = 0
|
||||
cover_image_refresh_duration_in_ms = 2000
|
||||
page_size_in_rows = 20
|
||||
track_table_item_max_len = 32
|
||||
enable_media_control = true
|
||||
enable_streaming = true
|
||||
enable_cover_image_cache = true
|
||||
default_device = "tsuki"
|
||||
play_icon = "▶"
|
||||
pause_icon = "▌▌"
|
||||
liked_icon = "♥"
|
||||
playback_window_position = "Top"
|
||||
cover_img_width = 5
|
||||
cover_img_length = 11
|
||||
cover_img_scale = 1.6
|
||||
playback_window_width = 6
|
||||
|
||||
[device]
|
||||
name = "tsuki"
|
||||
device_type = "computer"
|
||||
volume = 100
|
||||
bitrate = 320
|
||||
audio_cache = true
|
||||
normalization = false
|
||||
'';
|
||||
};
|
||||
xdg.configFile."spotify-player/theme.toml" = {
|
||||
text = ''
|
||||
[[themes]]
|
||||
name = "tokyonight"
|
||||
[themes.palette]
|
||||
foreground = "#c0caf5"
|
||||
black = "#414868"
|
||||
red = "#f7768e"
|
||||
green = "#9ece6a"
|
||||
yellow = "#e0af68"
|
||||
blue = "#2ac3de"
|
||||
magenta = "#bb9af7"
|
||||
cyan = "#7dcfff"
|
||||
white = "#eee8d5"
|
||||
bright_black = "#24283b"
|
||||
bright_red = "#ff4499"
|
||||
bright_green = "#73daca"
|
||||
bright_yellow = "#657b83"
|
||||
bright_blue = "#839496"
|
||||
bright_magenta = "#ff007c"
|
||||
bright_cyan = "#93a1a1"
|
||||
bright_white = "#fdf6e3"
|
||||
[themes.component_style]
|
||||
block_title = { fg = "Magenta" }
|
||||
border = {}
|
||||
playback_track = { fg = "Cyan", modifiers = ["Bold"] }
|
||||
playback_artists = { fg = "Cyan", modifiers = ["Bold"] }
|
||||
playback_album = { fg = "Yellow" }
|
||||
playback_metadata = { fg = "White" }
|
||||
playback_progress_bar = { bg = "BrightBlack", fg = "Green" }
|
||||
current_playing = { fg = "Green", modifiers = ["Bold"] }
|
||||
page_desc = { fg = "Cyan", modifiers = ["Bold"] }
|
||||
table_header = { fg = "Blue" }
|
||||
selection = { modifiers = ["Bold", "Reversed"] }
|
||||
'';
|
||||
};
|
||||
}
|
27
home/programs/opencomposite.nix
Normal file
27
home/programs/opencomposite.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
xdg.configFile."openxr/1/active_runtime.json".source = "${pkgs.wivrn}/share/openxr/1/openxr_wivrn.json";
|
||||
|
||||
xdg.configFile."openvr/openvrpaths.vrpath".text = ''
|
||||
{
|
||||
"config" :
|
||||
[
|
||||
"${config.xdg.dataHome}/Steam/config"
|
||||
],
|
||||
"external_drivers" : null,
|
||||
"jsonid" : "vrpathreg",
|
||||
"log" :
|
||||
[
|
||||
"${config.xdg.dataHome}/Steam/logs"
|
||||
],
|
||||
"runtime" :
|
||||
[
|
||||
"${pkgs.opencomposite}/lib/opencomposite"
|
||||
],
|
||||
"version" : 1
|
||||
}
|
||||
'';
|
||||
}
|
|
@ -1,6 +1,11 @@
|
|||
_: {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
package = inputs.atuin.packages.${pkgs.system}.default;
|
||||
enableNushellIntegration = true;
|
||||
settings = {
|
||||
auto_sync = true;
|
||||
|
|
|
@ -2,7 +2,6 @@ _: {
|
|||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "base16-stylix";
|
||||
pager = "--RAW-CONTROL-CHARS --quit-if-one-screen --mouse";
|
||||
style = "plain";
|
||||
};
|
||||
|
|
|
@ -18,15 +18,7 @@ alias grep = rg
|
|||
alias build = nh os boot .
|
||||
alias switch = nh os switch .
|
||||
alias clean = sudo nh clean all
|
||||
alias deploy = nix run github:serokell/deploy-rs
|
||||
alias sakura = nix run github:serokell/deploy-rs ".#sakura"
|
||||
alias kariru = nix run github:serokell/deploy-rs ".#kariru"
|
||||
alias yuki = nix run github:serokell/deploy-rs ".#yuki"
|
||||
alias arashi = nix run github:serokell/deploy-rs ".#arashi"
|
||||
alias sora = nix run github:serokell/deploy-rs ".#sora"
|
||||
alias tsuru = nix run github:serokell/deploy-rs ".#tsuru"
|
||||
alias haru = nix run github:serokell/deploy-rs ".#haru"
|
||||
alias kaze = nix run github:serokell/deploy-rs ".#kaze"
|
||||
alias deploy = nix run github:serokell/deploy-rs -- --skip-checks --targets
|
||||
alias dl = yt-dlp -P ~/Videos/downloaded
|
||||
alias dlad = yt-dlp -x --audio-format mp3 --embed-thumbnail
|
||||
alias dlcd = yt-dlp
|
||||
|
@ -35,67 +27,63 @@ alias shorten = rpaste -s "https://i.flake.sh/" -e 1day -u
|
|||
alias send = croc --relay "100.104.42.96:9009" send
|
||||
alias receive = croc --relay "100.104.42.96:9009"
|
||||
alias ps = procs
|
||||
alias tail = tspin
|
||||
alias spotify = spotify_player
|
||||
alias atac = atac --directory ~/.config/atac/
|
||||
alias ts = tspin
|
||||
alias generate-topology = nix build ".#topology.x86_64-linux.config.output"
|
||||
|
||||
nitch
|
||||
|
||||
$env.config = {
|
||||
|
||||
ls: {
|
||||
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||
use_ls_colors: true
|
||||
clickable_links: true
|
||||
}
|
||||
rm: {
|
||||
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||
always_trash: false
|
||||
}
|
||||
table: {
|
||||
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||
mode: rounded
|
||||
index_mode: always
|
||||
trim: {
|
||||
methodology: wrapping # wrapping or truncating
|
||||
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||
methodology: wrapping
|
||||
wrapping_try_keep_words: true
|
||||
truncating_suffix: "..."
|
||||
}
|
||||
}
|
||||
history: {
|
||||
max_size: 10000 # Session has to be reloaded for this to take effect
|
||||
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||
file_format: "sqlite" # "sqlite" or "plaintext"
|
||||
max_size: 10000
|
||||
sync_on_enter: true
|
||||
file_format: "sqlite"
|
||||
}
|
||||
completions: {
|
||||
case_sensitive: false # set to true to enable case-sensitive completions
|
||||
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||
partial: true # set this to false to prevent partial filling of the prompt
|
||||
algorithm: "prefix" # prefix or fuzzy
|
||||
case_sensitive: false
|
||||
quick: true
|
||||
partial: true
|
||||
algorithm: "prefix"
|
||||
external: {
|
||||
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
|
||||
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||
completer: null # check 'carapace_completer' above as an example
|
||||
enable: true
|
||||
max_results: 100
|
||||
completer: null
|
||||
}
|
||||
}
|
||||
filesize: {
|
||||
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
||||
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
|
||||
}
|
||||
footer_mode: "auto" # always, never, number_of_rows, auto
|
||||
footer_mode: "auto"
|
||||
float_precision: 2
|
||||
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||
buffer_editor: "hx"
|
||||
use_ansi_coloring: true
|
||||
edit_mode: vi # emacs, vi
|
||||
shell_integration: {} # enables terminal markers and a workaround to arrow keys stop working issue
|
||||
show_banner: false # true or false to enable or disable the banner
|
||||
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||
edit_mode: vi
|
||||
shell_integration: {}
|
||||
show_banner: false
|
||||
render_right_prompt_on_last_line: false
|
||||
hooks: {
|
||||
pre_prompt: [{ ||
|
||||
null # replace with source code to run before the prompt is shown
|
||||
null
|
||||
}]
|
||||
pre_execution: [{ ||
|
||||
null # replace with source code to run before the repl input is run
|
||||
null
|
||||
}]
|
||||
env_change: {
|
||||
PWD: [{|before, after|
|
||||
null # replace with source code to run if the PWD environment is different since the last repl input
|
||||
null
|
||||
}]
|
||||
}
|
||||
display_output: { ||
|
||||
|
@ -104,8 +92,6 @@ $env.config = {
|
|||
}
|
||||
|
||||
menus: [
|
||||
# Configuration for default nushell menus
|
||||
# Note the lack of souce parameter
|
||||
{
|
||||
name: completion_menu
|
||||
only_buffer_difference: false
|
||||
|
@ -113,7 +99,7 @@ $env.config = {
|
|||
type: {
|
||||
layout: columnar
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_width: 20
|
||||
col_padding: 2
|
||||
}
|
||||
style: {
|
||||
|
@ -143,7 +129,7 @@ $env.config = {
|
|||
type: {
|
||||
layout: description
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_width: 20
|
||||
col_padding: 2
|
||||
selection_rows: 4
|
||||
description_rows: 10
|
||||
|
@ -154,9 +140,6 @@ $env.config = {
|
|||
description_text: yellow
|
||||
}
|
||||
}
|
||||
# Example of extra menus created using a nushell source
|
||||
# Use the source field to create a list of records that populates
|
||||
# the menu
|
||||
{
|
||||
name: commands_menu
|
||||
only_buffer_difference: false
|
||||
|
@ -227,7 +210,7 @@ $env.config = {
|
|||
name: completion_menu
|
||||
modifier: none
|
||||
keycode: tab
|
||||
mode: vi_normal # Options: emacs vi_normal vi_insert
|
||||
mode: vi_normal
|
||||
event: {
|
||||
until: [
|
||||
{ send: menu name: completion_menu }
|
||||
|
@ -239,7 +222,7 @@ $env.config = {
|
|||
name: completion_previous
|
||||
modifier: shift
|
||||
keycode: backtab
|
||||
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: menuprevious }
|
||||
}
|
||||
{
|
||||
|
@ -301,7 +284,6 @@ $env.config = {
|
|||
]
|
||||
}
|
||||
}
|
||||
# Keybindings used to trigger the user defined menus
|
||||
{
|
||||
name: commands_menu
|
||||
modifier: control
|
||||
|
|
|
@ -9,28 +9,8 @@
|
|||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = {
|
||||
palette = "tokyonight";
|
||||
command_timeout = 2000;
|
||||
add_newline = false;
|
||||
palettes.tokyonight = {
|
||||
red = "#f7768e";
|
||||
orange = "#ff9e64";
|
||||
yellow = "#e0af68";
|
||||
light-green = "#9ece6a";
|
||||
green = "#73daca";
|
||||
turquoise = "#89ddff";
|
||||
light-cyan = "#b4f9f8";
|
||||
teal = "#2ac3de";
|
||||
cyan = "#7dcfff";
|
||||
blue = "#7aa2f7";
|
||||
magenta = "#bb9af7";
|
||||
white = "#c0caf5";
|
||||
light-gray = "#9aa5ce";
|
||||
parameters = "#cfc9c2";
|
||||
comment = "#565f89";
|
||||
black = "#414868";
|
||||
foreground = "#a9b1d6";
|
||||
background = "#1a1b26";
|
||||
};
|
||||
format = lib.concatStrings [
|
||||
"$character"
|
||||
"$hostname"
|
||||
|
|
5
home/programs/terminal/television/config.json
Normal file
5
home/programs/terminal/television/config.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"indexes": ["nixpkgs", "home-manager", "nur"],
|
||||
"update_interval": "12h",
|
||||
"enable_waiting_message": true
|
||||
}
|
212
home/programs/terminal/television/config.toml
Normal file
212
home/programs/terminal/television/config.toml
Normal file
|
@ -0,0 +1,212 @@
|
|||
# CONFIGURATION FILE LOCATION ON YOUR SYSTEM:
|
||||
# -------------------------------------------
|
||||
# Defaults:
|
||||
# ---------
|
||||
# Linux: `$HOME/.config/television/config.toml`
|
||||
# macOS: `$HOME/.config/television/config.toml`
|
||||
# Windows: `%APPDATA%\television\config.toml`
|
||||
#
|
||||
# XDG dirs:
|
||||
# ---------
|
||||
# You may use XDG_CONFIG_HOME if set on your system.
|
||||
# In that case, television will expect the configuration file to be in:
|
||||
# `$XDG_CONFIG_HOME/television/config.toml`
|
||||
#
|
||||
|
||||
# General settings
|
||||
# ----------------------------------------------------------------------------
|
||||
frame_rate = 60 # DEPRECATED: this option is no longer used
|
||||
tick_rate = 50
|
||||
|
||||
[ui]
|
||||
# Whether to use nerd font icons in the UI
|
||||
# This option requires a font patched with Nerd Font in order to properly
|
||||
# display glyphs (see https://www.nerdfonts.com/ for more information)
|
||||
use_nerd_font_icons = false
|
||||
# How much space to allocate for the UI (in percentage of the screen)
|
||||
# ┌───────────────────────────────────────┐
|
||||
# │ │
|
||||
# │ Terminal screen │
|
||||
# │ ┌─────────────────────────────┐ │
|
||||
# │ │ │ │
|
||||
# │ │ │ │
|
||||
# │ │ │ │
|
||||
# │ │ Television UI │ │
|
||||
# │ │ │ │
|
||||
# │ │ │ │
|
||||
# │ │ │ │
|
||||
# │ │ │ │
|
||||
# │ └─────────────────────────────┘ │
|
||||
# │ │
|
||||
# │ │
|
||||
# └───────────────────────────────────────┘
|
||||
ui_scale = 100
|
||||
# Whether to show the top help bar in the UI by default
|
||||
# This option can be toggled with the (default) `ctrl-g` keybinding
|
||||
show_help_bar = false
|
||||
# Whether to show the preview panel in the UI by default
|
||||
# This option can be toggled with the (default) `ctrl-o` keybinding
|
||||
show_preview_panel = true
|
||||
# Where to place the input bar in the UI (top or bottom)
|
||||
input_bar_position = "top"
|
||||
# DEPRECATED: title is now always displayed at the top as part of the border
|
||||
# Where to place the preview title in the UI (top or bottom)
|
||||
# preview_title_position = "top"
|
||||
# The theme to use for the UI
|
||||
# A list of builtin themes can be found in the `themes` directory of the television
|
||||
# repository. You may also create your own theme by creating a new file in a `themes`
|
||||
# directory in your configuration directory (see the `config.toml` location above).
|
||||
theme = "catppuccin"
|
||||
|
||||
# Previewers settings
|
||||
# ----------------------------------------------------------------------------
|
||||
[previewers.file]
|
||||
# The theme to use for syntax highlighting.
|
||||
# Bulitin syntax highlighting uses the same syntax highlighting engine as bat.
|
||||
# To get a list of your currently available themes, run `bat --list-themes`
|
||||
# Note that setting the BAT_THEME environment variable will override this setting.
|
||||
theme = "TwoDark"
|
||||
|
||||
# Keybindings
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# Channel mode
|
||||
# ------------------------
|
||||
[keybindings.Channel]
|
||||
# Quit the application
|
||||
quit = ["esc", "ctrl-c"]
|
||||
# Scrolling through entries
|
||||
select_next_entry = ["down", "ctrl-n", "ctrl-j"]
|
||||
select_prev_entry = ["up", "ctrl-p", "ctrl-k"]
|
||||
select_next_page = "pagedown"
|
||||
select_prev_page = "pageup"
|
||||
# Scrolling the preview pane
|
||||
scroll_preview_half_page_down = "ctrl-d"
|
||||
scroll_preview_half_page_up = "ctrl-u"
|
||||
# Add entry to selection and move to the next entry
|
||||
toggle_selection_down = "tab"
|
||||
# Add entry to selection and move to the previous entry
|
||||
toggle_selection_up = "backtab"
|
||||
# Confirm selection
|
||||
confirm_selection = "enter"
|
||||
# Copy the selected entry to the clipboard
|
||||
copy_entry_to_clipboard = "ctrl-y"
|
||||
# Toggle the remote control mode
|
||||
toggle_remote_control = "ctrl-r"
|
||||
# Toggle the send to channel mode
|
||||
toggle_send_to_channel = "ctrl-s"
|
||||
# Toggle the help bar
|
||||
toggle_help = "ctrl-g"
|
||||
# Toggle the preview panel
|
||||
toggle_preview = "ctrl-o"
|
||||
|
||||
|
||||
# Remote control mode
|
||||
# -------------------------------
|
||||
[keybindings.RemoteControl]
|
||||
# Quit the application
|
||||
quit = "esc"
|
||||
# Scrolling through entries
|
||||
select_next_entry = ["down", "ctrl-n", "ctrl-j"]
|
||||
select_prev_entry = ["up", "ctrl-p", "ctrl-k"]
|
||||
select_next_page = "pagedown"
|
||||
select_prev_page = "pageup"
|
||||
# Select an entry
|
||||
select_entry = "enter"
|
||||
# Toggle the remote control mode
|
||||
toggle_remote_control = "ctrl-r"
|
||||
# Toggle the help bar
|
||||
toggle_help = "ctrl-g"
|
||||
# Toggle the preview panel
|
||||
toggle_preview = "ctrl-o"
|
||||
|
||||
|
||||
# Send to channel mode
|
||||
# --------------------------------
|
||||
[keybindings.SendToChannel]
|
||||
# Quit the application
|
||||
quit = "esc"
|
||||
# Scrolling through entries
|
||||
select_next_entry = ["down", "ctrl-n", "ctrl-j"]
|
||||
select_prev_entry = ["up", "ctrl-p", "ctrl-k"]
|
||||
select_next_page = "pagedown"
|
||||
select_prev_page = "pageup"
|
||||
# Select an entry
|
||||
select_entry = "enter"
|
||||
# Toggle the send to channel mode
|
||||
toggle_send_to_channel = "ctrl-s"
|
||||
# Toggle the help bar
|
||||
toggle_help = "ctrl-g"
|
||||
# Toggle the preview panel
|
||||
toggle_preview = "ctrl-o"
|
||||
|
||||
|
||||
# Shell integration
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# The shell integration feature allows you to use television as a picker for
|
||||
# your shell commands (as well as your shell history with <CTRL-R>).
|
||||
# E.g. typing `git checkout <CTRL-T>` will open television with a list of
|
||||
# branches to choose from.
|
||||
|
||||
[shell_integration.channel_triggers]
|
||||
# Add your channel triggers here. Each key is a channel that will be triggered
|
||||
# by the corresponding commands.
|
||||
# Example: say you want the following commands to trigger the following channels
|
||||
# when pressing <CTRL-T>:
|
||||
# `git checkout` should trigger the `git-branches` channel
|
||||
# `ls` should trigger the `dirs` channel
|
||||
# `cat` and `cp` should trigger the `files` channel
|
||||
#
|
||||
# You would add the following to your configuration file:
|
||||
# ```
|
||||
# [shell_integration.channel_triggers]
|
||||
# "git-branches" = ["git checkout"]
|
||||
# "dirs" = ["ls"]
|
||||
# "files" = ["cat", "cp"]
|
||||
# ```
|
||||
"alias" = ["alias", "unalias"]
|
||||
"env" = ["export", "unset"]
|
||||
"dirs" = ["cd", "ls", "rmdir"]
|
||||
"files" = [
|
||||
"cat",
|
||||
"less",
|
||||
"head",
|
||||
"tail",
|
||||
"vim",
|
||||
"nano",
|
||||
"bat",
|
||||
"cp",
|
||||
"mv",
|
||||
"rm",
|
||||
"touch",
|
||||
"chmod",
|
||||
"chown",
|
||||
"ln",
|
||||
"tar",
|
||||
"zip",
|
||||
"unzip",
|
||||
"gzip",
|
||||
"gunzip",
|
||||
"xz",
|
||||
]
|
||||
"git-diff" = ["git add", "git restore"]
|
||||
"git-branch" = [
|
||||
"git checkout",
|
||||
"git branch",
|
||||
"git merge",
|
||||
"git rebase",
|
||||
"git pull",
|
||||
"git push",
|
||||
]
|
||||
"docker-images" = ["docker run"]
|
||||
"git-repos" = ["nvim", "code", "hx", "git clone"]
|
||||
|
||||
|
||||
[shell_integration.keybindings]
|
||||
# controls which key binding should trigger tv
|
||||
# for shell autocomplete
|
||||
"smart_autocomplete" = "ctrl-t"
|
||||
# controls which keybinding should trigger tv
|
||||
# for command history
|
||||
"command_history" = "ctrl-r"
|
9
home/programs/terminal/television/default.nix
Normal file
9
home/programs/terminal/television/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
television
|
||||
nix-search-tv
|
||||
];
|
||||
xdg.configFile."television/config.toml".source = ./config.toml;
|
||||
# xdg.configFile."television/default_channels.toml".source = ./config.toml;
|
||||
xdg.configFile."nix-search-tv/config.json".source = ./config.json;
|
||||
}
|
|
@ -13,9 +13,10 @@ local config = {
|
|||
enable_wayland = false,
|
||||
font = wezterm.font_with_fallback({ "JetBrainsMono NF Medium", "Comic Code Ligatures Medium" }),
|
||||
font_size = 12.0,
|
||||
window_background_opacity = 0.6,
|
||||
window_background_opacity = 1.0,
|
||||
text_background_opacity = 1.0,
|
||||
enable_tab_bar = false,
|
||||
max_fps = 144,
|
||||
window_padding = { top = 20, bottom = 20, left = 20, right = 20 },
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
# xdg.configFile."yazi/init.lua".source = ./init.lua;
|
||||
|
@ -8,7 +9,7 @@
|
|||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
package = pkgs.yazi;
|
||||
package = inputs.yazi.packages.${pkgs.system}.default;
|
||||
enableNushellIntegration = true;
|
||||
settings = {
|
||||
manager = {
|
||||
|
|
|
@ -8,7 +8,6 @@ _: {
|
|||
settings = {
|
||||
on_force_close = "quit";
|
||||
simplified_ui = false;
|
||||
theme = "tokyo-night";
|
||||
default_layout = "default";
|
||||
copy_command = "wl-copy";
|
||||
copy_clipboard = "primary";
|
||||
|
|
49
home/programs/themes.nix
Normal file
49
home/programs/themes.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{pkgs, ...}: {
|
||||
catppuccin.kvantum = {
|
||||
enable = true;
|
||||
apply = true;
|
||||
flavor = "mocha";
|
||||
accent = "pink";
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "kvantum";
|
||||
style.name = "kvantum";
|
||||
};
|
||||
|
||||
catppuccin.gtk = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "pink";
|
||||
gnomeShellTheme = false;
|
||||
icon = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "pink";
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = "Inter";
|
||||
package = pkgs.google-fonts.override {fonts = ["Inter"];};
|
||||
size = 12;
|
||||
};
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
imports = [./gpg.nix ./gammastep.nix];
|
||||
imports = [./gpg.nix];
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
_: {
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
provider = "manual";
|
||||
latitude = "40.730610";
|
||||
longitude = "-73.935242";
|
||||
dawnTime = "6:00-7:00";
|
||||
duskTime = "18:00-20:15";
|
||||
temperature.day = 5500;
|
||||
temperature.night = 3000;
|
||||
};
|
||||
}
|
|
@ -1,12 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [./services/greetd.nix];
|
||||
imports = [./services/ly.nix];
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
wayland
|
||||
glib
|
||||
grim
|
||||
slurp
|
||||
satty
|
||||
wl-clipboard
|
||||
];
|
||||
sessionVariables = {
|
||||
|
@ -25,15 +22,13 @@
|
|||
TERMINAL = "wezterm";
|
||||
# SDL_VIDEODRIVER = "wayland";
|
||||
};
|
||||
etc."greetd/environments".text = ''
|
||||
Hyprland
|
||||
'';
|
||||
};
|
||||
|
||||
services.dbus.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
config = {
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
_: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = with pkgs; {
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
"$mainMod, Return, exec, wezterm"
|
||||
|
@ -9,12 +14,12 @@ _: {
|
|||
"$mainMod, R, exec, anyrun"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod, J, togglesplit,"
|
||||
"$mainMod, C, exec, hyprpicker | wl-copy"
|
||||
"$mainMod, C, exec, ${lib.getExe inputs.hyprpicker.packages.${system}.default} | wl-copy"
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
|
||||
'', Print, exec, ${lib.getExe grim} -g "$(${lib.getExe slurp})" - | ${lib.getExe satty} -f - --fullscreen --output-filename ~/Pictures/screenshots/$(date '+%Y%m%d-%H:%M:%S').png''
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"DP-1,2560x1440@144, 1080x1080, auto" #middle
|
||||
];
|
||||
exec-once = [
|
||||
"eww open bar"
|
||||
"hyprpanel"
|
||||
"hyprpaper"
|
||||
"chatterino"
|
||||
"vesktop"
|
||||
|
@ -23,7 +23,7 @@
|
|||
};
|
||||
general = {
|
||||
gaps_in = 10;
|
||||
gaps_out = 20;
|
||||
gaps_out = 15;
|
||||
border_size = 0;
|
||||
"col.active_border" = "rgb(7dcfff) rgb(c0caf5)";
|
||||
"col.inactive_border" = "rgb(24283b)";
|
||||
|
@ -91,9 +91,10 @@
|
|||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = false;
|
||||
};
|
||||
ecosystem = {
|
||||
no_update_news = true;
|
||||
no_donation_nag = true;
|
||||
};
|
||||
};
|
||||
extraConfig = ''
|
||||
bind =, Print, exec, grim -g "$(slurp)" - | satty -f - --fullscreen --output-filename ~/Pictures/screenshots/$(date '+%Y%m%d-%H:%M:%S').png
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ _: {
|
|||
"float, title:^(RuneLite)$"
|
||||
"float, title:^(Lutris)$"
|
||||
"float, title:^(satty)$"
|
||||
"float, title:^(Postman)$"
|
||||
"move 850 360, title:^(RuneLite)$"
|
||||
# "size 800 560, title:^(RuneLite)$"
|
||||
"size 1200 600, title:^(satty)$"
|
||||
|
|
|
@ -10,5 +10,7 @@
|
|||
enable = true;
|
||||
systemd.enable = true;
|
||||
xwayland.enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
_: {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
package = inputs.hyprlock.packages.${pkgs.system}.default;
|
||||
settings = {
|
||||
background = let
|
||||
verticalWallpaper = "/home/notoh/Pictures/wallpapers/sparkle.png";
|
||||
horizontalWallpaper = "/home/notoh/Pictures/wallpapers/sparkle2.png";
|
||||
verticalWallpaper = "/home/notoh/dev/assets/wallpapers/miku/miku2.png";
|
||||
horizontalWallpaper = "/home/notoh/dev/assets/wallpapers/miku/miku.png";
|
||||
in [
|
||||
{
|
||||
monitor = "HDMI-A-1";
|
||||
|
@ -40,13 +45,17 @@ _: {
|
|||
disable_loading_bar = false;
|
||||
hide_cursor = false;
|
||||
no_fade_in = false;
|
||||
ignore_empty_input = true;
|
||||
};
|
||||
animations = {
|
||||
enabled = true;
|
||||
};
|
||||
input-field = [
|
||||
{
|
||||
monitor = "DP-1";
|
||||
size = "350, 50";
|
||||
outline_thickness = 2;
|
||||
outer_color = "rgb(f7768e)";
|
||||
outer_color = "rgb(f5c2e7)";
|
||||
inner_color = "rgb(1a1b26)";
|
||||
font_color = "rgb(c0caf5)";
|
||||
fail_color = "rgb(f7768e)";
|
||||
|
@ -69,7 +78,7 @@ _: {
|
|||
{
|
||||
monitor = "DP-1";
|
||||
text = ''
|
||||
Hi, <i><span foreground="##f7768e">$USER</span></i>
|
||||
Hi, <i><span foreground="##74c7ec">$USER</span></i>
|
||||
'';
|
||||
color = "rgb(c0caf5)";
|
||||
position = "0, 60";
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
hyprlandGreetdConf = pkgs.writeText "hyprland-greetd-conf.conf" ''
|
||||
|
||||
monitor = HDMI-A-1,disable
|
||||
monitor = DP-2,disable
|
||||
monitor = DP-1,2560x1440@144, 0x0, auto
|
||||
monitor = DP-3,disable
|
||||
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
|
||||
exec-once = ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE
|
||||
exec-once = ${lib.getExe pkgs.greetd.regreet}; hyprctl dispatch exit
|
||||
exec-once = systemctl --user restart xdg-desktop-portal xdg-desktop-portal-hyprland
|
||||
|
||||
windowrulev2 = fullscreen, title:^regreet$
|
||||
windowrulev2 = move 0 0, title:^regreet$
|
||||
|
||||
$mainMod = SUPER
|
||||
bind = $mainMod, Q, exec, reboot
|
||||
bind = $mainMod, Return, exec, ${lib.getExe pkgs.greetd.regreet}
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
follow_mouse = 1
|
||||
sensitivity = -0.5
|
||||
force_no_accel = true
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = false
|
||||
first_launch_animation = false
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
}
|
||||
|
||||
'';
|
||||
in {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${lib.getExe inputs.hyprland.packages.${pkgs.system}.default} --config ${hyprlandGreetdConf}";
|
||||
user = "greeter";
|
||||
};
|
||||
default_session = initial_session;
|
||||
};
|
||||
};
|
||||
programs.regreet = {
|
||||
enable = true;
|
||||
settings = {
|
||||
background.path = "/etc/greetd/frieren.png";
|
||||
env = {
|
||||
SESSION_DIRS = "/etc/greetd/environments";
|
||||
};
|
||||
terminal = {
|
||||
vt = 1;
|
||||
};
|
||||
commands = {
|
||||
reboot = ["systemctl" "reboot"];
|
||||
poweroff = ["systemctl" "poweroff"];
|
||||
};
|
||||
GTK = {
|
||||
application_prefer_dark_theme = true;
|
||||
theme_name = "Tokyonight-Dark-BL";
|
||||
icon_theme_name = "Papirus-Dark";
|
||||
cursor_theme_name = "Bibata-Modern-Classic";
|
||||
font_name = "Noto Sans 11";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -2,10 +2,12 @@
|
|||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
package = inputs.hypridle.packages.${pkgs.system}.default;
|
||||
settings = {
|
||||
general = {
|
||||
ignore_dbus_inhibit = false;
|
||||
|
@ -18,8 +20,8 @@
|
|||
on-timeout = "${lib.getExe config.programs.hyprlock.package}";
|
||||
}
|
||||
{
|
||||
timeout = 460;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
timeout = 450;
|
||||
on-timeout = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl dispatch dpms off";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.packages = [pkgs.hyprpaper];
|
||||
|
||||
services.hyprpaper = {
|
||||
services.hyprpaper = let
|
||||
verticalWallpaper = "~/dev/assets/wallpapers/miku/miku2.png";
|
||||
horizontalWallpaper = "~/dev/assets/wallpapers/miku/miku.png";
|
||||
in {
|
||||
enable = true;
|
||||
package = inputs.hyprpaper.packages.${pkgs.system}.default;
|
||||
settings = {
|
||||
ipc = true;
|
||||
splash = false;
|
||||
preload = [
|
||||
"~/Pictures/wallpapers/sparkle3.png"
|
||||
"~/Pictures/wallpapers/sparkle4.png"
|
||||
verticalWallpaper
|
||||
horizontalWallpaper
|
||||
];
|
||||
wallpaper = [
|
||||
"HDMI-A-1,~/Pictures/wallpapers/sparkle3.png"
|
||||
"DP-1,~/Pictures/wallpapers/sparkle4.png"
|
||||
"DP-2,~/Pictures/wallpapers/sparkle4.png"
|
||||
"DP-3,~/Pictures/wallpapers/sparkle3.png"
|
||||
"HDMI-A-1,${verticalWallpaper}"
|
||||
"DP-1,${horizontalWallpaper}"
|
||||
"DP-2,${horizontalWallpaper}"
|
||||
"DP-3,${verticalWallpaper}"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
33
home/wayland/services/ly.nix
Normal file
33
home/wayland/services/ly.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# oneshot service to resize the main monitor
|
||||
systemd.services.fbset = {
|
||||
enable = true;
|
||||
wantedBy = ["multi-user.target"];
|
||||
unitConfig = {
|
||||
Description = "Framebuffer resolution";
|
||||
Before = "display-manager.service";
|
||||
};
|
||||
serviceConfig = {
|
||||
User = "root";
|
||||
Type = "oneshot";
|
||||
ExecStart = "${lib.getExe pkgs.fbset} -xres 2560 -yres 1440 -match --all";
|
||||
RemainAfterExit = "yes";
|
||||
StandardOutput = "journal";
|
||||
StandardError = "journal";
|
||||
};
|
||||
};
|
||||
services.displayManager.ly = {
|
||||
enable = true;
|
||||
settings = {
|
||||
load = true;
|
||||
save = true;
|
||||
animation = "matrix";
|
||||
clear_password = true;
|
||||
vi_mode = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,17 +1,18 @@
|
|||
_: {
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./services
|
||||
./networking.nix
|
||||
../common.nix
|
||||
../../modules
|
||||
../../modules/fonts.nix
|
||||
./topology.nix
|
||||
../common
|
||||
../common/fonts.nix
|
||||
inputs.nixos-cosmic.nixosModules.default
|
||||
];
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
services = {
|
||||
displayManager.sddm.enable = true;
|
||||
pulseaudio.enable = false;
|
||||
desktopManager.cosmic.enable = true;
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
@ -26,7 +27,6 @@ _: {
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
hardware.pulseaudio.enable = false;
|
||||
system.stateVersion = "23.05";
|
||||
security.rtkit.enable = true;
|
||||
}
|
||||
|
|
|
@ -31,16 +31,18 @@
|
|||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid";
|
||||
device = "/dev/disk/by-uuid/825f1188-82bd-4a1d-9434-6b5dd29041c3";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot/efi" = {
|
||||
device = "/dev/disk/by-uuid/59C2-1D06";
|
||||
fsType = "vfat";
|
||||
};
|
||||
};
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
swapDevices = 1;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/d62dbf49-e51e-4823-a9cb-f2af486cd0f7";}
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
|
|
20
hosts/ame/topology.nix
Normal file
20
hosts/ame/topology.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
_: {
|
||||
topology = {
|
||||
self = {
|
||||
name = "ame";
|
||||
hardware.info = "Thinkpad T480";
|
||||
interfaces = {
|
||||
tailscale0 = {
|
||||
addresses = ["100.108.207.106/32"];
|
||||
network = "tailscale0";
|
||||
type = "wireguard";
|
||||
};
|
||||
home = {
|
||||
network = "home";
|
||||
addresses = [""];
|
||||
type = "wifi";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -3,8 +3,8 @@
|
|||
./hardware.nix
|
||||
./services
|
||||
./networking.nix
|
||||
../common.nix
|
||||
../../modules
|
||||
./topology.nix
|
||||
../common
|
||||
];
|
||||
|
||||
users = {
|
||||
|
@ -15,4 +15,8 @@
|
|||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
|
||||
];
|
||||
};
|
||||
system = {
|
||||
autoUpgrade.enable = false;
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ _: {
|
|||
environment.etc = {
|
||||
"resolv.conf".text = ''
|
||||
nameserver 192.168.1.103
|
||||
nameserver 9.9.9.9
|
||||
nameserver 1.1.1.1
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -56,6 +56,14 @@
|
|||
name = "ec";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "botoh";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
{
|
||||
name = "ganymede";
|
||||
ensureDBOwnership = true;
|
||||
}
|
||||
];
|
||||
ensureDatabases = [
|
||||
"forgejo"
|
||||
|
@ -67,6 +75,8 @@
|
|||
"miniflux"
|
||||
"atuin"
|
||||
"ec"
|
||||
"botoh"
|
||||
"ganymede"
|
||||
];
|
||||
};
|
||||
services.postgresqlBackup = {
|
||||
|
@ -80,6 +90,8 @@
|
|||
"attic"
|
||||
"miniflux"
|
||||
"atuin"
|
||||
"botoh"
|
||||
"ganymede"
|
||||
];
|
||||
compression = "zstd";
|
||||
compressionLevel = 4;
|
||||
|
|
20
hosts/arashi/topology.nix
Normal file
20
hosts/arashi/topology.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
_: {
|
||||
topology = {
|
||||
self = {
|
||||
name = "arashi";
|
||||
hardware.info = "Proxmox VM";
|
||||
interfaces = {
|
||||
tailscale0 = {
|
||||
addresses = ["100.94.214.100/32"];
|
||||
network = "tailscale0";
|
||||
type = "wireguard";
|
||||
};
|
||||
home = {
|
||||
addresses = ["192.168.1.211/24"];
|
||||
network = "home";
|
||||
type = "ethernet";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.nur.modules.nixos.default
|
||||
# inputs.attic.nixosModules.atticd
|
||||
];
|
||||
}
|
18
hosts/common/default.nix
Normal file
18
hosts/common/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.nur.modules.nixos.default
|
||||
inputs.nix-topology.nixosModules.default
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
./prometheus.nix
|
||||
./security.nix
|
||||
./users.nix
|
||||
./nix.nix
|
||||
./system.nix
|
||||
./openssh.nix
|
||||
./virtualisation.nix
|
||||
./sops.nix
|
||||
./time.nix
|
||||
];
|
||||
}
|
|
@ -1,27 +1,22 @@
|
|||
{inputs, ...}: {
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
sops.secrets.github-token = {};
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
inputs.self.overlays.technorino
|
||||
inputs.nur.overlays.default
|
||||
inputs.helix.overlays.default
|
||||
inputs.yazi.overlays.default
|
||||
inputs.hypridle.overlays.default
|
||||
inputs.hyprlock.overlays.default
|
||||
inputs.hyprpaper.overlays.default
|
||||
inputs.hyprpicker.overlays.default
|
||||
inputs.atuin.overlays.default
|
||||
inputs.eww.overlays.default
|
||||
inputs.neptune.overlays.default
|
||||
inputs.hyprpanel.overlay
|
||||
];
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [
|
||||
"dotnet-runtime-6.0.36"
|
||||
"dotnet-sdk-wrapped-6.0.428"
|
||||
# for sonarr
|
||||
"dotnet-sdk-6.0.428"
|
||||
"aspnetcore-runtime-wrapped-6.0.36"
|
||||
"aspnetcore-runtime-6.0.36"
|
||||
"cinny-4.2.3"
|
||||
"cinny-unwrapped-4.2.3"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -46,7 +41,8 @@
|
|||
"https://anyrun.cachix.org"
|
||||
"https://viperml.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://attic.kennel.juneis.dog/conduwuit"
|
||||
"https://prismlauncher.cachix.org"
|
||||
"https://cosmic.cachix.org/"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
|
@ -56,9 +52,13 @@
|
|||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"conduwuit:BbycGUgTISsltcmH0qNjFR9dbrQNYgdIAcmViSGoVTE="
|
||||
"prismlauncher.cachix.org-1:9/n/FGyABA2jLUVfY+DEp4hKds/rwO+SCOtbOkDzd+c="
|
||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||
];
|
||||
};
|
||||
extraOptions = ''
|
||||
!include ${config.sops.secrets.github-token.path}
|
||||
'';
|
||||
};
|
||||
|
||||
programs.nh = {
|
|
@ -1,6 +1,6 @@
|
|||
_: {
|
||||
sops = {
|
||||
defaultSopsFile = ../secrets/secrets.yaml;
|
||||
defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
age.keyFile = "/home/notoh/.config/sops/age/keys.txt";
|
||||
};
|
||||
}
|
|
@ -40,9 +40,4 @@
|
|||
DefaultTimeoutStopSec=5s
|
||||
'';
|
||||
};
|
||||
|
||||
system = {
|
||||
autoUpgrade.enable = false;
|
||||
stateVersion = "23.05"; # no touchy
|
||||
};
|
||||
}
|
|
@ -151,21 +151,5 @@
|
|||
}
|
||||
];
|
||||
};
|
||||
kaze = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = [
|
||||
./kaze
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = specialArgs;
|
||||
users.notoh = {
|
||||
imports = homeImports."default";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -71,16 +71,6 @@
|
|||
sshOpts = ["-t" "-i" "~/.ssh/forgejo"];
|
||||
magicRollback = true;
|
||||
};
|
||||
kaze = {
|
||||
hostname = "100.69.79.81";
|
||||
profiles.system = {
|
||||
user = "root";
|
||||
path = activate.nixos inputs.self.nixosConfigurations.kaze;
|
||||
};
|
||||
sshUser = "root";
|
||||
sshOpts = ["-t" "-i" "~/.ssh/forgejo"];
|
||||
magicRollback = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
./hardware.nix
|
||||
./services
|
||||
./networking.nix
|
||||
../common.nix
|
||||
../../modules
|
||||
./topology.nix
|
||||
../common
|
||||
];
|
||||
|
||||
users = {
|
||||
|
@ -15,4 +15,8 @@
|
|||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
|
||||
];
|
||||
};
|
||||
system = {
|
||||
autoUpgrade.enable = false;
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ _: {
|
|||
environment.etc = {
|
||||
"resolv.conf".text = ''
|
||||
nameserver 192.168.1.103
|
||||
nameserver 9.9.9.9
|
||||
nameserver 1.1.1.1
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -51,6 +51,10 @@
|
|||
"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext"
|
||||
"https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts"
|
||||
"https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts"
|
||||
"https://raw.githubusercontent.com/AdGoBye/AdGoBye-Blocklists/main/AGBBase.toml"
|
||||
"https://raw.githubusercontent.com/AdGoBye/AdGoBye-Blocklists/main/AGBCommunity.toml"
|
||||
"https://raw.githubusercontent.com/AdGoBye/AdGoBye-Blocklists/main/AGBUpsell.toml"
|
||||
"https://raw.githubusercontent.com/AdGoBye/AdGoBye-Blocklists/main/AGBSupporters.toml"
|
||||
];
|
||||
tracking = [
|
||||
"https://v.firebog.net/hosts/Easyprivacy.txt"
|
||||
|
@ -86,6 +90,7 @@
|
|||
*.clickhouse.com
|
||||
*.discord.com
|
||||
*.last.fm
|
||||
*.spotify.com
|
||||
'';
|
||||
in {
|
||||
ads = [
|
||||
|
@ -108,6 +113,7 @@
|
|||
customTTL = "1h";
|
||||
mapping = let
|
||||
yukiIp = "192.168.1.98";
|
||||
kariruIp = "192.168.1.54";
|
||||
in {
|
||||
# infra
|
||||
|
||||
|
@ -124,20 +130,19 @@
|
|||
"jellyseerr.internal.flake.sh" = "${yukiIp}";
|
||||
"sonarr.internal.flake.sh" = "${yukiIp}";
|
||||
"radarr.internal.flake.sh" = "${yukiIp}";
|
||||
"readarr.internal.flake.sh" = "${yukiIp}";
|
||||
"lidarr.internal.flake.sh" = "${yukiIp}";
|
||||
"whisparr.internal.flake.sh" = "${yukiIp}";
|
||||
"bazarr.internal.flake.sh" = "${yukiIp}";
|
||||
"prowlarr.internal.flake.sh" = "${yukiIp}";
|
||||
"stash.internal.flake.sh" = "${yukiIp}";
|
||||
"nextcloud.internal.flake.sh" = "192.168.1.199";
|
||||
"immich.internal.flake.sh" = "${yukiIp}";
|
||||
"komga.internal.flake.sh" = "${yukiIp}";
|
||||
"shoko.internal.flake.sh" = "${kariruIp}";
|
||||
|
||||
# misc
|
||||
|
||||
"wallos.internal.flake.sh" = "${yukiIp}";
|
||||
"synology.internal.flake.sh" = "192.168.1.71";
|
||||
"paperless.internal.flake.sh" = "${yukiIp}";
|
||||
"rss.internal.flake.sh" = "${yukiIp}";
|
||||
"hoarder.internal.flake.sh" = "${yukiIp}";
|
||||
"ganymede.internal.flake.sh" = "100.121.201.47";
|
||||
};
|
||||
};
|
||||
redis = {
|
||||
|
|
20
hosts/haru/topology.nix
Normal file
20
hosts/haru/topology.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
_: {
|
||||
topology = {
|
||||
self = {
|
||||
name = "haru";
|
||||
hardware.info = "Proxmox VM";
|
||||
interfaces = {
|
||||
tailscale0 = {
|
||||
addresses = ["100.73.192.45/32"];
|
||||
network = "tailscale0";
|
||||
type = "wireguard";
|
||||
};
|
||||
home = {
|
||||
addresses = ["192.168.1.103/24"];
|
||||
network = "home";
|
||||
type = "ethernet";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -3,8 +3,8 @@
|
|||
./hardware.nix
|
||||
./services
|
||||
./networking.nix
|
||||
../common.nix
|
||||
../../modules
|
||||
./topology.nix
|
||||
../common
|
||||
];
|
||||
|
||||
users = {
|
||||
|
@ -15,4 +15,8 @@
|
|||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
|
||||
];
|
||||
};
|
||||
system = {
|
||||
autoUpgrade.enable = false;
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ _: {
|
|||
environment.etc = {
|
||||
"resolv.conf".text = ''
|
||||
nameserver 192.168.1.103
|
||||
nameserver 9.9.9.9
|
||||
nameserver 1.1.1.1
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{pkgs, ...}: {
|
||||
networking.firewall.allowedTCPPorts = [9292];
|
||||
networking.firewall.allowedTCPPorts = [9292 8111];
|
||||
|
||||
imports = [
|
||||
./restic.nix
|
||||
./torrent.nix
|
||||
./syncthing.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = [pkgs.recyclarr];
|
||||
|
@ -20,35 +21,27 @@
|
|||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
bazarr = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
readarr = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
lidarr = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
sabnzbd.enable = true;
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.containers = {
|
||||
whisparr = {
|
||||
image = "ghcr.io/hotio/whisparr@sha256:d66f5dc01af747881e25b8e72aa45de30fba672c16df897af69257704fb61fe4"; # v3-3.0.0.545
|
||||
ports = ["6969:6969"];
|
||||
volumes = [
|
||||
"/var/lib/whisparr:/config"
|
||||
"/stash:/media/stash"
|
||||
"/media/downloads:/media/downloads"
|
||||
];
|
||||
byparr = {
|
||||
image = "ghcr.io/thephaseless/byparr@sha256:9f83a6f5e5cec22a70abf3401a23164295a4b2e1ced37264907c3512981e527a"; # v3.3.21
|
||||
ports = ["8191:8191"];
|
||||
extraOptions = ["--network=host"];
|
||||
};
|
||||
flaresolverr = {
|
||||
image = "ghcr.io/flaresolverr/flaresolverr@sha256:5f5661db1e69a6f80ac24d47d9fa5580f6f741ee5ec967818396ae0dacecd7ea"; # v3.3.17
|
||||
ports = ["8191:8191"];
|
||||
shoko = {
|
||||
image = "ghcr.io/shokoanime/server@sha256:dde0c5a8bddc226ae368827fd7df382602ad312a2337ebade8e5cc63fa0c4dac"; # v5.1.0
|
||||
ports = ["8111:8111"];
|
||||
environment = {
|
||||
PUID = "1000";
|
||||
PGID = "1000";
|
||||
TZ = "Etc/UTC";
|
||||
};
|
||||
volumes = [
|
||||
"/var/lib/shoko:/home/shoko/.shoko"
|
||||
"/media/anime:/media/anime"
|
||||
"/media/anime-movies:/media/anime-movies"
|
||||
];
|
||||
extraOptions = ["--network=host"];
|
||||
};
|
||||
};
|
||||
|
|
12
hosts/kariru/services/syncthing.nix
Normal file
12
hosts/kariru/services/syncthing.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
_: {
|
||||
networking.firewall.allowedTCPPorts = [8385];
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
openDefaultPorts = true;
|
||||
dataDir = "/home/notoh/sync";
|
||||
configDir = "/home/notoh/.config/syncthing";
|
||||
guiAddress = "192.168.1.54:8385";
|
||||
user = "notoh";
|
||||
group = "users";
|
||||
};
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
sops.secrets.gluetun = {};
|
||||
virtualisation.oci-containers.containers = {
|
||||
gluetun = {
|
||||
image = "qmcgaw/gluetun@sha256:5522794f5cce6d84bc7f06b1e3a3b836ede9100c64aec94543cb503bb2ecb72f"; #v3.38
|
||||
image = "qmcgaw/gluetun@sha256:2b42bfa046757145a5155acece417b65b4443c8033fb88661a8e9dcf7fda5a00"; #v3.40
|
||||
hostname = "gluetun";
|
||||
ports = [
|
||||
"8000:8000/tcp" # HTTP control server
|
||||
|
@ -13,11 +13,12 @@
|
|||
"6881:6881" #qb
|
||||
"6881:6881/udp" #qb
|
||||
];
|
||||
volumes = ["/srv/gluetun:/tmp/gluetun"];
|
||||
environmentFiles = [config.sops.secrets.gluetun.path];
|
||||
extraOptions = ["--cap-add=NET_ADMIN"];
|
||||
extraOptions = ["--cap-add=NET_ADMIN" "--device=/dev/net/tun:/dev/net/tun"];
|
||||
};
|
||||
qbittorrent = {
|
||||
image = "linuxserver/qbittorrent@sha256:d01b1df556154862eca982d0f2c420073e2e2959c309951fbfddd25525ea28ce"; # v5.0.0
|
||||
image = "linuxserver/qbittorrent@sha256:50f490770308d0351e12618422e74e0613721b080f5db0bf840cf66a7281eea8"; # v5.0.4
|
||||
dependsOn = ["gluetun"];
|
||||
environment = {
|
||||
PUID = "1001";
|
||||
|
|
20
hosts/kariru/topology.nix
Normal file
20
hosts/kariru/topology.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
_: {
|
||||
topology = {
|
||||
self = {
|
||||
name = "kariru";
|
||||
hardware.info = "Proxmox VM";
|
||||
interfaces = {
|
||||
tailscale0 = {
|
||||
addresses = ["100.126.229.95/32"];
|
||||
network = "tailscale0";
|
||||
type = "wireguard";
|
||||
};
|
||||
home = {
|
||||
addresses = ["192.168.1.54/24"];
|
||||
network = "home";
|
||||
type = "ethernet";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue