Install copyparty
Move some services and configurations around
This commit is contained in:
parent
722c44532d
commit
54e67cf2de
15 changed files with 318 additions and 105 deletions
129
flake.lock
generated
129
flake.lock
generated
|
|
@ -80,6 +80,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copyparty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758061721,
|
||||||
|
"narHash": "sha256-+agPUV+fOJSpqjVOEM0xC8+xhBFbnQesyy+8ErwGpks=",
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"rev": "5996a58b20fa015bd404dfdb2cef8892909b3d69",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -249,6 +268,40 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678901627,
|
||||||
|
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils-plus": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715533576,
|
||||||
|
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
|
|
@ -266,25 +319,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils-plus": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1715533576,
|
|
||||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -463,7 +497,7 @@
|
||||||
"hyprlang": "hyprlang_2",
|
"hyprlang": "hyprlang_2",
|
||||||
"hyprutils": "hyprutils_2",
|
"hyprutils": "hyprutils_2",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner_2",
|
"hyprwayland-scanner": "hyprwayland-scanner_2",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"pre-commit-hooks": "pre-commit-hooks_2",
|
"pre-commit-hooks": "pre-commit-hooks_2",
|
||||||
"systems": "systems_3",
|
"systems": "systems_3",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
|
|
@ -758,6 +792,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"musnix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756852730,
|
||||||
|
"narHash": "sha256-qPere4RBHoZxiEGl8zXU8gjroZg4gkYGEwaAbKmL4vE=",
|
||||||
|
"owner": "musnix",
|
||||||
|
"repo": "musnix",
|
||||||
|
"rev": "7ccc92050e43dc92309396c6f2fe1f542214a242",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "musnix",
|
||||||
|
"repo": "musnix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-filter": {
|
"nix-filter": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1693833173,
|
"lastModified": 1693833173,
|
||||||
|
|
@ -774,6 +826,21 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748162331,
|
||||||
|
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754725699,
|
"lastModified": 1754725699,
|
||||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||||
|
|
@ -789,7 +856,23 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756542300,
|
||||||
|
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755186698,
|
"lastModified": 1755186698,
|
||||||
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
||||||
|
|
@ -855,13 +938,15 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"agenix-rekey": "agenix-rekey",
|
"agenix-rekey": "agenix-rekey",
|
||||||
|
"copyparty": "copyparty",
|
||||||
"darwin": "darwin_2",
|
"darwin": "darwin_2",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"docker-compose-1": "docker-compose-1",
|
"docker-compose-1": "docker-compose-1",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"hypridle": "hypridle",
|
"hypridle": "hypridle",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"musnix": "musnix",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
|
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
|
||||||
"snowfall": "snowfall",
|
"snowfall": "snowfall",
|
||||||
"split-monitor-workspaces": "split-monitor-workspaces"
|
"split-monitor-workspaces": "split-monitor-workspaces"
|
||||||
|
|
|
||||||
17
flake.nix
17
flake.nix
|
|
@ -14,8 +14,10 @@
|
||||||
# Global system modules to be included for all systems
|
# Global system modules to be included for all systems
|
||||||
systems.modules = with inputs; {
|
systems.modules = with inputs; {
|
||||||
nixos = [
|
nixos = [
|
||||||
|
disko.nixosModules.default
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
agenix-rekey.nixosModules.default
|
agenix-rekey.nixosModules.default
|
||||||
|
copyparty.nixosModules.default
|
||||||
./modules/common
|
./modules/common
|
||||||
];
|
];
|
||||||
darwin = [
|
darwin = [
|
||||||
|
|
@ -28,10 +30,11 @@
|
||||||
# Add modules only to specific hosts
|
# Add modules only to specific hosts
|
||||||
systems.hosts = with inputs; {
|
systems.hosts = with inputs; {
|
||||||
cobalt.modules = [
|
cobalt.modules = [
|
||||||
disko.nixosModules.default
|
copyparty.nixosModules.default
|
||||||
|
musnix.nixosModules.default
|
||||||
];
|
];
|
||||||
mercury.modules = [
|
beryllium.modules = [
|
||||||
disko.nixosModules.default
|
copyparty.nixosModules.default
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -42,6 +45,10 @@
|
||||||
permittedInsecurePackages = [];
|
permittedInsecurePackages = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
overlays = with inputs; [
|
||||||
|
copyparty.overlays.default
|
||||||
|
];
|
||||||
|
|
||||||
outputs-builder = channels: {
|
outputs-builder = channels: {
|
||||||
formatter = channels.nixpkgs.alejandra;
|
formatter = channels.nixpkgs.alejandra;
|
||||||
};
|
};
|
||||||
|
|
@ -83,6 +90,8 @@
|
||||||
agenix-rekey.url = "github:oddlama/agenix-rekey";
|
agenix-rekey.url = "github:oddlama/agenix-rekey";
|
||||||
agenix-rekey.inputs.nixpkgs.follows = "nixpkgs";
|
agenix-rekey.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
copyparty.url = "github:9001/copyparty";
|
||||||
|
|
||||||
hyprland.url = "github:hyprwm/hyprland";
|
hyprland.url = "github:hyprwm/hyprland";
|
||||||
|
|
||||||
hypridle = {
|
hypridle = {
|
||||||
|
|
@ -101,6 +110,8 @@
|
||||||
inputs.hyprland.follows = "hyprland";
|
inputs.hyprland.follows = "hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
musnix.url = "github:musnix/musnix";
|
||||||
|
|
||||||
docker-compose-1.url = github:nixos/nixpkgs/b0f0b5c6c021ebafbd322899aa9a54b87d75a313;
|
docker-compose-1.url = github:nixos/nixpkgs/b0f0b5c6c021ebafbd322899aa9a54b87d75a313;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHl33DPxxzxrNNjM8rL4ktAj4ExzCyGiU8rKog0csxNA";
|
||||||
|
|
||||||
needs = {
|
needs = {
|
||||||
|
copypartyPassword = "copyparty-password.age";
|
||||||
repoUpdatePAT = "repo-update-pat.age";
|
repoUpdatePAT = "repo-update-pat.age";
|
||||||
npmrc = {
|
npmrc = {
|
||||||
rekeyFile = "npmrc.age";
|
rekeyFile = "npmrc.age";
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,12 @@
|
||||||
solaar # Logitech mouse driver
|
solaar # Logitech mouse driver
|
||||||
btop # Better resource monitor
|
btop # Better resource monitor
|
||||||
bottom # System resource monitor
|
bottom # System resource monitor
|
||||||
|
copyparty
|
||||||
|
|
||||||
# GUI
|
# GUI
|
||||||
vcv-rack # Audio synthesizer/eurorack simulator
|
vcv-rack # Audio synthesizer/eurorack simulator
|
||||||
|
ardour # General DAW
|
||||||
|
reaper # Narrating DAW
|
||||||
vlc # Video player
|
vlc # Video player
|
||||||
todoist-electron # Todo application
|
todoist-electron # Todo application
|
||||||
logseq # Knowledge Base
|
logseq # Knowledge Base
|
||||||
|
|
@ -38,7 +41,7 @@
|
||||||
# spacedrive # File explorer (Alpha, not usable yet)
|
# spacedrive # File explorer (Alpha, not usable yet)
|
||||||
thunderbird # Email client
|
thunderbird # Email client
|
||||||
speedcrunch # GUI calculator app
|
speedcrunch # GUI calculator app
|
||||||
shotcut # Video editing
|
davinci-resolve # Video editing
|
||||||
naps2 # Scanning
|
naps2 # Scanning
|
||||||
|
|
||||||
feh # Image viewer
|
feh # Image viewer
|
||||||
|
|
|
||||||
|
|
@ -13,11 +13,8 @@
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
|
||||||
# wine
|
|
||||||
#(wineWowPackages.stable.override {waylandSupport = true;})
|
|
||||||
#winetricks
|
|
||||||
|
|
||||||
gamemode # performance mode
|
gamemode # performance mode
|
||||||
mangohud # performance overlays
|
mangohud # performance overlays
|
||||||
|
alvr
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
home.packages = with pkgs; [tofi];
|
home.packages = with pkgs; [
|
||||||
|
tofi
|
||||||
|
fuzzel
|
||||||
|
];
|
||||||
|
|
||||||
# Clear the tofi cache after each activation so that newly installed packages
|
# Clear the tofi cache after each activation so that newly installed packages
|
||||||
# are immediately available using tofi-drun.
|
# are immediately available using tofi-drun.
|
||||||
|
|
|
||||||
36
modules/nixos/services/beszel.nix
Normal file
36
modules/nixos/services/beszel.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.services.beszel-agent;
|
||||||
|
in {
|
||||||
|
options.services = {
|
||||||
|
beszel-agent = {
|
||||||
|
enable = mkEnableOption "Enable the Beszel Agent";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.beszel
|
||||||
|
pkgs.rocmPackages.rocm-smi # Interface with AMD GPUs
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.services.beszel-agent = {
|
||||||
|
enable = true;
|
||||||
|
description = "Beszel Agent (remote monitoring)";
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkUPOw28Cu2LMuzfmvjT/L2ToNHcADwGyGvSpJ4wH2T";
|
||||||
|
LISTEN = "45876";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.beszel}/bin/beszel-agent";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./lnxlink.nix
|
./lnxlink.nix
|
||||||
|
./beszel.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
69
modules/nixos/wm/default.nix
Normal file
69
modules/nixos/wm/default.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.elements.wm;
|
||||||
|
tuigreet = "${pkgs.tuigreet}/bin/tuigreet";
|
||||||
|
hyprland-pkg = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
hyprland-portal-pkg = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||||
|
hyprland-session = "${hyprland-pkg}/share/wayland-sessions";
|
||||||
|
in {
|
||||||
|
options.elements = {
|
||||||
|
wm = {
|
||||||
|
enable = mkEnableOption "Enable window manager configuration";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
swaynotificationcenter
|
||||||
|
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
|
||||||
|
xwayland-satellite
|
||||||
|
hyprshot
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
package = hyprland-pkg;
|
||||||
|
portalPackage = hyprland-portal-pkg;
|
||||||
|
};
|
||||||
|
|
||||||
|
security = {
|
||||||
|
polkit.enable = true;
|
||||||
|
pam.services.swaylock = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
config.common.default = ["hyprland"];
|
||||||
|
config.hyprland.default = ["wlr" "gtk"];
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
wlr.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${tuigreet} --asterisks --time --remember --remember-session --sessions ${hyprland-session}";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
StandardInput = "tty";
|
||||||
|
StandardOutput = "tty";
|
||||||
|
StandardError = "journal";
|
||||||
|
TTYReset = true;
|
||||||
|
TTYVHangup = true;
|
||||||
|
TTYVTDisallocate = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
secrets/copyparty-password.age
Normal file
BIN
secrets/copyparty-password.age
Normal file
Binary file not shown.
|
|
@ -0,0 +1,8 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 Sih9FA 0KicXG2Efz0e9uzmZVEVfJT/i7enxSZOHN403NX/TQI
|
||||||
|
SMTWuslXUrZ4uTAAoBJPW2qI/uyUpirNs+qutENWpEY
|
||||||
|
-> u1J0d-grease 3Yf,I\u njKv!al
|
||||||
|
7tlxC1cHMMzeCC9BuAmRXuC19dLT2Oa416bN5ZEU9y7bKKwxdlHDCQA40E8yuSRk
|
||||||
|
asdGgYzSxPIqTwIsTQ
|
||||||
|
--- S+Dtx+pCwnQtyh1lSa7CA1wy0Ye4Yy8rqg5RXXFAVPc
|
||||||
|
Ð$z°M2ú¬\ö°Øz:N@—:¯,3Àzy¥ñf €U<E282AC>7áëÁŠˆx
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 /u/eYA xmiJ76GC9OgIuJcMRzPK1Mwo1DdRsAc1LPXbpshXag8
|
||||||
|
5WmXKC4YQhc9qqmQVs26GXXlpmxh7rYvww3L0FPLmPQ
|
||||||
|
-> ]KoF}\i-grease _q#e
|
||||||
|
JnCuJ2FjXe3WtG0VmvNj3ww+sa7i
|
||||||
|
--- YdgtSb+pPQgjgdtY7XLBHGcbWPLDXd0ph7s6Pq3Sn7M
|
||||||
|
õ´½£˜XŽSÿ¹Pf´âѧٕjÀMåV\»ÍÏãçæm«TpY4Âs»Rï0
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.beszel
|
|
||||||
pkgs.rocmPackages.rocm-smi # Interface with AMD GPUs
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.beszel-agent = {
|
|
||||||
enable = true;
|
|
||||||
description = "Beszel Agent (remote monitoring)";
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkUPOw28Cu2LMuzfmvjT/L2ToNHcADwGyGvSpJ4wH2T";
|
|
||||||
LISTEN = "45876";
|
|
||||||
};
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.beszel}/bin/beszel-agent";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -4,30 +4,42 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib._elements; {
|
with lib._elements; {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./disk-config.nix
|
./disk-config.nix
|
||||||
./beszel-agent.nix
|
|
||||||
|
|
||||||
./wayland.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
elements = {
|
elements = {
|
||||||
hostname = "cobalt";
|
hostname = "cobalt";
|
||||||
users = ["christopher"];
|
users = ["christopher"];
|
||||||
quirks = ["avahi" "docker" "nix-ld"];
|
quirks = ["avahi" "docker" "nix-ld"];
|
||||||
|
wm = enabled;
|
||||||
|
|
||||||
secrets = {
|
secrets = {
|
||||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
|
||||||
|
|
||||||
|
needs = {
|
||||||
|
copypartyPassword = rec {
|
||||||
|
owner = "christopher";
|
||||||
|
group = owner;
|
||||||
|
rekeyFile = "copyparty-password.age";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set the default drive
|
# Set the default drive
|
||||||
disko.devices.disk.main.device = "/dev/nvme1n1";
|
disko.devices.disk.main.device = "/dev/nvme1n1";
|
||||||
|
|
||||||
|
musnix = {
|
||||||
|
enable = true;
|
||||||
|
rtcqs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme = "gnome";
|
platformTheme = "gnome";
|
||||||
|
|
@ -50,12 +62,7 @@ with lib._elements; {
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config.common.default = ["hyprland"];
|
xdgOpenUsePortal = true;
|
||||||
config.hyprland.default = ["wlr" "gtk"];
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
wlr.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
@ -84,19 +91,31 @@ with lib._elements; {
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
openssh.enable = true;
|
||||||
|
openssh.settings.PasswordAuthentication = false;
|
||||||
|
|
||||||
# Bluetooth manager
|
# Bluetooth manager
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
|
|
||||||
# Linux link via MQTT
|
# Linux link via MQTT
|
||||||
lnxlink.enable = true;
|
lnxlink.enable = true;
|
||||||
|
beszel-agent.enable = true;
|
||||||
|
|
||||||
pulseaudio.enable = true;
|
pipewire = {
|
||||||
pulseaudio.support32Bit = true;
|
enable = lib.mkForce true;
|
||||||
pipewire.enable = lib.mkForce false;
|
alsa.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Automatic mounting of removable media
|
# Automatic mounting of removable media
|
||||||
udisks2.enable = true;
|
udisks2.enable = true;
|
||||||
|
|
||||||
|
usbmuxd = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.usbmuxd2;
|
||||||
|
};
|
||||||
|
|
||||||
gvfs.enable = true; # Mount/trash/...
|
gvfs.enable = true; # Mount/trash/...
|
||||||
tumbler.enable = true; # Thumbnail support in Thunar
|
tumbler.enable = true; # Thumbnail support in Thunar
|
||||||
|
|
||||||
|
|
@ -116,6 +135,38 @@ with lib._elements; {
|
||||||
|
|
||||||
# Smartcard support, necessary for Yubikey logins
|
# Smartcard support, necessary for Yubikey logins
|
||||||
pcscd.enable = true;
|
pcscd.enable = true;
|
||||||
|
|
||||||
|
copyparty = {
|
||||||
|
enable = false;
|
||||||
|
user = "christopher";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
i = "0.0.0.0";
|
||||||
|
};
|
||||||
|
|
||||||
|
accounts.c.passwordFile = config.age.secrets.copypartyPassword.path;
|
||||||
|
|
||||||
|
volumes = {
|
||||||
|
"/" = {
|
||||||
|
path = "/home/christopher";
|
||||||
|
access.rwmdga = "c";
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
e2d = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"/hdd" = {
|
||||||
|
path = "/mnt/hdd";
|
||||||
|
access.rwmdga = "c";
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
e2d = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
@ -141,8 +192,11 @@ with lib._elements; {
|
||||||
htop
|
htop
|
||||||
gnumake
|
gnumake
|
||||||
libnotify
|
libnotify
|
||||||
|
gtk3
|
||||||
|
|
||||||
lact # GPU tuning
|
lact # GPU tuning
|
||||||
|
libimobiledevice
|
||||||
|
ifuse
|
||||||
|
|
||||||
# Oxidized coreutils
|
# Oxidized coreutils
|
||||||
uutils-coreutils-noprefix
|
uutils-coreutils-noprefix
|
||||||
|
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
tuigreet = "${pkgs.tuigreet}/bin/tuigreet";
|
|
||||||
hyprland-pkg = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
|
||||||
hyprland-portal-pkg = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
|
||||||
hyprland-session = "${hyprland-pkg}/share/wayland-sessions";
|
|
||||||
in {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
swaynotificationcenter # Notification daemon for Wayland
|
|
||||||
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
|
|
||||||
hyprshot
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
package = hyprland-pkg;
|
|
||||||
portalPackage = hyprland-portal-pkg;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings = rec {
|
|
||||||
default_session = {
|
|
||||||
command = "${tuigreet} --asterisks --time --remember --remember-session --sessions ${hyprland-session}";
|
|
||||||
user = "greeter";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.greetd.serviceConfig = {
|
|
||||||
Type = "idle";
|
|
||||||
StandardInput = "tty";
|
|
||||||
StandardOutput = "tty";
|
|
||||||
StandardError = "journal";
|
|
||||||
TTYReset = true;
|
|
||||||
TTYVHangup = true;
|
|
||||||
TTYVTDisallocate = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Reference in a new issue