Compare commits
No commits in common. "dc1712cf4656ddfd6a10421322888922deb01815" and "a7494307a18890aa005c64f6dc86d0eb8e9eae6b" have entirely different histories.
dc1712cf46
...
a7494307a1
13
configurations/darwin/vasa/default.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{...}: {
|
||||||
|
system.stateVersion = 5;
|
||||||
|
|
||||||
|
elements = {
|
||||||
|
hostname = "molybdenum";
|
||||||
|
secrets = {
|
||||||
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# For some reason this is required for hm to work with nix-darwin
|
||||||
|
users.users.christopher = {};
|
||||||
|
}
|
||||||
7
configurations/home/toph@aepplet/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
bosun.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBUKDCjB0VpQubi8BfnYKbh4MIE1tcvKQesdoPE4NXAf";
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
helix
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -6,16 +6,7 @@
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme.name = "breeze-dark";
|
||||||
name = "Adwaita";
|
|
||||||
package = pkgs.adwaita-icon-theme;
|
|
||||||
};
|
|
||||||
|
|
||||||
theme = {
|
|
||||||
name = "Adwaita";
|
|
||||||
package = pkgs.gnome-themes-extra;
|
|
||||||
};
|
|
||||||
|
|
||||||
# cursorTheme = {
|
# cursorTheme = {
|
||||||
# name = "BreezeX-RosePineDawn-Linux";
|
# name = "BreezeX-RosePineDawn-Linux";
|
||||||
# package = pkgs.rose-pine-cursor;
|
# package = pkgs.rose-pine-cursor;
|
||||||
|
|
@ -23,14 +14,9 @@
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
style.name = "adwaita";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
GTK_USE_PORTAL = "1";
|
GTK_USE_PORTAL = "1";
|
||||||
# GTK_THEME = "rose-pine";
|
GTK_THEME = "rose-pine";
|
||||||
XCURSOR_SIZE = "32";
|
XCURSOR_SIZE = "32";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
106
configurations/home/toph@endurance/config/dev.nix
Normal file
|
|
@ -0,0 +1,106 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# Editors
|
||||||
|
jetbrains-toolbox # Installer for JetBrains IDEs
|
||||||
|
zed-editor
|
||||||
|
code-cursor
|
||||||
|
vscode
|
||||||
|
|
||||||
|
atuin-desktop
|
||||||
|
rfc # TUI-based RFC reader
|
||||||
|
nix-init # Generate Nix packages from URLs
|
||||||
|
install-nothing
|
||||||
|
|
||||||
|
# Language Servers
|
||||||
|
lua-language-server
|
||||||
|
rust-analyzer
|
||||||
|
nodePackages.typescript
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
nil # nix lsp
|
||||||
|
|
||||||
|
# trurl # Parsing and manipulating URLs via CLI
|
||||||
|
pandoc # Document converter
|
||||||
|
ripgrep # Grep file search
|
||||||
|
dig # DNS
|
||||||
|
onefetch # Git information tool
|
||||||
|
tokei # Like cloc
|
||||||
|
gource
|
||||||
|
zeal # Offline documentation browser
|
||||||
|
harbor.dedoc # Terminal-based documentation viewer
|
||||||
|
just # Just a command runner
|
||||||
|
claude-monitor
|
||||||
|
devenv
|
||||||
|
gitui
|
||||||
|
harbor.oryx # TUI for sniffing network traffic using eBPF
|
||||||
|
|
||||||
|
# Build tools
|
||||||
|
cargo
|
||||||
|
glibc
|
||||||
|
gcc
|
||||||
|
|
||||||
|
php82
|
||||||
|
php82Packages.composer
|
||||||
|
|
||||||
|
bun
|
||||||
|
nodejs_20
|
||||||
|
nodejs_20.pkgs.pnpm
|
||||||
|
];
|
||||||
|
|
||||||
|
bosun.secrets.npmrc = {
|
||||||
|
rekeyFile = "npmrc.age";
|
||||||
|
path = "${config.home.homeDirectory}/.npmrc";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
go.enable = true;
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
|
||||||
|
config.global.log_filter = "^$";
|
||||||
|
};
|
||||||
|
|
||||||
|
claude-code = {
|
||||||
|
enable = true;
|
||||||
|
# package = inputs.unstable.${system}.claude-code;
|
||||||
|
|
||||||
|
commands = {
|
||||||
|
fix-github-issue = ''
|
||||||
|
Please analyze and fix the GitHub issue $ARGUMENTS.
|
||||||
|
|
||||||
|
Follow these steps:
|
||||||
|
1. Use `gh issue view` to get the issue details
|
||||||
|
2. Understand the problem described in the issue. If necessary, follow links to other mentioned issues to understand context
|
||||||
|
3. Search the codebase for relevant files
|
||||||
|
4. Implement the necessary changes to fix the issue
|
||||||
|
5. Write and run tests to verify the fix
|
||||||
|
6. Ensure code passes linting and type checking
|
||||||
|
7. Create a descriptive commit message
|
||||||
|
8. Push and create a PR
|
||||||
|
|
||||||
|
Remember to use the GitHub CLI (`gh`) for all GitHub-related tasks.
|
||||||
|
'';
|
||||||
|
|
||||||
|
commit = ''
|
||||||
|
---
|
||||||
|
argument-hint: [commit-style]
|
||||||
|
---
|
||||||
|
|
||||||
|
Create a commit message. The message should be succinct, only with a one-liner explaining
|
||||||
|
the most relevant changes and possibly some reasoning for changes, but only where relevant.
|
||||||
|
|
||||||
|
Try to follow this commit style, if specified: '$ARGUMENTS'. If no commit style is specified,
|
||||||
|
try doing atomic commits. That is, split up larger changes into atomic commits that stand
|
||||||
|
for themselves.
|
||||||
|
|
||||||
|
Do not include a `Co-authored-by`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
configurations/home/toph@endurance/default-applications.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# Simple browsers for HTML
|
||||||
|
qutebrowser
|
||||||
|
harbor.firefox-with-context # Open URLs in different browser profiles based on context
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
defaultApplicationPackages = with pkgs; [
|
||||||
|
kdePackages.gwenview # image viewer
|
||||||
|
kdePackages.okular # pdf viewer
|
||||||
|
kdePackages.ark # Archives
|
||||||
|
vlc # Video player
|
||||||
|
];
|
||||||
|
|
||||||
|
# Only want to use qute for HTML files, not URLs
|
||||||
|
defaultApplications = {
|
||||||
|
"text/html" = "qutebrowser";
|
||||||
|
"x-scheme-handler/http" = "firefox-with-context";
|
||||||
|
"x-scheme/handler/https" = "firefox-with-context";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
} @ all: {
|
} @ all: {
|
||||||
bosun.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
bosun.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
||||||
|
|
@ -11,7 +10,7 @@
|
||||||
# inputs.ovos.homeManagerModules.default
|
# inputs.ovos.homeManagerModules.default
|
||||||
./gaming.nix
|
./gaming.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./communication.nix
|
./email.nix
|
||||||
./gpg
|
./gpg
|
||||||
./niri
|
./niri
|
||||||
./stylix.nix
|
./stylix.nix
|
||||||
|
|
@ -154,9 +153,6 @@
|
||||||
harbor.quick-zeal
|
harbor.quick-zeal
|
||||||
harbor.spawn-term
|
harbor.spawn-term
|
||||||
];
|
];
|
||||||
|
|
||||||
username = "toph";
|
|
||||||
homeDirectory = "/home/toph";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# home.file.".config/Yubico/u2f_keys".text = "christopher:C7akk/T8XYov6fOk3rGo0ZW66QPMtdLnGznPuK+tTh/qmPecvECzGVMKJuh5M7nYsMoT6r/idAP88FGinf/rpw==,ydS/PgUALZriaaHYS81u3x8rRFulq727GDJRlvbJhP2yeKK7Ih+xqRceyabLR3MxRN8PT/MtC1I/Xjaxl0S2Rg==,es256,+presence";
|
# home.file.".config/Yubico/u2f_keys".text = "christopher:C7akk/T8XYov6fOk3rGo0ZW66QPMtdLnGznPuK+tTh/qmPecvECzGVMKJuh5M7nYsMoT6r/idAP88FGinf/rpw==,ydS/PgUALZriaaHYS81u3x8rRFulq727GDJRlvbJhP2yeKK7Ih+xqRceyabLR3MxRN8PT/MtC1I/Xjaxl0S2Rg==,es256,+presence";
|
||||||
|
|
@ -68,11 +68,6 @@ in {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
reader
|
reader
|
||||||
tdf
|
tdf
|
||||||
slack
|
|
||||||
signal-desktop
|
|
||||||
telegram-desktop
|
|
||||||
vesktop # Discord client
|
|
||||||
# jitsi-meet
|
|
||||||
];
|
];
|
||||||
|
|
||||||
accounts.email = {
|
accounts.email = {
|
||||||
|
|
@ -15,11 +15,6 @@
|
||||||
# gimpPlugins.bimp # batch image manipulation, broken atm
|
# gimpPlugins.bimp # batch image manipulation, broken atm
|
||||||
# rawtherapee
|
# rawtherapee
|
||||||
|
|
||||||
# CAD
|
|
||||||
freecad
|
|
||||||
openscad
|
|
||||||
antimony
|
|
||||||
|
|
||||||
vcv-rack # eurorack synth simulator
|
vcv-rack # eurorack synth simulator
|
||||||
supercollider # audio programming language
|
supercollider # audio programming language
|
||||||
];
|
];
|
||||||
|
|
@ -23,22 +23,12 @@
|
||||||
onlyoffice-desktopeditors # libreoffice alternative
|
onlyoffice-desktopeditors # libreoffice alternative
|
||||||
speedcrunch # GUI calculator app
|
speedcrunch # GUI calculator app
|
||||||
calibre # eBook Manager
|
calibre # eBook Manager
|
||||||
spacedrive-v2
|
|
||||||
# loupe # Photo viewer
|
|
||||||
|
|
||||||
(dokieli.overrideAttrs
|
|
||||||
(final: prev: {
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp -r * $out
|
|
||||||
rm $out/LICENSE
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
}))
|
|
||||||
cider-2 # Apple music player
|
cider-2 # Apple music player
|
||||||
fractal # Matrix client
|
fractal # Matrix client
|
||||||
gomuks # Matrix client TUI
|
gomuks # Matrix client TUI
|
||||||
|
telegram-desktop
|
||||||
|
vesktop # Discord client
|
||||||
filezilla # FTP Client
|
filezilla # FTP Client
|
||||||
mochi # SRS flashcards
|
mochi # SRS flashcards
|
||||||
];
|
];
|
||||||
10
configurations/home/toph@endurance/niri/autostart.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{...}: {
|
||||||
|
programs.niri.settings.spawn-at-startup = [
|
||||||
|
# this is a funny fix for xdg environment not properly being set and thus
|
||||||
|
# xdg-open not working properly
|
||||||
|
{argv = ["sleep" "5;" "systemctl" "--user" "restart" "xdg-desktop-portal"];}
|
||||||
|
|
||||||
|
# open fastfetch by default
|
||||||
|
{argv = ["kitty" "--title" "'fastfetch'" "sh" "-c" "'fastfetch; read'"];}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
programs.niri.settings = {
|
programs.niri.settings = {
|
||||||
binds = with config.lib.niri.actions; {
|
binds = with config.lib.niri.actions; {
|
||||||
"Mod+space".action = spawn "fuzzel";
|
"Mod+space".action = spawn "fuzzel";
|
||||||
"Mod+e".action = spawn "nautilus";
|
"Mod+e".action = spawn "dolphin";
|
||||||
"Mod+d".action = spawn "zeal"; # Documentation viewer
|
"Mod+d".action = spawn "zeal"; # Documentation viewer
|
||||||
"Mod+c".action = spawn "${pkgs.harbor.spawn-term}/bin/spawn-term";
|
"Mod+c".action = spawn "${pkgs.harbor.spawn-term}/bin/spawn-term";
|
||||||
"Mod+g".action = spawn "${pkgs.harbor.hg-picker}/bin/hg-picker";
|
"Mod+g".action = spawn "${pkgs.harbor.hg-picker}/bin/hg-picker";
|
||||||
|
|
@ -22,37 +22,37 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
bar = {
|
bar = {
|
||||||
# position = "left";
|
position = "left";
|
||||||
density = "comfortable";
|
density = "comfortable";
|
||||||
# floating = true;
|
floating = true;
|
||||||
marginHorizontal = 0.73;
|
marginHorizontal = 0.73;
|
||||||
marginVertical = 0.73;
|
marginVertical = 0.73;
|
||||||
|
|
||||||
# widgets = {
|
widgets = {
|
||||||
# left = [
|
left = [
|
||||||
# {id = "ControlCenter";}
|
{id = "ControlCenter";}
|
||||||
# {id = "SystemMonitor";}
|
{id = "SystemMonitor";}
|
||||||
# ];
|
];
|
||||||
|
|
||||||
# center = [
|
center = [
|
||||||
# # {id = "MediaMini";}
|
# {id = "MediaMini";}
|
||||||
# {id = "Workspace";}
|
{id = "Workspace";}
|
||||||
# ];
|
];
|
||||||
|
|
||||||
# right = [
|
right = [
|
||||||
# {id = "Tray";}
|
{id = "Tray";}
|
||||||
# {id = "ScreenRecorder";}
|
{id = "ScreenRecorder";}
|
||||||
# {id = "Volume";}
|
{id = "Volume";}
|
||||||
# {id = "NotificationHistory";}
|
{id = "NotificationHistory";}
|
||||||
# {id = "Clock";}
|
{id = "Clock";}
|
||||||
# ];
|
];
|
||||||
# };
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
wallpaper = {
|
wallpaper = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
overviewEnabled = false;
|
overviewEnabled = false;
|
||||||
directory = "/nix/harbor/desktops/home/wallpapers";
|
directory = "/nix/harbor/desktops/configurations/home/toph@endurance/wallpapers";
|
||||||
recursiveSearch = false;
|
recursiveSearch = false;
|
||||||
randomEnabled = true;
|
randomEnabled = true;
|
||||||
};
|
};
|
||||||
|
|
@ -15,17 +15,9 @@
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
|
|
||||||
# TODO: Figure out a way for automatic dark-/light-mode switching
|
# TODO: Figure out a way for automatic dark-/light-mode switching
|
||||||
# I've tried:
|
|
||||||
# rose-pine-dawn
|
|
||||||
# rose-pine-moon
|
|
||||||
# ayu-mirage
|
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
|
||||||
|
|
||||||
targets = {
|
targets.firefox.profileNames = ["default" "work" "streaming"];
|
||||||
gtk.enable = false;
|
|
||||||
qt.enable = false;
|
|
||||||
firefox.profileNames = ["default" "work" "streaming"];
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor = {
|
cursor = {
|
||||||
package = pkgs.rose-pine-cursor;
|
package = pkgs.rose-pine-cursor;
|
||||||
|
Before Width: | Height: | Size: 7.6 MiB After Width: | Height: | Size: 7.4 MiB |
BIN
configurations/home/toph@endurance/wallpapers/chill-room.webp
Normal file
|
After Width: | Height: | Size: 424 KiB |
|
After Width: | Height: | Size: 311 KiB |
5
configurations/home/toph@endurance/wallpapers/sources.md
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
- cat-vibes: https://wall.alphacoders.com/big.php?i=1384032
|
||||||
|
- yellow-bedroom: https://wall.alphacoders.com/big.php?i=1395930
|
||||||
|
- sunny-cityscape: https://wall.alphacoders.com/big.php?i=1395929
|
||||||
|
- chill-room: https://wall.alphacoders.com/big.php?i=1350899
|
||||||
|
- evening-ambience-cafe: https://wall.alphacoders.com/big.php?i=1349198
|
||||||
|
After Width: | Height: | Size: 345 KiB |
|
After Width: | Height: | Size: 2.2 MiB |
32
configurations/home/toph@fram/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
elements.secrets = {
|
||||||
|
rekeyPath = "christopher_beryllium";
|
||||||
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBUKDCjB0VpQubi8BfnYKbh4MIE1tcvKQesdoPE4NXAf";
|
||||||
|
|
||||||
|
needs = {
|
||||||
|
traefik-env = "traefik.env.age";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# virtualisation.quadlet.containers = {
|
||||||
|
# echo = {
|
||||||
|
# autoStart = true;
|
||||||
|
# serviceConfig = {
|
||||||
|
# RestartSec = "10";
|
||||||
|
# Restart = "always";
|
||||||
|
# };
|
||||||
|
# containerConfig = {
|
||||||
|
# image = "docker.io/mendhak/http-https-echo:31";
|
||||||
|
# publishPorts = ["127.0.0.1:8080:8080"];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
helix
|
||||||
|
];
|
||||||
|
}
|
||||||
8
configurations/home/toph@vasa/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
bosun.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
harbor.to-s3
|
||||||
|
harbor.connect-to-mercury
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -10,32 +10,50 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
bosun = {
|
bosun = {
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
# quirks = ["avahi" "docker"];
|
||||||
|
|
||||||
profiles = {
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
||||||
docker.enable = true;
|
|
||||||
work.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
# Enable nix flakes
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixVersions.stable;
|
||||||
|
extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
AllowUsers = ["toph"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Set the default drive, which in the case of Mercury is
|
# Set the default drive, which in the case of Mercury is
|
||||||
# a VirtualBox image.
|
# a VirtualBox image.
|
||||||
disko.devices.disk.main.device = "/dev/sda";
|
disko.devices.disk.main.device = "/dev/sda";
|
||||||
|
|
||||||
boot.loader.grub.enable = true;
|
boot.loader.grub.enable = true;
|
||||||
|
networking.hostName = "aepplet";
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
inputs.docker-compose-1.legacyPackages."x86_64-linux".docker-compose
|
inputs.docker-compose-1.legacyPackages."x86_64-linux".docker-compose
|
||||||
gnumake
|
gnumake
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
console = {
|
||||||
vim.enable = true;
|
font = "Lat2-Terminus16";
|
||||||
git.enable = true;
|
keyMap = lib.mkForce "de";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.vim.enable = true;
|
||||||
|
programs.git.enable = true;
|
||||||
|
|
||||||
# Disable the firewall so that all traffic is allowed
|
# Disable the firewall so that all traffic is allowed
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
inputs.flatpak.nixosModules.nix-flatpak
|
inputs.flatpak.nixosModules.nix-flatpak
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./disko.nix
|
./disko.nix
|
||||||
|
./metrics.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
bosun = {
|
bosun = {
|
||||||
|
|
@ -22,64 +23,34 @@
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "qt5ct";
|
||||||
|
style = "kvantum";
|
||||||
|
};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
|
hostName = "endurance";
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
interfaces.eno1.wakeOnLan.enable = true;
|
interfaces.eno1.wakeOnLan.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Nomad client-only (no server) — joins the cluster for GPU/compute tasks
|
# Set your time zone.
|
||||||
services.nomad = {
|
time.timeZone = "Europe/Berlin";
|
||||||
enable = true;
|
|
||||||
dropPrivileges = false;
|
console = {
|
||||||
extraSettingsPaths = [
|
font = "Lat2-Terminus16";
|
||||||
(builtins.toFile "docker-plugin.hcl" ''
|
useXkbConfig = true; # use xkbOptions in tty.
|
||||||
plugin "docker" {
|
|
||||||
config {
|
|
||||||
volumes {
|
|
||||||
enabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
datacenter = "home";
|
|
||||||
bind_addr = "{{ GetInterfaceIP \"tailscale0\" }}";
|
|
||||||
addresses = {
|
|
||||||
http = "0.0.0.0";
|
|
||||||
};
|
|
||||||
advertise = {
|
|
||||||
http = "{{ GetInterfaceIP \"tailscale0\" }}";
|
|
||||||
rpc = "{{ GetInterfaceIP \"tailscale0\" }}";
|
|
||||||
serf = "{{ GetInterfaceIP \"tailscale0\" }}";
|
|
||||||
};
|
|
||||||
client = {
|
|
||||||
enabled = true;
|
|
||||||
servers = ["alvin" "fram" "great-western"];
|
|
||||||
node_class = "workstation";
|
|
||||||
meta = {
|
|
||||||
has_gpu = "true";
|
|
||||||
has_display = "true";
|
|
||||||
location = "local";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Make nomad CLI work with Tailscale-bound API
|
xdg.portal = {
|
||||||
environment.etc."profile.d/nomad.sh".text = ''
|
enable = true;
|
||||||
export NOMAD_ADDR="http://$(tailscale ip -4):4646"
|
xdgOpenUsePortal = true;
|
||||||
'';
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
weylus.users = ["toph"];
|
weylus.users = ["toph"];
|
||||||
|
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentryPackage = pkgs.pinentry-gtk2;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
|
|
||||||
steam = {
|
steam = {
|
||||||
|
|
@ -87,7 +58,10 @@
|
||||||
protontricks.enable = true;
|
protontricks.enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
};
|
};
|
||||||
|
# VR support
|
||||||
envision.enable = true;
|
envision.enable = true;
|
||||||
|
|
||||||
|
# For game-related system optimisations
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
|
|
||||||
_1password.enable = true;
|
_1password.enable = true;
|
||||||
|
|
@ -97,20 +71,6 @@
|
||||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
||||||
polkitPolicyOwners = ["toph"];
|
polkitPolicyOwners = ["toph"];
|
||||||
};
|
};
|
||||||
|
|
||||||
obs-studio = {
|
|
||||||
enable = true;
|
|
||||||
enableVirtualCamera = true;
|
|
||||||
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-vaapi
|
|
||||||
obs-pipewire-audio-capture
|
|
||||||
obs-backgroundremoval
|
|
||||||
obs-move-transition
|
|
||||||
droidcam-obs
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
@ -123,6 +83,9 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
openssh.enable = true;
|
||||||
|
openssh.settings.PasswordAuthentication = false;
|
||||||
|
|
||||||
hardware.openrgb.enable = true;
|
hardware.openrgb.enable = true;
|
||||||
|
|
||||||
# Bluetooth manager
|
# Bluetooth manager
|
||||||
|
|
@ -135,8 +98,33 @@
|
||||||
'';
|
'';
|
||||||
udev.packages = [pkgs.platformio-core.udev];
|
udev.packages = [pkgs.platformio-core.udev];
|
||||||
|
|
||||||
|
# Linux link via MQTT
|
||||||
|
lnxlink.enable = true;
|
||||||
|
beszel-agent.enable = true;
|
||||||
|
beszel-agent.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkUPOw28Cu2LMuzfmvjT/L2ToNHcADwGyGvSpJ4wH2T";
|
||||||
elements.ollama.enable = true;
|
elements.ollama.enable = true;
|
||||||
|
|
||||||
|
# waka-victoriametrics = {
|
||||||
|
# enable = true;
|
||||||
|
# listenAddress = "127.0.0.1:8080";
|
||||||
|
# victoriametrics.url = "http://localhost:8428/api/v1/write";
|
||||||
|
# metrics.labels = [
|
||||||
|
# "project"
|
||||||
|
# "language"
|
||||||
|
# "editor"
|
||||||
|
# "branch"
|
||||||
|
# "category"
|
||||||
|
# "operating_system"
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = lib.mkForce true;
|
||||||
|
alsa.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
usbmuxd = {
|
usbmuxd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.usbmuxd2;
|
package = pkgs.usbmuxd2;
|
||||||
|
|
@ -159,6 +147,19 @@
|
||||||
pcscd.enable = true;
|
pcscd.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
thunar.enable = true;
|
||||||
|
thunar.plugins = with pkgs.xfce; [
|
||||||
|
thunar-archive-plugin
|
||||||
|
];
|
||||||
|
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryPackage = pkgs.pinentry-gtk2;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
|
|
@ -207,6 +208,11 @@
|
||||||
overdrive.enable = true;
|
overdrive.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
|
|
@ -215,11 +221,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# SANE scanner support
|
# SANE scanner support
|
||||||
sane = {
|
sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -236,27 +237,37 @@
|
||||||
keyboard.zsa.enable = true;
|
keyboard.zsa.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Do not change this value!
|
system.stateVersion = "23.05"; # Do not change this value!
|
||||||
system.stateVersion = "23.05";
|
|
||||||
|
|
||||||
boot = {
|
# Set up our bootloader
|
||||||
# Set up our bootloader
|
boot.loader = {
|
||||||
loader = {
|
efi.canTouchEfiVariables = true;
|
||||||
efi.canTouchEfiVariables = true;
|
grub = {
|
||||||
grub = {
|
enable = true;
|
||||||
enable = true;
|
device = "nodev";
|
||||||
device = "nodev";
|
efiSupport = true;
|
||||||
efiSupport = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
|
||||||
v4l2loopback
|
|
||||||
];
|
|
||||||
|
|
||||||
kernelModules = ["v4l2loopback"];
|
|
||||||
extraModprobeConfig = ''
|
|
||||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
enableVirtualCamera = true;
|
||||||
|
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-vaapi
|
||||||
|
obs-pipewire-audio-capture
|
||||||
|
obs-backgroundremoval
|
||||||
|
obs-move-transition
|
||||||
|
droidcam-obs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
v4l2loopback
|
||||||
|
];
|
||||||
|
boot.kernelModules = ["v4l2loopback"];
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
52
configurations/nixos/endurance/metrics.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
bosun.secrets.victoriametricsEnvFile = "victoria.env.age";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
telegraf = {
|
||||||
|
enable = true;
|
||||||
|
environmentFiles = [
|
||||||
|
# This defines the VICTORIAMETRICS_PASSWORD environment variable
|
||||||
|
config.age.secrets.victoriametricsEnvFile.path
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
inputs = {
|
||||||
|
http_response = [
|
||||||
|
{
|
||||||
|
urls = ["https://toph.so" "https://aleph.garden" "https://aph.gdn" "https://radicle.toph.so"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
internet_speed = [
|
||||||
|
{
|
||||||
|
interval = "60m";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
outputs.influxdb = [
|
||||||
|
{
|
||||||
|
urls = ["https://vm.toph.so"];
|
||||||
|
database = "toph";
|
||||||
|
username = "victoria-with-the-secrets";
|
||||||
|
password = "\${VICTORIAMETRICS_PASSWORD}";
|
||||||
|
skip_database_creation = false;
|
||||||
|
exclude_retention_policy_tag = true;
|
||||||
|
content_encoding = "gzip";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# traefik.routes.solid-pod = {
|
||||||
|
# rule = "Host(`pod.toph.so`)";
|
||||||
|
# url = "http://localhost:3000";
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
# systemd.tmpfiles.rules = [
|
||||||
|
# "d /var/lib/solid - - - - -"
|
||||||
|
# ];
|
||||||
|
}
|
||||||
419
flake.lock
generated
|
|
@ -115,33 +115,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buildbot-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": "flake-parts_4",
|
|
||||||
"hercules-ci-effects": "hercules-ci-effects",
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"treefmt-nix": [
|
|
||||||
"ngipkgs",
|
|
||||||
"treefmt-nix"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769920146,
|
|
||||||
"narHash": "sha256-Co8wpqWe5SWzsx0Fy2Q7+tpnDlvHe+ksX+9Lis4NJFw=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "buildbot-nix",
|
|
||||||
"rev": "21a138e5230c23fb253559bea63ec0979156aff3",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "buildbot-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"community-solid-server": {
|
"community-solid-server": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
|
|
@ -265,29 +238,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dream2nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"purescript-overlay": "purescript-overlay",
|
|
||||||
"pyproject-nix": "pyproject-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1765953015,
|
|
||||||
"narHash": "sha256-5FBZbbWR1Csp3Y2icfRkxMJw/a/5FGg8hCXej2//bbI=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "dream2nix",
|
|
||||||
"rev": "69eb01fa0995e1e90add49d8ca5bcba213b0416f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "dream2nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"easy-hosts": {
|
"easy-hosts": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755470564,
|
"lastModified": 1755470564,
|
||||||
|
|
@ -351,38 +301,6 @@
|
||||||
"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-compat_4": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1767039857,
|
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
|
@ -441,28 +359,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_4": {
|
"flake-parts_4": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs-lib": [
|
|
||||||
"ngipkgs",
|
|
||||||
"buildbot-nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768135262,
|
|
||||||
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts_5": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
|
|
@ -483,7 +379,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_6": {
|
"flake-parts_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"stylix",
|
"stylix",
|
||||||
|
|
@ -504,7 +400,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_7": {
|
"flake-parts_6": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_3"
|
"nixpkgs-lib": "nixpkgs-lib_3"
|
||||||
},
|
},
|
||||||
|
|
@ -540,27 +436,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": [
|
|
||||||
"ngipkgs",
|
|
||||||
"systems"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flatpak": {
|
"flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739444422,
|
"lastModified": 1739444422,
|
||||||
|
|
@ -634,28 +509,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"pre-commit-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -675,33 +528,6 @@
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hercules-ci-effects": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-parts": [
|
|
||||||
"ngipkgs",
|
|
||||||
"buildbot-nix",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"buildbot-nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1768476106,
|
|
||||||
"narHash": "sha256-V0YOJRum50gtKgwavsAfwXc9+XAsJCC7386YZx1sWGQ=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"rev": "c19e263e6e22ec7379d972f19e6a322f943c73fb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "hercules-ci-effects",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -730,11 +556,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769723138,
|
"lastModified": 1765480374,
|
||||||
"narHash": "sha256-kgkwjs33YfJasADIrHjHcTIDs3wNX0xzJhnUP+oldEw=",
|
"narHash": "sha256-HlbvQAqLx7WqZFFQZ8nu5UUJAVlXiV/kqKbyueA8srw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "175532b6275b34598a0ceb1aef4b9b4006dd4073",
|
"rev": "39cb677ed9e908e90478aa9fe5f3383dfc1a63f3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -777,36 +603,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ngipkgs": {
|
|
||||||
"inputs": {
|
|
||||||
"buildbot-nix": "buildbot-nix",
|
|
||||||
"dream2nix": "dream2nix",
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nixdoc-to-github": "nixdoc-to-github",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks_2",
|
|
||||||
"sbt-derivation": "sbt-derivation",
|
|
||||||
"sops-nix": "sops-nix",
|
|
||||||
"systems": "systems_4",
|
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769442174,
|
|
||||||
"narHash": "sha256-J0DqkOiV4DhFL9NHSNY5Qu794dMYRVm+estBM54ojXM=",
|
|
||||||
"owner": "ngi-nix",
|
|
||||||
"repo": "ngipkgs",
|
|
||||||
"rev": "672c78f6c140b480ca37cd04a4ee250fb00b1b7d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ngi-nix",
|
|
||||||
"repo": "ngipkgs",
|
|
||||||
"rev": "672c78f6c140b480ca37cd04a4ee250fb00b1b7d",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"niri": {
|
"niri": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
|
|
@ -863,22 +659,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixdoc-to-github": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717409038,
|
|
||||||
"narHash": "sha256-P4ZfOrlnRPNiZwiQn2pY44nPfk9cqI7FxOVaTnZwDCI=",
|
|
||||||
"owner": "fricklerhandwerk",
|
|
||||||
"repo": "nixdoc-to-github",
|
|
||||||
"rev": "47054a3b3a0f072ecd0402de3911d0979d09a7ab",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "fricklerhandwerk",
|
|
||||||
"repo": "nixdoc-to-github",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767051569,
|
"lastModified": 1767051569,
|
||||||
|
|
@ -1058,7 +838,7 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_5",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
|
|
@ -1125,75 +905,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre-commit-hooks_2": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_4",
|
|
||||||
"gitignore": "gitignore_2",
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769939035,
|
|
||||||
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"rev": "a8ca480175326551d6c4121498316261cbb5b260",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "pre-commit-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"purescript-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_3",
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"dream2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"slimlock": "slimlock"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1728546539,
|
|
||||||
"narHash": "sha256-Sws7w0tlnjD+Bjck1nv29NjC5DbL6nH5auL9Ex9Iz2A=",
|
|
||||||
"owner": "thomashoneyman",
|
|
||||||
"repo": "purescript-overlay",
|
|
||||||
"rev": "4ad4c15d07bd899d7346b331f377606631eb0ee4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "thomashoneyman",
|
|
||||||
"repo": "purescript-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pyproject-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"dream2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1763017646,
|
|
||||||
"narHash": "sha256-Z+R2lveIp6Skn1VPH3taQIuMhABg1IizJd8oVdmdHsQ=",
|
|
||||||
"owner": "pyproject-nix",
|
|
||||||
"repo": "pyproject.nix",
|
|
||||||
"rev": "47bd6f296502842643078d66128f7b5e5370790c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "pyproject-nix",
|
|
||||||
"repo": "pyproject.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
|
@ -1209,7 +920,6 @@
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"master": "master",
|
"master": "master",
|
||||||
"musnix": "musnix",
|
"musnix": "musnix",
|
||||||
"ngipkgs": "ngipkgs",
|
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"noctalia": "noctalia",
|
"noctalia": "noctalia",
|
||||||
|
|
@ -1219,75 +929,6 @@
|
||||||
"waka-victoriametrics": "waka-victoriametrics"
|
"waka-victoriametrics": "waka-victoriametrics"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sbt-derivation": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"ngipkgs",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1698464090,
|
|
||||||
"narHash": "sha256-Pnej7WZIPomYWg8f/CZ65sfW85IfIUjYhphMMg7/LT0=",
|
|
||||||
"owner": "zaninime",
|
|
||||||
"repo": "sbt-derivation",
|
|
||||||
"rev": "6762cf2c31de50efd9ff905cbcc87239995a4ef9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "zaninime",
|
|
||||||
"repo": "sbt-derivation",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"slimlock": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"dream2nix",
|
|
||||||
"purescript-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1688756706,
|
|
||||||
"narHash": "sha256-xzkkMv3neJJJ89zo3o2ojp7nFeaZc2G0fYwNXNJRFlo=",
|
|
||||||
"owner": "thomashoneyman",
|
|
||||||
"repo": "slimlock",
|
|
||||||
"rev": "cf72723f59e2340d24881fd7bf61cb113b4c407c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "thomashoneyman",
|
|
||||||
"repo": "slimlock",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sops-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769921679,
|
|
||||||
"narHash": "sha256-twBMKGQvaztZQxFxbZnkg7y/50BW9yjtCBWwdjtOZew=",
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "sops-nix",
|
|
||||||
"rev": "1e89149dcfc229e7e2ae24a8030f124a31e4f24f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Mic92",
|
|
||||||
"repo": "sops-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stylix": {
|
"stylix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"base16": "base16",
|
"base16": "base16",
|
||||||
|
|
@ -1295,13 +936,13 @@
|
||||||
"base16-helix": "base16-helix",
|
"base16-helix": "base16-helix",
|
||||||
"base16-vim": "base16-vim",
|
"base16-vim": "base16-vim",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"flake-parts": "flake-parts_6",
|
"flake-parts": "flake-parts_5",
|
||||||
"gnome-shell": "gnome-shell",
|
"gnome-shell": "gnome-shell",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur_2",
|
"nur": "nur_2",
|
||||||
"systems": "systems_5",
|
"systems": "systems_4",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
|
@ -1368,21 +1009,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_4": {
|
"systems_4": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_5": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
|
@ -1499,34 +1125,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"ngipkgs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769691507,
|
|
||||||
"narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770197578,
|
"lastModified": 1762977756,
|
||||||
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1556,7 +1161,7 @@
|
||||||
},
|
},
|
||||||
"waka-victoriametrics": {
|
"waka-victoriametrics": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_7",
|
"flake-parts": "flake-parts_6",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
35
flake.nix
|
|
@ -47,7 +47,7 @@
|
||||||
inputs.nixpkgs.follows = "unstable";
|
inputs.nixpkgs.follows = "unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
# affinity-nix.url = "github:mrshmllow/affinity-nix";
|
# affinity-nix.url = "github:mrshmllow/affinity-nix";
|
||||||
musnix.url = "github:musnix/musnix";
|
musnix.url = "github:musnix/musnix";
|
||||||
flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
||||||
git-global-log.url = "github:tophcodes/git-global-log";
|
git-global-log.url = "github:tophcodes/git-global-log";
|
||||||
|
|
@ -55,10 +55,6 @@
|
||||||
url = "github:nix-community/NUR";
|
url = "github:nix-community/NUR";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
ngipkgs = {
|
|
||||||
url = "github:ngi-nix/ngipkgs/?ref=672c78f6c140b480ca37cd04a4ee250fb00b1b7d";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
community-solid-server = {
|
community-solid-server = {
|
||||||
url = "github:tophcodes/CommunitySolidServer.nix/main";
|
url = "github:tophcodes/CommunitySolidServer.nix/main";
|
||||||
};
|
};
|
||||||
|
|
@ -90,4 +86,33 @@
|
||||||
./modules/flake
|
./modules/flake
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# # Add modules only to specific hosts
|
||||||
|
# systems.hosts = with inputs; {
|
||||||
|
# cobalt.modules = [
|
||||||
|
# stylix.nixosModules.stylix
|
||||||
|
# ovos.nixosModules.default
|
||||||
|
# waka-victoriametrics.nixosModules.default
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# overlays = with inputs; [
|
||||||
|
# ovos.overlays.default
|
||||||
|
# (final: prev: {
|
||||||
|
# waka-victoriametrics = waka-victoriametrics.packages.${final.system}.default;
|
||||||
|
# })
|
||||||
|
# ];
|
||||||
|
|
||||||
|
# outputs-builder = channels: {
|
||||||
|
# formatter = channels.nixpkgs.alejandra;
|
||||||
|
# };
|
||||||
|
# })
|
||||||
|
# // {
|
||||||
|
# agenix-rekey = inputs.agenix-rekey.configure {
|
||||||
|
# userFlake = inputs.self;
|
||||||
|
# nixosConfigurations = inputs.self.nixosConfigurations // inputs.self.darwinConfigurations;
|
||||||
|
# homeConfigurations = inputs.self.homeConfigurations;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{...}: {
|
|
||||||
bosun = {
|
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Editors
|
|
||||||
jetbrains-toolbox # Installer for JetBrains IDEs
|
|
||||||
zed-editor
|
|
||||||
code-cursor
|
|
||||||
vscode
|
|
||||||
|
|
||||||
atuin-desktop
|
|
||||||
rfc # TUI-based RFC reader
|
|
||||||
nix-init # Generate Nix packages from URLs
|
|
||||||
install-nothing
|
|
||||||
|
|
||||||
# Language Servers
|
|
||||||
lua-language-server
|
|
||||||
rust-analyzer
|
|
||||||
nodePackages.typescript
|
|
||||||
nodePackages.typescript-language-server
|
|
||||||
nil # nix lsp
|
|
||||||
|
|
||||||
# trurl # Parsing and manipulating URLs via CLI
|
|
||||||
pandoc # Document converter
|
|
||||||
ripgrep # Grep file search
|
|
||||||
dig # DNS
|
|
||||||
onefetch # Git information tool
|
|
||||||
tokei # Like cloc
|
|
||||||
gource # Git history viz
|
|
||||||
zeal # Offline documentation browser
|
|
||||||
harbor.dedoc # Terminal-based documentation viewer
|
|
||||||
just # Just a command runner
|
|
||||||
claude-monitor
|
|
||||||
devenv
|
|
||||||
gitui
|
|
||||||
tea
|
|
||||||
harbor.oryx # TUI for sniffing network traffic using eBPF
|
|
||||||
|
|
||||||
# BMAD
|
|
||||||
sox
|
|
||||||
ffmpeg
|
|
||||||
bc
|
|
||||||
pipx
|
|
||||||
piper-tts
|
|
||||||
pulseaudioFull
|
|
||||||
|
|
||||||
# Build tools
|
|
||||||
cargo
|
|
||||||
glibc
|
|
||||||
gcc
|
|
||||||
|
|
||||||
php82
|
|
||||||
php82Packages.composer
|
|
||||||
|
|
||||||
bun
|
|
||||||
|
|
||||||
nomad
|
|
||||||
];
|
|
||||||
|
|
||||||
bosun.secrets.npmrc = {
|
|
||||||
rekeyFile = "npmrc.age";
|
|
||||||
path = "${config.home.homeDirectory}/.npmrc";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
go.enable = true;
|
|
||||||
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
|
|
||||||
config.global.log_filter = "^$";
|
|
||||||
};
|
|
||||||
|
|
||||||
claude-code = {
|
|
||||||
enable = true;
|
|
||||||
# package = inputs.unstable.${system}.claude-code;
|
|
||||||
|
|
||||||
# mcpServers = {
|
|
||||||
# fetch = {
|
|
||||||
# args = ["-y" "@modelcontextprotocol/server-fetch"];
|
|
||||||
# command = "npx";
|
|
||||||
# type = "stdio";
|
|
||||||
# };
|
|
||||||
# playwright = {
|
|
||||||
# args = ["-y" "@modelcontextprotocol/server-playwright"];
|
|
||||||
# command = "npx";
|
|
||||||
# type = "stdio";
|
|
||||||
# };
|
|
||||||
# stackexchange = {
|
|
||||||
# args = ["-y" "mcp-server-stackexchange"];
|
|
||||||
# command = "npx";
|
|
||||||
# type = "stdio";
|
|
||||||
# };
|
|
||||||
# arxiv = {
|
|
||||||
# args = ["-y" "mcp-server-arxiv"];
|
|
||||||
# command = "npx";
|
|
||||||
# type = "stdio";
|
|
||||||
# };
|
|
||||||
# claudezilla = {
|
|
||||||
# command = "bun";
|
|
||||||
# args = ["/home/toph/code/vendor/claudezilla/mcp/server.js"];
|
|
||||||
# type = "stdio";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.jujutsu = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = "Christopher Mühl";
|
|
||||||
email = "toki@toph.so";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
{pkgs, ...}: let
|
|
||||||
defaultApplicationPackages = with pkgs; [
|
|
||||||
nautilus # file viewer
|
|
||||||
loupe # image viewer
|
|
||||||
kdePackages.okular # pdf viewer
|
|
||||||
# kdePackages.ark # Archives
|
|
||||||
vlc # Video player
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
home.packages = with pkgs;
|
|
||||||
[
|
|
||||||
# Simple browsers for HTML
|
|
||||||
qutebrowser
|
|
||||||
harbor.firefox-with-context # Open URLs in different browser profiles based on context
|
|
||||||
]
|
|
||||||
++ defaultApplicationPackages;
|
|
||||||
|
|
||||||
xdg.mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
inherit defaultApplicationPackages;
|
|
||||||
|
|
||||||
# Only want to use qute for HTML files, not URLs
|
|
||||||
defaultApplications = {
|
|
||||||
"text/html" = "qutebrowser";
|
|
||||||
"x-scheme-handler/http" = "firefox-with-context";
|
|
||||||
"x-scheme-handler/https" = "firefox-with-context";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{...}: {
|
|
||||||
programs.niri.settings.spawn-at-startup = [
|
|
||||||
# open fastfetch by default
|
|
||||||
{argv = ["kitty" "--title" "'fastfetch'" "sh" "-c" "'fastfetch; read'"];}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = [pkgs.wakatime-cli];
|
|
||||||
|
|
||||||
# programs.fish = {
|
|
||||||
# interactiveShellInit = ''
|
|
||||||
# function __wakatime_hook --on-event fish_prompt
|
|
||||||
# wakatime-cli --write --plugin "fish-wakatime/0.1" \
|
|
||||||
# --entity-type app \
|
|
||||||
# --project (basename (pwd)) \
|
|
||||||
# --entity (pwd) &
|
|
||||||
# end
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
} @ all: {
|
|
||||||
bosun.key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
|
||||||
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
];
|
|
||||||
|
|
||||||
home.username = "christopher";
|
|
||||||
home.homeDirectory = "/Users/christopher";
|
|
||||||
|
|
||||||
elements.kitty.enable = true;
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 7.1 MiB |
|
Before Width: | Height: | Size: 7.2 MiB |
|
Before Width: | Height: | Size: 3.9 MiB |
|
Before Width: | Height: | Size: 8.6 MiB |
|
Before Width: | Height: | Size: 4.9 MiB |
|
Before Width: | Height: | Size: 12 MiB |
|
|
@ -1,10 +0,0 @@
|
||||||
{...}: {
|
|
||||||
system.stateVersion = 5;
|
|
||||||
|
|
||||||
# bosun = {
|
|
||||||
# key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# For some reason this is required for hm to work with nix-darwin
|
|
||||||
# users.users.christopher = {};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./secrets.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
# inputs.agenix.darwinModules.default
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +1,10 @@
|
||||||
{inputs, ...}: let
|
{inputs, ...}: let
|
||||||
inherit (inputs) self;
|
inherit (inputs) self;
|
||||||
|
|
||||||
mkHome = user: host: system: inputs.home-manager.lib.homeManagerConfiguration {
|
mkHome = user: host: {
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
imports = [
|
||||||
extraSpecialArgs = {
|
(self + "/configurations/home/${user}@${host}")
|
||||||
inherit inputs;
|
|
||||||
hostname = host;
|
|
||||||
};
|
|
||||||
|
|
||||||
modules = [
|
|
||||||
(self + "/modules/home")
|
(self + "/modules/home")
|
||||||
(self + "/home/by-host/${host}")
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
@ -19,7 +13,8 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
flake.homeConfigurations = {
|
flake.homeConfigurations = {
|
||||||
"toph@endurance" = mkHome "toph" "endurance" "x86_64-linux";
|
"toph@endurance" = mkHome "toph" "endurance";
|
||||||
"toph@vasa" = mkHome "toph" "vasa" "x86_64-darwin";
|
"toph@vasa" = mkHome "toph" "vasa";
|
||||||
|
"toph@aepplet" = mkHome "toph" "aepplet";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
mkHost = hostname: config:
|
mkHost = hostname: config:
|
||||||
{
|
{
|
||||||
path = ../../hosts/${hostname};
|
path = ../../configurations/nixos/${hostname};
|
||||||
deployable = true;
|
deployable = true;
|
||||||
specialArgs = {inherit inputs hostname;};
|
specialArgs = {inherit inputs hostname;};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{ pkgs, ... }: {
|
||||||
pkgs,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# the `modules/generic` folder is generic only across nixos and darwin, not
|
# the `modules/generic` folder is generic only across nixos and darwin, not
|
||||||
# across home manager. home modules are in `modules/home`
|
# across home manager. home modules are in `modules/home`
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -11,16 +7,10 @@
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: Move all of these into their own modules?
|
|
||||||
|
|
||||||
networking.hostName = hostname;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pre-commit
|
pre-commit
|
||||||
git
|
git
|
||||||
gitleaks
|
gitleaks
|
||||||
helix
|
|
||||||
fish
|
|
||||||
just
|
just
|
||||||
nh
|
nh
|
||||||
age
|
age
|
||||||
|
|
|
||||||
|
|
@ -2,22 +2,15 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
hostname,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.lixPackageSets.stable.lix;
|
package = pkgs.lixPackageSets.stable.lix;
|
||||||
|
|
||||||
# TODO: Is this even needed with lix?
|
|
||||||
# extraOptions = ''
|
|
||||||
# experimental-features = nix-command flakes
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# automatic cleanup
|
# automatic cleanup
|
||||||
gc = {
|
gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
# TODO: nix-darwin uses "interval" as a key
|
dates = "weekly";
|
||||||
dates = lib.mkIf (hostname != "vasa") "weekly";
|
|
||||||
options = "--delete-older-than 21d";
|
options = "--delete-older-than 21d";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,11 @@
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.bosun;
|
cfg = config.bosun;
|
||||||
in {
|
in {
|
||||||
|
imports = [
|
||||||
|
inputs.agenix.nixosModules.default
|
||||||
|
inputs.agenix-rekey.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
options.bosun = {
|
options.bosun = {
|
||||||
rekeyPath = mkOption {
|
rekeyPath = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
cursor_trail = "1";
|
|
||||||
window_padding_width = "3 3";
|
window_padding_width = "3 3";
|
||||||
paste_actions = "no-op";
|
paste_actions = "no-op";
|
||||||
# font_family = "Monaspace Neon NF";
|
# font_family = "Monaspace Neon NF";
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,5 @@
|
||||||
./system.nix
|
./system.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./nix-ld.nix
|
./nix-ld.nix
|
||||||
./ssh.nix
|
|
||||||
./secrets.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
console = {
|
|
||||||
font = "Lat2-Terminus16";
|
|
||||||
useXkbConfig = true; # use xkbOptions in tty.
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,11 @@
|
||||||
{
|
{
|
||||||
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf;
|
||||||
|
|
||||||
sddmTheme = pkgs.sddm-astronaut.override {
|
|
||||||
embeddedTheme = "japanese_aesthetic";
|
|
||||||
themeConfig = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
#inputs.niri.nixosModules.niri
|
#inputs.niri.nixosModules.niri
|
||||||
|
|
@ -20,11 +15,9 @@ in {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wayland-utils
|
wayland-utils
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
# libsForQt5.qtstyleplugin-kvantum
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
xwayland-satellite
|
xwayland-satellite
|
||||||
nautilus
|
nautilus
|
||||||
sddmTheme
|
|
||||||
kdePackages.qtmultimedia # required for our sddm theme
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
|
|
@ -33,35 +26,21 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver.enable = true;
|
||||||
enable = true;
|
|
||||||
displayManager.setupCommands = ''
|
|
||||||
/run/current-system/sw/bin/xrandr --output HDMI-A-1 --primary
|
|
||||||
/run/current-system/sw/bin/xrandr --output DP-3 --right-of HDMI-A-1 --rotate left
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
displayManager = {
|
displayManager = {
|
||||||
defaultSession = "niri";
|
defaultSession = "niri";
|
||||||
|
|
||||||
sddm = let
|
sddm = {
|
||||||
theme = "sddm-astronaut-theme";
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.kdePackages.sddm;
|
wayland.enable = true;
|
||||||
|
|
||||||
# wayland.enable = true;
|
|
||||||
|
|
||||||
inherit theme;
|
|
||||||
extraPackages = [sddmTheme];
|
|
||||||
settings.Theme.Current = theme;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
config.common.default = "gtk";
|
config.common.default = "gtk";
|
||||||
|
|
||||||
extraPortals = with pkgs; [
|
extraPortals = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs',
|
|
||||||
inputs,
|
|
||||||
hostname,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
inputs.agenix-rekey.nixosModules.default
|
|
||||||
../generic/secrets.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
./lnxlink.nix
|
||||||
|
./beszel.nix
|
||||||
./ollama.nix
|
./ollama.nix
|
||||||
./traefik.nix
|
./traefik.nix
|
||||||
./metrics.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
28
modules/nixos/services/lnxlink.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.services.lnxlink;
|
||||||
|
in {
|
||||||
|
options.services = {
|
||||||
|
lnxlink = {
|
||||||
|
enable = mkEnableOption "Enable LNXlink";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.services.lnxlink = {
|
||||||
|
enable = true;
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
# Note: Logging will also be done to the working directory, so logs will
|
||||||
|
# be lost upon a restart.
|
||||||
|
WorkingDirectory = "/tmp";
|
||||||
|
ExecStart = "${pkgs.harbor.lnxlink}/bin/lnxlink -i -c ${./lnxlink.yaml}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
84
modules/nixos/services/lnxlink.yaml
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
mqtt:
|
||||||
|
prefix: lnxlink
|
||||||
|
clientId: cobalt
|
||||||
|
server: nanomq.intern.muehl.dev
|
||||||
|
port: 1883
|
||||||
|
auth:
|
||||||
|
user: cobalt
|
||||||
|
pass: cobalt
|
||||||
|
tls: false
|
||||||
|
keyfile: ''
|
||||||
|
certfile: ''
|
||||||
|
ca_certs: ''
|
||||||
|
discovery:
|
||||||
|
enabled: true
|
||||||
|
lwt:
|
||||||
|
enabled: true
|
||||||
|
qos: 1
|
||||||
|
clear_on_off: true
|
||||||
|
update_interval: 5
|
||||||
|
update_on_change: false
|
||||||
|
hass_url: null
|
||||||
|
hass_api: null
|
||||||
|
modules: null
|
||||||
|
custom_modules: null
|
||||||
|
exclude:
|
||||||
|
- audio_select
|
||||||
|
- active_window
|
||||||
|
- bash
|
||||||
|
- battery
|
||||||
|
- beacondb
|
||||||
|
- bluetooth
|
||||||
|
- boot_select
|
||||||
|
- brightness
|
||||||
|
- fullscreen
|
||||||
|
- gpio
|
||||||
|
- gpu
|
||||||
|
- idle
|
||||||
|
- inference_time
|
||||||
|
- ir_remote
|
||||||
|
- keep_alive
|
||||||
|
- keyboard_hotkeys
|
||||||
|
- media
|
||||||
|
- mouse
|
||||||
|
- network
|
||||||
|
- notify
|
||||||
|
- power_profile
|
||||||
|
- restful
|
||||||
|
- screen_onoff
|
||||||
|
- screenshot
|
||||||
|
- send_keys
|
||||||
|
- speech_recognition
|
||||||
|
- systemd
|
||||||
|
- sys_updates
|
||||||
|
- steam
|
||||||
|
- wifi
|
||||||
|
- webcam
|
||||||
|
- xdg_open
|
||||||
|
- wol
|
||||||
|
- docker
|
||||||
|
settings:
|
||||||
|
systemd: null
|
||||||
|
gpio:
|
||||||
|
inputs: null
|
||||||
|
outputs: null
|
||||||
|
hotkeys: null
|
||||||
|
battery:
|
||||||
|
include_batteries: []
|
||||||
|
exclude_batteries: []
|
||||||
|
disk_usage:
|
||||||
|
include_disks: []
|
||||||
|
exclude_disks: []
|
||||||
|
statistics: https://analyzer.bkbilly.workers.dev
|
||||||
|
bash:
|
||||||
|
allow_any_command: false
|
||||||
|
expose: null
|
||||||
|
mounts:
|
||||||
|
autocheck: false
|
||||||
|
directories: []
|
||||||
|
ir_remote:
|
||||||
|
receiver: null
|
||||||
|
transmitter: null
|
||||||
|
buttons: []
|
||||||
|
restful:
|
||||||
|
port: 8112
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{...}: {
|
|
||||||
services = {
|
|
||||||
tailscale = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
prometheus.exporters = {
|
|
||||||
node = {
|
|
||||||
enable = true;
|
|
||||||
port = 9000;
|
|
||||||
|
|
||||||
enabledCollectors = [
|
|
||||||
"systemd"
|
|
||||||
"swap"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# tailscale = {
|
|
||||||
# enable = true;
|
|
||||||
# port = 9001;
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{...}: {
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
# TODO: Determine which user to allow!
|
|
||||||
AllowUsers = ["toph" "root"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -16,12 +16,8 @@
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
backupFileExtension = "hm-bak";
|
|
||||||
|
|
||||||
users.toph.imports = [
|
users.toph = inputs.self.homeConfigurations."toph@${hostname}";
|
||||||
(inputs.self + "/modules/home")
|
|
||||||
(inputs.self + "/home/by-host/${hostname}")
|
|
||||||
];
|
|
||||||
|
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs hostname;
|
inherit inputs hostname;
|
||||||
|
|
@ -31,7 +27,6 @@
|
||||||
users = {
|
users = {
|
||||||
users.toph = {
|
users.toph = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
uid = 1000;
|
|
||||||
initialPassword = "wheel";
|
initialPassword = "wheel";
|
||||||
# hashedPasswordFile = config.age.secrets.tophPassword.path;
|
# hashedPasswordFile = config.age.secrets.tophPassword.path;
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,13 @@
|
||||||
# wrapper that provides channels arg to each overlay
|
# wrapper that provides channels arg to each overlay
|
||||||
withChannels = overlayFn: final: prev: let
|
withChannels = overlayFn: final: prev: let
|
||||||
# Import channels with the same config as the main nixpkgs
|
# Import channels with the same config as the main nixpkgs
|
||||||
importChannel = input:
|
importChannel = input: import input {
|
||||||
import input {
|
system = final.stdenv.hostPlatform.system;
|
||||||
system = final.stdenv.hostPlatform.system;
|
config = final.config;
|
||||||
config = final.config;
|
};
|
||||||
};
|
|
||||||
in
|
in
|
||||||
overlayFn {
|
overlayFn {
|
||||||
inherit inputs lib;
|
inherit inputs;
|
||||||
channels =
|
channels =
|
||||||
{
|
{
|
||||||
nixpkgs = final;
|
nixpkgs = final;
|
||||||
|
|
@ -32,5 +31,4 @@ in [
|
||||||
(withChannels (import ./lix.nix))
|
(withChannels (import ./lix.nix))
|
||||||
(withChannels (import ./packages.nix))
|
(withChannels (import ./packages.nix))
|
||||||
(withChannels (import ./unstable.nix))
|
(withChannels (import ./unstable.nix))
|
||||||
(withChannels (import ./spacedrive.nix))
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
channels,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: final: prev: {
|
|
||||||
spacedrive-v2 = channels.unstable.spacedrive.overrideAttrs (old: {
|
|
||||||
version = "2.0.0-alpha.1";
|
|
||||||
src = prev.fetchurl {
|
|
||||||
url = "https://github.com/spacedriveapp/spacedrive/releases/download/v2.0.0-alpha.1/Spacedrive-linux-x86_64.deb";
|
|
||||||
hash = "sha256-26qxNO17DTYQSYtH6aRy0PoNpb4BGeoZWOQWZtfV3IY=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs =
|
|
||||||
(old.buildInputs or [])
|
|
||||||
++ (with channels.unstable; [
|
|
||||||
libheif
|
|
||||||
ffmpeg_7-full.lib
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
37
packages/lnxlink/package.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
pkgs.python3Packages.buildPythonApplication {
|
||||||
|
pname = "lnxlink";
|
||||||
|
version = "2025.7.0";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
# Linking my fork here which allows for newer versions of setuptools and wheel.
|
||||||
|
# Also includes some fixes that make the program actually work with NixOS.
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "padarom";
|
||||||
|
repo = "lnxlink";
|
||||||
|
rev = "7202e48";
|
||||||
|
hash = "sha256-E2J1d9D5SJWGEutAPAo1BM98cMzH7QrqIz3yrlXpzGE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = with pkgs.python3Packages; [setuptools wheel];
|
||||||
|
dependencies = with pkgs.python3Packages; [
|
||||||
|
distro
|
||||||
|
pyyaml
|
||||||
|
paho-mqtt
|
||||||
|
requests
|
||||||
|
psutil
|
||||||
|
inotify
|
||||||
|
jeepney
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/bkbilly/lnxlink";
|
||||||
|
description = "Effortlessly manage your Linux machine using MQTT.";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
mainProgram = "lnxlink";
|
||||||
|
};
|
||||||
|
}
|
||||||
35
packages/oxigraph/package.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
fetchurl,
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "oxigraph";
|
||||||
|
version = "0.5.3-post.1";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/oxigraph/oxigraph/releases/download/v${version}/oxigraph_v${version}_x86_64_linux_gnu";
|
||||||
|
hash = "sha256-6yLJ8wuhGu2GoCWMji+Lt1WoDZxRmTLXVMwKb3+ByRQ=";
|
||||||
|
};
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $src $out/bin/oxigraph
|
||||||
|
chmod +x $out/bin/oxigraph
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "SPARQL graph database";
|
||||||
|
homepage = "https://github.com/oxigraph/oxigraph";
|
||||||
|
license = with licenses; [asl20 mit];
|
||||||
|
maintainers = [];
|
||||||
|
mainProgram = "oxigraph";
|
||||||
|
platforms = ["x86_64-linux"];
|
||||||
|
};
|
||||||
|
}
|
||||||
5
packages/solidtime-desktop/package.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{pkgs, ...}:
|
||||||
|
pkgs.writeShellApplication {
|
||||||
|
name = "connect-to-mercury";
|
||||||
|
text = builtins.readFile ./connect-to-mercury;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 /u/eYA BvO3LN0SaFuuw7V5V+qRkAKFtW+ASCtMEo+HBOnccRk
|
||||||
|
2tdN2DqV/NKLX00LBp012xqimkBCdbZBFPXoQOWDqKc
|
||||||
|
-> ig7-grease 0X s
|
||||||
|
I8yjO2SGIHc0WeWWDQ51XA
|
||||||
|
--- ADjzRKqqYst1LvYy8n4DsZnHLiBFv+r+H+NdiHJ8V64
|
||||||
|
?¬´~<cô¨ÄmUP”æå³Ñ(ÊnÉq<C389>?“×p°ï<C2B0>RµVÒJt?Ù%Å´Ëhg,žó<C5BE>‘À±éCÓ-wÓÄšnÊšNa¹‰9<E280B0>“¹|Fz_ß'jíÂ’<C382>`<60>lœâî*Z1åBP¾"búá‘ò/ñôÒΓWærßa¥ïÓÞ¾"Œy?Ö$¸‰„,jÞn#¯ŒÎ;îw…óí[ŽËɳœ
|
||||||