Compare commits

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

114 commits

Author SHA1 Message Date
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
172 changed files with 3164 additions and 3446 deletions

View file

@ -19,7 +19,3 @@ creation_rules:
key_groups:
- age:
- *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
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.

View file

@ -14,12 +14,13 @@
<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,
: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>
</div>
@ -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)

2144
flake.lock generated

File diff suppressed because it is too large Load diff

102
flake.nix
View file

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

View file

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

View file

@ -6,10 +6,8 @@
../../programs/browsers/chromium
../../programs/terminal/wezterm
../../programs/terminal/zellij
../../programs/gtk.nix
# ../../programs/themes.nix
../../programs/media/cava.nix
../../programs/mako.nix
../../programs/media/spotify-player.nix
../../programs/media/zathura.nix
];
@ -65,10 +63,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

View file

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

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, ...}: {
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"];
};
};
}

View file

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

View file

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

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;
gitCredentialHelper.enable = true;
settings = {
git_protocol = "ssh";
editor = "hx";
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_spacing = 3;
};
color = {
gradient = 1;
gradient_count = 2;
gradient_color_2 = "'#f7768e'";
gradient_color_1 = "'#7dcfff'";
};
smoothing = {
monstercat = 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 = {
enable = true;
package = inputs.atuin.packages.${pkgs.system}.default;
enableNushellIntegration = true;
settings = {
auto_sync = true;

View file

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

View file

@ -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
@ -220,14 +203,14 @@ $env.config = {
| where command =~ $buffer
| each { |it| {value: $it.command description: $it.usage} }
}
}
}
]
keybindings: [
{
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
@ -324,7 +306,7 @@ $env.config = {
event: { send: menu name: commands_with_description }
}
]
}

View file

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

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,
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 },
}

View file

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

View file

@ -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
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, ...}: {
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 = {

View file

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

View file

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

View file

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

View file

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

View file

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

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

View file

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

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

@ -3,14 +3,15 @@ _: {
./hardware.nix
./services
./networking.nix
../common.nix
../../modules
../../modules/fonts.nix
./topology.nix
../common
../common/fonts.nix
];
programs.hyprland.enable = true;
services = {
pulseaudio.enable = false;
displayManager.sddm.enable = true;
pipewire = {
enable = true;
@ -26,7 +27,5 @@ _: {
};
};
};
hardware.pulseaudio.enable = false;
security.rtkit.enable = 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
./services
./networking.nix
../common.nix
../../modules
./topology.nix
../common
];
users = {

View file

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

View file

@ -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
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 = {
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,7 @@
"https://anyrun.cachix.org"
"https://viperml.cachix.org"
"https://nix-community.cachix.org"
"https://attic.kennel.juneis.dog/conduwuit"
"https://prismlauncher.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
@ -56,9 +51,12 @@
"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="
];
};
extraOptions = ''
!include ${config.sops.secrets.github-token.path}
'';
};
programs.nh = {

View file

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

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"];
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
./services
./networking.nix
../common.nix
../../modules
./topology.nix
../common
];
users = {

View file

@ -9,7 +9,7 @@ _: {
environment.etc = {
"resolv.conf".text = ''
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://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
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
./services
./networking.nix
../common.nix
../../modules
./topology.nix
../common
];
users = {

View file

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

View file

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

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 = {};
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
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";
};
};
};
};
}

View file

@ -1,18 +0,0 @@
{...}: {
imports = [
./hardware.nix
./services
./networking.nix
../common.nix
../../modules
];
users = {
users.notoh.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE4qfqJNxwNg9ryeT/XbjfQyuDKbBAwRn2Lzq3Iq5kA7 kaze"
];
users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMd8j1+fC/ng7l17rsxugVtlhurUe1ICizwA9lQkSuNY forgejo"
];
};
}

Some files were not shown because too many files have changed in this diff Show more