Compare commits

...
Sign in to create a new pull request.

118 commits

Author SHA1 Message Date
aa31299def
nix: add cosmic cache 2025-03-24 13:53:08 -04:00
1af514e457
ame: update hardware and add cosmic
ame: update home pkgs
2025-03-24 13:52:52 -04:00
7c2a274d05
flake.nix: add nixos-cosmic 2025-03-24 13:51:58 -04:00
5bf4275652
hosts: make state version per host 2025-03-22 22:11:23 -04:00
808af0c095
blocky: update internal routes 2025-03-17 05:38:26 -04:00
48f8ee9817
tsuki: enable teleivison and remove pkgs 2025-03-17 05:38:14 -04:00
b691294b08
sora: remove glances, enable minecraft 2025-03-17 05:38:01 -04:00
9582abc5ce
home: use input packages instead of overlays
and some other updates
2025-03-17 05:36:48 -04:00
362b9f044f
nix: remove some overlays 2025-03-17 05:35:21 -04:00
16bea5ecd0
terminal: add television && update yazi, atuin, starship 2025-03-17 05:33:35 -04:00
10285807d9
kariru: add syncthing 2025-03-17 05:32:26 -04:00
6f3457ba2e
tsuki: add syncthing 2025-03-17 05:32:14 -04:00
667d99e2e9
yuki: remove homepage, add glance + komga
fmt jellyfin
update traefik

sops: remove homepage
2025-03-17 05:31:52 -04:00
c05cdf7605
flake.nix: remove follows nixpkgs for most inputs && update 2025-03-17 05:30:00 -04:00
9967772878
sops: update secrets
sops: update gluetun secrets
2025-03-13 10:40:43 -04:00
b74f983efd
kariru: add shoko && update services 2025-03-13 03:46:28 -04:00
6e9ebfef1b
common: add nix-flatpak module 2025-03-13 03:45:50 -04:00
fb67c6f3fc
nushell: update config 2025-03-13 03:45:35 -04:00
a99c9a70ae
tsuki: update programs 2025-03-13 03:44:48 -04:00
7c41f50433
yuki: update homepage && traefik 2025-03-13 03:44:29 -04:00
246ea2c337
flake.nix: add nix-flatpak
tsuki: enable nix-flatpak
2025-03-13 03:43:53 -04:00
b6d68a90a7
media: add mpv config && jellyfin-mpv-shim 2025-03-13 03:43:15 -04:00
f396aa9fe0
sops: update secrets 2025-03-12 10:54:49 -04:00
9bfc5b5188
sakura: remove unused services && readd matrix 2025-03-10 05:58:25 -04:00
ea51aa2617
tsuki: set the correct hyprland package 2025-03-10 05:57:31 -04:00
e1c3a6edc8
flake.nix: fmt and update 2025-03-10 05:55:22 -04:00
297f095a2a
wayland: remove xdgOpenUsePortal 2025-03-10 05:54:34 -04:00
b8a53b18c1
hyprland: setup packaes => null, since the nixos module is used 2025-03-10 05:54:12 -04:00
d08cd8dcd8
immich: update external domain
sakura: init immich proxy

traefik: add immich proxy
2025-03-07 04:39:53 -05:00
b769c225bc
sops: update secrets 2025-03-07 04:39:14 -05:00
16a083673c
flake.lock: update
flake.lock: update
2025-03-03 21:11:08 -05:00
b30b226142
tsuki: update atticd service 2025-02-26 00:36:44 -05:00
25bb45a1a1
zed: disable 2025-02-26 00:36:14 -05:00
ebfd92a944
wallos: version bump
ganymede: version bump
2025-02-26 00:35:49 -05:00
04b9285f94
tsuki: add / remove pkgs 2025-02-26 00:35:09 -05:00
e29ae84e02
flake.nix: remove flocon 2025-02-26 00:34:54 -05:00
fb373177b9
tsuki: disable flatpak 2025-02-21 22:32:34 -05:00
a1c226c8d5
tsuki: add notification to immich-backup 2025-02-21 22:32:23 -05:00
e6be419ddd
wayland: update hyprland, hypridle, hyprlock configs 2025-02-21 22:08:28 -05:00
1217e90491
sops: update tailscale secrets 2025-02-21 22:07:52 -05:00
5becd952e6
attic: increase retention period 2025-02-21 22:07:25 -05:00
ba292ee314
vaultwarden: enable extra experimental features 2025-02-21 22:07:13 -05:00
c65ae2f7a6
hosts: remove kaze
hosts: remove kaze

hosts: update networking

nushell: update aliases

profiles: remove kaze

grafana: remove kaze
2025-02-21 22:06:57 -05:00
475d7def0c
overlays: bump technorino 2025-02-20 16:27:45 -05:00
25c4539a53
tsuki: update immich service 2025-02-20 13:59:01 -05:00
9001f4b643
kariru: disable unused services 2025-02-18 08:20:31 -05:00
22414bc2f2
tsuki: add postman
hyprland: postman floating rule
2025-02-18 08:20:05 -05:00
62d63aa60d
home: remove atac 2025-02-18 08:19:12 -05:00
7c0eb86242
blocky: update dns 2025-02-18 08:19:00 -05:00
f625eae63e
tsuki: init immich backup service 2025-02-18 08:18:27 -05:00
5f3b25b4df
yuki: init hoarder && immich && remove unused services
sops: update secrets
2025-02-18 08:18:06 -05:00
1286b2c21e
sora: update s3 2025-02-16 06:06:39 -05:00
1ee85bb1e8
postgres: update dbs 2025-02-16 06:04:35 -05:00
145b072cd0
sops: update secrets 2025-02-16 06:04:04 -05:00
2af33264f6
sakura: init ganymede 2025-02-16 06:03:40 -05:00
5801d4337e
sops: update s3 secrets 2025-02-12 18:59:01 -05:00
b7cd36173f
flake.nix: remove eww and update
nix: remove eww overlay & conduwuit cache

vaultwarden: enable ssh key items
2025-02-12 01:50:25 -05:00
19e7878a8e
home: delete gammastep 2025-02-09 02:18:33 -05:00
2835c14347
hyprpanel: update bar 2025-02-09 02:18:25 -05:00
9cf3ccfa04
docs: update readme 2025-02-09 02:14:03 -05:00
e99a2fe779
pre-commit: add flake-checker 2025-02-09 01:05:46 -05:00
e058969876
rustlog: bump version 2025-02-09 01:05:46 -05:00
850504f020
sakura: remove conduit
flake.nix: remove conduwuit
2025-02-09 01:05:46 -05:00
ac9c730b2c
docs: update readme 2025-02-09 00:53:32 -05:00
ab2b719e49
spicetify: add extension + theme + experimentalFeatures 2025-02-09 00:45:21 -05:00
a53a451dad
hyprpanel: add pfp 2025-02-09 00:21:15 -05:00
8918ec15d1
home: init spicetify 2025-02-09 00:21:05 -05:00
22744357f8
flake.nix: add spicetify-nix 2025-02-09 00:20:40 -05:00
d74cf3d450
ame: update pulseaudio service
ame: remove mako
2025-02-08 23:08:30 -05:00
df9a4dbe34
wayland: switch to ly from greetd 2025-02-08 23:06:45 -05:00
fac0cc86bd
home: init qt themeing 2025-02-08 23:05:11 -05:00
a6ddefe428
wayland: update wallpapers 2025-02-08 21:19:38 -05:00
5728053278
hyprland: remove eww && edit gaps 2025-02-08 20:52:47 -05:00
28bd86eba2
hyprpanel: update settings 2025-02-08 20:52:34 -05:00
da0b301435
zed: update settings 2025-02-08 20:52:25 -05:00
af12a15320
docs: update readme 2025-02-08 20:18:14 -05:00
0d137d53a4
nushell: remove filesize 2025-02-08 20:07:00 -05:00
9b9e57c87a
sops: update secrets 2025-02-08 20:06:42 -05:00
09c5c4e81b
nix: add hyprpanel overlay 2025-02-08 20:06:37 -05:00
3f359aabf3
programs: remove eww && init hyprpanel
home: remove mako && eww
2025-02-08 20:06:24 -05:00
414fdf0bc7
flake.nix: update && init hyprpanel 2025-02-08 20:05:04 -05:00
420c50d4d8 Merge pull request 'init topology && more flake modules' () from init-topology-and-modules into master
Reviewed-on: 
2025-02-08 18:06:09 -05:00
a9e0d4d500
init basic topology structure 2025-02-08 18:05:47 -05:00
5b0814a8d7
import default.nix 2025-02-08 17:46:19 -05:00
a69380665e
nu: add generate-topology alias 2025-02-08 17:45:44 -05:00
6fe24f311f
move modules to hosts/common 2025-02-08 13:41:37 -05:00
1a5d835d47
add pre-commit to separate module && init topology 2025-02-08 13:30:25 -05:00
932df2571a
tsuki: remove overlays import 2025-02-07 23:33:54 -05:00
f2345cf30f
services: disable gammastep 2025-02-07 23:18:23 -05:00
3e5b3ae722
git: set git_protocol 2025-02-07 23:17:56 -05:00
75674537c2
wezterm: reset window opacity 2025-02-07 23:17:37 -05:00
ff9007e984
tsuki: init ananicy, update hyprland portal package && open port
tsuki: switch to discord canary

vesktop screenshare borked

hyprland: open discord canary on start
2025-02-07 23:17:24 -05:00
c2cbad7587
yuki: disable botoh && set hass unit_system 2025-02-07 23:15:52 -05:00
502791c2a7
overlays: init overlays as flake-parts
flake.nix: ignore overlay(s)

nix: import self overlay
2025-02-07 23:15:03 -05:00
f068b32e5d
pkgs: remove overlays from pkgs 2025-02-07 23:09:19 -05:00
e3d59d1147
sops: update secrets 2025-02-07 23:09:09 -05:00
20b33a3c3b
flake.nix: remove xdg-desktop-portal-hyprland && import overlays 2025-02-07 23:08:54 -05:00
a42505b7b1
editors: add zed 2025-02-06 21:03:17 -05:00
127496a192
overlays: add vesktop overlay 2025-02-06 21:03:03 -05:00
6ea24611f6
flake.lock: update 2025-02-06 21:02:48 -05:00
d15c8a8085
tsuki: disable UWSM for hyprland 2025-02-01 05:38:16 -05:00
dd644e5729
blocky: whitelist spotify 2025-02-01 05:38:02 -05:00
1d01278932
hyprland: disable news 2025-02-01 05:37:51 -05:00
baea36f726
technorino: bump version 2025-02-01 05:37:30 -05:00
5916091449
sops: update secrets
nix: include github token for nix
2025-02-01 05:37:12 -05:00
871ee2870e
flake.lock: update 2025-02-01 05:36:22 -05:00
0670f8f68c
sops: update secrets 2025-01-22 20:14:46 -05:00
8407e44e47
ame: disable gtk 2025-01-22 20:14:22 -05:00
3536dc68fb
overlays: bump technorino 2025-01-22 20:13:58 -05:00
cdeb1cc672
tsuki: update gaming 2025-01-22 20:13:46 -05:00
0f122d184d
firefox: disable 2025-01-22 20:13:21 -05:00
478188ccc9
tsuki: add packages 2025-01-22 20:13:01 -05:00
7eea9b1bb4
flake.nix: update & add inputs 2025-01-22 20:11:30 -05:00
6c347fc0a3
flake.nix: add flocon 2025-01-14 13:53:10 -05:00
bbd93f7218
sakura: disable conduit 2025-01-14 13:52:51 -05:00
4ebb279d63
torrent: bump versions, add gluetun flag 2025-01-14 13:52:43 -05:00
db67cddbda
nix: add insecure packages 2025-01-14 13:52:08 -05:00
193f2480d7
flake.nix: update
license: update

pkgs: remove scls

nix: update inputs and insecure pkgs

tsuki: init gaming file

blocky: update blocklist

pgres: add dbs

home: update themes

programs: init opencomposite

media: remove spotify-player

helix: update theme and scls

tsuki: remove stylix

overlays: set chatterino tag to null
2025-01-12 20:52:09 -05:00
173 changed files with 3276 additions and 3467 deletions

View file

@ -19,7 +19,3 @@ creation_rules:
key_groups: key_groups:
- age: - age:
- *notoh - *notoh
- path_regex: secrets/homepage/[^/]+\.yaml$
key_groups:
- age:
- *notoh

26
LICENSE
View file

@ -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 Everyone is permitted to copy and distribute verbatim or modified
of this software and associated documentation files (the "Software"), to deal copies of this license document, and changing it is allowed as long
in the Software without restriction, including without limitation the rights as the name is changed.
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
copies or substantial portions of the Software. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0. You just DO WHAT THE FUCK YOU WANT TO.
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.

View file

@ -14,12 +14,13 @@
<img src="https://ci.flake.sh/api/badges/9/status.svg" alt="status-badge" /> <img src="https://ci.flake.sh/api/badges/9/status.svg" alt="status-badge" />
</a> </a>
<p></p> <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> <p>
Screenshot updated: 2024-04-26 Screenshots updated: 2025-02-09
</p> </p>
<h4> <h4>
:warning: this config is a constant WIP, :warning: this config is a constant WIP,
and will change constantly as i continue to learn about nix. stuff will be updated, restructed, added, and removed quite often. please also note that everything hosted here is what works best for me, and could totally be ineffecient, or just a dead wrong way of doing something.</h4> and will change constantly as i continue to learn about nix. stuff will be updated, restructed, added, and removed quite often. please also note that everything hosted here is what works best for me, and could totally be ineffecient, or just a dead wrong way of doing something.</h4>
</div> </div>
@ -38,6 +39,7 @@
- :building_construction: [tsuru](hosts/tsuru) - :building_construction: [tsuru](hosts/tsuru)
- :snowflake: [yuki](hosts/yuki) - :snowflake: [yuki](hosts/yuki)
- :electric_plug: [modules](modules) - :electric_plug: [modules](modules)
- :airplane: [overlays](overlays)
- :package: [pkgs](pkgs) - :package: [pkgs](pkgs)
- :lock: [secrets](secrets) - :lock: [secrets](secrets)

2187
flake.lock generated

File diff suppressed because it is too large Load diff

103
flake.nix
View file

@ -4,8 +4,9 @@
outputs = inputs: outputs = inputs:
inputs.flake-parts.lib.mkFlake {inherit inputs;} { inputs.flake-parts.lib.mkFlake {inherit inputs;} {
imports = [ imports = [
inputs.pre-commit-hooks.flakeModule
./hosts ./hosts
./overlays
./modules
./hosts/deploy.nix ./hosts/deploy.nix
./home/profiles ./home/profiles
]; ];
@ -15,28 +16,6 @@
pkgs, 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 { devShells.default = pkgs.mkShell {
name = "snowflake"; name = "snowflake";
shellHook = config.pre-commit.installationScript; shellHook = config.pre-commit.installationScript;
@ -56,46 +35,27 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
### hypr ### 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 = { hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins"; url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland"; 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"; nix-gaming.url = "github:fufexan/nix-gaming";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
yazi.url = "github:sxyazi/yazi"; yazi.url = "github:sxyazi/yazi";
@ -104,26 +64,15 @@
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
atuin.url = "github:atuinsh/atuin"; atuin.url = "github:atuinsh/atuin";
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
stylix.url = "github:danth/stylix";
eww.url = "github:elkowar/eww";
anyrun.url = "github:Kirottu/anyrun"; anyrun.url = "github:Kirottu/anyrun";
botoh.url = "git+https://git.flake.sh/notohh/botoh"; botoh.url = "git+https://git.flake.sh/notohh/botoh";
conduwuit.url = "github:girlbossceo/conduwuit"; catppuccin.url = "github:catppuccin/nix";
neptune = { nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
url = "github:uwu/neptune"; prismlauncher.url = "github:PrismLauncher/PrismLauncher";
inputs.nixpkgs.follows = "nixpkgs"; manga-tui.url = "github:josueBarretogit/manga-tui";
}; spicetify-nix.url = "github:Gerg-L/spicetify-nix";
deploy-rs = { nix-topology.url = "github:oddlama/nix-topology";
url = "github:serokell/deploy-rs"; nix-flatpak.url = "github:gmodena/nix-flatpak";
inputs.nixpkgs.follows = "nixpkgs"; nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
} }

View file

@ -29,6 +29,7 @@
gnupg gnupg
ripgrep ripgrep
lazydocker lazydocker
ffmpeg
yt-dlp yt-dlp
nfs-utils nfs-utils
dig dig
@ -38,8 +39,8 @@
unrar unrar
p7zip p7zip
procs procs
atac
navi navi
busybox
]; ];
stateVersion = "23.05"; stateVersion = "23.05";
}; };

View file

@ -1,34 +1,20 @@
{pkgs, ...}: { {
inputs,
pkgs,
...
}: {
imports = [ imports = [
../../services ../../services
../../programs/anyrun
../../programs/browsers/firefox
../../programs/browsers/chromium
../../programs/terminal/wezterm
../../programs/terminal/zellij ../../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; [ home.packages = with pkgs; [
discord discord-canary
pavucontrol pavucontrol
imv
mpv
rustypaste-cli
playerctl
obsidian
cryptomator
wayland wayland
glib glib
grim technorino
slurp inputs.zen.packages.${pkgs.system}.default
wl-clipboard
swww
hyprpicker
]; ];
programs.ssh = { programs.ssh = {
enable = true; enable = true;
@ -65,10 +51,6 @@
Hostname 100.73.192.45 Hostname 100.73.192.45
User notoh User notoh
IdentityFile ~/.ssh/haru IdentityFile ~/.ssh/haru
Host kaze
Hostname 100.69.79.81
User notoh
IdentityFile ~/.ssh/kaze
Host basegbot Host basegbot
HostName 100.83.81.116 HostName 100.83.81.116
User basegbot User basegbot

View file

@ -4,19 +4,23 @@
... ...
}: { }: {
imports = [ imports = [
./stylix.nix inputs.catppuccin.homeManagerModules.catppuccin
../../services ../../services
../../programs/anyrun ../../programs/anyrun
../../programs/eww ../../programs/hyprpanel
../../programs/browsers/firefox ../../programs/browsers/firefox
../../programs/terminal/wezterm ../../programs/terminal/wezterm
../../programs/terminal/zellij ../../programs/terminal/zellij
../../programs/terminal/television
../../programs/editors/zed
../../programs/media/cava.nix ../../programs/media/cava.nix
../../programs/gtk.nix ../../programs/media/spicetify.nix
../../programs/mako.nix ../../programs/themes.nix
#../../programs/media/spotify-player.nix ../../programs/opencomposite.nix
../../programs/media/zathura.nix ../../programs/media/zathura.nix
../../programs/media/easyeffects.nix ../../programs/media/easyeffects.nix
../../programs/media/mpv.nix
../../programs/media/jellyfin-mpv-shim.nix
../../wayland/hyprland ../../wayland/hyprland
../../wayland/services/hypridle.nix ../../wayland/services/hypridle.nix
../../wayland/services/hyprpaper.nix ../../wayland/services/hyprpaper.nix
@ -26,46 +30,44 @@
chromium chromium
vesktop vesktop
technorino technorino
obsidian code-cursor
signal-desktop signal-desktop
obs-studio obs-studio
pavucontrol pavucontrol
anki-bin anki-bin
virt-manager virt-manager
qbittorrent qbittorrent
miru
hyprpicker
imv imv
mpv
ffmpeg
rustypaste-cli rustypaste-cli
gimp
cryptomator cryptomator
ventoy-bin-full ventoy-bin-full
wine wine
bottles bottles
prismlauncher
lutris lutris
r2modman
moonlight-qt moonlight-qt
tokei tokei
jellyfin-media-player jellyfin-media-player
jellyfin-rpc jellyfin-rpc
wlx-overlay-s wlx-overlay-s
losslesscut-bin losslesscut-bin
mangohud
uxplay
drawio
postman
gale
krita
bolt-launcher bolt-launcher
cinny-desktop cinny-desktop
jetbrains.goland inputs.zen.packages.${pkgs.system}.default
distrobox
tidal-hifi
neptune
inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin
# inputs.hyprsunset.packages.${pkgs.system}.default inputs.manga-tui.packages.${pkgs.system}.manga-tui
(callPackage ../../../pkgs/passgen {}) inputs.prismlauncher.packages.${pkgs.system}.prismlauncher
(callPackage ../../../pkgs/forex {})
(callPackage ../../../pkgs/cpm {})
]; ];
catppuccin = {
enable = true;
flavor = "mocha";
accent = "pink";
};
programs.ssh = { programs.ssh = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
@ -101,10 +103,6 @@
Hostname 100.73.192.45 Hostname 100.73.192.45
User notoh User notoh
IdentityFile ~/.ssh/haru IdentityFile ~/.ssh/haru
Host kaze
Hostname 100.69.79.81
User notoh
IdentityFile ~/.ssh/kaze
Host basegbot Host basegbot
HostName 100.83.81.116 HostName 100.83.81.116
User basegbot User basegbot

View file

@ -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;
};
};
}

View file

@ -1,6 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.firefox = { programs.firefox = {
enable = true; enable = false;
policies = { policies = {
DisablePocket = true; DisablePocket = true;
DisplayBookmarksToolbar = true; DisplayBookmarksToolbar = true;
@ -109,16 +109,16 @@
"x-scheme-handler/discord-409416265891971072" = ["discord-409416265891971072.desktop"]; "x-scheme-handler/discord-409416265891971072" = ["discord-409416265891971072.desktop"];
"x-scheme-handler/discord-402572971681644545" = ["discord-402572971681644545.desktop"]; "x-scheme-handler/discord-402572971681644545" = ["discord-402572971681644545.desktop"];
"x-scheme-handler/discord-696343075731144724" = ["discord-696343075731144724.desktop"]; "x-scheme-handler/discord-696343075731144724" = ["discord-696343075731144724.desktop"];
"x-scheme-handler/http" = ["firefox.desktop"]; "x-scheme-handler/http" = ["zen.desktop"];
"x-scheme-handler/https" = ["firefox.desktop"]; "x-scheme-handler/https" = ["zen.desktop"];
"x-scheme-handler/chrome" = ["firefox.desktop"]; "x-scheme-handler/chrome" = ["zen.desktop"];
"text/html" = ["firefox.desktop"]; "text/html" = ["firefox.desktop"];
"application/x-extension-htm" = ["firefox.desktop"]; "application/x-extension-htm" = ["zen.desktop"];
"application/x-extension-html" = ["firefox.desktop"]; "application/x-extension-html" = ["zen.desktop"];
"application/x-extension-shtml" = ["firefox.desktop"]; "application/x-extension-shtml" = ["zen.desktop"];
"application/xhtml+xml" = ["firefox.desktop"]; "application/xhtml+xml" = ["zen.desktop"];
"application/x-extension-xhtml" = ["firefox.desktop"]; "application/x-extension-xhtml" = ["zen.desktop"];
"application/x-extension-xht" = ["firefox.desktop"]; "application/x-extension-xht" = ["zen.desktop"];
}; };
}; };
} }

View file

@ -10,7 +10,6 @@ _: {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
settings = { settings = {
theme = "onedark";
editor = { editor = {
auto-save = true; auto-save = true;
true-color = true; true-color = true;

View file

@ -1,9 +1,10 @@
{ {
pkgs, pkgs,
lib, lib,
inputs,
... ...
}: { }: {
home.packages = [(pkgs.callPackage ../../../../pkgs/scls {})]; home.packages = [inputs.scls.defaultPackage.${pkgs.system}];
programs.helix.languages = { programs.helix.languages = {
language = with pkgs; [ language = with pkgs; [
{ {

View 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"
];
};
}

View file

@ -0,0 +1,15 @@
_: {
programs.zed-editor.userKeymaps = [
{
context = "Workspace";
bindings = {
ctrl-shift-t = "workspace::NewTerminal";
};
}
{
context = "Editor";
bindings = {
};
}
];
}

View 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"];
};
};
};
};
};
};
}

View file

@ -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;
}

View file

@ -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))

View file

@ -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

View file

@ -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;

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}
}

View file

@ -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;
}

View file

@ -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();
}

View file

@ -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 ',' ' '")

View file

@ -1,7 +0,0 @@
(defwidget container []
(box
:class "container"
:orientation "h"
(children)
)
)

View file

@ -1,9 +0,0 @@
(defpoll time :interval "60s"
:initial "initial-value"
`date +%H:%M`)
(defwidget time []
(box
:class "time"
(label
:text time)))

View file

@ -1,6 +0,0 @@
(defwidget logo []
(box
:class "logo"
(image :path "/home/notoh/Pictures/icons/nixos.png"
:image-width 24
:image-height 24)))

View file

@ -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))

View file

@ -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))

View file

@ -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 ""))))

View file

@ -1,5 +0,0 @@
(defwidget time []
(box
:class "time"
(label
:text time)))

View file

@ -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 "" " ")))

View file

@ -1,13 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
eww
playerctl
imagemagick
];
programs.eww = {
enable = true;
package = pkgs.eww;
configDir = ./config;
};
}

View file

@ -15,6 +15,7 @@ _: {
enable = true; enable = true;
gitCredentialHelper.enable = true; gitCredentialHelper.enable = true;
settings = { settings = {
git_protocol = "ssh";
editor = "hx"; editor = "hx";
prompt = "enabled"; prompt = "enabled";
}; };

View file

@ -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;
};
};
}

View 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 = [];
};
};
};
};
}

View 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";
};
};
};
}

View file

@ -1,12 +0,0 @@
_: {
services.mako = {
enable = true;
icons = true;
maxIconSize = 64;
maxVisible = 3;
defaultTimeout = 5000;
ignoreTimeout = true;
anchor = "top-right";
output = "DP-1";
};
}

View file

@ -9,12 +9,6 @@ _: {
bar_width = 2; bar_width = 2;
bar_spacing = 3; bar_spacing = 3;
}; };
color = {
gradient = 1;
gradient_count = 2;
gradient_color_2 = "'#f7768e'";
gradient_color_1 = "'#7dcfff'";
};
smoothing = { smoothing = {
monstercat = 1; monstercat = 1;
waves = 1; waves = 1;

View 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
}
'';
}

View 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;
};
};
}

View 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;
};
}

View file

@ -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"] }
'';
};
}

View 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
}
'';
}

View file

@ -1,6 +1,11 @@
_: { {
inputs,
pkgs,
...
}: {
programs.atuin = { programs.atuin = {
enable = true; enable = true;
package = inputs.atuin.packages.${pkgs.system}.default;
enableNushellIntegration = true; enableNushellIntegration = true;
settings = { settings = {
auto_sync = true; auto_sync = true;

View file

@ -2,7 +2,6 @@ _: {
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = {
theme = "base16-stylix";
pager = "--RAW-CONTROL-CHARS --quit-if-one-screen --mouse"; pager = "--RAW-CONTROL-CHARS --quit-if-one-screen --mouse";
style = "plain"; style = "plain";
}; };

View file

@ -18,15 +18,7 @@ alias grep = rg
alias build = nh os boot . alias build = nh os boot .
alias switch = nh os switch . alias switch = nh os switch .
alias clean = sudo nh clean all alias clean = sudo nh clean all
alias deploy = nix run github:serokell/deploy-rs alias deploy = nix run github:serokell/deploy-rs -- --skip-checks --targets
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 dl = yt-dlp -P ~/Videos/downloaded alias dl = yt-dlp -P ~/Videos/downloaded
alias dlad = yt-dlp -x --audio-format mp3 --embed-thumbnail alias dlad = yt-dlp -x --audio-format mp3 --embed-thumbnail
alias dlcd = yt-dlp 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 send = croc --relay "100.104.42.96:9009" send
alias receive = croc --relay "100.104.42.96:9009" alias receive = croc --relay "100.104.42.96:9009"
alias ps = procs alias ps = procs
alias tail = tspin alias ts = tspin
alias spotify = spotify_player alias generate-topology = nix build ".#topology.x86_64-linux.config.output"
alias atac = atac --directory ~/.config/atac/
nitch nitch
$env.config = { $env.config = {
ls: { ls: {
use_ls_colors: true # use the LS_COLORS environment variable to colorize output use_ls_colors: true
clickable_links: true # enable or disable clickable links. Your terminal has to support links. clickable_links: true
} }
rm: { rm: {
always_trash: false # always act as if -t was given. Can be overridden with -p always_trash: false
} }
table: { table: {
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other mode: rounded
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column index_mode: always
trim: { trim: {
methodology: wrapping # wrapping or truncating methodology: wrapping
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology wrapping_try_keep_words: true
truncating_suffix: "..." # A suffix used by the 'truncating' methodology truncating_suffix: "..."
} }
} }
history: { history: {
max_size: 10000 # Session has to be reloaded for this to take effect max_size: 10000
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file sync_on_enter: true
file_format: "sqlite" # "sqlite" or "plaintext" file_format: "sqlite"
} }
completions: { completions: {
case_sensitive: false # set to true to enable case-sensitive completions case_sensitive: false
quick: true # set this to false to prevent auto-selecting completions when only one remains quick: true
partial: true # set this to false to prevent partial filling of the prompt partial: true
algorithm: "prefix" # prefix or fuzzy algorithm: "prefix"
external: { 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 enable: true
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options max_results: 100
completer: null # check 'carapace_completer' above as an example completer: null
} }
} }
filesize: { footer_mode: "auto"
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
float_precision: 2 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 use_ansi_coloring: true
edit_mode: vi # emacs, vi edit_mode: vi
shell_integration: {} # enables terminal markers and a workaround to arrow keys stop working issue shell_integration: {}
show_banner: false # true or false to enable or disable the banner show_banner: false
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. render_right_prompt_on_last_line: false
hooks: { hooks: {
pre_prompt: [{ || pre_prompt: [{ ||
null # replace with source code to run before the prompt is shown null
}] }]
pre_execution: [{ || pre_execution: [{ ||
null # replace with source code to run before the repl input is run null
}] }]
env_change: { env_change: {
PWD: [{|before, after| PWD: [{|before, after|
null # replace with source code to run if the PWD environment is different since the last repl input null
}] }]
} }
display_output: { || display_output: { ||
@ -104,8 +92,6 @@ $env.config = {
} }
menus: [ menus: [
# Configuration for default nushell menus
# Note the lack of souce parameter
{ {
name: completion_menu name: completion_menu
only_buffer_difference: false only_buffer_difference: false
@ -113,7 +99,7 @@ $env.config = {
type: { type: {
layout: columnar layout: columnar
columns: 4 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 col_padding: 2
} }
style: { style: {
@ -143,7 +129,7 @@ $env.config = {
type: { type: {
layout: description layout: description
columns: 4 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 col_padding: 2
selection_rows: 4 selection_rows: 4
description_rows: 10 description_rows: 10
@ -154,9 +140,6 @@ $env.config = {
description_text: yellow 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 name: commands_menu
only_buffer_difference: false only_buffer_difference: false
@ -220,14 +203,14 @@ $env.config = {
| where command =~ $buffer | where command =~ $buffer
| each { |it| {value: $it.command description: $it.usage} } | each { |it| {value: $it.command description: $it.usage} }
} }
} }
] ]
keybindings: [ keybindings: [
{ {
name: completion_menu name: completion_menu
modifier: none modifier: none
keycode: tab keycode: tab
mode: vi_normal # Options: emacs vi_normal vi_insert mode: vi_normal
event: { event: {
until: [ until: [
{ send: menu name: completion_menu } { send: menu name: completion_menu }
@ -239,7 +222,7 @@ $env.config = {
name: completion_previous name: completion_previous
modifier: shift modifier: shift
keycode: backtab 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 } event: { send: menuprevious }
} }
{ {
@ -301,7 +284,6 @@ $env.config = {
] ]
} }
} }
# Keybindings used to trigger the user defined menus
{ {
name: commands_menu name: commands_menu
modifier: control modifier: control
@ -324,7 +306,7 @@ $env.config = {
event: { send: menu name: commands_with_description } event: { send: menu name: commands_with_description }
} }
] ]
} }

View file

@ -9,28 +9,8 @@
enable = true; enable = true;
enableNushellIntegration = true; enableNushellIntegration = true;
settings = { settings = {
palette = "tokyonight"; command_timeout = 2000;
add_newline = false; 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 [ format = lib.concatStrings [
"$character" "$character"
"$hostname" "$hostname"

View file

@ -0,0 +1,5 @@
{
"indexes": ["nixpkgs", "home-manager", "nur"],
"update_interval": "12h",
"enable_waiting_message": true
}

View 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"

View 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;
}

View file

@ -13,9 +13,10 @@ local config = {
enable_wayland = false, enable_wayland = false,
font = wezterm.font_with_fallback({ "JetBrainsMono NF Medium", "Comic Code Ligatures Medium" }), font = wezterm.font_with_fallback({ "JetBrainsMono NF Medium", "Comic Code Ligatures Medium" }),
font_size = 12.0, font_size = 12.0,
window_background_opacity = 0.6, window_background_opacity = 1.0,
text_background_opacity = 1.0, text_background_opacity = 1.0,
enable_tab_bar = false, enable_tab_bar = false,
max_fps = 144,
window_padding = { top = 20, bottom = 20, left = 20, right = 20 }, window_padding = { top = 20, bottom = 20, left = 20, right = 20 },
} }

View file

@ -1,6 +1,7 @@
{ {
config, inputs,
pkgs, pkgs,
config,
... ...
}: { }: {
# xdg.configFile."yazi/init.lua".source = ./init.lua; # xdg.configFile."yazi/init.lua".source = ./init.lua;
@ -8,7 +9,7 @@
programs.yazi = { programs.yazi = {
enable = true; enable = true;
package = pkgs.yazi; package = inputs.yazi.packages.${pkgs.system}.default;
enableNushellIntegration = true; enableNushellIntegration = true;
settings = { settings = {
manager = { manager = {

View file

@ -8,7 +8,6 @@ _: {
settings = { settings = {
on_force_close = "quit"; on_force_close = "quit";
simplified_ui = false; simplified_ui = false;
theme = "tokyo-night";
default_layout = "default"; default_layout = "default";
copy_command = "wl-copy"; copy_command = "wl-copy";
copy_clipboard = "primary"; copy_clipboard = "primary";

49
home/programs/themes.nix Normal file
View 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;
};
}

View file

@ -1,3 +1,3 @@
{ {
imports = [./gpg.nix ./gammastep.nix]; imports = [./gpg.nix];
} }

View file

@ -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;
};
}

View file

@ -1,12 +1,9 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [./services/greetd.nix]; imports = [./services/ly.nix];
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
wayland wayland
glib glib
grim
slurp
satty
wl-clipboard wl-clipboard
]; ];
sessionVariables = { sessionVariables = {
@ -25,15 +22,13 @@
TERMINAL = "wezterm"; TERMINAL = "wezterm";
# SDL_VIDEODRIVER = "wayland"; # SDL_VIDEODRIVER = "wayland";
}; };
etc."greetd/environments".text = ''
Hyprland
'';
}; };
services.dbus.enable = true; services.dbus.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
]; ];
config = { config = {

View file

@ -1,5 +1,10 @@
_: { {
wayland.windowManager.hyprland.settings = { inputs,
pkgs,
lib,
...
}: {
wayland.windowManager.hyprland.settings = with pkgs; {
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
"$mainMod, Return, exec, wezterm" "$mainMod, Return, exec, wezterm"
@ -9,12 +14,12 @@ _: {
"$mainMod, R, exec, anyrun" "$mainMod, R, exec, anyrun"
"$mainMod, P, pseudo," "$mainMod, P, pseudo,"
"$mainMod, J, togglesplit," "$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, left, movefocus, l"
"$mainMod, right, movefocus, r" "$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u" "$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d" "$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, 1, workspace, 1"
"$mainMod, 2, workspace, 2" "$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3" "$mainMod, 3, workspace, 3"

View file

@ -8,7 +8,7 @@
"DP-1,2560x1440@144, 1080x1080, auto" #middle "DP-1,2560x1440@144, 1080x1080, auto" #middle
]; ];
exec-once = [ exec-once = [
"eww open bar" "hyprpanel"
"hyprpaper" "hyprpaper"
"chatterino" "chatterino"
"vesktop" "vesktop"
@ -23,7 +23,7 @@
}; };
general = { general = {
gaps_in = 10; gaps_in = 10;
gaps_out = 20; gaps_out = 15;
border_size = 0; border_size = 0;
"col.active_border" = "rgb(7dcfff) rgb(c0caf5)"; "col.active_border" = "rgb(7dcfff) rgb(c0caf5)";
"col.inactive_border" = "rgb(24283b)"; "col.inactive_border" = "rgb(24283b)";
@ -91,9 +91,10 @@
mouse_move_enables_dpms = true; mouse_move_enables_dpms = true;
key_press_enables_dpms = false; 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
'';
}; };
} }

View file

@ -9,6 +9,7 @@ _: {
"float, title:^(RuneLite)$" "float, title:^(RuneLite)$"
"float, title:^(Lutris)$" "float, title:^(Lutris)$"
"float, title:^(satty)$" "float, title:^(satty)$"
"float, title:^(Postman)$"
"move 850 360, title:^(RuneLite)$" "move 850 360, title:^(RuneLite)$"
# "size 800 560, title:^(RuneLite)$" # "size 800 560, title:^(RuneLite)$"
"size 1200 600, title:^(satty)$" "size 1200 600, title:^(satty)$"

View file

@ -10,5 +10,7 @@
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
xwayland.enable = true; xwayland.enable = true;
package = null;
portalPackage = null;
}; };
} }

View file

@ -1,10 +1,15 @@
_: { {
inputs,
pkgs,
...
}: {
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
package = inputs.hyprlock.packages.${pkgs.system}.default;
settings = { settings = {
background = let background = let
verticalWallpaper = "/home/notoh/Pictures/wallpapers/sparkle.png"; verticalWallpaper = "/home/notoh/dev/assets/wallpapers/miku/miku2.png";
horizontalWallpaper = "/home/notoh/Pictures/wallpapers/sparkle2.png"; horizontalWallpaper = "/home/notoh/dev/assets/wallpapers/miku/miku.png";
in [ in [
{ {
monitor = "HDMI-A-1"; monitor = "HDMI-A-1";
@ -40,13 +45,17 @@ _: {
disable_loading_bar = false; disable_loading_bar = false;
hide_cursor = false; hide_cursor = false;
no_fade_in = false; no_fade_in = false;
ignore_empty_input = true;
};
animations = {
enabled = true;
}; };
input-field = [ input-field = [
{ {
monitor = "DP-1"; monitor = "DP-1";
size = "350, 50"; size = "350, 50";
outline_thickness = 2; outline_thickness = 2;
outer_color = "rgb(f7768e)"; outer_color = "rgb(f5c2e7)";
inner_color = "rgb(1a1b26)"; inner_color = "rgb(1a1b26)";
font_color = "rgb(c0caf5)"; font_color = "rgb(c0caf5)";
fail_color = "rgb(f7768e)"; fail_color = "rgb(f7768e)";
@ -69,7 +78,7 @@ _: {
{ {
monitor = "DP-1"; monitor = "DP-1";
text = '' text = ''
Hi, <i><span foreground="##f7768e">$USER</span></i> Hi, <i><span foreground="##74c7ec">$USER</span></i>
''; '';
color = "rgb(c0caf5)"; color = "rgb(c0caf5)";
position = "0, 60"; position = "0, 60";

View file

@ -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";
};
};
};
}

View file

@ -2,10 +2,12 @@
pkgs, pkgs,
lib, lib,
config, config,
inputs,
... ...
}: { }: {
services.hypridle = { services.hypridle = {
enable = true; enable = true;
package = inputs.hypridle.packages.${pkgs.system}.default;
settings = { settings = {
general = { general = {
ignore_dbus_inhibit = false; ignore_dbus_inhibit = false;
@ -18,8 +20,8 @@
on-timeout = "${lib.getExe config.programs.hyprlock.package}"; on-timeout = "${lib.getExe config.programs.hyprlock.package}";
} }
{ {
timeout = 460; timeout = 450;
on-timeout = "hyprctl dispatch dpms off"; on-timeout = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl dispatch dpms off";
} }
]; ];
}; };

View file

@ -1,20 +1,28 @@
{pkgs, ...}: { {
inputs,
pkgs,
...
}: {
home.packages = [pkgs.hyprpaper]; 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; enable = true;
package = inputs.hyprpaper.packages.${pkgs.system}.default;
settings = { settings = {
ipc = true; ipc = true;
splash = false; splash = false;
preload = [ preload = [
"~/Pictures/wallpapers/sparkle3.png" verticalWallpaper
"~/Pictures/wallpapers/sparkle4.png" horizontalWallpaper
]; ];
wallpaper = [ wallpaper = [
"HDMI-A-1,~/Pictures/wallpapers/sparkle3.png" "HDMI-A-1,${verticalWallpaper}"
"DP-1,~/Pictures/wallpapers/sparkle4.png" "DP-1,${horizontalWallpaper}"
"DP-2,~/Pictures/wallpapers/sparkle4.png" "DP-2,${horizontalWallpaper}"
"DP-3,~/Pictures/wallpapers/sparkle3.png" "DP-3,${verticalWallpaper}"
]; ];
}; };
}; };

View 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;
};
};
}

View file

@ -1,17 +1,18 @@
_: { {inputs, ...}: {
imports = [ imports = [
./hardware.nix ./hardware.nix
./services ./services
./networking.nix ./networking.nix
../common.nix ./topology.nix
../../modules ../common
../../modules/fonts.nix ../common/fonts.nix
inputs.nixos-cosmic.nixosModules.default
]; ];
programs.hyprland.enable = true;
services = { services = {
displayManager.sddm.enable = true; pulseaudio.enable = false;
desktopManager.cosmic.enable = true;
displayManager.cosmic-greeter.enable = true;
pipewire = { pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
@ -26,7 +27,6 @@ _: {
}; };
}; };
}; };
system.stateVersion = "23.05";
hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
} }

View file

@ -31,16 +31,18 @@
fileSystems = { fileSystems = {
"/" = { "/" = {
device = "/dev/disk/by-uuid"; device = "/dev/disk/by-uuid/825f1188-82bd-4a1d-9434-6b5dd29041c3";
fsType = "ext4"; fsType = "ext4";
}; };
"/boot/efi" = {
device = "/dev/disk/by-uuid/59C2-1D06";
fsType = "vfat";
};
}; };
zramSwap = { swapDevices = [
enable = true; {device = "/dev/disk/by-uuid/d62dbf49-e51e-4823-a9cb-f2af486cd0f7";}
swapDevices = 1; ];
algorithm = "zstd";
};
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;

20
hosts/ame/topology.nix Normal file
View 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";
};
};
};
};
}

View file

@ -3,8 +3,8 @@
./hardware.nix ./hardware.nix
./services ./services
./networking.nix ./networking.nix
../common.nix ./topology.nix
../../modules ../common
]; ];
users = { users = {
@ -15,4 +15,8 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
]; ];
}; };
system = {
autoUpgrade.enable = false;
stateVersion = "23.05";
};
} }

View file

@ -9,7 +9,7 @@ _: {
environment.etc = { environment.etc = {
"resolv.conf".text = '' "resolv.conf".text = ''
nameserver 192.168.1.103 nameserver 192.168.1.103
nameserver 9.9.9.9 nameserver 1.1.1.1
''; '';
}; };
} }

View file

@ -56,6 +56,14 @@
name = "ec"; name = "ec";
ensureDBOwnership = true; ensureDBOwnership = true;
} }
{
name = "botoh";
ensureDBOwnership = true;
}
{
name = "ganymede";
ensureDBOwnership = true;
}
]; ];
ensureDatabases = [ ensureDatabases = [
"forgejo" "forgejo"
@ -67,6 +75,8 @@
"miniflux" "miniflux"
"atuin" "atuin"
"ec" "ec"
"botoh"
"ganymede"
]; ];
}; };
services.postgresqlBackup = { services.postgresqlBackup = {
@ -80,6 +90,8 @@
"attic" "attic"
"miniflux" "miniflux"
"atuin" "atuin"
"botoh"
"ganymede"
]; ];
compression = "zstd"; compression = "zstd";
compressionLevel = 4; compressionLevel = 4;

20
hosts/arashi/topology.nix Normal file
View 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";
};
};
};
};
}

View file

@ -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
View 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
];
}

View file

@ -1,27 +1,22 @@
{inputs, ...}: { {
inputs,
config,
...
}: {
sops.secrets.github-token = {};
nixpkgs = { nixpkgs = {
overlays = [ overlays = [
inputs.self.overlays.technorino
inputs.nur.overlays.default inputs.nur.overlays.default
inputs.helix.overlays.default inputs.helix.overlays.default
inputs.yazi.overlays.default inputs.hyprpanel.overlay
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
]; ];
config = { config = {
allowUnfree = true; allowUnfree = true;
permittedInsecurePackages = [ permittedInsecurePackages = [
"dotnet-runtime-6.0.36" # for sonarr
"dotnet-sdk-wrapped-6.0.428"
"dotnet-sdk-6.0.428" "dotnet-sdk-6.0.428"
"aspnetcore-runtime-wrapped-6.0.36"
"aspnetcore-runtime-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://anyrun.cachix.org"
"https://viperml.cachix.org" "https://viperml.cachix.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://attic.kennel.juneis.dog/conduwuit" "https://prismlauncher.cachix.org"
"https://cosmic.cachix.org/"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
@ -56,9 +52,13 @@
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s=" "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "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 = { programs.nh = {

View file

@ -1,6 +1,6 @@
_: { _: {
sops = { sops = {
defaultSopsFile = ../secrets/secrets.yaml; defaultSopsFile = ../../secrets/secrets.yaml;
age.keyFile = "/home/notoh/.config/sops/age/keys.txt"; age.keyFile = "/home/notoh/.config/sops/age/keys.txt";
}; };
} }

View file

@ -40,9 +40,4 @@
DefaultTimeoutStopSec=5s DefaultTimeoutStopSec=5s
''; '';
}; };
system = {
autoUpgrade.enable = false;
stateVersion = "23.05"; # no touchy
};
} }

View file

@ -151,21 +151,5 @@
} }
]; ];
}; };
kaze = nixosSystem {
inherit specialArgs;
modules = [
./kaze
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users.notoh = {
imports = homeImports."default";
};
};
}
];
};
}; };
} }

View file

@ -71,16 +71,6 @@
sshOpts = ["-t" "-i" "~/.ssh/forgejo"]; sshOpts = ["-t" "-i" "~/.ssh/forgejo"];
magicRollback = true; 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;
};
}; };
}; };
} }

View file

@ -3,8 +3,8 @@
./hardware.nix ./hardware.nix
./services ./services
./networking.nix ./networking.nix
../common.nix ./topology.nix
../../modules ../common
]; ];
users = { users = {
@ -15,4 +15,8 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
]; ];
}; };
system = {
autoUpgrade.enable = false;
stateVersion = "23.05";
};
} }

View file

@ -9,7 +9,7 @@ _: {
environment.etc = { environment.etc = {
"resolv.conf".text = '' "resolv.conf".text = ''
nameserver 192.168.1.103 nameserver 192.168.1.103
nameserver 9.9.9.9 nameserver 1.1.1.1
''; '';
}; };
} }

View file

@ -51,6 +51,10 @@
"https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" "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/FadeMind/hosts.extras/master/UncheckyAds/hosts"
"https://raw.githubusercontent.com/bigdargon/hostsVN/master/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 = [ tracking = [
"https://v.firebog.net/hosts/Easyprivacy.txt" "https://v.firebog.net/hosts/Easyprivacy.txt"
@ -86,6 +90,7 @@
*.clickhouse.com *.clickhouse.com
*.discord.com *.discord.com
*.last.fm *.last.fm
*.spotify.com
''; '';
in { in {
ads = [ ads = [
@ -108,6 +113,7 @@
customTTL = "1h"; customTTL = "1h";
mapping = let mapping = let
yukiIp = "192.168.1.98"; yukiIp = "192.168.1.98";
kariruIp = "192.168.1.54";
in { in {
# infra # infra
@ -124,20 +130,19 @@
"jellyseerr.internal.flake.sh" = "${yukiIp}"; "jellyseerr.internal.flake.sh" = "${yukiIp}";
"sonarr.internal.flake.sh" = "${yukiIp}"; "sonarr.internal.flake.sh" = "${yukiIp}";
"radarr.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}"; "prowlarr.internal.flake.sh" = "${yukiIp}";
"stash.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 # misc
"wallos.internal.flake.sh" = "${yukiIp}"; "wallos.internal.flake.sh" = "${yukiIp}";
"synology.internal.flake.sh" = "192.168.1.71"; "synology.internal.flake.sh" = "192.168.1.71";
"paperless.internal.flake.sh" = "${yukiIp}"; "paperless.internal.flake.sh" = "${yukiIp}";
"rss.internal.flake.sh" = "${yukiIp}"; "hoarder.internal.flake.sh" = "${yukiIp}";
"ganymede.internal.flake.sh" = "100.121.201.47";
}; };
}; };
redis = { redis = {

20
hosts/haru/topology.nix Normal file
View 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";
};
};
};
};
}

View file

@ -3,8 +3,8 @@
./hardware.nix ./hardware.nix
./services ./services
./networking.nix ./networking.nix
../common.nix ./topology.nix
../../modules ../common
]; ];
users = { users = {
@ -15,4 +15,8 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
]; ];
}; };
system = {
autoUpgrade.enable = false;
stateVersion = "23.05";
};
} }

View file

@ -9,7 +9,7 @@ _: {
environment.etc = { environment.etc = {
"resolv.conf".text = '' "resolv.conf".text = ''
nameserver 192.168.1.103 nameserver 192.168.1.103
nameserver 9.9.9.9 nameserver 1.1.1.1
''; '';
}; };
} }

View file

@ -1,9 +1,10 @@
{pkgs, ...}: { {pkgs, ...}: {
networking.firewall.allowedTCPPorts = [9292]; networking.firewall.allowedTCPPorts = [9292 8111];
imports = [ imports = [
./restic.nix ./restic.nix
./torrent.nix ./torrent.nix
./syncthing.nix
]; ];
environment.systemPackages = [pkgs.recyclarr]; environment.systemPackages = [pkgs.recyclarr];
@ -20,35 +21,27 @@
enable = true; enable = true;
openFirewall = 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 = { virtualisation.oci-containers.containers = {
whisparr = { byparr = {
image = "ghcr.io/hotio/whisparr@sha256:d66f5dc01af747881e25b8e72aa45de30fba672c16df897af69257704fb61fe4"; # v3-3.0.0.545 image = "ghcr.io/thephaseless/byparr@sha256:9f83a6f5e5cec22a70abf3401a23164295a4b2e1ced37264907c3512981e527a"; # v3.3.21
ports = ["6969:6969"]; ports = ["8191:8191"];
volumes = [
"/var/lib/whisparr:/config"
"/stash:/media/stash"
"/media/downloads:/media/downloads"
];
extraOptions = ["--network=host"]; extraOptions = ["--network=host"];
}; };
flaresolverr = { shoko = {
image = "ghcr.io/flaresolverr/flaresolverr@sha256:5f5661db1e69a6f80ac24d47d9fa5580f6f741ee5ec967818396ae0dacecd7ea"; # v3.3.17 image = "ghcr.io/shokoanime/server@sha256:dde0c5a8bddc226ae368827fd7df382602ad312a2337ebade8e5cc63fa0c4dac"; # v5.1.0
ports = ["8191:8191"]; 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"]; extraOptions = ["--network=host"];
}; };
}; };

View 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";
};
}

View file

@ -2,7 +2,7 @@
sops.secrets.gluetun = {}; sops.secrets.gluetun = {};
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
gluetun = { gluetun = {
image = "qmcgaw/gluetun@sha256:5522794f5cce6d84bc7f06b1e3a3b836ede9100c64aec94543cb503bb2ecb72f"; #v3.38 image = "qmcgaw/gluetun@sha256:2b42bfa046757145a5155acece417b65b4443c8033fb88661a8e9dcf7fda5a00"; #v3.40
hostname = "gluetun"; hostname = "gluetun";
ports = [ ports = [
"8000:8000/tcp" # HTTP control server "8000:8000/tcp" # HTTP control server
@ -13,11 +13,12 @@
"6881:6881" #qb "6881:6881" #qb
"6881:6881/udp" #qb "6881:6881/udp" #qb
]; ];
volumes = ["/srv/gluetun:/tmp/gluetun"];
environmentFiles = [config.sops.secrets.gluetun.path]; environmentFiles = [config.sops.secrets.gluetun.path];
extraOptions = ["--cap-add=NET_ADMIN"]; extraOptions = ["--cap-add=NET_ADMIN" "--device=/dev/net/tun:/dev/net/tun"];
}; };
qbittorrent = { qbittorrent = {
image = "linuxserver/qbittorrent@sha256:d01b1df556154862eca982d0f2c420073e2e2959c309951fbfddd25525ea28ce"; # v5.0.0 image = "linuxserver/qbittorrent@sha256:50f490770308d0351e12618422e74e0613721b080f5db0bf840cf66a7281eea8"; # v5.0.4
dependsOn = ["gluetun"]; dependsOn = ["gluetun"];
environment = { environment = {
PUID = "1001"; PUID = "1001";

20
hosts/kariru/topology.nix Normal file
View 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