formatting
This commit is contained in:
parent
7ce780986b
commit
415715a4f9
58 changed files with 398 additions and 229 deletions
123
flake.nix
123
flake.nix
|
|
@ -41,67 +41,74 @@
|
||||||
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
self,
|
{
|
||||||
nixpkgs,
|
self,
|
||||||
nix-on-droid,
|
nixpkgs,
|
||||||
deploy-rs,
|
nix-on-droid,
|
||||||
...
|
deploy-rs,
|
||||||
} @ inputs: let
|
...
|
||||||
inherit (self) outputs;
|
}@inputs:
|
||||||
supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
|
let
|
||||||
forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system);
|
inherit (self) outputs;
|
||||||
makePkgs = system: import nixpkgs { inherit system; };
|
supportedSystems = [
|
||||||
in {
|
"x86_64-linux"
|
||||||
nixosConfigurations = {
|
"aarch64-linux"
|
||||||
tartarus = nixpkgs.lib.nixosSystem {
|
"x86_64-darwin"
|
||||||
specialArgs = {inherit inputs outputs;};
|
];
|
||||||
modules = [./hosts/tartarus/configuration.nix];
|
forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system);
|
||||||
|
makePkgs = system: import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
tartarus = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/tartarus/configuration.nix ];
|
||||||
|
};
|
||||||
|
ymir = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/ymir/configuration.nix ];
|
||||||
|
};
|
||||||
|
harmonica = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/harmonica/configuration.nix ];
|
||||||
|
};
|
||||||
|
harmonica-sd = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/harmonica-sd/configuration.nix ];
|
||||||
|
};
|
||||||
|
pochita = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/pochita/configuration.nix ];
|
||||||
|
};
|
||||||
|
pochita-sd = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/pochita-sd/configuration.nix ];
|
||||||
|
};
|
||||||
|
myISO = nixpkgs.lib.nixosSystem {
|
||||||
|
modules = [
|
||||||
|
./hosts/iso/configuration.nix
|
||||||
|
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wallfacer = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [ ./hosts/wallfacer/configuration.nix ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
ymir = nixpkgs.lib.nixosSystem {
|
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
|
||||||
specialArgs = {inherit inputs outputs;};
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = [./hosts/ymir/configuration.nix];
|
pkgs = import nixpkgs { system = "aarch64-linux"; };
|
||||||
|
modules = [ ./hosts/atreus/configuration.nix ];
|
||||||
};
|
};
|
||||||
harmonica = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [./hosts/harmonica/configuration.nix];
|
|
||||||
};
|
|
||||||
harmonica-sd = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [./hosts/harmonica-sd/configuration.nix];
|
|
||||||
};
|
|
||||||
pochita = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [./hosts/pochita/configuration.nix];
|
|
||||||
};
|
|
||||||
pochita-sd = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [./hosts/pochita-sd/configuration.nix];
|
|
||||||
};
|
|
||||||
myISO = nixpkgs.lib.nixosSystem {
|
|
||||||
modules = [
|
|
||||||
./hosts/iso/configuration.nix
|
|
||||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
wallfacer = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs;};
|
|
||||||
modules = [./hosts/wallfacer/configuration.nix];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
|
|
||||||
extraSpecialArgs = {inherit inputs outputs;};
|
|
||||||
pkgs = import nixpkgs {system = "aarch64-linux";};
|
|
||||||
modules = [./hosts/atreus/configuration.nix];
|
|
||||||
};
|
|
||||||
|
|
||||||
formatter = forAllSystems (system: (makePkgs system).nixfmt-rfc-style);
|
formatter = forAllSystems (system: (makePkgs system).nixfmt-rfc-style);
|
||||||
deploy.nodes.harmonica = {
|
deploy.nodes.harmonica = {
|
||||||
hostname = "192.168.0.11";
|
hostname = "192.168.0.11";
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "osbm";
|
user = "osbm";
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.harmonica;
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.harmonica;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options.enableAlacritty = lib.mkEnableOption "Alacritty terminal emulator";
|
options.enableAlacritty = lib.mkEnableOption "Alacritty terminal emulator";
|
||||||
config = {
|
config = {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
|
|
@ -14,7 +15,12 @@
|
||||||
normal.family = "Cascadia Code";
|
normal.family = "Cascadia Code";
|
||||||
};
|
};
|
||||||
terminal.shell = {
|
terminal.shell = {
|
||||||
args = ["new-session" "-A" "-s" "general"];
|
args = [
|
||||||
|
"new-session"
|
||||||
|
"-A"
|
||||||
|
"-s"
|
||||||
|
"general"
|
||||||
|
];
|
||||||
program = lib.getExe pkgs.tmux;
|
program = lib.getExe pkgs.tmux;
|
||||||
};
|
};
|
||||||
window = {
|
window = {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options.enableFirefox = lib.mkEnableOption "enableFirefox";
|
options.enableFirefox = lib.mkEnableOption "enableFirefox";
|
||||||
config = {
|
config = {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
|
|
@ -32,15 +33,17 @@
|
||||||
DisplayBookmarksToolbar = "always"; # alternatives: "never" or "newtab"
|
DisplayBookmarksToolbar = "always"; # alternatives: "never" or "newtab"
|
||||||
# DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
# DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||||
# SearchBar = "unified"; # alternat
|
# SearchBar = "unified"; # alternat
|
||||||
ExtensionSettings = with builtins; let
|
ExtensionSettings =
|
||||||
extension = shortId: uuid: {
|
with builtins;
|
||||||
name = uuid;
|
let
|
||||||
value = {
|
extension = shortId: uuid: {
|
||||||
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
name = uuid;
|
||||||
installation_mode = "normal_installed";
|
value = {
|
||||||
|
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
||||||
|
installation_mode = "normal_installed";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
in
|
||||||
in
|
|
||||||
listToAttrs [
|
listToAttrs [
|
||||||
(extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp")
|
(extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp")
|
||||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options.enableGhostty = lib.mkEnableOption "Ghostty terminal emulator";
|
options.enableGhostty = lib.mkEnableOption "Ghostty terminal emulator";
|
||||||
config = {
|
config = {
|
||||||
programs.ghostty = {
|
programs.ghostty = {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
# Enable the GTK theme
|
# Enable the GTK theme
|
||||||
enableGTK = lib.mkEnableOption "enableGTK";
|
enableGTK = lib.mkEnableOption "enableGTK";
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./alacritty.nix
|
./alacritty.nix
|
||||||
./tmux
|
./tmux
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{...}: let
|
{ ... }:
|
||||||
|
let
|
||||||
# define a block that just takes a hostname and returns attrset to not repeat the same fields
|
# define a block that just takes a hostname and returns attrset to not repeat the same fields
|
||||||
sshBlock = hostname: {
|
sshBlock = hostname: {
|
||||||
hostname = hostname;
|
hostname = hostname;
|
||||||
|
|
@ -18,7 +19,8 @@
|
||||||
port = 8022;
|
port = 8022;
|
||||||
# fish not found error ???
|
# fish not found error ???
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hashKnownHosts = true;
|
hashKnownHosts = true;
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
}:
|
}:
|
||||||
# stolen from https://github.com/dmarcoux/dotfiles
|
# stolen from https://github.com/dmarcoux/dotfiles
|
||||||
{
|
{
|
||||||
home.packages = [pkgs.tlrc];
|
home.packages = [ pkgs.tlrc ];
|
||||||
xdg.configFile."tlrc/config.toml".text = ''
|
xdg.configFile."tlrc/config.toml".text = ''
|
||||||
[cache]
|
[cache]
|
||||||
dir = "${config.xdg.cacheHome}/tlrc"
|
dir = "${config.xdg.cacheHome}/tlrc"
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,11 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
wanikani-current-reviews-script = builtins.path {path = ./wanikani-current-reviews.sh;};
|
let
|
||||||
wanikani-level-script = builtins.path {path = ./wanikani-level.sh;};
|
wanikani-current-reviews-script = builtins.path { path = ./wanikani-current-reviews.sh; };
|
||||||
wanikani-progression-script = builtins.path {path = ./wanikani-progression.sh;};
|
wanikani-level-script = builtins.path { path = ./wanikani-level.sh; };
|
||||||
|
wanikani-progression-script = builtins.path { path = ./wanikani-progression.sh; };
|
||||||
tmux-dracula = pkgs.tmuxPlugins.mkTmuxPlugin rec {
|
tmux-dracula = pkgs.tmuxPlugins.mkTmuxPlugin rec {
|
||||||
pluginName = "dracula";
|
pluginName = "dracula";
|
||||||
version = "3.0.0";
|
version = "3.0.0";
|
||||||
|
|
@ -26,10 +27,11 @@
|
||||||
description = "Feature packed Dracula theme for tmux!";
|
description = "Feature packed Dracula theme for tmux!";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = with maintainers; [ethancedwards8];
|
maintainers = with maintainers; [ ethancedwards8 ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
historyLimit = 100000;
|
historyLimit = 100000;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options.enableWezterm = lib.mkEnableOption "Wezterm terminal emulator";
|
options.enableWezterm = lib.mkEnableOption "Wezterm terminal emulator";
|
||||||
config = {
|
config = {
|
||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
user.userName = lib.mkForce "osbm"; # fuck i hate unmaintained projects
|
user.userName = lib.mkForce "osbm"; # fuck i hate unmaintained projects
|
||||||
environment.packages = with pkgs; [
|
environment.packages = with pkgs; [
|
||||||
vim # or some other editor, e.g. nano or neovim
|
vim # or some other editor, e.g. nano or neovim
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./sd-image.nix
|
./sd-image.nix
|
||||||
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
||||||
|
|
@ -28,7 +29,7 @@
|
||||||
interfaces."wlan0".useDHCP = true;
|
interfaces."wlan0".useDHCP = true;
|
||||||
wireless = {
|
wireless = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interfaces = ["wlan0"];
|
interfaces = [ "wlan0" ];
|
||||||
networks = {
|
networks = {
|
||||||
"House_Bayram" = {
|
"House_Bayram" = {
|
||||||
psk = "PASSWORD";
|
psk = "PASSWORD";
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Some packages (ahci fail... this bypasses that) https://discourse.nixos.org/t/does-pkgs-linuxpackages-rpi3-build-all-required-kernel-modules/42509
|
# Some packages (ahci fail... this bypasses that) https://discourse.nixos.org/t/does-pkgs-linuxpackages-rpi3-build-all-required-kernel-modules/42509
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: super: {
|
(final: super: {
|
||||||
makeModulesClosure = x:
|
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
|
||||||
super.makeModulesClosure (x // {allowMissing = true;});
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
enableRedistributableFirmware = lib.mkForce false;
|
enableRedistributableFirmware = lib.mkForce false;
|
||||||
firmware = [pkgs.raspberrypiWirelessFirmware]; # Keep this to make sure wifi works
|
firmware = [ pkgs.raspberrypiWirelessFirmware ]; # Keep this to make sure wifi works
|
||||||
i2c.enable = true;
|
i2c.enable = true;
|
||||||
deviceTree.filter = "bcm2837-rpi-zero*.dtb";
|
deviceTree.filter = "bcm2837-rpi-zero*.dtb";
|
||||||
deviceTree.overlays = [
|
deviceTree.overlays = [
|
||||||
|
|
@ -63,7 +63,11 @@
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_rpi02w;
|
kernelPackages = pkgs.linuxPackages_rpi02w;
|
||||||
|
|
||||||
initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage"];
|
initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
];
|
||||||
loader = {
|
loader = {
|
||||||
grub.enable = false;
|
grub.enable = false;
|
||||||
generic-extlinux-compatible.enable = true;
|
generic-extlinux-compatible.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,12 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options.sdImage = with lib; {
|
options.sdImage = with lib; {
|
||||||
extraFirmwareConfig = mkOption {
|
extraFirmwareConfig = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = {};
|
default = { };
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Extra configuration to be added to config.txt.
|
Extra configuration to be added to config.txt.
|
||||||
'';
|
'';
|
||||||
|
|
@ -18,15 +19,14 @@
|
||||||
config = {
|
config = {
|
||||||
sdImage.populateFirmwareCommands =
|
sdImage.populateFirmwareCommands =
|
||||||
lib.mkIf ((lib.length (lib.attrValues config.sdImage.extraFirmwareConfig)) > 0)
|
lib.mkIf ((lib.length (lib.attrValues config.sdImage.extraFirmwareConfig)) > 0)
|
||||||
(
|
(
|
||||||
let
|
let
|
||||||
# Convert the set into a string of lines of "key=value" pairs.
|
# Convert the set into a string of lines of "key=value" pairs.
|
||||||
keyValueMap = name: value: name + "=" + toString value;
|
keyValueMap = name: value: name + "=" + toString value;
|
||||||
keyValueList = lib.mapAttrsToList keyValueMap config.sdImage.extraFirmwareConfig;
|
keyValueList = lib.mapAttrsToList keyValueMap config.sdImage.extraFirmwareConfig;
|
||||||
extraFirmwareConfigString = lib.concatStringsSep "\n" keyValueList;
|
extraFirmwareConfigString = lib.concatStringsSep "\n" keyValueList;
|
||||||
in
|
in
|
||||||
lib.mkAfter
|
lib.mkAfter ''
|
||||||
''
|
|
||||||
config=firmware/config.txt
|
config=firmware/config.txt
|
||||||
# The initial file has just been created without write permissions. Add them to be able to append the file.
|
# The initial file has just been created without write permissions. Add them to be able to append the file.
|
||||||
chmod u+w $config
|
chmod u+w $config
|
||||||
|
|
@ -34,6 +34,6 @@
|
||||||
echo "${extraFirmwareConfigString}" >> $config
|
echo "${extraFirmwareConfigString}" >> $config
|
||||||
chmod u-w $config
|
chmod u-w $config
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# Some packages (ahci fail... this bypasses that) https://discourse.nixos.org/t/does-pkgs-linuxpackages-rpi3-build-all-required-kernel-modules/42509
|
# Some packages (ahci fail... this bypasses that) https://discourse.nixos.org/t/does-pkgs-linuxpackages-rpi3-build-all-required-kernel-modules/42509
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: super: {
|
(final: super: {
|
||||||
makeModulesClosure = x:
|
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
|
||||||
super.makeModulesClosure (x // {allowMissing = true;});
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
enableRedistributableFirmware = lib.mkForce false;
|
enableRedistributableFirmware = lib.mkForce false;
|
||||||
firmware = [pkgs.raspberrypiWirelessFirmware]; # Keep this to make sure wifi works
|
firmware = [ pkgs.raspberrypiWirelessFirmware ]; # Keep this to make sure wifi works
|
||||||
i2c.enable = true;
|
i2c.enable = true;
|
||||||
deviceTree.filter = "bcm2837-rpi-zero*.dtb";
|
deviceTree.filter = "bcm2837-rpi-zero*.dtb";
|
||||||
deviceTree.overlays = [
|
deviceTree.overlays = [
|
||||||
|
|
@ -49,7 +49,11 @@
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_rpi02w;
|
kernelPackages = pkgs.linuxPackages_rpi02w;
|
||||||
|
|
||||||
initrd.availableKernelModules = ["xhci_pci" "usbhid" "usb_storage"];
|
initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
];
|
||||||
loader = {
|
loader = {
|
||||||
grub.enable = false;
|
grub.enable = false;
|
||||||
generic-extlinux-compatible.enable = true;
|
generic-extlinux-compatible.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.raspberry-pi-nix.nixosModules.raspberry-pi
|
inputs.raspberry-pi-nix.nixosModules.raspberry-pi
|
||||||
inputs.raspberry-pi-nix.nixosModules.sd-image
|
inputs.raspberry-pi-nix.nixosModules.sd-image
|
||||||
|
|
@ -19,7 +20,7 @@
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.osbm = {
|
users.users.osbm = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = ["wheel"]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
initialPassword = "changeme";
|
initialPassword = "changeme";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -37,9 +38,15 @@
|
||||||
wget
|
wget
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
nix.settings.trusted-users = ["root" "osbm"];
|
nix.settings.trusted-users = [
|
||||||
|
"root"
|
||||||
|
"osbm"
|
||||||
|
];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
nixpkgs.hostPlatform = "aarch64-linux";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,16 @@
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [];
|
boot.initrd.availableKernelModules = [ ];
|
||||||
boot.initrd.kernelModules = [];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [];
|
boot.kernelModules = [ ];
|
||||||
boot.extraModulePackages = [];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
||||||
|
|
@ -23,10 +24,13 @@
|
||||||
fileSystems."/boot/firmware" = {
|
fileSystems."/boot/firmware" = {
|
||||||
device = "/dev/disk/by-uuid/2178-694E";
|
device = "/dev/disk/by-uuid/2178-694E";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0022" "dmask=0022"];
|
options = [
|
||||||
|
"fmask=0022"
|
||||||
|
"dmask=0022"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [];
|
swapDevices = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
@ -19,7 +20,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = true;
|
||||||
users.extraGroups.vboxusers.members = ["osbm"];
|
users.extraGroups.vboxusers.members = [ "osbm" ];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,22 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"];
|
boot.initrd.availableKernelModules = [
|
||||||
boot.initrd.kernelModules = [];
|
"xhci_pci"
|
||||||
boot.kernelModules = ["kvm-intel"];
|
"ahci"
|
||||||
boot.extraModulePackages = [];
|
"nvme"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/246d3df7-3578-44b2-8aee-c1ed33581184";
|
device = "/dev/disk/by-uuid/246d3df7-3578-44b2-8aee-c1ed33581184";
|
||||||
|
|
@ -25,11 +32,14 @@
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/33D0-6524";
|
device = "/dev/disk/by-uuid/33D0-6524";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{device = "/dev/disk/by-uuid/b74b04db-c7ea-44e7-b3fe-15cd6d0cd851";}
|
{ device = "/dev/disk/by-uuid/b74b04db-c7ea-44e7-b3fe-15cd6d0cd851"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{lib, ...}: {
|
{ lib, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,24 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["ahci" "ehci_pci" "megaraid_sas" "nvme" "usbhid" "usb_storage" "sd_mod"];
|
boot.initrd.availableKernelModules = [
|
||||||
boot.initrd.kernelModules = [];
|
"ahci"
|
||||||
boot.kernelModules = ["kvm-intel"];
|
"ehci_pci"
|
||||||
boot.extraModulePackages = [];
|
"megaraid_sas"
|
||||||
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/8270dba5-6d89-438a-90bd-d9f29b20cb5b";
|
device = "/dev/disk/by-uuid/8270dba5-6d89-438a-90bd-d9f29b20cb5b";
|
||||||
|
|
@ -25,11 +34,14 @@
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/A1EB-43F8";
|
device = "/dev/disk/by-uuid/A1EB-43F8";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{device = "/dev/disk/by-uuid/534ea30c-2664-498b-915f-41b037eba01b";}
|
{ device = "/dev/disk/by-uuid/534ea30c-2664-498b-915f-41b037eba01b"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
# 2 tb mini hdd
|
# 2 tb mini hdd
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
@ -29,7 +30,10 @@
|
||||||
|
|
||||||
networking.hostName = "ymir"; # Define your hostname.
|
networking.hostName = "ymir"; # Define your hostname.
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [8889 8000];
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
8889
|
||||||
|
8000
|
||||||
|
];
|
||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
@ -47,7 +51,7 @@
|
||||||
virtualisation.waydroid.enable = true;
|
virtualisation.waydroid.enable = true;
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
# Load nvidia driver for Xorg and Wayland
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
# Modesetting is required.
|
# Modesetting is required.
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,23 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
|
boot.initrd.availableKernelModules = [
|
||||||
boot.initrd.kernelModules = [];
|
"xhci_pci"
|
||||||
boot.kernelModules = ["kvm-intel"];
|
"ahci"
|
||||||
boot.extraModulePackages = [];
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/fd6792b4-d1ec-493c-a686-64dbeaac3371";
|
device = "/dev/disk/by-uuid/fd6792b4-d1ec-493c-a686-64dbeaac3371";
|
||||||
|
|
@ -25,11 +33,14 @@
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/383D-1E8A";
|
device = "/dev/disk/by-uuid/383D-1E8A";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = ["fmask=0077" "dmask=0077"];
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{device = "/dev/disk/by-uuid/33c6277d-eb0a-487d-8be0-829829a8a308";}
|
{ device = "/dev/disk/by-uuid/33c6277d-eb0a-487d-8be0-829829a8a308"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
importList = lib.mapAttrsToList (name: _path: ./. + "/${name}")
|
importList = lib.mapAttrsToList (name: _path: ./. + "/${name}") (
|
||||||
(lib.filterAttrs (filename: kind:
|
lib.filterAttrs (
|
||||||
filename != "default.nix" && (kind == "regular" || kind == "directory"))
|
filename: kind: filename != "default.nix" && (kind == "regular" || kind == "directory")
|
||||||
(builtins.readDir ./.));
|
) (builtins.readDir ./.)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableADB = lib.mkOption {
|
myModules.enableADB = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -14,7 +15,7 @@
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf config.myModules.enableADB {
|
(lib.mkIf config.myModules.enableADB {
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
users.users.osbm.extraGroups = ["adbusers"];
|
users.users.osbm.extraGroups = [ "adbusers" ];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.arduinoSetup = lib.mkOption {
|
myModules.arduinoSetup = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
inputs.osbm-nvim.packages."${pkgs.stdenv.hostPlatform.system}".default
|
inputs.osbm-nvim.packages."${pkgs.stdenv.hostPlatform.system}".default
|
||||||
wget
|
wget
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules = {
|
myModules = {
|
||||||
blockYoutube = lib.mkOption {
|
blockYoutube = lib.mkOption {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.disableHibernation = lib.mkOption {
|
myModules.disableHibernation = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableAarch64Emulation = lib.mkOption {
|
myModules.enableAarch64Emulation = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -13,7 +14,7 @@
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf config.myModules.enableAarch64Emulation {
|
(lib.mkIf config.myModules.enableAarch64Emulation {
|
||||||
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
nix.settings.extra-platforms = config.boot.binfmt.emulatedSystems;
|
nix.settings.extra-platforms = config.boot.binfmt.emulatedSystems;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableFonts = lib.mkOption {
|
myModules.enableFonts = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -43,10 +44,23 @@
|
||||||
# defaultFonts.emoji = ["Noto Color Emoji"];
|
# defaultFonts.emoji = ["Noto Color Emoji"];
|
||||||
# };
|
# };
|
||||||
fonts.fontconfig.defaultFonts = {
|
fonts.fontconfig.defaultFonts = {
|
||||||
serif = ["Source Han Serif SC" "Source Han Serif TC" "Noto Color Emoji"];
|
serif = [
|
||||||
sansSerif = ["Source Han Sans SC" "Source Han Sans TC" "Noto Color Emoji"];
|
"Source Han Serif SC"
|
||||||
monospace = ["Droid Sans Mono" "DejaVu Sans Mono" "Source Han Mono" "Cascadia Code"];
|
"Source Han Serif TC"
|
||||||
emoji = ["Noto Color Emoji"];
|
"Noto Color Emoji"
|
||||||
|
];
|
||||||
|
sansSerif = [
|
||||||
|
"Source Han Sans SC"
|
||||||
|
"Source Han Sans TC"
|
||||||
|
"Noto Color Emoji"
|
||||||
|
];
|
||||||
|
monospace = [
|
||||||
|
"Droid Sans Mono"
|
||||||
|
"DejaVu Sans Mono"
|
||||||
|
"Source Han Mono"
|
||||||
|
"Cascadia Code"
|
||||||
|
];
|
||||||
|
emoji = [ "Noto Color Emoji" ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableKDE = lib.mkOption {
|
myModules.enableKDE = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -93,7 +94,7 @@
|
||||||
# Open ports in the firewall for Steam Local Network Game Transfers
|
# Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
};
|
};
|
||||||
networking.firewall.allowedTCPPorts = [51513];
|
networking.firewall.allowedTCPPorts = [ 51513 ];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
time.timeZone = "Europe/Istanbul";
|
time.timeZone = "Europe/Istanbul";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# imports = [
|
# imports = [
|
||||||
# inputs.minegrub-theme.nixosModules.default
|
# inputs.minegrub-theme.nixosModules.default
|
||||||
# ];
|
# ];
|
||||||
|
|
@ -24,14 +25,12 @@
|
||||||
# background = "background_options/1.8 - [Classic Minecraft].png";
|
# background = "background_options/1.8 - [Classic Minecraft].png";
|
||||||
# boot-options-count = 4;
|
# boot-options-count = 4;
|
||||||
# };
|
# };
|
||||||
theme =
|
theme = pkgs.fetchFromGitHub {
|
||||||
pkgs.fetchFromGitHub
|
owner = "Lxtharia";
|
||||||
{
|
repo = "minegrub-theme";
|
||||||
owner = "Lxtharia";
|
rev = "193b3a7c3d432f8c6af10adfb465b781091f56b3";
|
||||||
repo = "minegrub-theme";
|
sha256 = "1bvkfmjzbk7pfisvmyw5gjmcqj9dab7gwd5nmvi8gs4vk72bl2ap";
|
||||||
rev = "193b3a7c3d432f8c6af10adfb465b781091f56b3";
|
};
|
||||||
sha256 = "1bvkfmjzbk7pfisvmyw5gjmcqj9dab7gwd5nmvi8gs4vk72bl2ap";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,15 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nix-index-database.nixosModules.nix-index
|
inputs.nix-index-database.nixosModules.nix-index
|
||||||
];
|
];
|
||||||
programs.nix-index-database.comma.enable = true;
|
programs.nix-index-database.comma.enable = true;
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg:
|
||||||
builtins.elem (lib.getName pkg) [
|
builtins.elem (lib.getName pkg) [
|
||||||
"vscode" # TODO: remove this
|
"vscode" # TODO: remove this
|
||||||
"discord"
|
"discord"
|
||||||
|
|
@ -30,7 +32,10 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
# enable nix flakes
|
# enable nix flakes
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
# nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
# nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||||
|
|
||||||
|
|
@ -57,7 +62,10 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix.settings.trusted-users = ["root" "osbm"];
|
nix.settings.trusted-users = [
|
||||||
|
"root"
|
||||||
|
"osbm"
|
||||||
|
];
|
||||||
|
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
# config,
|
# config,
|
||||||
# outputs,
|
# outputs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
# nix.distributedBuilds = true;
|
# nix.distributedBuilds = true;
|
||||||
# nix.settings.builders-use-substitutes = true;
|
# nix.settings.builders-use-substitutes = true;
|
||||||
# nix.buildMachines = [
|
# nix.buildMachines = [
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableCaddy = lib.mkOption {
|
myModules.enableCaddy = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -19,7 +20,7 @@
|
||||||
package = pkgs.caddy.withPlugins {
|
package = pkgs.caddy.withPlugins {
|
||||||
# update time to time
|
# update time to time
|
||||||
# last update: 2025-03-02
|
# last update: 2025-03-02
|
||||||
plugins = ["github.com/caddy-dns/cloudflare@v0.0.0-20250228175314-1fb64108d4de"];
|
plugins = [ "github.com/caddy-dns/cloudflare@v0.0.0-20250228175314-1fb64108d4de" ];
|
||||||
hash = "sha256-YYpsf8HMONR1teMiSymo2y+HrKoxuJMKIea5/NEykGc=";
|
hash = "sha256-YYpsf8HMONR1teMiSymo2y+HrKoxuJMKIea5/NEykGc=";
|
||||||
};
|
};
|
||||||
email = "contact@osbm.dev";
|
email = "contact@osbm.dev";
|
||||||
|
|
@ -58,7 +59,11 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [80 443 3000];
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
80
|
||||||
|
443
|
||||||
|
3000
|
||||||
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nssTools
|
nssTools
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,13 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
# https://github.com/NixOS/nixpkgs/pull/394352
|
# https://github.com/NixOS/nixpkgs/pull/394352
|
||||||
cloudflare-dyndns-5-3 = pkgs.cloudflare-dyndns.overridePythonAttrs rec {
|
cloudflare-dyndns-5-3 = pkgs.cloudflare-dyndns.overridePythonAttrs rec {
|
||||||
version = lib.warnIfNot (pkgs.cloudflare-dyndns.version == "5.0") "The cloudflare-dyndns package is updated, you should remove this override" "5.3";
|
version = lib.warnIfNot (
|
||||||
|
pkgs.cloudflare-dyndns.version == "5.0"
|
||||||
|
) "The cloudflare-dyndns package is updated, you should remove this override" "5.3";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "kissgyorgy";
|
owner = "kissgyorgy";
|
||||||
repo = "cloudflare-dyndns";
|
repo = "cloudflare-dyndns";
|
||||||
|
|
@ -23,7 +26,8 @@
|
||||||
truststore
|
truststore
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableCloudflareDyndns = lib.mkOption {
|
myModules.enableCloudflareDyndns = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableCloudflared = lib.mkOption {
|
myModules.enableCloudflared = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableForgejo = lib.mkOption {
|
myModules.enableForgejo = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableJellyfin = lib.mkOption {
|
myModules.enableJellyfin = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -21,7 +22,7 @@
|
||||||
dataDir = "/home/osbm/.local/share/jellyfin";
|
dataDir = "/home/osbm/.local/share/jellyfin";
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [8096];
|
networking.firewall.allowedTCPPorts = [ 8096 ];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableNextcloud = lib.mkOption {
|
myModules.enableNextcloud = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules = {
|
myModules = {
|
||||||
enableOllama = lib.mkOption {
|
enableOllama = lib.mkOption {
|
||||||
|
|
@ -18,7 +19,10 @@
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration = "cuda";
|
acceleration = "cuda";
|
||||||
loadModels = ["deepseek-r1:7b" "deepseek-r1:14b"];
|
loadModels = [
|
||||||
|
"deepseek-r1:7b"
|
||||||
|
"deepseek-r1:14b"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.open-webui = {
|
services.open-webui = {
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,21 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
system-logger = pkgs.writeShellApplication {
|
system-logger = pkgs.writeShellApplication {
|
||||||
name = "system-logger";
|
name = "system-logger";
|
||||||
runtimeInputs = with pkgs; [curl jq zip gawk systemd];
|
runtimeInputs = with pkgs; [
|
||||||
|
curl
|
||||||
|
jq
|
||||||
|
zip
|
||||||
|
gawk
|
||||||
|
systemd
|
||||||
|
];
|
||||||
text = builtins.readFile ./system-logger.sh;
|
text = builtins.readFile ./system-logger.sh;
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.services.system-logger = {
|
options.services.system-logger = {
|
||||||
enable = lib.mkEnableOption {
|
enable = lib.mkEnableOption {
|
||||||
description = "Enable System Logger Service";
|
description = "Enable System Logger Service";
|
||||||
|
|
@ -38,7 +46,7 @@ in {
|
||||||
config = lib.mkIf config.services.system-logger.enable {
|
config = lib.mkIf config.services.system-logger.enable {
|
||||||
systemd.timers.system-logger = {
|
systemd.timers.system-logger = {
|
||||||
description = "System Logger Timer";
|
description = "System Logger Timer";
|
||||||
wantedBy = ["timers.target"];
|
wantedBy = [ "timers.target" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = "daily";
|
OnCalendar = "daily";
|
||||||
Persistent = true;
|
Persistent = true;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableTailscale = lib.mkOption {
|
myModules.enableTailscale = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -25,8 +26,8 @@
|
||||||
port = 51513;
|
port = 51513;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedUDPPorts = [config.services.tailscale.port];
|
networking.firewall.allowedUDPPorts = [ config.services.tailscale.port ];
|
||||||
environment.systemPackages = [pkgs.tailscale];
|
environment.systemPackages = [ pkgs.tailscale ];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableVaultwarden = lib.mkOption {
|
myModules.enableVaultwarden = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
services.code-server = {
|
services.code-server = {
|
||||||
# only true if the machine is not pochita
|
# only true if the machine is not pochita
|
||||||
enable = config.networking.hostName != "pochita";
|
enable = config.networking.hostName != "pochita";
|
||||||
|
|
@ -16,7 +17,8 @@
|
||||||
hashedPassword = "$argon2i$v=19$m=4096,t=3,p=1$dGc0TStGMDNzSS9JRkJYUFp3d091Q2p0bXlzPQ$zvdE9BkclkJmyFaenzPy2E99SEqsyDMt4IQNZfcfFFQ";
|
hashedPassword = "$argon2i$v=19$m=4096,t=3,p=1$dGc0TStGMDNzSS9JRkJYUFp3d091Q2p0bXlzPQ$zvdE9BkclkJmyFaenzPy2E99SEqsyDMt4IQNZfcfFFQ";
|
||||||
package = pkgs.vscode-with-extensions.override {
|
package = pkgs.vscode-with-extensions.override {
|
||||||
vscode = pkgs.code-server;
|
vscode = pkgs.code-server;
|
||||||
vscodeExtensions = with pkgs.vscode-extensions;
|
vscodeExtensions =
|
||||||
|
with pkgs.vscode-extensions;
|
||||||
[
|
[
|
||||||
bbenoist.nix
|
bbenoist.nix
|
||||||
catppuccin.catppuccin-vsc
|
catppuccin.catppuccin-vsc
|
||||||
|
|
@ -47,5 +49,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
networking.firewall.allowedTCPPorts = [config.services.code-server.port];
|
networking.firewall.allowedTCPPorts = [ config.services.code-server.port ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,14 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
waniKani-bypass-lessons = pkgs.writeShellApplication {
|
waniKani-bypass-lessons = pkgs.writeShellApplication {
|
||||||
name = "wanikani-bypass-lessons";
|
name = "wanikani-bypass-lessons";
|
||||||
runtimeInputs = with pkgs; [curl jq];
|
runtimeInputs = with pkgs; [
|
||||||
|
curl
|
||||||
|
jq
|
||||||
|
];
|
||||||
text = ''
|
text = ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
@ -44,7 +48,8 @@
|
||||||
sleep 3600
|
sleep 3600
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.services.wanikani-bypass-lessons.enable = lib.mkEnableOption {
|
options.services.wanikani-bypass-lessons.enable = lib.mkEnableOption {
|
||||||
description = "Enable WaniKani Bypass Lessons";
|
description = "Enable WaniKani Bypass Lessons";
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -53,7 +58,7 @@ in {
|
||||||
config = lib.mkIf config.services.wanikani-bypass-lessons.enable {
|
config = lib.mkIf config.services.wanikani-bypass-lessons.enable {
|
||||||
systemd.services.wanikani-bypass-lessons = {
|
systemd.services.wanikani-bypass-lessons = {
|
||||||
description = "WaniKani Bypass Lessons";
|
description = "WaniKani Bypass Lessons";
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = [ "multi-user.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = "${lib.getExe waniKani-bypass-lessons}";
|
ExecStart = "${lib.getExe waniKani-bypass-lessons}";
|
||||||
|
|
|
||||||
|
|
@ -3,13 +3,19 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
wanikani-fetcher = pkgs.writeShellApplication {
|
wanikani-fetcher = pkgs.writeShellApplication {
|
||||||
name = "wanikani-fetcher";
|
name = "wanikani-fetcher";
|
||||||
runtimeInputs = with pkgs; [curl jq zip];
|
runtimeInputs = with pkgs; [
|
||||||
|
curl
|
||||||
|
jq
|
||||||
|
zip
|
||||||
|
];
|
||||||
text = builtins.readFile ./wanikani-fetcher.sh;
|
text = builtins.readFile ./wanikani-fetcher.sh;
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
options.services.wanikani-fetch-data.enable = lib.mkEnableOption {
|
options.services.wanikani-fetch-data.enable = lib.mkEnableOption {
|
||||||
description = "Enable WaniKani Fetch Data";
|
description = "Enable WaniKani Fetch Data";
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -18,7 +24,7 @@ in {
|
||||||
config = lib.mkIf config.services.wanikani-fetch-data.enable {
|
config = lib.mkIf config.services.wanikani-fetch-data.enable {
|
||||||
systemd.timers.wanikani-fetch-data = {
|
systemd.timers.wanikani-fetch-data = {
|
||||||
description = "WaniKani Fetch Data";
|
description = "WaniKani Fetch Data";
|
||||||
wantedBy = ["timers.target"];
|
wantedBy = [ "timers.target" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = "02:00";
|
OnCalendar = "02:00";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableSound = lib.mkOption {
|
myModules.enableSound = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
users.users = {
|
users.users = {
|
||||||
osbm = {
|
osbm = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "osbm";
|
description = "osbm";
|
||||||
initialHashedPassword = "$6$IamAbigfailure$irfkAsWev8CMAr78wUwUggclplXL98sbI21fpGY9nMDz47bU88RZWFLO7FcN5SdRA18ZSidkMqS76uLCMH68f.";
|
initialHashedPassword = "$6$IamAbigfailure$irfkAsWev8CMAr78wUwUggclplXL98sbI21fpGY9nMDz47bU88RZWFLO7FcN5SdRA18ZSidkMqS76uLCMH68f.";
|
||||||
extraGroups = ["networkmanager" "wheel" "docker"];
|
extraGroups = [
|
||||||
|
"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"docker"
|
||||||
|
];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPfnV+qqUCJf92npNW4Jy0hIiepCJFBDJHXBHnUlNX0k"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPfnV+qqUCJf92npNW4Jy0hIiepCJFBDJHXBHnUlNX0k"
|
||||||
];
|
];
|
||||||
|
|
@ -15,7 +20,7 @@
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "bayram";
|
description = "bayram";
|
||||||
initialHashedPassword = "$6$IamAbigfailure$3BP231DVwbqUtZ.mq33nM/JitBrT2u26Y25VpsfBwhZbezMHz4XbySrOMnaMcCYdsb3wZFL3Ppcp0L.R8nonT.";
|
initialHashedPassword = "$6$IamAbigfailure$3BP231DVwbqUtZ.mq33nM/JitBrT2u26Y25VpsfBwhZbezMHz4XbySrOMnaMcCYdsb3wZFL3Ppcp0L.R8nonT.";
|
||||||
extraGroups = ["networkmanager"];
|
extraGroups = [ "networkmanager" ];
|
||||||
packages = [
|
packages = [
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
myModules.enableWakeOnLan = lib.mkOption {
|
myModules.enableWakeOnLan = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
|
|
@ -19,13 +20,13 @@
|
||||||
# see https://github.com/NixOS/nixpkgs/issues/91352
|
# see https://github.com/NixOS/nixpkgs/issues/91352
|
||||||
systemd.services.wakeonlan = {
|
systemd.services.wakeonlan = {
|
||||||
description = "Reenable wake on lan every boot";
|
description = "Reenable wake on lan every boot";
|
||||||
after = ["network.target"];
|
after = [ "network.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
RemainAfterExit = "true";
|
RemainAfterExit = "true";
|
||||||
ExecStart = "${pkgs.ethtool}/sbin/ethtool -s enp3s0 wol g";
|
ExecStart = "${pkgs.ethtool}/sbin/ethtool -s enp3s0 wol g";
|
||||||
};
|
};
|
||||||
wantedBy = ["default.target"];
|
wantedBy = [ "default.target" ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,10 @@ let
|
||||||
pochita
|
pochita
|
||||||
wallfacer
|
wallfacer
|
||||||
];
|
];
|
||||||
in {
|
in
|
||||||
"network-manager.age".publicKeys = machines ++ [osbm];
|
{
|
||||||
"ssh-key-private.age".publicKeys = machines ++ [osbm];
|
"network-manager.age".publicKeys = machines ++ [ osbm ];
|
||||||
"ssh-key-public.age".publicKeys = machines ++ [osbm];
|
"ssh-key-private.age".publicKeys = machines ++ [ osbm ];
|
||||||
"cloudflare.age".publicKeys = machines ++ [osbm];
|
"ssh-key-public.age".publicKeys = machines ++ [ osbm ];
|
||||||
|
"cloudflare.age".publicKeys = machines ++ [ osbm ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue