Compare commits

..

No commits in common. "034bc87e371c3985d748f76ae68f41255faf7960" and "2d311af09f021913f61bc36318cd87b5acd25f40" have entirely different histories.

75 changed files with 755 additions and 2048 deletions

1
.gitignore vendored
View file

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

17
.woodpecker/checks.yml Normal file
View file

@ -0,0 +1,17 @@
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

@ -3,6 +3,15 @@ when:
- event: [pull_request_closed]
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:
image: nixos/nix
commands: |

View file

@ -49,7 +49,6 @@
+ multiple fully declarative self hosted services (and some containerized ones, with a docker backend)
+ wayland config for hyprland
+ 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
#### people who've inspired me to dive into nix, and i've stolen stuff from (you guys are awesome!)

View file

@ -157,22 +157,6 @@
"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": {
"inputs": {
"nixpkgs-lib": [
@ -249,24 +233,6 @@
"inputs": {
"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": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
@ -281,27 +247,6 @@
"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": {
"inputs": {
"crane": "crane_2",
@ -542,22 +487,6 @@
}
},
"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": {
"lastModified": 1705957679,
"narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
@ -654,22 +583,6 @@
}
},
"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": {
"lastModified": 1701174899,
"narHash": "sha256-1W+FMe8mWsJKXoBc+QgKmEeRj33kTFnPq7XCjU+bfnA=",
@ -700,28 +613,6 @@
"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": {
"inputs": {
"ags": "ags",
@ -737,7 +628,6 @@
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_6",
"nur": "nur",
"pre-commit-hooks": "pre-commit-hooks",
"sops-nix": "sops-nix",
"yazi": "yazi"
}
@ -797,7 +687,7 @@
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_3"
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1706410821,
@ -873,21 +763,6 @@
"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": {
"inputs": {
"systems": "systems"
@ -957,8 +832,8 @@
},
"yazi": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_8",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_7",
"rust-overlay": "rust-overlay_2"
},
"locked": {

View file

@ -10,7 +10,6 @@
nur.url = "github:nix-community/NUR";
yazi.url = "github:sxyazi/yazi";
helix.url = "github:helix-editor/helix";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
@ -40,42 +39,18 @@
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
pre-commit-hooks,
...
} @ inputs: let
outputs = {nixpkgs, ...} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
};
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 {
name = "snowflake";
inherit (self.checks.pre-commit-check) shellHook;
packages = with pkgs; [
git
sops
alejandra
statix
deadnix
stylua
yaml-language-server
lua-language-server
nodePackages.typescript-language-server

View file

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

View file

@ -1,26 +0,0 @@
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,8 +1,9 @@
import { App, Utils } from "./import.js";
import { Bar } from "./js/main.js";
import { App, Utils } from './import.js';
import { Bar } from './js/main.js'
const scss = App.configDir + "/main.scss";
const css = App.configDir + "/style.css";
const scss = App.configDir + '/main.scss'
const css = App.configDir + '/style.css'
Utils.exec(`sass ${scss} ${css}`);
@ -18,6 +19,6 @@ Utils.monitorFile(`${App.configDir}/scss`, reloadCss, "directory");
export default {
style: css,
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 Network from "resource:///com/github/Aylur/ags/service/network.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 {
App,
Audio,
Hyprland,
Mpris,
Network,
Service,
SystemTray,
Utils,
Variable,
Widget,
Mpris,
};

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,9 @@
import { Utils, Widget } from "../../import.js";
import { Widget, Utils } from '../../import.js';
const Time = () =>
Widget.Box({
const Time = () => Widget.Box({
child: Widget.Label({
className: "date",
className: "date"
}).poll(
1000,
(self) =>
@ -13,4 +13,6 @@ const Time = () =>
),
});
export { Time };
export {
Time
}

View file

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

File diff suppressed because it is too large Load diff

View file

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

7
home/direnv/default.nix Normal file
View file

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

21
home/git/default.nix Normal file
View file

@ -0,0 +1,21 @@
_: {
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";
auto-format = true;
formatter = {
command = lib.getExe stylua;
command = lib.getExe luaformatter;
};
}
];

View file

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

View file

@ -7,16 +7,20 @@ _: {
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";
in {

View file

@ -24,6 +24,9 @@ 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 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 dlad = yt-dlp -x --audio-format mp3 --embed-thumbnail
alias dlcd = yt-dlp

View file

@ -14,9 +14,11 @@
'';
};
in {
imports = [./greetd.nix];
environment = {
systemPackages = with pkgs; [
imports = [
./greetd.nix
];
environment.systemPackages = with pkgs; [
dbus-hyprland-environment
wayland
glib
@ -30,7 +32,20 @@ in {
hyprpicker
swww
];
sessionVariables = {
services.dbus.enable = true;
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland
];
config = {
common.default = "*";
};
};
environment.sessionVariables = {
GBM_BACKEND = "nvidia-drm";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
@ -50,20 +65,8 @@ in {
EDITOR = "hx";
TERMINAL = "wezterm";
};
etc."greetd/environments".text = ''
environment.etc."greetd/environments".text = ''
Hyprland
'';
};
services.dbus.enable = true;
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland
];
config = {
common.default = "*";
};
};
}

View file

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

View file

@ -1,4 +1,4 @@
local wezterm = require("wezterm")
local wezterm = require('wezterm')
local config = {
@ -6,16 +6,16 @@ local config = {
webgpu_preferred_adapter = {
backend = "Vulkan",
device_type = "DiscreteGpu",
name = "NVIDIA GeForce GTX 1070 Ti",
name = "NVIDIA GeForce GTX 1070 Ti"
},
enable_wayland = false,
font = wezterm.font("Monaspace Krypton"),
font = wezterm.font 'Monaspace Krypton',
font_size = 12.0,
window_background_opacity = 0.6,
text_background_opacity = 1.0,
enable_tab_bar = false,
color_scheme = "tokyonight",
window_padding = { top = 20, bottom = 20, left = 20, right = 20 },
color_scheme = 'tokyonight',
window_padding = {top = 20, bottom = 20, left = 20, right = 20}
}
return config

View file

@ -1,32 +1,25 @@
function Manager:render(area)
self.area = area
local chunks = ui.Layout()
:direction(ui.Layout.HORIZONTAL)
:constraints({
local chunks = ui.Layout():direction(ui.Layout.HORIZONTAL):constraints({
ui.Constraint.Ratio(MANAGER.ratio.parent, MANAGER.ratio.all),
ui.Constraint.Ratio(MANAGER.ratio.current, MANAGER.ratio.all),
ui.Constraint.Ratio(MANAGER.ratio.preview, MANAGER.ratio.all),
})
:split(area)
ui.Constraint.Ratio(MANAGER.ratio.preview, MANAGER.ratio.all)
}):split(area)
local bar = function(c, x, y)
return ui.Bar(
ui.Rect({
return ui.Bar(ui.Rect {
x = math.max(0, x),
y = math.max(0, y),
w = math.min(1, area.w),
h = math.min(1, area.h),
}),
ui.Bar.TOP
):symbol(c)
h = math.min(1, area.h)
}, ui.Bar.TOP):symbol(c)
end
return ya.flat({
return ya.flat {
-- Borders
ui.Border(area, ui.Border.ALL):type(ui.Border.ROUNDED),
ui.Bar(chunks[1], ui.Bar.RIGHT),
ui.Bar(chunks[3], ui.Bar.LEFT),
ui.Bar(chunks[1], ui.Bar.RIGHT), ui.Bar(chunks[3], ui.Bar.LEFT),
bar("", chunks[1].right - 1, chunks[1].y),
bar("", chunks[1].right - 1, chunks[1].bottom - 1),
@ -34,8 +27,8 @@ function Manager:render(area)
bar("", chunks[2].right, chunks[1].bottom - 1), -- Parent
Parent:render(chunks[1]:padding(ui.Padding.xy(1))), -- Current
Current:render(chunks[2]:padding(ui.Padding.y(1))), -- Preview
Preview:render(chunks[3]:padding(ui.Padding.xy(1))),
})
Preview:render(chunks[3]:padding(ui.Padding.xy(1)))
}
end
Status = {area = ui.Rect.default}
@ -52,54 +45,41 @@ end
function Status:mode()
local mode = tostring(cx.active.mode):upper()
if mode == "UNSET" then
mode = "UN-SET"
end
if mode == "UNSET" then mode = "UN-SET" end
local style = self.style()
return ui.Line({
return ui.Line {
ui.Span(THEME.status.separator_open):fg(style.bg),
ui.Span(" " .. mode .. " "):style(style),
})
ui.Span(" " .. mode .. " "):style(style)
}
end
function Status:size()
local h = cx.active.current.hovered
if h == nil then
return ui.Line({})
end
if h == nil then return ui.Line {} end
local style = self.style()
return ui.Line({
ui.Span(" " .. ya.readable_size(h:size() or h.cha.length) .. " ")
:fg(style.bg)
:bg(THEME.status.separator_style.bg),
ui.Span(THEME.status.separator_close):fg(THEME.status.separator_style.fg),
})
return ui.Line {
ui.Span(" " .. ya.readable_size(h:size() or h.cha.length) .. " "):fg(
style.bg):bg(THEME.status.separator_style.bg),
ui.Span(THEME.status.separator_close):fg(THEME.status.separator_style.fg)
}
end
function Status:name()
local h = cx.active.current.hovered
if h == nil then
return ui.Span("")
end
if h == nil then return ui.Span("") end
local linked = ""
if h.link_to ~= nil then
linked = " -> " .. tostring(h.link_to)
end
if h.link_to ~= nil then linked = " -> " .. tostring(h.link_to) end
return ui.Span(" " .. h.name .. linked)
end
function Status:permissions()
local h = cx.active.current.hovered
if h == nil then
return ui.Line({})
end
if h == nil then return ui.Line {} end
local perm = h.cha:permissions()
if perm == nil then
return ui.Line({})
end
if perm == nil then return ui.Line {} end
local spans = {}
for i = 1, #perm do
@ -134,10 +114,11 @@ function Status:percentage()
end
local style = self.style()
return ui.Line({
ui.Span(" " .. THEME.status.separator_open):fg(THEME.status.separator_style.fg),
ui.Span(percent):fg(style.bg):bg(THEME.status.separator_style.bg),
})
return ui.Line {
ui.Span(" " .. THEME.status.separator_open):fg(THEME.status
.separator_style.fg),
ui.Span(percent):fg(style.bg):bg(THEME.status.separator_style.bg)
}
end
function Status:position()
@ -145,39 +126,34 @@ function Status:position()
local length = #cx.active.current.files
local style = self.style()
return ui.Line({
return ui.Line {
ui.Span(string.format(" %2d/%-2d ", cursor + 1, length)):style(style),
ui.Span(THEME.status.separator_close):fg(style.bg),
})
ui.Span(THEME.status.separator_close):fg(style.bg)
}
end
function Status:render(area)
self.area = area
local left = ui.Line({ self:mode(), self:size(), self:name() })
local right = ui.Line({
self:owner(),
self:permissions(),
self:percentage(),
self:position(),
})
local left = ui.Line {self:mode(), self:size(), self:name()}
local right = ui.Line {
self:owner(), self:permissions(), self:percentage(), self:position()
}
return {
ui.Paragraph(area, {left}),
ui.Paragraph(area, {right}):align(ui.Paragraph.RIGHT),
table.unpack(Progress:render(area, right:width())),
table.unpack(Progress:render(area, right:width()))
}
end
function Status:owner()
local h = cx.active.current.hovered
if h == nil or ya.target_family() ~= "unix" then
return ui.Line({})
end
if h == nil or ya.target_family() ~= "unix" then return ui.Line {} end
return ui.Line({
return ui.Line {
ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
ui.Span(":"),
ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
ui.Span(" "),
})
ui.Span(" ")
}
end

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -7,32 +7,20 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
kernel.sysctl = {"kernel.shmmax" = 100663296;};
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/3fd88f1f-cec3-4737-b9d0-6c8f026c3927";
fsType = "ext4";
};
"/nas/restic" = {
fileSystems."/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/arashi";
fsType = "nfs";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/e9eb4b6a-e9a1-4616-8c82-349d2f38d140";}

View file

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

View file

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

View file

@ -7,27 +7,15 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/06177115-2e39-493b-81fb-5a1980ae0534";
fsType = "ext4";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/c879fa21-fd80-422c-9aef-0becce5ff19c";}

View file

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

View file

@ -7,39 +7,30 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/f5a0738c-d027-4ffb-82ec-9901ca6b310b";
fsType = "ext4";
};
"/media" = {
fileSystems."/media" = {
device = "192.168.1.199:/mnt/Sutoreji/media";
fsType = "nfs";
};
"/stash" = {
fileSystems."/stash" = {
device = "192.168.1.199:/mnt/Sutoreji/stash";
fsType = "nfs";
};
"/nas/restic" = {
fileSystems."/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/kariru";
fsType = "nfs";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/f28bad28-ae14-4aa7-85c5-47abe46bae56";}

View file

@ -1,39 +1,41 @@
{pkgs, ...}: {
networking.firewall.allowedTCPPorts = [9292];
imports = [
./restic.nix
./torrent.nix
];
environment.systemPackages = [pkgs.recyclarr];
services = {
radarr = {
services.radarr = {
enable = true;
openFirewall = true;
};
sonarr = {
services.sonarr = {
enable = true;
openFirewall = true;
};
prowlarr = {
services.prowlarr = {
enable = true;
openFirewall = true;
};
bazarr = {
services.bazarr = {
enable = true;
openFirewall = true;
};
readarr = {
services.readarr = {
enable = true;
openFirewall = true;
};
lidarr = {
services.lidarr = {
enable = true;
openFirewall = true;
};
sabnzbd.enable = true;
};
services.sabnzbd.enable = true;
virtualisation.oci-containers.containers = {
whisparr = {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -7,35 +7,25 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/db3e4722-35a6-44fb-8e4d-a75166b845cb";
fsType = "ext4";
};
"/home/notoh/justlog/logs" = {
fileSystems."/home/notoh/justlog/logs" = {
device = "192.168.1.199:/mnt/Sutoreji/twitchlogs";
fsType = "nfs";
};
"/nas/restic" = {
fileSystems."/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/sakura";
fsType = "nfs";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/c5afba13-f1af-4e7f-994b-f565c52d92fc";}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,7 +4,9 @@
pkgs,
...
}: {
sops.secrets.tsauth-sora = {sopsFile = ../../../secrets/tailscale/secrets.yaml;};
sops.secrets.tsauth-sora = {
sopsFile = ../../../secrets/tailscale/secrets.yaml;
};
environment.systemPackages = [pkgs.jq pkgs.tailscale];
services.tailscale = {
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];
virtualisation.oci-containers.containers.terraria = {
image = "jacobsmile/tmodloader1.4:v2023.11.3.3";

View file

@ -16,22 +16,23 @@
../../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;
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 = {
enable = true;
videoDrivers = ["nvidia"];
@ -52,28 +53,41 @@
};
};
security = {
rtkit.enable = true;
polkit.enable = true;
pam.services.swaylock = {
text = ''
auth include login
'';
services.pcscd.enable = true;
services.davfs2.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
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;
steam = {
programs.gamemode.enable = true;
programs.steam = {
enable = true;
extraCompatPackages = [
inputs.nix-gaming.packages.${pkgs.system}.proton-ge
];
};
security.polkit.enable = true;
security.pam.services.swaylock = {
text = ''
auth include login
'';
};
hardware = {
pulseaudio.enable = false;
nvidia = {
powerManagement.enable = true;
modesetting.enable = true;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -7,27 +7,15 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/625f557a-99a0-4e2d-9aef-f3aed7cea1c8";
fsType = "ext4";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/5be1a83b-5b40-4068-ade3-fcf28ff07e35";}

View file

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

View file

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

View file

@ -7,43 +7,35 @@
(modulesPath + "/profiles/qemu-guest.nix")
];
boot = {
kernelModules = [];
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 = [];
};
};
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems = {
"/" = {
fileSystems."/" = {
device = "/dev/disk/by-uuid/833959fb-de9d-4820-aa22-e6ce8bce6f6c";
fsType = "ext4";
};
"/home/notoh/docker/stash/data" = {
fileSystems."/home/notoh/docker/stash/data" = {
device = "192.168.1.199:/mnt/Sutoreji/stash";
fsType = "nfs";
};
"/media" = {
fileSystems."/media" = {
device = "192.168.1.199:/mnt/Sutoreji/media";
fsType = "nfs";
};
"/nas/restic" = {
fileSystems."/nas/restic" = {
device = "192.168.1.199:/mnt/Sutoreji/nix-restic-data/yuki";
fsType = "nfs";
};
"/var/lib/paperless-ngx/media" = {
fileSystems."/var/lib/paperless-ngx/media" = {
device = "192.168.1.199:/mnt/Sutoreji/paperless-ngx/paperless-media ";
fsType = "nfs";
};
};
swapDevices = [
{device = "/dev/disk/by-uuid/bd7ccb73-6f85-4b3d-b37f-5cff58a6ab59";}

View file

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

View file

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

View file

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

View file

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