treewide: refactor w/ deadnix && statix applied #27

Merged
notohh merged 3 commits from linting-refactor into master 2024-02-01 15:50:28 -05:00
73 changed files with 1893 additions and 624 deletions
Showing only changes of commit 83f4b12cfe - Show all commits

1
.gitignore vendored
View file

@ -1 +1,2 @@
result result
.pre-commit-config.yaml

View file

@ -1,17 +0,0 @@
when:
- event: [push]
- branch: master
- path:
include: ['**.nix']
exclude: ['**.md', 'docs/**', '.woodpecker/*.yaml', '**.js', '**.lua', '**.scss', '**.nu']
steps:
check:
image: nixos/nix
commands:
- echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf
- nix flake check
fmt:
image: nixos/nix
commands:
- echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf
- nix run nixpkgs#alejandra -- -c .

View file

@ -1,27 +1,18 @@
when: when:
- branch: flake-lock-update - branch: flake-lock-update
- event: [pull_request_closed] - event: [pull_request_closed]
steps: steps:
attic-push:
image: git.vdx.hu/voidcontext/woodpecker-plugin-nix-attic
settings:
binary_cache: https://cache.flake.sh/
binary_cache_public_key: kyasshu:g1heIgCgG7M4San6nRsz/omcVQ1GTc7+zKKm3L9Co7o=
binary_cache_token:
from_secret: kyasshu_access_token
script: |
attic login kyasshu $PLUGIN_BINARY_CACHE_TOKEN
deploy: deploy:
image: nixos/nix image: nixos/nix
commands: | commands: |
echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf
echo "access-tokens = github.com=$${GH_PAT}" >> /etc/nix/nix.conf echo "access-tokens = github.com=$${GH_PAT}" >> /etc/nix/nix.conf
echo 'builders-use-substitutes = true' >> /etc/nix/nix.conf echo 'builders-use-substitutes = true' >> /etc/nix/nix.conf
echo 'substituters = https://cache.flake.sh/kyasshu https://hyprland.cachix.org https://cache.nixos.org https://nix-gaming.cachix.org https://anyrun.cachix.org https://viperml.cachix.org https://nix-community.cachix.org https://cache.nixos.org/' >> /etc/nix/nix.conf echo 'substituters = https://cache.flake.sh/kyasshu https://hyprland.cachix.org https://cache.nixos.org https://nix-gaming.cachix.org https://anyrun.cachix.org https://viperml.cachix.org https://nix-community.cachix.org https://cache.nixos.org/' >> /etc/nix/nix.conf
echo 'trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= kyasshu:g1heIgCgG7M4San6nRsz/omcVQ1GTc7+zKKm3L9Co7o= hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4= anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s= viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=' >> /etc/nix/nix.conf echo 'trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= kyasshu:g1heIgCgG7M4San6nRsz/omcVQ1GTc7+zKKm3L9Co7o= hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4= anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s= viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=' >> /etc/nix/nix.conf
mkdir -p .ssh && cd .ssh mkdir -p .ssh && cd .ssh
echo "$${SSH_KEY}" > forgejo echo "$${SSH_KEY}" > forgejo
chmod 400 forgejo chmod 400 forgejo
nix run github:serokell/deploy-rs -- --ssh-opts="-i forgejo -o StrictHostKeyChecking=no" --skip-checks --targets .#arashi .#kariru .#sakura .#sora .#yuki .#haru .#kaze nix run github:serokell/deploy-rs -- --ssh-opts="-i forgejo -o StrictHostKeyChecking=no" --skip-checks --targets .#arashi .#kariru .#sakura .#sora .#yuki .#haru .#kaze
secrets: [ssh_key, gh_pat] secrets: [ssh_key, gh_pat]

View file

@ -49,6 +49,7 @@
+ multiple fully declarative self hosted services (and some containerized ones, with a docker backend) + multiple fully declarative self hosted services (and some containerized ones, with a docker backend)
+ wayland config for hyprland + wayland config for hyprland
+ custom packages not found in nixpkgs + custom packages not found in nixpkgs
+ linted & styled with [alejandra](https://github.com/kamadorueda/alejandra), [deadnix](https://github.com/astro/deadnix), and [statix](https://github.com/nerdypepper/statix)
## :busts_in_silhouette: Credit ## :busts_in_silhouette: Credit
#### people who've inspired me to dive into nix, and i've stolen stuff from (you guys are awesome!) #### people who've inspired me to dive into nix, and i've stolen stuff from (you guys are awesome!)

View file

@ -157,6 +157,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -233,6 +249,24 @@
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_5"
},
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
@ -247,6 +281,27 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703887061,
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"helix": { "helix": {
"inputs": { "inputs": {
"crane": "crane_2", "crane": "crane_2",
@ -487,6 +542,22 @@
} }
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": {
"lastModified": 1704874635,
"narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_3": {
"locked": { "locked": {
"lastModified": 1705957679, "lastModified": 1705957679,
"narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
@ -583,6 +654,22 @@
} }
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": {
"lastModified": 1704842529,
"narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1701174899, "lastModified": 1701174899,
"narHash": "sha256-1W+FMe8mWsJKXoBc+QgKmEeRj33kTFnPq7XCjU+bfnA=", "narHash": "sha256-1W+FMe8mWsJKXoBc+QgKmEeRj33kTFnPq7XCjU+bfnA=",
@ -613,6 +700,28 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_3",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1706424699,
"narHash": "sha256-Q3RBuOpZNH2eFA1e+IHgZLAOqDD9SKhJ/sszrL8bQD4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"ags": "ags", "ags": "ags",
@ -628,6 +737,7 @@
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_6",
"nur": "nur", "nur": "nur",
"pre-commit-hooks": "pre-commit-hooks",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"yazi": "yazi" "yazi": "yazi"
} }
@ -687,7 +797,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable_3"
}, },
"locked": { "locked": {
"lastModified": 1706410821, "lastModified": 1706410821,
@ -763,6 +873,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@ -832,8 +957,8 @@
}, },
"yazi": { "yazi": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_8",
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {

View file

@ -10,6 +10,7 @@
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
yazi.url = "github:sxyazi/yazi"; yazi.url = "github:sxyazi/yazi";
helix.url = "github:helix-editor/helix"; helix.url = "github:helix-editor/helix";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
hyprland-plugins = { hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins"; url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland"; inputs.hyprland.follows = "hyprland";
@ -39,18 +40,42 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = {nixpkgs, ...} @ inputs: let outputs = {
self,
nixpkgs,
pre-commit-hooks,
...
} @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
}; };
in { in {
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
stylua.enable = true;
eslint.enable = true;
statix.enable = true;
alejandra.enable = true;
deadnix = {
enable = true;
excludes = ["overlays.nix"];
};
};
};
};
devShells.${system}.default = pkgs.mkShell { devShells.${system}.default = pkgs.mkShell {
name = "snowflake"; name = "snowflake";
inherit (self.checks.pre-commit-check) shellHook;
packages = with pkgs; [ packages = with pkgs; [
git git
sops sops
alejandra alejandra
statix
deadnix
stylua
yaml-language-server yaml-language-server
lua-language-server lua-language-server
nodePackages.typescript-language-server nodePackages.typescript-language-server

View file

@ -25,3 +25,4 @@ name | description
`yazi` | terminal file manager `yazi` | terminal file manager
`zathura` | pdf viewer `zathura` | pdf viewer
`zellij` | terminal multiplexer `zellij` | terminal multiplexer
`zoxide` | a smarter cd command

View file

@ -0,0 +1,26 @@
module.exports = {
"env": {
"browser": true,
"es2021": true
},
"extends": "eslint:recommended",
"overrides": [
{
"env": {
"node": true
},
"files": [
".eslintrc.{js,cjs}"
],
"parserOptions": {
"sourceType": "script"
}
}
],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
}
}

View file

@ -1,9 +1,8 @@
import { App, Utils } from './import.js'; import { App, Utils } from "./import.js";
import { Bar } from './js/main.js' import { Bar } from "./js/main.js";
const scss = App.configDir + "/main.scss";
const scss = App.configDir + '/main.scss' const css = App.configDir + "/style.css";
const css = App.configDir + '/style.css'
Utils.exec(`sass ${scss} ${css}`); Utils.exec(`sass ${scss} ${css}`);
@ -19,6 +18,6 @@ Utils.monitorFile(`${App.configDir}/scss`, reloadCss, "directory");
export default { export default {
style: css, style: css,
windows: [ windows: [
Bar(2) Bar(2),
] ],
} };

View file

@ -7,17 +7,17 @@ import Audio from "resource:///com/github/Aylur/ags/service/audio.js";
import Hyprland from "resource:///com/github/Aylur/ags/service/hyprland.js"; import Hyprland from "resource:///com/github/Aylur/ags/service/hyprland.js";
import Network from "resource:///com/github/Aylur/ags/service/network.js"; import Network from "resource:///com/github/Aylur/ags/service/network.js";
import SystemTray from "resource:///com/github/Aylur/ags/service/systemtray.js"; import SystemTray from "resource:///com/github/Aylur/ags/service/systemtray.js";
import Mpris from 'resource:///com/github/Aylur/ags/service/mpris.js'; import Mpris from "resource:///com/github/Aylur/ags/service/mpris.js";
export { export {
App, App,
Audio, Audio,
Hyprland, Hyprland,
Mpris,
Network, Network,
Service, Service,
SystemTray, SystemTray,
Utils, Utils,
Variable, Variable,
Widget, Widget,
Mpris, };
};

View file

@ -1,40 +1,42 @@
import { Widget } from '../import.js'; import { Widget } from "../import.js";
import { Time } from './widgets/time.js' import { Time } from "./widgets/time.js";
import { nixosLogo } from './widgets/images/image.js'; import { nixosLogo } from "./widgets/images/image.js";
import { Media } from './widgets/music.js'; import { Media } from "./widgets/music.js";
import { Workspaces } from './widgets/hyprland.js'; import { Workspaces } from "./widgets/hyprland.js";
const Start = () => Widget.Box({ const Start = () =>
Widget.Box({
hpack: "start", hpack: "start",
children: [ children: [
nixosLogo(), nixosLogo(),
Workspaces(), Workspaces(),
] ],
}); });
const Center = () => Widget.Box({ const Center = () =>
Widget.Box({
children: [ children: [
Media(), Media(),
] ],
}); });
const End = () => Widget.Box({ const End = () =>
Widget.Box({
hpack: "end", hpack: "end",
children: [ children: [
Time(), Time(),
] ],
}); });
const Bar = (monitor) => Widget.Window({ const Bar = (monitor) =>
Widget.Window({
monitor, monitor,
name: `bar`, name: `bar`,
anchor: ['top', 'left', 'right'], anchor: ["top", "left", "right"],
exclusivity: 'exclusive', exclusivity: "exclusive",
child: Widget.CenterBox({ child: Widget.CenterBox({
startWidget: Start(), startWidget: Start(),
centerWidget: Center(), centerWidget: Center(),
endWidget: End(), endWidget: End(),
}), }),
}); });
export { export { Bar };
Bar
}

View file

@ -1,17 +1,18 @@
import { Hyprland, Widget } from "../../import.js"; import { Hyprland, Widget } from "../../import.js";
const Workspaces = () => Widget.Box({ const Workspaces = () =>
class_name: 'workspaces', Widget.Box({
children: Hyprland.bind('workspaces').transform(ws => { class_name: "workspaces",
return ws.map(({ id }) => Widget.Button({ children: Hyprland.bind("workspaces").transform((ws) => {
on_clicked: () => Hyprland.sendMessage(`dispatch workspace ${id}`), return ws.map(({ id }) =>
child: Widget.Label(`${id}`), Widget.Button({
class_name: Hyprland.active.workspace.bind('id') on_clicked: () => Hyprland.sendMessage(`dispatch workspace ${id}`),
.transform(i => `${i === id ? 'focused' : ''}`), child: Widget.Label(`${id}`),
})); class_name: Hyprland.active.workspace.bind("id")
.transform((i) => `${i === id ? "focused" : ""}`),
})
);
}), }),
}); });
export { export { Workspaces };
Workspaces
}

View file

@ -1,9 +1,9 @@
import { Widget } from '../../../import.js'; import { Widget } from "../../../import.js";
const nixosLogo = () => Widget.Icon({ const nixosLogo = () =>
icon: '/home/notoh/snowflake/home/ags/config/js/widgets/images/static/nixos.png' Widget.Icon({
}); icon:
"/home/notoh/snowflake/home/ags/config/js/widgets/images/static/nixos.png",
});
export { export { nixosLogo };
nixosLogo
}

View file

@ -1,17 +1,16 @@
import { Widget, Mpris } from "../../import.js"; import { Mpris, Widget } from "../../import.js";
const Media = () => Widget.Box({ const Media = () =>
class_name: 'media', Widget.Box({
child: Widget.Label('-').hook(Mpris, self => { class_name: "media",
if (Mpris.players[0]) { child: Widget.Label("-").hook(Mpris, (self) => {
const { track_artists, track_title } = Mpris.players[0]; if (Mpris.players[0]) {
self.label = `${track_artists.join(', ')} - ${track_title}`; const { track_artists, track_title } = Mpris.players[0];
} else { self.label = `${track_artists.join(", ")} - ${track_title}`;
self.label = 'Nothing is playing'; } else {
} self.label = "Nothing is playing";
}, 'player-changed'), }
}); }, "player-changed"),
});
export { export { Media };
Media
}

View file

@ -1,18 +1,16 @@
import { Widget, Utils } from '../../import.js'; import { Utils, Widget } from "../../import.js";
const Time = () =>
const Time = () => Widget.Box({ Widget.Box({
child: Widget.Label({ child: Widget.Label({
className: "date" className: "date",
}).poll( }).poll(
1000, 1000,
(self) => (self) =>
Utils.execAsync(["date", "+%a %b %d %H:%M"]).then((time) => Utils.execAsync(["date", "+%a %b %d %H:%M"]).then((time) =>
self.label = time self.label = time
), ),
), ),
}); });
export { export { Time };
Time
}

View file

@ -0,0 +1,15 @@
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "Node",
"target": "ES2020",
"jsx": "react",
"allowImportingTsExtensions": true,
"strictNullChecks": true,
"strictFunctionTypes": true
},
"exclude": [
"node_modules",
"**/node_modules/*"
]
}

1135
home/ags/config/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,15 @@
{
"name": "snowflake-ags",
"version": "1.0.0",
"description": "snowflake ags",
"main": "config.js",
"repository": {
"type": "git",
"url": "https://git.flake.sh/notohh/snowflake"
},
"author": "notohh",
"license": "MIT",
"devDependencies": {
"eslint": "^8.56.0"
}
}

View file

@ -4,9 +4,7 @@
./neofetch ./neofetch
./nushell ./nushell
./starship ./starship
./git
./lazygit ./lazygit
./direnv
./yazi ./yazi
]; ];
@ -31,21 +29,46 @@
p7zip p7zip
]; ];
services.gpg-agent = { services = {
enable = true; gpg-agent = {
defaultCacheTtl = 3600; enable = true;
pinentryFlavor = "curses"; defaultCacheTtl = 3600;
enableSshSupport = true; pinentryFlavor = "curses";
enableNushellIntegration = true; enableSshSupport = true;
enableNushellIntegration = true;
};
}; };
programs.bat.enable = true; programs = {
bat.enable = true;
programs.zoxide = { git = {
enable = true; enable = true;
enableNushellIntegration = true; delta.enable = true;
options = [ userEmail = "github@notohh.dev";
"--cmd cdd" userName = "notohh";
]; signing = {
key = "BD47506D475EE86D";
signByDefault = true;
};
ignores = ["*result*" ".direnv" "node_modules"];
};
gh = {
enable = true;
gitCredentialHelper.enable = true;
settings = {
editor = "hx";
prompt = "enabled";
};
};
direnv = {
enable = true;
enableNushellIntegration = true;
nix-direnv.enable = true;
};
zoxide = {
enable = true;
enableNushellIntegration = true;
options = ["--cmd cdd"];
};
}; };
} }

View file

@ -1,7 +0,0 @@
_: {
programs.direnv = {
enable = true;
enableNushellIntegration = true;
nix-direnv.enable = true;
};
}

View file

@ -1,21 +0,0 @@
_: {
programs.git = {
enable = true;
delta.enable = true;
userEmail = "github@notohh.dev";
userName = "notohh";
signing = {
key = "BD47506D475EE86D";
signByDefault = true;
};
ignores = ["*result*" ".direnv" "node_modules"];
};
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
settings = {
editor = "hx";
prompt = "enabled";
};
};
}

View file

@ -24,7 +24,7 @@
name = "lua"; name = "lua";
auto-format = true; auto-format = true;
formatter = { formatter = {
command = lib.getExe luaformatter; command = lib.getExe stylua;
}; };
} }
]; ];

View file

@ -1,7 +1,6 @@
_: { _: {
programs.helix = { programs.helix = {
themes.catppuccin_mocha = let themes.catppuccin_mocha = let
transparent = "none";
rosewater = "#f5e0dc"; rosewater = "#f5e0dc";
flamingo = "#f2cdcd"; flamingo = "#f2cdcd";
pink = "#f5c2e7"; pink = "#f5c2e7";

View file

@ -7,20 +7,16 @@ _: {
light-green = "#9ece6a"; light-green = "#9ece6a";
green = "#73daca"; green = "#73daca";
turquoise = "#89ddff"; turquoise = "#89ddff";
light-cyan = "#b4f9f8";
teal = "#2ac3de"; teal = "#2ac3de";
cyan = "#7dcfff"; cyan = "#7dcfff";
blue = "#7aa2f7"; blue = "#7aa2f7";
magenta = "#bb9af7"; magenta = "#bb9af7";
white = "#c0caf5"; white = "#c0caf5";
light-gray = "#9aa5ce"; light-gray = "#9aa5ce";
parameters = "#cfc9c2";
comment = "#565f89"; comment = "#565f89";
black = "#414868"; black = "#414868";
foreground = "#a9b1d6"; foreground = "#a9b1d6";
foreground_highlight = "#c0caf5";
foreground_gutter = "#363b54"; foreground_gutter = "#363b54";
background = "#1a1b26";
background_highlight = "#30374b"; background_highlight = "#30374b";
background_menu = "#16161e"; background_menu = "#16161e";
in { in {

View file

@ -24,9 +24,6 @@ alias sora = nix run github:serokell/deploy-rs ".#sora"
alias tsuru = nix run github:serokell/deploy-rs ".#tsuru" alias tsuru = nix run github:serokell/deploy-rs ".#tsuru"
alias haru = nix run github:serokell/deploy-rs ".#haru" alias haru = nix run github:serokell/deploy-rs ".#haru"
alias kaze = nix run github:serokell/deploy-rs ".#kaze" alias kaze = nix run github:serokell/deploy-rs ".#kaze"
alias dx = nix run "nixpkgs#deadnix"
alias sx = nix run "nixpkgs#statix" -- check
alias sxfix = nix run "nixpkgs#statix" -- fix
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

View file

@ -14,24 +14,46 @@
''; '';
}; };
in { in {
imports = [ imports = [./greetd.nix];
./greetd.nix environment = {
]; systemPackages = with pkgs; [
dbus-hyprland-environment
environment.systemPackages = with pkgs; [ wayland
dbus-hyprland-environment glib
wayland grim
glib slurp
grim satty
slurp wl-clipboard
satty wlr-randr
wl-clipboard swayidle
wlr-randr swaylock-effects
swayidle hyprpicker
swaylock-effects swww
hyprpicker ];
swww sessionVariables = {
]; GBM_BACKEND = "nvidia-drm";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
WLR_DRM_NO_ATOMIC = "1";
XDG_SESSION_TYPE = "wayland";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
_JAVA_AWT_WM_NONREPARENTING = "1";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
GDK_BACKEND = "wayland";
WLR_NO_HARDWARE_CURSORS = "1";
MOZ_ENABLE_WAYLAND = "1";
WLR_BACKEND = "vulkan";
WLR_RENDERER = "vulkan";
XCURSOR_SIZE = "24";
NIXOS_OZONE_WL = "1";
EDITOR = "hx";
TERMINAL = "wezterm";
};
etc."greetd/environments".text = ''
Hyprland
'';
};
services.dbus.enable = true; services.dbus.enable = true;
xdg.portal = { xdg.portal = {
@ -44,29 +66,4 @@ in {
common.default = "*"; common.default = "*";
}; };
}; };
environment.sessionVariables = {
GBM_BACKEND = "nvidia-drm";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
WLR_DRM_NO_ATOMIC = "1";
XDG_SESSION_TYPE = "wayland";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
_JAVA_AWT_WM_NONREPARENTING = "1";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
GDK_BACKEND = "wayland";
WLR_NO_HARDWARE_CURSORS = "1";
MOZ_ENABLE_WAYLAND = "1";
WLR_BACKEND = "vulkan";
WLR_RENDERER = "vulkan";
XCURSOR_SIZE = "24";
NIXOS_OZONE_WL = "1";
EDITOR = "hx";
TERMINAL = "wezterm";
};
environment.etc."greetd/environments".text = ''
Hyprland
'';
} }

View file

@ -9,7 +9,7 @@
]; ];
exec-once = [ exec-once = [
"ags" "ags"
"swww init && swww img ~/Pictures/wallpapers/city.png" "swww init && swww img ~/Pictures/wallpapers/frieren.png"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
"~/.local/bin/lock" "~/.local/bin/lock"

View file

@ -1,4 +1,4 @@
{...}: { _: {
imports = [ imports = [
./layouts.nix ./layouts.nix
]; ];

View file

@ -7,34 +7,24 @@
../../modules/fonts.nix ../../modules/fonts.nix
]; ];
boot.loader = {
systemd-boot = {
enable = true;
configurationLimit = 8;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
programs.hyprland.enable = true; programs.hyprland.enable = true;
services.xserver.enable = true; services = {
services.xserver.displayManager.sddm.enable = true; pipewire = {
enable = true;
services.xserver = { alsa.enable = true;
layout = "us"; alsa.support32Bit = true;
xkbVariant = ""; pulse.enable = true;
};
xserver = {
enable = true;
displayManager.sddm.enable = true;
layout = "us";
xkbVariant = "";
};
}; };
sound.enable = true; sound.enable = true;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
} }

View file

@ -8,24 +8,38 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = ["kvm-intel"];
boot.kernelModules = ["kvm-intel"]; extraModulePackages = [];
boot.extraModulePackages = []; loader = {
systemd-boot = {
fileSystems."/" = { enable = true;
device = "/dev/disk/by-uuid/57411820-f154-497e-9c7e-dfcb1f21c5cf"; configurationLimit = 8;
fsType = "ext4"; };
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
initrd = {
availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"];
kernelModules = [];
};
}; };
fileSystems."/boot/efi" = { fileSystems = {
device = "/dev/disk/by-uuid/4D09-1D57"; "/" = {
fsType = "vfat"; device = "/dev/disk/by-uuid/57411820-f154-497e-9c7e-dfcb1f21c5cf";
}; fsType = "ext4";
};
fileSystems."/nas/restic" = { "/boot/efi" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/ame"; device = "/dev/disk/by-uuid/4D09-1D57";
fsType = "nfs"; fsType = "vfat";
};
"/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/ame";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -17,12 +17,11 @@
username = "notoh"; username = "notoh";
homeDirectory = "/home/notoh"; homeDirectory = "/home/notoh";
packages = with pkgs; [ packages = with pkgs; [
chromium
discord discord
spotify-player spotify-player
cinny-desktop cinny-desktop
pavucontrol pavucontrol
unzip
p7zip
imv imv
mpv mpv
rustypaste-cli rustypaste-cli
@ -33,12 +32,7 @@
glib glib
grim grim
slurp slurp
swappy
wl-clipboard wl-clipboard
wlogout
wlr-randr
swayidle
swaylock-effects
swww swww
hyprpicker hyprpicker
(libsForQt5.callPackage ../../pkgs/chatterino7 {}) (libsForQt5.callPackage ../../pkgs/chatterino7 {})

View file

@ -3,12 +3,8 @@
config, config,
... ...
}: { }: {
sops.secrets.restic-ame = { sops.secrets.restic-ame = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml; sops.secrets.ame-s3 = {sopsFile = ../../../secrets/s3/secrets.yaml;};
};
sops.secrets.ame-s3 = {
sopsFile = ../../../secrets/s3/secrets.yaml;
};
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {
backups = { backups = {

View file

@ -6,19 +6,6 @@
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
};
boot.kernel.sysctl = {
"kernel.shmmax" = 100663296;
};
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = ""; xkbVariant = "";

View file

@ -7,19 +7,31 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; kernel.sysctl = {"kernel.shmmax" = 100663296;};
boot.extraModulePackages = []; extraModulePackages = [];
loader.grub = {
fileSystems."/" = { enable = true;
device = "/dev/disk/by-uuid/3fd88f1f-cec3-4737-b9d0-6c8f026c3927"; configurationLimit = 5;
fsType = "ext4"; device = "/dev/sda";
useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
}; };
fileSystems."/nas/restic" = { fileSystems = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/arashi"; "/" = {
fsType = "nfs"; device = "/dev/disk/by-uuid/3fd88f1f-cec3-4737-b9d0-6c8f026c3927";
fsType = "ext4";
};
"/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/arashi";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -3,9 +3,7 @@
config, config,
... ...
}: { }: {
sops.secrets.restic-arashi = { sops.secrets.restic-arashi = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml;
};
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {
backups = { backups = {

View file

@ -6,15 +6,6 @@
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
};
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = ""; xkbVariant = "";

View file

@ -7,14 +7,26 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
};
fileSystems."/" = { fileSystems = {
device = "/dev/disk/by-uuid/06177115-2e39-493b-81fb-5a1980ae0534"; "/" = {
fsType = "ext4"; device = "/dev/disk/by-uuid/06177115-2e39-493b-81fb-5a1980ae0534";
fsType = "ext4";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -6,15 +6,6 @@
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
};
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = ""; xkbVariant = "";

View file

@ -7,29 +7,38 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
fileSystems."/" = { configurationLimit = 5;
device = "/dev/disk/by-uuid/f5a0738c-d027-4ffb-82ec-9901ca6b310b"; device = "/dev/sda";
fsType = "ext4"; useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
}; };
fileSystems."/media" = { fileSystems = {
device = "192.168.1.199:/mnt/Sutoreji/media"; "/" = {
fsType = "nfs"; device = "/dev/disk/by-uuid/f5a0738c-d027-4ffb-82ec-9901ca6b310b";
}; fsType = "ext4";
};
fileSystems."/stash" = { "/media" = {
device = "192.168.1.199:/mnt/Sutoreji/stash"; device = "192.168.1.199:/mnt/Sutoreji/media";
fsType = "nfs"; fsType = "nfs";
}; };
"/stash" = {
fileSystems."/nas/restic" = { device = "192.168.1.199:/mnt/Sutoreji/stash";
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/kariru"; fsType = "nfs";
fsType = "nfs"; };
"/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/kariru";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -1,42 +1,40 @@
{pkgs, ...}: { {pkgs, ...}: {
networking.firewall.allowedTCPPorts = [9292]; networking.firewall.allowedTCPPorts = [9292];
imports = [ imports = [
./restic.nix ./restic.nix
./torrent.nix ./torrent.nix
]; ];
environment.systemPackages = [pkgs.recyclarr]; environment.systemPackages = [pkgs.recyclarr];
services.radarr = { services = {
enable = true; radarr = {
openFirewall = true; enable = true;
openFirewall = true;
};
sonarr = {
enable = true;
openFirewall = true;
};
prowlarr = {
enable = true;
openFirewall = true;
};
bazarr = {
enable = true;
openFirewall = true;
};
readarr = {
enable = true;
openFirewall = true;
};
lidarr = {
enable = true;
openFirewall = true;
};
sabnzbd.enable = true;
}; };
services.sonarr = {
enable = true;
openFirewall = true;
};
services.prowlarr = {
enable = true;
openFirewall = true;
};
services.bazarr = {
enable = true;
openFirewall = true;
};
services.readarr = {
enable = true;
openFirewall = true;
};
services.lidarr = {
enable = true;
openFirewall = true;
};
services.sabnzbd.enable = true;
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
whisparr = { whisparr = {
image = "ghcr.io/hotio/whisparr@sha256:88b91920b77339e2deda418960be28868df538413abea6cdddaf4013e43c4c0f"; # v3-3.0.0.425 image = "ghcr.io/hotio/whisparr@sha256:88b91920b77339e2deda418960be28868df538413abea6cdddaf4013e43c4c0f"; # v3-3.0.0.425

View file

@ -3,9 +3,7 @@
config, config,
... ...
}: { }: {
sops.secrets.restic-kariru = { sops.secrets.restic-kariru = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml;
};
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {
backups = { backups = {

View file

@ -6,15 +6,6 @@
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/vda";
useOSProber = true;
};
};
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = ""; xkbVariant = "";

View file

@ -7,19 +7,30 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" "virtio_blk"]; boot = {
boot.initrd.kernelModules = []; kernelModules = ["kvm-amd"];
boot.kernelModules = ["kvm-amd"]; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
fileSystems."/" = { configurationLimit = 5;
device = "/dev/disk/by-uuid/9cb414ab-0bb4-4db7-b77e-7d2a8cafd657"; device = "/dev/vda";
fsType = "ext4"; useOSProber = true;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" "virtio_blk"];
kernelModules = [];
};
}; };
fileSystems."/var/lib/slab" = { fileSystems = {
device = "/dev/disk/by-uuid/733a3f7b-b232-4b34-8742-460a67d8f1d0"; "/" = {
fsType = "ext4"; device = "/dev/disk/by-uuid/9cb414ab-0bb4-4db7-b77e-7d2a8cafd657";
fsType = "ext4";
};
"/var/lib/slab" = {
device = "/dev/disk/by-uuid/733a3f7b-b232-4b34-8742-460a67d8f1d0";
fsType = "ext4";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -5,9 +5,7 @@
}: { }: {
environment.systemPackages = [pkgs.minio-client]; environment.systemPackages = [pkgs.minio-client];
systemd.services.minio.environment = { systemd.services.minio.environment = {MINIO_BROWSER_REDIRECT = "false";};
MINIO_BROWSER_REDIRECT = "false";
};
sops.secrets.minio = { sops.secrets.minio = {
owner = "minio"; owner = "minio";

View file

@ -4,9 +4,7 @@
pkgs, pkgs,
... ...
}: { }: {
sops.secrets.tsauth-kaze = { sops.secrets.tsauth-kaze = {sopsFile = ../../../secrets/tailscale/secrets.yaml;};
sopsFile = ../../../secrets/tailscale/secrets.yaml;
};
environment.systemPackages = [pkgs.jq pkgs.tailscale]; environment.systemPackages = [pkgs.jq pkgs.tailscale];
services.tailscale = { services.tailscale = {
useRoutingFeatures = lib.mkDefault "client"; useRoutingFeatures = lib.mkDefault "client";

View file

@ -6,15 +6,6 @@ _: {
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
};
services.snowflake-proxy.enable = true; services.snowflake-proxy.enable = true;
services.xserver = { services.xserver = {

View file

@ -7,24 +7,34 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
fileSystems."/" = { configurationLimit = 5;
device = "/dev/disk/by-uuid/db3e4722-35a6-44fb-8e4d-a75166b845cb"; device = "/dev/sda";
fsType = "ext4"; useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
}; };
fileSystems."/home/notoh/justlog/logs" = { fileSystems = {
device = "192.168.1.199:/mnt/Sutoreji/twitchlogs"; "/" = {
fsType = "nfs"; device = "/dev/disk/by-uuid/db3e4722-35a6-44fb-8e4d-a75166b845cb";
}; fsType = "ext4";
};
fileSystems."/nas/restic" = { "/home/notoh/justlog/logs" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/sakura"; device = "192.168.1.199:/mnt/Sutoreji/twitchlogs";
fsType = "nfs"; fsType = "nfs";
};
"/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/sakura";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -3,9 +3,7 @@
config, config,
... ...
}: { }: {
sops.secrets.restic-sakura = { sops.secrets.restic-sakura = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml;
};
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {
backups = { backups = {

View file

@ -3,12 +3,9 @@
systemd.services.rustypaste = { systemd.services.rustypaste = {
enable = true; enable = true;
wantedBy = [ wantedBy = ["multi-user.target"];
"multi-user.target"
];
description = "A minimal file upload/pastebin service."; description = "A minimal file upload/pastebin service.";
environment = { environment = {
# AUTH_TOKEN = config.sops.secrets.rusty-auth-token.path;
CONFIG = "/var/lib/rustypaste/config.toml"; CONFIG = "/var/lib/rustypaste/config.toml";
}; };
serviceConfig = { serviceConfig = {

View file

@ -4,9 +4,7 @@
pkgs, pkgs,
... ...
}: { }: {
sops.secrets.tsauth-sakura = { sops.secrets.tsauth-sakura = {sopsFile = ../../../secrets/tailscale/secrets.yaml;};
sopsFile = ../../../secrets/tailscale/secrets.yaml;
};
environment.systemPackages = [pkgs.jq pkgs.tailscale]; environment.systemPackages = [pkgs.jq pkgs.tailscale];
services.tailscale = { services.tailscale = {
useRoutingFeatures = lib.mkDefault "client"; useRoutingFeatures = lib.mkDefault "client";

View file

@ -6,7 +6,8 @@ _: {
../../modules ../../modules
]; ];
boot.tmp.cleanOnBoot = true; services.snowflake-proxy.enable = true;
zramSwap.enable = true; zramSwap.enable = true;
users.users.notoh.openssh.authorizedKeys.keys = [ users.users.notoh.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGmI3hRDFjxLjrM3pE471e4jxSlcqeizh3iNVVdaMHeN sora" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGmI3hRDFjxLjrM3pE471e4jxSlcqeizh3iNVVdaMHeN sora"

View file

@ -1,20 +1,27 @@
{modulesPath, ...}: { {modulesPath, ...}: {
imports = [(modulesPath + "/profiles/qemu-guest.nix")]; imports = [(modulesPath + "/profiles/qemu-guest.nix")];
boot.loader.grub = {
efiSupport = true; boot = {
efiInstallAsRemovable = true; tmp.cleanOnBoot = true;
device = "nodev"; loader.grub = {
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
kernelModules = ["nvme"];
};
}; };
fileSystems."/boot" = { fileSystems = {
device = "/dev/disk/by-uuid/B793-1B2C"; "/" = {
fsType = "vfat"; device = "/dev/sda1";
}; fsType = "ext4";
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"]; "/boot" = {
boot.initrd.kernelModules = ["nvme"]; device = "/dev/disk/by-uuid/B793-1B2C";
fileSystems."/" = { fsType = "vfat";
device = "/dev/sda1"; };
fsType = "ext4";
}; };
} }

View file

@ -2,10 +2,8 @@ _: {
sops.secrets.foundry-username = {}; sops.secrets.foundry-username = {};
sops.secrets.foundry-password = {}; sops.secrets.foundry-password = {};
virtualisation.oci-containers.containers.foundryvtt = { virtualisation.oci-containers.containers.foundryvtt = {
image = "felddy/foundryvtt:sha-50af627"; image = "felddy/foundryvtt@sha256:d85dab9704d771f3a33f21439f1bf34748fb5bf1987668ff402b5b17d1973f5a";
volumes = [ volumes = ["/home/notoh/docker/foundryvtt:/data"];
"/home/notoh/docker/foundryvtt:/data"
];
environment = { environment = {
CONTAINER_PRESERVE_CONFIG = "true"; CONTAINER_PRESERVE_CONFIG = "true";
}; };
@ -13,8 +11,6 @@ _: {
/run/secrets/foundry-username /run/secrets/foundry-username
/run/secrets/foundry-password /run/secrets/foundry-password
]; ];
ports = [ ports = ["30000:30000"];
"30000:30000"
];
}; };
} }

View file

@ -1,12 +1,8 @@
_: { _: {
virtualisation.oci-containers.containers.glances = { virtualisation.oci-containers.containers.glances = {
image = "nicolargo/glances"; image = "nicolargo/glances";
ports = [ ports = ["61208-61209:61208-61209"];
"61208-61209:61208-61209" volumes = ["/var/run/docker.sock:/var/run/docker.sock"];
];
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
];
environment = { environment = {
GLANCES_OPT = "-w"; GLANCES_OPT = "-w";
}; };

View file

@ -12,8 +12,6 @@ _: {
FABRIC_LOADER_VERSION = "0.14.23"; FABRIC_LOADER_VERSION = "0.14.23";
FABRIC_LAUNCHER_VERSION = "0.11.2"; FABRIC_LAUNCHER_VERSION = "0.11.2";
}; };
volumes = [ volumes = ["/home/notoh/docker/modded-mc:/data:rw"];
"/home/notoh/docker/modded-mc:/data:rw"
];
}; };
} }

View file

@ -4,12 +4,8 @@
... ...
}: { }: {
sops.secrets = { sops.secrets = {
restic-sora = { restic-sora = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml; sora-s3 = {sopsFile = ../../../secrets/s3/secrets.yaml;};
};
sora-s3 = {
sopsFile = ../../../secrets/s3/secrets.yaml;
};
}; };
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {

View file

@ -4,9 +4,7 @@
pkgs, pkgs,
... ...
}: { }: {
sops.secrets.tsauth-sora = { sops.secrets.tsauth-sora = {sopsFile = ../../../secrets/tailscale/secrets.yaml;};
sopsFile = ../../../secrets/tailscale/secrets.yaml;
};
environment.systemPackages = [pkgs.jq pkgs.tailscale]; environment.systemPackages = [pkgs.jq pkgs.tailscale];
services.tailscale = { services.tailscale = {
useRoutingFeatures = lib.mkDefault "server"; # important to make it a server, it sets sysctl for ip forwarding without intervention and reboot useRoutingFeatures = lib.mkDefault "server"; # important to make it a server, it sets sysctl for ip forwarding without intervention and reboot

View file

@ -1,4 +1,4 @@
{...}: { _: {
networking.firewall.allowedTCPPorts = [7777]; networking.firewall.allowedTCPPorts = [7777];
virtualisation.oci-containers.containers.terraria = { virtualisation.oci-containers.containers.terraria = {
image = "jacobsmile/tmodloader1.4:v2023.11.3.3"; image = "jacobsmile/tmodloader1.4:v2023.11.3.3";

View file

@ -16,23 +16,22 @@
../../pkgs/overlays.nix ../../pkgs/overlays.nix
]; ];
boot.loader = {
systemd-boot = {
enable = true;
configurationLimit = 10;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
boot.kernelModules = ["v4l2loopback" "kvm-intel"];
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
services = { services = {
pcscd.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
lowLatency = {
enable = true;
quantum = 64;
rate = 48000;
};
};
xserver = { xserver = {
enable = true; enable = true;
videoDrivers = ["nvidia"]; videoDrivers = ["nvidia"];
@ -53,41 +52,28 @@
}; };
}; };
services.pcscd.enable = true; security = {
services.davfs2.enable = true; rtkit.enable = true;
polkit.enable = true;
hardware.pulseaudio.enable = false; pam.services.swaylock = {
security.rtkit.enable = true; text = ''
services.pipewire = { auth include login
enable = true; '';
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
lowLatency = {
enable = true;
quantum = 64;
rate = 48000;
}; };
}; };
programs.gamemode.enable = true; programs = {
gamemode.enable = true;
programs.steam = { steam = {
enable = true; enable = true;
extraCompatPackages = [ extraCompatPackages = [
inputs.nix-gaming.packages.${pkgs.system}.proton-ge inputs.nix-gaming.packages.${pkgs.system}.proton-ge
]; ];
}; };
security.polkit.enable = true;
security.pam.services.swaylock = {
text = ''
auth include login
'';
}; };
hardware = { hardware = {
pulseaudio.enable = false;
nvidia = { nvidia = {
powerManagement.enable = true; powerManagement.enable = true;
modesetting.enable = true; modesetting.enable = true;

View file

@ -8,34 +8,46 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = ["v4l2loopback" "kvm-intel"];
boot.kernelModules = ["kvm-intel"]; extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
boot.extraModulePackages = []; loader = {
systemd-boot = {
fileSystems."/" = { enable = true;
device = "/dev/disk/by-uuid/7d098aab-1968-4605-a9a7-b1627941c1ff"; configurationLimit = 10;
fsType = "ext4"; };
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
initrd = {
availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod"];
kernelModules = [];
};
}; };
fileSystems."/boot/efi" = { fileSystems = {
device = "/dev/disk/by-uuid/C356-B67C"; "/" = {
fsType = "vfat"; device = "/dev/disk/by-uuid/7d098aab-1968-4605-a9a7-b1627941c1ff";
}; fsType = "ext4";
};
fileSystems."/hdd" = { "/boot/efi" = {
device = "/dev/disk/by-uuid/e2e4c4f3-51df-4020-b557-a7cf684de85b"; device = "/dev/disk/by-uuid/C356-B67C";
fsType = "ext4"; fsType = "vfat";
}; };
"/hdd" = {
fileSystems."/ssd" = { device = "/dev/disk/by-uuid/e2e4c4f3-51df-4020-b557-a7cf684de85b";
device = "/dev/disk/by-uuid/9e5a189d-7435-45d7-aef6-cdee4de2428d"; fsType = "ext4";
fsType = "ext4"; };
}; "/ssd" = {
device = "/dev/disk/by-uuid/9e5a189d-7435-45d7-aef6-cdee4de2428d";
fileSystems."/nas/restic" = { fsType = "ext4";
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/tsuki"; };
fsType = "nfs"; "/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/tsuki";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -43,7 +43,6 @@
imv imv
mpv mpv
ffmpeg ffmpeg
nom
rustypaste-cli rustypaste-cli
gimp gimp
cryptomator cryptomator
@ -56,7 +55,6 @@
prismlauncher prismlauncher
yuzu yuzu
inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin inputs.nix-gaming.packages.${pkgs.system}.osu-lazer-bin
inputs.nix-gaming.packages.${pkgs.system}.wine-discord-ipc-bridge
(libsForQt5.callPackage ../../pkgs/chatterino7 {}) (libsForQt5.callPackage ../../pkgs/chatterino7 {})
(callPackage ../../pkgs/jellyfin-rpc {}) (callPackage ../../pkgs/jellyfin-rpc {})
]; ];

View file

@ -3,9 +3,7 @@
systemd.services.atticd = { systemd.services.atticd = {
enable = true; enable = true;
wantedBy = [ wantedBy = ["multi-user.target"];
"multi-user.target"
];
description = "atticd"; description = "atticd";
serviceConfig = { serviceConfig = {

View file

@ -1,7 +1,7 @@
{...}: { {...}: {
imports = [ imports = [
./atticd.nix
./restic.nix ./restic.nix
./atticd.nix
./hydroxide.nix ./hydroxide.nix
]; ];
} }

View file

@ -4,9 +4,7 @@
systemd.services.hydroxide = { systemd.services.hydroxide = {
enable = true; enable = true;
wantedBy = [ wantedBy = ["multi-user.target"];
"multi-user.target"
];
description = "A third-party, open-source ProtonMail bridge"; description = "A third-party, open-source ProtonMail bridge";
serviceConfig = { serviceConfig = {

View file

@ -6,15 +6,6 @@
../../modules ../../modules
]; ];
boot.loader = {
grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
};
services.xserver = { services.xserver = {
layout = "us"; layout = "us";
xkbVariant = ""; xkbVariant = "";

View file

@ -7,14 +7,26 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
configurationLimit = 5;
device = "/dev/sda";
useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
};
fileSystems."/" = { fileSystems = {
device = "/dev/disk/by-uuid/625f557a-99a0-4e2d-9aef-f3aed7cea1c8"; "/" = {
fsType = "ext4"; device = "/dev/disk/by-uuid/625f557a-99a0-4e2d-9aef-f3aed7cea1c8";
fsType = "ext4";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -4,9 +4,7 @@
pkgs, pkgs,
... ...
}: { }: {
sops.secrets.tsauth-tsuru = { sops.secrets.tsauth-tsuru = {sopsFile = ../../../secrets/tailscale/secrets.yaml;};
sopsFile = ../../../secrets/tailscale/secrets.yaml;
};
environment.systemPackages = [pkgs.jq pkgs.tailscale]; environment.systemPackages = [pkgs.jq pkgs.tailscale];
services.tailscale = { services.tailscale = {
useRoutingFeatures = lib.mkDefault "client"; useRoutingFeatures = lib.mkDefault "client";

View file

@ -31,8 +31,6 @@
WOODPECKER_KEEPALIVE_MIN_TIME = "10s"; WOODPECKER_KEEPALIVE_MIN_TIME = "10s";
WOODPECKER_HEALTHCHECK = "true"; WOODPECKER_HEALTHCHECK = "true";
}; };
extraGroups = [ extraGroups = ["docker"];
"docker"
];
}; };
} }

View file

@ -7,34 +7,42 @@
(modulesPath + "/profiles/qemu-guest.nix") (modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"]; boot = {
boot.initrd.kernelModules = []; kernelModules = [];
boot.kernelModules = []; extraModulePackages = [];
boot.extraModulePackages = []; loader.grub = {
enable = true;
fileSystems."/" = { configurationLimit = 5;
device = "/dev/disk/by-uuid/833959fb-de9d-4820-aa22-e6ce8bce6f6c"; device = "/dev/sda";
fsType = "ext4"; useOSProber = false;
};
initrd = {
availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
kernelModules = [];
};
}; };
fileSystems."/home/notoh/docker/stash/data" = { fileSystems = {
device = "192.168.1.199:/mnt/Sutoreji/stash"; "/" = {
fsType = "nfs"; device = "/dev/disk/by-uuid/833959fb-de9d-4820-aa22-e6ce8bce6f6c";
}; fsType = "ext4";
};
fileSystems."/media" = { "/home/notoh/docker/stash/data" = {
device = "192.168.1.199:/mnt/Sutoreji/media"; device = "192.168.1.199:/mnt/Sutoreji/stash";
fsType = "nfs"; fsType = "nfs";
}; };
"/media" = {
fileSystems."/nas/restic" = { device = "192.168.1.199:/mnt/Sutoreji/media";
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/yuki"; fsType = "nfs";
fsType = "nfs"; };
}; "/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/yuki";
fileSystems."/var/lib/paperless-ngx/media" = { fsType = "nfs";
device = "192.168.1.199:/mnt/Sutoreji/paperless-ngx/paperless-media "; };
fsType = "nfs"; "/var/lib/paperless-ngx/media" = {
device = "192.168.1.199:/mnt/Sutoreji/paperless-ngx/paperless-media ";
fsType = "nfs";
};
}; };
swapDevices = [ swapDevices = [

View file

@ -3,9 +3,7 @@
config, config,
... ...
}: { }: {
sops.secrets.restic-yuki = { sops.secrets.restic-yuki = {sopsFile = ../../../secrets/restic/secrets.yaml;};
sopsFile = ../../../secrets/restic/secrets.yaml;
};
environment.systemPackages = [pkgs.restic]; environment.systemPackages = [pkgs.restic];
services.restic = { services.restic = {
backups = { backups = {

View file

@ -1,6 +1,7 @@
_: { _: {
virtualisation.oci-containers.containers.stash = { virtualisation.oci-containers.containers.stash = {
image = "stashapp/stash@sha256:b3b59809d5be1d82467253ec9e2ee98628a0db7527d27a6c7daa75e1fcda7deb"; image = "stashapp/stash@sha256:b3b59809d5be1d82467253ec9e2ee98628a0db7527d27a6c7daa75e1fcda7deb"; # v0.24.3
ports = ["9999:9999"];
environment = { environment = {
STASH_STASH = "/data/"; STASH_STASH = "/data/";
STASH_GENERATED = "/generated/"; STASH_GENERATED = "/generated/";
@ -17,8 +18,5 @@ _: {
"/home/notoh/docker/stash/generated:/generated" "/home/notoh/docker/stash/generated:/generated"
"/home/notoh/docker/stash/blobs:/blobs" "/home/notoh/docker/stash/blobs:/blobs"
]; ];
ports = [
"9999:9999"
];
}; };
} }

View file

@ -1,15 +1,11 @@
_: { _: {
virtualisation.oci-containers.containers.wallos = { virtualisation.oci-containers.containers.wallos = {
image = "bellamy/wallos@sha256:d3846ab980095be55a3c07633cca905bf29505bc63e5d92ad49938f56fd7b9f7"; image = "bellamy/wallos@sha256:d3846ab980095be55a3c07633cca905bf29505bc63e5d92ad49938f56fd7b9f7";
ports = [ ports = ["8282:80"];
"8282:80"
];
volumes = [ volumes = [
"/home/notoh/docker/wallos/db:/var/www/html/db" "/home/notoh/docker/wallos/db:/var/www/html/db"
"/home/notoh/docker/wallos/logos:/var/www/html/images/uploads/logos" "/home/notoh/docker/wallos/logos:/var/www/html/images/uploads/logos"
]; ];
environment = { environment = {TZ = "America/New_York";};
TZ = "America/New_York";
};
}; };
} }

3
statix.toml Normal file
View file

@ -0,0 +1,3 @@
disabled = []
nix_version = '2.4'
ignore = ['.direnv']