add code formatter and reformat
This commit is contained in:
parent
a055f4fa40
commit
8cd6ed1502
69 changed files with 1016 additions and 797 deletions
|
@ -30,5 +30,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { ... } @ args: import ./outputs.nix args;
|
outputs = {...} @ args: import ./outputs.nix args;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
{ self
|
{
|
||||||
, nixpkgs
|
self,
|
||||||
, home-manager
|
nixpkgs,
|
||||||
}@inputs:
|
home-manager,
|
||||||
let
|
} @ inputs: let
|
||||||
hmConfiguration =
|
hmConfiguration = {
|
||||||
{ homeDirectory ? "/home/dadada"
|
homeDirectory ? "/home/dadada",
|
||||||
, extraModules ? [ ]
|
extraModules ? [],
|
||||||
, system ? "x86_64-linux"
|
system ? "x86_64-linux",
|
||||||
, username ? "dadada"
|
username ? "dadada",
|
||||||
, stateVersion
|
stateVersion,
|
||||||
}:
|
}: (home-manager.lib.homeManagerConfiguration {
|
||||||
(home-manager.lib.homeManagerConfiguration {
|
configuration = {...}: {
|
||||||
configuration = { ... }: {
|
|
||||||
imports = (nixpkgs.lib.attrValues self.hmModules) ++ extraModules;
|
imports = (nixpkgs.lib.attrValues self.hmModules) ++ extraModules;
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = import ./nixpkgs-config.nix {
|
config = import ./nixpkgs-config.nix {
|
||||||
|
@ -22,10 +21,9 @@ let
|
||||||
};
|
};
|
||||||
inherit system homeDirectory username stateVersion;
|
inherit system homeDirectory username stateVersion;
|
||||||
});
|
});
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
home = hmConfiguration {
|
home = hmConfiguration {
|
||||||
extraModules = [ ./home ];
|
extraModules = [./home];
|
||||||
stateVersion = "20.09";
|
stateVersion = "20.09";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
useFeatures = [
|
useFeatures = [
|
||||||
"alacritty"
|
"alacritty"
|
||||||
#"emacs"
|
#"emacs"
|
||||||
|
@ -14,8 +18,7 @@ let
|
||||||
"xdg"
|
"xdg"
|
||||||
"zsh"
|
"zsh"
|
||||||
];
|
];
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
signing = {
|
signing = {
|
||||||
key = "D68C84695C087E0F733A28D0EEB8D1CE62C4DFEA";
|
key = "D68C84695C087E0F733A28D0EEB8D1CE62C4DFEA";
|
||||||
|
@ -27,7 +30,9 @@ in
|
||||||
|
|
||||||
programs.gpg.settings.default-key = "99658A3EB5CD7C13";
|
programs.gpg.settings.default-key = "99658A3EB5CD7C13";
|
||||||
|
|
||||||
dadada.home = lib.attrsets.genAttrs useFeatures (useFeatures: { enable = true; }) // {
|
dadada.home =
|
||||||
|
lib.attrsets.genAttrs useFeatures (useFeatures: {enable = true;})
|
||||||
|
// {
|
||||||
session = {
|
session = {
|
||||||
enable = true;
|
enable = true;
|
||||||
sessionVars = {
|
sessionVars = {
|
||||||
|
@ -44,8 +49,8 @@ in
|
||||||
systemd.user.services."languagetool-http-server" = {
|
systemd.user.services."languagetool-http-server" = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Languagetool HTTP server";
|
Description = "Languagetool HTTP server";
|
||||||
PartOf = [ "graphical-session-pre.target" ];
|
PartOf = ["graphical-session-pre.target"];
|
||||||
After = [ "graphical-session.target" ];
|
After = ["graphical-session.target"];
|
||||||
};
|
};
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
|
@ -54,11 +59,11 @@ in
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
};
|
};
|
||||||
|
|
||||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
Install = {WantedBy = ["graphical-session.target"];};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
home.packages = import ./pkgs.nix { pkgs = pkgs; };
|
home.packages = import ./pkgs.nix {pkgs = pkgs;};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs }:
|
{pkgs}:
|
||||||
with pkgs; [
|
with pkgs; [
|
||||||
anki
|
anki
|
||||||
aqbanking
|
aqbanking
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.alacritty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.alacritty;
|
||||||
|
in {
|
||||||
options.dadada.home.alacritty = {
|
options.dadada.home.alacritty = {
|
||||||
enable = mkEnableOption "Enable alacritty config";
|
enable = mkEnableOption "Enable alacritty config";
|
||||||
};
|
};
|
||||||
|
@ -78,12 +81,30 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
indexed_colors = [
|
indexed_colors = [
|
||||||
{ index = 16; color = "0xffa500"; }
|
{
|
||||||
{ index = 17; color = "0xb03060"; }
|
index = 16;
|
||||||
{ index = 18; color = "0x282828"; }
|
color = "0xffa500";
|
||||||
{ index = 19; color = "0x444155"; }
|
}
|
||||||
{ index = 20; color = "0xb8b8b8"; }
|
{
|
||||||
{ index = 21; color = "0xe8e8e8"; }
|
index = 17;
|
||||||
|
color = "0xb03060";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 18;
|
||||||
|
color = "0x282828";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 19;
|
||||||
|
color = "0x444155";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 20;
|
||||||
|
color = "0xb8b8b8";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
index = 21;
|
||||||
|
color = "0xe8e8e8";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
options.dadada.home.colors = mkOption {
|
options.dadada.home.colors = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
description = "Color scheme";
|
description = "Color scheme";
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ self, nix-doom-emacs, ... }@inputs:
|
|
||||||
{
|
{
|
||||||
|
self,
|
||||||
|
nix-doom-emacs,
|
||||||
|
...
|
||||||
|
} @ inputs: {
|
||||||
alacritty = import ./alacritty;
|
alacritty = import ./alacritty;
|
||||||
colors = import ./colors.nix;
|
colors = import ./colors.nix;
|
||||||
direnv = import ./direnv.nix;
|
direnv = import ./direnv.nix;
|
||||||
emacs = import ./emacs { inherit nix-doom-emacs; };
|
emacs = import ./emacs {inherit nix-doom-emacs;};
|
||||||
fish = import ./fish.nix;
|
fish = import ./fish.nix;
|
||||||
git = import ./git.nix;
|
git = import ./git.nix;
|
||||||
gpg = import ./gpg.nix;
|
gpg = import ./gpg.nix;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.direnv;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.direnv;
|
||||||
|
in {
|
||||||
options.dadada.home.direnv = {
|
options.dadada.home.direnv = {
|
||||||
enable = mkEnableOption "Enable direnv config";
|
enable = mkEnableOption "Enable direnv config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
{ nix-doom-emacs, ... }:
|
{nix-doom-emacs, ...}: {
|
||||||
{ config, pkgs, lib, ... }:
|
config,
|
||||||
with lib;
|
pkgs,
|
||||||
let
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.home.emacs;
|
cfg = config.dadada.home.emacs;
|
||||||
in
|
in {
|
||||||
{
|
imports = [nix-doom-emacs.hmModule];
|
||||||
imports = [ nix-doom-emacs.hmModule ];
|
|
||||||
options.dadada.home.emacs = {
|
options.dadada.home.emacs = {
|
||||||
enable = mkEnableOption "Enable dadada emacs config";
|
enable = mkEnableOption "Enable dadada emacs config";
|
||||||
};
|
};
|
||||||
|
@ -13,9 +15,9 @@ in
|
||||||
programs.doom-emacs = {
|
programs.doom-emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
doomPrivateDir = ./doom.d;
|
doomPrivateDir = ./doom.d;
|
||||||
emacsPackagesOverlay = self: super: with pkgs; {
|
emacsPackagesOverlay = self: super:
|
||||||
tsc = super.tsc.overrideAttrs (old:
|
with pkgs; {
|
||||||
let
|
tsc = super.tsc.overrideAttrs (old: let
|
||||||
libtsc_dyn = rustPlatform.buildRustPackage rec {
|
libtsc_dyn = rustPlatform.buildRustPackage rec {
|
||||||
pname = "emacs-tree-sitter";
|
pname = "emacs-tree-sitter";
|
||||||
version = "0.15.1";
|
version = "0.15.1";
|
||||||
|
@ -40,8 +42,7 @@ in
|
||||||
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
|
LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
|
||||||
cargoHash = "sha256-HB5tFR1slY2D6jb2mt4KrGrGBUUVrxiBjmVycO+qfYY=";
|
cargoHash = "sha256-HB5tFR1slY2D6jb2mt4KrGrGBUUVrxiBjmVycO+qfYY=";
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
inherit (libtsc_dyn) src;
|
inherit (libtsc_dyn) src;
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
ext=${stdenv.hostPlatform.extensions.sharedLibrary}
|
ext=${stdenv.hostPlatform.extensions.sharedLibrary}
|
||||||
|
@ -60,11 +61,11 @@ in
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.file.".tree-sitter".source = (pkgs.runCommand "grammars" {} ''
|
home.file.".tree-sitter".source = pkgs.runCommand "grammars" {} ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
echo -n "0.10.2" > $out/BUNDLE-VERSION
|
echo -n "0.10.2" > $out/BUNDLE-VERSION
|
||||||
${lib.concatStringsSep "\n"
|
${lib.concatStringsSep "\n"
|
||||||
(lib.mapAttrsToList (name: src: "name=${name}; ln -s ${src}/parser $out/bin/\${name#tree-sitter-}.so") pkgs.tree-sitter.builtGrammars)};
|
(lib.mapAttrsToList (name: src: "name=${name}; ln -s ${src}/parser $out/bin/\${name#tree-sitter-}.so") pkgs.tree-sitter.builtGrammars)};
|
||||||
'');
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.fish;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.fish;
|
||||||
|
in {
|
||||||
options.dadada.home.fish = {
|
options.dadada.home.fish = {
|
||||||
enable = mkEnableOption "Enable fish config";
|
enable = mkEnableOption "Enable fish config";
|
||||||
};
|
};
|
||||||
|
@ -11,7 +14,8 @@ in
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs; [{
|
plugins = with pkgs; [
|
||||||
|
{
|
||||||
name = "fzf";
|
name = "fzf";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "jethrokuan";
|
owner = "jethrokuan";
|
||||||
|
@ -19,7 +23,8 @@ in
|
||||||
rev = "c3defd4a922e97120503b45e26efa775bc672b50";
|
rev = "c3defd4a922e97120503b45e26efa775bc672b50";
|
||||||
sha256 = "1k5b0nva0mbqc9830qhbcwxsi8d9b2p4ws1fq0bw9nkf2ripyp4p";
|
sha256 = "1k5b0nva0mbqc9830qhbcwxsi8d9b2p4ws1fq0bw9nkf2ripyp4p";
|
||||||
};
|
};
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
# fish git prompt
|
# fish git prompt
|
||||||
set __fish_git_prompt_show_informative_status 'yes'
|
set __fish_git_prompt_show_informative_status 'yes'
|
||||||
|
@ -75,6 +80,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [ pkgs.exa ];
|
home.packages = [pkgs.exa];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.git;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.git;
|
||||||
|
in {
|
||||||
options.dadada.home.git = {
|
options.dadada.home.git = {
|
||||||
enable = mkEnableOption "Enable git config";
|
enable = mkEnableOption "Enable git config";
|
||||||
};
|
};
|
||||||
|
@ -16,7 +19,7 @@ in
|
||||||
tab-in-indent = true;
|
tab-in-indent = true;
|
||||||
tabwidth = 4;
|
tabwidth = 4;
|
||||||
};
|
};
|
||||||
alias = { };
|
alias = {};
|
||||||
pager = "delta";
|
pager = "delta";
|
||||||
};
|
};
|
||||||
column.ui = "never";
|
column.ui = "never";
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.gpg;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.gpg;
|
||||||
|
in {
|
||||||
options.dadada.home.gpg = {
|
options.dadada.home.gpg = {
|
||||||
enable = mkEnableOption "Enable GnuPG config";
|
enable = mkEnableOption "Enable GnuPG config";
|
||||||
};
|
};
|
||||||
|
@ -29,7 +31,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.git.extraConfig = {
|
programs.git.extraConfig = {
|
||||||
commit = { gpgSign = true; };
|
commit = {gpgSign = true;};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.gtk;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.gtk;
|
||||||
|
in {
|
||||||
options.dadada.home.gtk = {
|
options.dadada.home.gtk = {
|
||||||
enable = mkEnableOption "Enable GTK config";
|
enable = mkEnableOption "Enable GTK config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.keyring;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.keyring;
|
||||||
|
in {
|
||||||
options.dadada.home.keyring = {
|
options.dadada.home.keyring = {
|
||||||
enable = mkEnableOption "Enable keyring config";
|
enable = mkEnableOption "Enable keyring config";
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.gnome-keyring = {
|
services.gnome-keyring = {
|
||||||
enable = false;
|
enable = false;
|
||||||
components = [ "pkcs11" "secrets" ];
|
components = ["pkcs11" "secrets"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.kitty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.kitty;
|
||||||
|
in {
|
||||||
options.dadada.home.kitty = {
|
options.dadada.home.kitty = {
|
||||||
enable = mkEnableOption "Enable kitty config";
|
enable = mkEnableOption "Enable kitty config";
|
||||||
};
|
};
|
||||||
|
@ -12,6 +15,6 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = builtins.readFile ./config;
|
extraConfig = builtins.readFile ./config;
|
||||||
};
|
};
|
||||||
home.packages = [ pkgs.source-code-pro ];
|
home.packages = [pkgs.source-code-pro];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
{ config, lib, pkgs, colors, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.mako;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
colors,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.mako;
|
||||||
|
in {
|
||||||
options.dadada.home.mako = {
|
options.dadada.home.mako = {
|
||||||
enable = mkEnableOption "Enable mako config";
|
enable = mkEnableOption "Enable mako config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.session;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.session;
|
||||||
|
in {
|
||||||
options.dadada.home.session = {
|
options.dadada.home.session = {
|
||||||
enable = mkEnableOption "Enable session variable management";
|
enable = mkEnableOption "Enable session variable management";
|
||||||
sessionVars = mkOption {
|
sessionVars = mkOption {
|
||||||
description = "Session variables";
|
description = "Session variables";
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = { };
|
default = {};
|
||||||
example = ''
|
example = ''
|
||||||
EDITOR = "vim";
|
EDITOR = "vim";
|
||||||
PAGER = "less";
|
PAGER = "less";
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.ssh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.ssh;
|
||||||
|
in {
|
||||||
options.dadada.home.ssh = {
|
options.dadada.home.ssh = {
|
||||||
enable = mkEnableOption "Enable SSH config";
|
enable = mkEnableOption "Enable SSH config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
{ config, pkgs, lib, colors, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.sway;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
colors,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.sway;
|
||||||
|
in {
|
||||||
options.dadada.home.sway = {
|
options.dadada.home.sway = {
|
||||||
enable = mkEnableOption "Enable Sway config";
|
enable = mkEnableOption "Enable Sway config";
|
||||||
};
|
};
|
||||||
|
@ -26,7 +30,7 @@ in
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = null;
|
config = null;
|
||||||
extraConfig = (builtins.readFile ./config);
|
extraConfig = builtins.readFile ./config;
|
||||||
extraSessionCommands = ''
|
extraSessionCommands = ''
|
||||||
export SDL_VIDEODRIVER=wayland
|
export SDL_VIDEODRIVER=wayland
|
||||||
# needs qt5.qtwayland in systemPackages
|
# needs qt5.qtwayland in systemPackages
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.syncthing;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.syncthing;
|
||||||
|
in {
|
||||||
options.dadada.home.syncthing = {
|
options.dadada.home.syncthing = {
|
||||||
enable = mkEnableOption "Enable Syncthing config";
|
enable = mkEnableOption "Enable Syncthing config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, colors ? ../../lib/colors.nix
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.termite;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
colors ? ../../lib/colors.nix,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.termite;
|
||||||
|
in {
|
||||||
options.dadada.home.termite = {
|
options.dadada.home.termite = {
|
||||||
enable = mkEnableOption "Enable termite config";
|
enable = mkEnableOption "Enable termite config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.tmux;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.tmux;
|
||||||
|
in {
|
||||||
options.dadada.home.tmux = {
|
options.dadada.home.tmux = {
|
||||||
enable = mkEnableOption "Enable tmux config";
|
enable = mkEnableOption "Enable tmux config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.vim;
|
|
||||||
vimPlugins = pkgs.callPackage ../../../pkgs/vimPlugins { };
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.vim;
|
||||||
|
vimPlugins = pkgs.callPackage ../../../pkgs/vimPlugins {};
|
||||||
|
in {
|
||||||
options.dadada.home.vim = {
|
options.dadada.home.vim = {
|
||||||
enable = mkEnableOption "Enable VIM config";
|
enable = mkEnableOption "Enable VIM config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
apps = {
|
apps = {
|
||||||
"x-scheme-handler/mailto" = "userapp-Thunderbird-PB7NI0.desktop";
|
"x-scheme-handler/mailto" = "userapp-Thunderbird-PB7NI0.desktop";
|
||||||
"message/rfc822" = "userapp-Thunderbird-PB7NI0.desktop";
|
"message/rfc822" = "userapp-Thunderbird-PB7NI0.desktop";
|
||||||
|
@ -19,8 +23,7 @@ let
|
||||||
"application/pdf" = "org.pwmt.zathura.desktop";
|
"application/pdf" = "org.pwmt.zathura.desktop";
|
||||||
};
|
};
|
||||||
cfg = config.dadada.home.xdg;
|
cfg = config.dadada.home.xdg;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.dadada.home.xdg = {
|
options.dadada.home.xdg = {
|
||||||
enable = mkEnableOption "Enable XDG config";
|
enable = mkEnableOption "Enable XDG config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.home.zsh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.home.zsh;
|
||||||
|
in {
|
||||||
options.dadada.home.zsh = {
|
options.dadada.home.zsh = {
|
||||||
enable = mkEnableOption "Enable ZSH config";
|
enable = mkEnableOption "Enable ZSH config";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ pkgs }:
|
{pkgs}: {
|
||||||
{
|
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
allowUnfreePredicate = (pkg: true);
|
allowUnfreePredicate = pkg: true;
|
||||||
allowBroken = false;
|
allowBroken = false;
|
||||||
android_sdk.accept_license = true;
|
android_sdk.accept_license = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs }:
|
{pkgs}:
|
||||||
|
|
||||||
with pkgs.lib; {
|
with pkgs.lib; {
|
||||||
# TODO
|
# TODO
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
@ -44,10 +48,10 @@
|
||||||
|
|
||||||
networking.bridges = {
|
networking.bridges = {
|
||||||
"br-lan" = {
|
"br-lan" = {
|
||||||
interfaces = [ "lan" ];
|
interfaces = ["lan"];
|
||||||
};
|
};
|
||||||
"br-backup" = {
|
"br-backup" = {
|
||||||
interfaces = [ "backup" ];
|
interfaces = ["backup"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,28 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "ehci_pci" "usb_storage" "sd_mod" "sdhci_pci" ];
|
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "ehci_pci" "usb_storage" "sd_mod" "sdhci_pci"];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/sda1";
|
device = "/dev/sda1";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=root" ];
|
options = ["subvol=root"];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
||||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
||||||
|
|
|
@ -1,41 +1,46 @@
|
||||||
{ self
|
{
|
||||||
, admins
|
self,
|
||||||
, nixpkgs
|
admins,
|
||||||
, nixosSystem
|
nixpkgs,
|
||||||
, home-manager
|
nixosSystem,
|
||||||
, homePage
|
home-manager,
|
||||||
, nixos-hardware
|
homePage,
|
||||||
, nvd
|
nixos-hardware,
|
||||||
, scripts
|
nvd,
|
||||||
, recipemd
|
scripts,
|
||||||
}:
|
recipemd,
|
||||||
let
|
}: let
|
||||||
adapterModule = system: {
|
adapterModule = system: {
|
||||||
nixpkgs.config.allowUnfreePredicate = (pkg: true);
|
nixpkgs.config.allowUnfreePredicate = pkg: true;
|
||||||
nixpkgs.overlays = (nixpkgs.lib.attrValues self.overlays) ++ [
|
nixpkgs.overlays =
|
||||||
(final: prev: { homePage = homePage.defaultPackage.${system}; })
|
(nixpkgs.lib.attrValues self.overlays)
|
||||||
(final: prev: { s = scripts; })
|
++ [
|
||||||
(final: prev: { n = nvd; })
|
(final: prev: {homePage = homePage.defaultPackage.${system};})
|
||||||
(final: prev: { recipemd = recipemd.defaultPackage.${system}; })
|
(final: prev: {s = scripts;})
|
||||||
|
(final: prev: {n = nvd;})
|
||||||
|
(final: prev: {recipemd = recipemd.defaultPackage.${system};})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
adminConfig = users: {
|
adminConfig = users: {
|
||||||
dadada.admin.users = lib.getAttrs users admins;
|
dadada.admin.users = lib.getAttrs users admins;
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
gorgon = nixosSystem rec {
|
gorgon = nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = (nixpkgs.lib.attrValues self.nixosModules) ++ [
|
modules =
|
||||||
|
(nixpkgs.lib.attrValues self.nixosModules)
|
||||||
|
++ [
|
||||||
(adapterModule system)
|
(adapterModule system)
|
||||||
nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1
|
nixos-hardware.nixosModules.lenovo-thinkpad-t14s-amd-gen1
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.sharedModules = (nixpkgs.lib.attrValues self.hmModules) ++ [
|
home-manager.sharedModules =
|
||||||
{ manual.manpages.enable = false;}
|
(nixpkgs.lib.attrValues self.hmModules)
|
||||||
|
++ [
|
||||||
|
{manual.manpages.enable = false;}
|
||||||
];
|
];
|
||||||
home-manager.users.dadada = import ../home/home;
|
home-manager.users.dadada = import ../home/home;
|
||||||
}
|
}
|
||||||
|
@ -45,8 +50,10 @@ in
|
||||||
};
|
};
|
||||||
ifrit = nixosSystem rec {
|
ifrit = nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = (nixpkgs.lib.attrValues self.nixosModules) ++ [
|
modules =
|
||||||
(adminConfig [ "dadada" ])
|
(nixpkgs.lib.attrValues self.nixosModules)
|
||||||
|
++ [
|
||||||
|
(adminConfig ["dadada"])
|
||||||
(adapterModule system)
|
(adapterModule system)
|
||||||
./modules/profiles/server.nix
|
./modules/profiles/server.nix
|
||||||
./ifrit/configuration.nix
|
./ifrit/configuration.nix
|
||||||
|
@ -55,8 +62,10 @@ in
|
||||||
|
|
||||||
surgat = nixosSystem rec {
|
surgat = nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = (nixpkgs.lib.attrValues self.nixosModules) ++ [
|
modules =
|
||||||
(adminConfig [ "dadada" ])
|
(nixpkgs.lib.attrValues self.nixosModules)
|
||||||
|
++ [
|
||||||
|
(adminConfig ["dadada"])
|
||||||
(adapterModule system)
|
(adapterModule system)
|
||||||
./modules/profiles/server.nix
|
./modules/profiles/server.nix
|
||||||
./surgat/configuration.nix
|
./surgat/configuration.nix
|
||||||
|
@ -64,8 +73,10 @@ in
|
||||||
};
|
};
|
||||||
pruflas = nixosSystem rec {
|
pruflas = nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = (nixpkgs.lib.attrValues self.nixosModules) ++ [
|
modules =
|
||||||
(adminConfig [ "dadada" ])
|
(nixpkgs.lib.attrValues self.nixosModules)
|
||||||
|
++ [
|
||||||
|
(adminConfig ["dadada"])
|
||||||
(adapterModule system)
|
(adapterModule system)
|
||||||
./modules/profiles/laptop.nix
|
./modules/profiles/laptop.nix
|
||||||
./pruflas/configuration.nix
|
./pruflas/configuration.nix
|
||||||
|
@ -74,8 +85,10 @@ in
|
||||||
|
|
||||||
agares = nixosSystem rec {
|
agares = nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = (nixpkgs.lib.attrValues self.nixosModules) ++ [
|
modules =
|
||||||
(adminConfig [ "dadada" ])
|
(nixpkgs.lib.attrValues self.nixosModules)
|
||||||
|
++ [
|
||||||
|
(adminConfig ["dadada"])
|
||||||
(adapterModule system)
|
(adapterModule system)
|
||||||
./modules/profiles/server.nix
|
./modules/profiles/server.nix
|
||||||
./agares/configuration.nix
|
./agares/configuration.nix
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
config,
|
||||||
signHook = pkgs.writeShellScript "/etc/nix/sign-cache.sh"
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
signHook =
|
||||||
|
pkgs.writeShellScript "/etc/nix/sign-cache.sh"
|
||||||
''
|
''
|
||||||
set -eu
|
set -eu
|
||||||
set -f # disable globbing
|
set -f # disable globbing
|
||||||
|
@ -9,8 +14,7 @@ let
|
||||||
echo "Signing paths" $OUT_PATHS
|
echo "Signing paths" $OUT_PATHS
|
||||||
nix store sign --key-file /etc/nix/key.private $OUT_PATHS
|
nix store sign --key-file /etc/nix/key.private $OUT_PATHS
|
||||||
'';
|
'';
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
@ -22,7 +26,7 @@ in
|
||||||
keep-derivations = true
|
keep-derivations = true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
|
|
||||||
networking.hostName = "gorgon";
|
networking.hostName = "gorgon";
|
||||||
|
|
||||||
|
@ -39,9 +43,9 @@ in
|
||||||
networking = {
|
networking = {
|
||||||
enableBsShare = true;
|
enableBsShare = true;
|
||||||
localResolver = {
|
localResolver = {
|
||||||
enable= true;
|
enable = true;
|
||||||
uwu= true;
|
uwu = true;
|
||||||
s0= true;
|
s0 = true;
|
||||||
};
|
};
|
||||||
vpnExtension = "3";
|
vpnExtension = "3";
|
||||||
};
|
};
|
||||||
|
@ -99,23 +103,23 @@ in
|
||||||
users.users = {
|
users.users = {
|
||||||
dadada = {
|
dadada = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "networkmanager" "libvirtd" "adbusers" "kvm" "video" "scanner" "lp" "docker" ];
|
extraGroups = ["wheel" "networkmanager" "libvirtd" "adbusers" "kvm" "video" "scanner" "lp" "docker"];
|
||||||
shell = "/run/current-system/sw/bin/zsh";
|
shell = "/run/current-system/sw/bin/zsh";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.hosts = {
|
networking.hosts = {
|
||||||
"10.1.2.9" = [ "fgprinter.fginfo.tu-bs.de" ];
|
"10.1.2.9" = ["fgprinter.fginfo.tu-bs.de"];
|
||||||
"127.0.0.2" = [ "kanboard.dadada.li" ];
|
"127.0.0.2" = ["kanboard.dadada.li"];
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.wireguard.interfaces.uwupn = {
|
networking.wireguard.interfaces.uwupn = {
|
||||||
ips = [ "10.11.0.24/32" "fc00:1337:dead:beef::10.11.0.24/128" ];
|
ips = ["10.11.0.24/32" "fc00:1337:dead:beef::10.11.0.24/128"];
|
||||||
privateKeyFile = "/var/lib/wireguard/uwu";
|
privateKeyFile = "/var/lib/wireguard/uwu";
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "tuoiOWqgHz/lrgTcLjX+xIhvxh9jDH6gmDw2ZMvX5T8=";
|
publicKey = "tuoiOWqgHz/lrgTcLjX+xIhvxh9jDH6gmDw2ZMvX5T8=";
|
||||||
allowedIPs = [ "10.11.0.0/22" "fc00:1337:dead:beef::10.11.0.0/118" "192.168.178.0/23" ];
|
allowedIPs = ["10.11.0.0/22" "fc00:1337:dead:beef::10.11.0.0/118" "192.168.178.0/23"];
|
||||||
endpoint = "53c70r.de:51820";
|
endpoint = "53c70r.de:51820";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,41 +1,44 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
boot.initrd.availableKernelModules = ["nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
boot.initrd.kernelModules = ["dm-snapshot"];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/2478e089-e5d6-480c-8530-4ea46988f9f7";
|
device = "/dev/disk/by-uuid/2478e089-e5d6-480c-8530-4ea46988f9f7";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/5B90-D460";
|
device = "/dev/disk/by-uuid/5B90-D460";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/home" = {
|
||||||
{ device = "/dev/disk/by-uuid/a617625e-9325-4612-a086-954fb4b99ee0";
|
device = "/dev/disk/by-uuid/a617625e-9325-4612-a086-954fb4b99ee0";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
fileSystems."/nix" = {
|
||||||
{ device = "/dev/disk/by-uuid/1f6ab0fb-ef4d-45b1-a731-ad0e7a440eef";
|
device = "/dev/disk/by-uuid/1f6ab0fb-ef4d-45b1-a731-ad0e7a440eef";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [
|
||||||
[ { device = "/dev/disk/by-uuid/92310a00-7f69-4775-85cb-38e1790f71db"; }
|
{device = "/dev/disk/by-uuid/92310a00-7f69-4775-85cb-38e1790f71db";}
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.max-jobs = lib.mkDefault 16;
|
nix.settings.max-jobs = lib.mkDefault 16;
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
hostAliases = [
|
hostAliases = [
|
||||||
"ifrit.dadada.li"
|
"ifrit.dadada.li"
|
||||||
"media.dadada.li"
|
"media.dadada.li"
|
||||||
"backup0.dadada.li"
|
"backup0.dadada.li"
|
||||||
];
|
];
|
||||||
backups = "/mnt/storage/backup";
|
backups = "/mnt/storage/backup";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
@ -23,50 +26,50 @@ in
|
||||||
services.borgbackup.repos = {
|
services.borgbackup.repos = {
|
||||||
"metis" = {
|
"metis" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDnc1gCi8lbhlLmPKvaExtCxVaAni8RrOuHUQO6wTbzR root@metis" ];
|
authorizedKeysAppendOnly = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDnc1gCi8lbhlLmPKvaExtCxVaAni8RrOuHUQO6wTbzR root@metis"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/metis";
|
path = "${backups}/metis";
|
||||||
quota = "1T";
|
quota = "1T";
|
||||||
};
|
};
|
||||||
"gorgon" = {
|
"gorgon" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP6p9b2D7y2W+9BGee2yk2xsCRewNNaE6oS3CqlW61ti root@gorgon" ];
|
authorizedKeysAppendOnly = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP6p9b2D7y2W+9BGee2yk2xsCRewNNaE6oS3CqlW61ti root@gorgon"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/gorgon";
|
path = "${backups}/gorgon";
|
||||||
quota = "1T";
|
quota = "1T";
|
||||||
};
|
};
|
||||||
"surgat" = {
|
"surgat" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINGhatanrNG+M6jAkU7Yi44mJmTreJkqyZ6Z+qiEgV7O root@surgat" ];
|
authorizedKeysAppendOnly = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINGhatanrNG+M6jAkU7Yi44mJmTreJkqyZ6Z+qiEgV7O root@surgat"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/surgat";
|
path = "${backups}/surgat";
|
||||||
quota = "50G";
|
quota = "50G";
|
||||||
};
|
};
|
||||||
"pruflas" = {
|
"pruflas" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk7f9DSnXCOIUsxFsjCKG23vHShV4TSzzPJunPOwa1I root@pruflas" ];
|
authorizedKeysAppendOnly = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk7f9DSnXCOIUsxFsjCKG23vHShV4TSzzPJunPOwa1I root@pruflas"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/pruflas";
|
path = "${backups}/pruflas";
|
||||||
quota = "50G";
|
quota = "50G";
|
||||||
};
|
};
|
||||||
"wohnzimmerpi" = {
|
"wohnzimmerpi" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK6uZ8mPQJWOL984gZKKPyxp7VLcxk42TpTh5iPP6N6k root@wohnzimmerpi" ];
|
authorizedKeysAppendOnly = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK6uZ8mPQJWOL984gZKKPyxp7VLcxk42TpTh5iPP6N6k root@wohnzimmerpi"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/wohnzimmerpi";
|
path = "${backups}/wohnzimmerpi";
|
||||||
quota = "50G";
|
quota = "50G";
|
||||||
};
|
};
|
||||||
"fginfo" = {
|
"fginfo" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxsyJeZVlVix0FPE8S/Gx0DVutS1ZNESVdYvHBwo36wGlYpSsQoSy/2HSwbpxs88MOGw1QNboxvvpBxCWxZ5HyjxuO5SwYgtmpjPXvmqfVqNXXnLChhSnKgk9b+HesQJCbHyrF9ZAJXEFCOGhOL3YTgd6lTX3lQUXgh/LEDlrPrigUMDNPecPWxpPskP6Vvpe9u+duhL+ihyxXaV+CoPk8nkWrov5jCGPiM48pugbwAfqARyZDgFpmWwL7Xg2UKgVZ1ttHZCWwH+htgioVZMYpdkQW1aq6LLGwN34Hj2VKXzmJN5frh6vQoZr2AFGHNKyJwAMpqnoY//QwuREpZTrh root@fginfo.ibr.cs.tu-bs.de" ];
|
authorizedKeysAppendOnly = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxsyJeZVlVix0FPE8S/Gx0DVutS1ZNESVdYvHBwo36wGlYpSsQoSy/2HSwbpxs88MOGw1QNboxvvpBxCWxZ5HyjxuO5SwYgtmpjPXvmqfVqNXXnLChhSnKgk9b+HesQJCbHyrF9ZAJXEFCOGhOL3YTgd6lTX3lQUXgh/LEDlrPrigUMDNPecPWxpPskP6Vvpe9u+duhL+ihyxXaV+CoPk8nkWrov5jCGPiM48pugbwAfqARyZDgFpmWwL7Xg2UKgVZ1ttHZCWwH+htgioVZMYpdkQW1aq6LLGwN34Hj2VKXzmJN5frh6vQoZr2AFGHNKyJwAMpqnoY//QwuREpZTrh root@fginfo.ibr.cs.tu-bs.de"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/fginfo";
|
path = "${backups}/fginfo";
|
||||||
quota = "10G";
|
quota = "10G";
|
||||||
};
|
};
|
||||||
"fginfo-git" = {
|
"fginfo-git" = {
|
||||||
allowSubRepos = false;
|
allowSubRepos = false;
|
||||||
authorizedKeysAppendOnly = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmI6cUv3j0T9ofFB286sDwXwwczqi41cp4MZyGH3VWQnqBPNjICqAdY3CLhgvGBCxSe6ZgKQ+5YLsGSSlU1uhrJXW2UiVKuIPd0kjMF/9e8hmNoTTh0pdk9THfz9LLAdI1vPin1EeVReuDXlZkCI7DFYuTO9yiyZ1uLZUfT1KBRoqiqyypZhut7zT3UaDs2L+Y5hho6WiTdm7INuz6HEB7qYXzrmx93hlcuLZA7fDfyMO9F4APZFUqefcUIEyDI2b+Q/8Q2/rliT2PoC69XLVlj7HyVhfgKsOnopwBDNF3rRcJ6zz4WICPM18i4ZCmfoDTL/cFr5c41Lan1X7wS5wR root@fginfo-git" ];
|
authorizedKeysAppendOnly = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmI6cUv3j0T9ofFB286sDwXwwczqi41cp4MZyGH3VWQnqBPNjICqAdY3CLhgvGBCxSe6ZgKQ+5YLsGSSlU1uhrJXW2UiVKuIPd0kjMF/9e8hmNoTTh0pdk9THfz9LLAdI1vPin1EeVReuDXlZkCI7DFYuTO9yiyZ1uLZUfT1KBRoqiqyypZhut7zT3UaDs2L+Y5hho6WiTdm7INuz6HEB7qYXzrmx93hlcuLZA7fDfyMO9F4APZFUqefcUIEyDI2b+Q/8Q2/rliT2PoC69XLVlj7HyVhfgKsOnopwBDNF3rRcJ6zz4WICPM18i4ZCmfoDTL/cFr5c41Lan1X7wS5wR root@fginfo-git"];
|
||||||
authorizedKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis" ];
|
authorizedKeys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJyTgdVPPxQeL5KZo9frZQlDIv2QkelJw3gNGoGtUMfw tim@metis"];
|
||||||
path = "${backups}/fginfo-git";
|
path = "${backups}/fginfo-git";
|
||||||
quota = "10G";
|
quota = "10G";
|
||||||
};
|
};
|
||||||
|
@ -98,7 +101,7 @@ in
|
||||||
device = "/dev/disk/by-uuid/a34e36fc-d7dd-4ceb-93c4-48f9c2727cb7";
|
device = "/dev/disk/by-uuid/a34e36fc-d7dd-4ceb-93c4-48f9c2727cb7";
|
||||||
mountPoint = "/mnt/storage";
|
mountPoint = "/mnt/storage";
|
||||||
neededForBoot = false;
|
neededForBoot = false;
|
||||||
options = [ "nofail" ];
|
options = ["nofail"];
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
|
@ -113,7 +116,7 @@ in
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.curl ];
|
environment.systemPackages = [pkgs.curl];
|
||||||
|
|
||||||
system.stateVersion = "20.03";
|
system.stateVersion = "20.03";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,29 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix" )
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "ehci_pci" "sd_mod" "sr_mod" ];
|
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "ehci_pci" "sd_mod" "sr_mod"];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/0b4f5f01-5849-4f05-9822-b648abbc2485";
|
device = "/dev/disk/by-uuid/0b4f5f01-5849-4f05-9822-b648abbc2485";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [
|
||||||
[ { device = "/dev/disk/by-uuid/53b5715e-2724-4800-9cfc-f892115681b6"; }
|
{device = "/dev/disk/by-uuid/53b5715e-2724-4800-9cfc-f892115681b6";}
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.max-jobs = lib.mkDefault 2;
|
nix.settings.max-jobs = lib.mkDefault 2;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
with lib;
|
pkgs,
|
||||||
let
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.admin;
|
cfg = config.dadada.admin;
|
||||||
extraGroups = [ "wheel" "libvirtd" ];
|
extraGroups = ["wheel" "libvirtd"];
|
||||||
|
|
||||||
shells = {
|
shells = {
|
||||||
"bash" = pkgs.bashInteractive;
|
"bash" = pkgs.bashInteractive;
|
||||||
|
@ -13,11 +16,15 @@ let
|
||||||
|
|
||||||
shellNames = builtins.attrNames shells;
|
shellNames = builtins.attrNames shells;
|
||||||
|
|
||||||
adminOpts = { name, config, ... }: {
|
adminOpts = {
|
||||||
|
name,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
options = {
|
options = {
|
||||||
keys = mkOption {
|
keys = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [];
|
||||||
apply = x: assert (builtins.length x > 0 || abort "Please specify at least one key to be able to log in"); x;
|
apply = x: assert (builtins.length x > 0 || abort "Please specify at least one key to be able to log in"); x;
|
||||||
description = ''
|
description = ''
|
||||||
The keys that should be able to access the account.
|
The keys that should be able to access the account.
|
||||||
|
@ -35,15 +42,14 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options = {
|
options = {
|
||||||
dadada.admin = {
|
dadada.admin = {
|
||||||
enable = mkEnableOption "Enable admin access";
|
enable = mkEnableOption "Enable admin access";
|
||||||
|
|
||||||
users = mkOption {
|
users = mkOption {
|
||||||
type = with types; attrsOf (submodule adminOpts);
|
type = with types; attrsOf (submodule adminOpts);
|
||||||
default = { };
|
default = {};
|
||||||
description = ''
|
description = ''
|
||||||
Admin users with root access machine.
|
Admin users with root access machine.
|
||||||
'';
|
'';
|
||||||
|
@ -68,14 +74,14 @@ in
|
||||||
security.sudo.wheelNeedsPassword = false;
|
security.sudo.wheelNeedsPassword = false;
|
||||||
services.openssh.openFirewall = true;
|
services.openssh.openFirewall = true;
|
||||||
|
|
||||||
users.users = mapAttrs
|
users.users =
|
||||||
(user: keys: (
|
mapAttrs
|
||||||
{
|
(user: keys: {
|
||||||
shell = shells."${keys.shell}";
|
shell = shells."${keys.shell}";
|
||||||
extraGroups = extraGroups;
|
extraGroups = extraGroups;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
openssh.authorizedKeys.keys = keys.keys;
|
openssh.authorizedKeys.keys = keys.keys;
|
||||||
}))
|
})
|
||||||
cfg.users;
|
cfg.users;
|
||||||
|
|
||||||
nix.trustedUsers = builtins.attrNames cfg.users;
|
nix.trustedUsers = builtins.attrNames cfg.users;
|
||||||
|
@ -90,7 +96,7 @@ in
|
||||||
services.tor.relay.onionServices = {
|
services.tor.relay.onionServices = {
|
||||||
"rat" = mkIf cfg.rat.enable {
|
"rat" = mkIf cfg.rat.enable {
|
||||||
name = "rat";
|
name = "rat";
|
||||||
map = [{ port = 22; }];
|
map = [{port = 22;}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
backupExcludes = [
|
backupExcludes = [
|
||||||
"/backup"
|
"/backup"
|
||||||
"/dev"
|
"/dev"
|
||||||
|
@ -20,8 +24,7 @@ let
|
||||||
"/var/tmp"
|
"/var/tmp"
|
||||||
];
|
];
|
||||||
cfg = config.dadada.backupClient;
|
cfg = config.dadada.backupClient;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options = {
|
options = {
|
||||||
dadada.backupClient = {
|
dadada.backupClient = {
|
||||||
gs = {
|
gs = {
|
||||||
|
@ -59,11 +62,12 @@ in
|
||||||
"/backup" = {
|
"/backup" = {
|
||||||
device = "/dev/disk/by-uuid/0fdab735-cc3e-493a-b4ec-cbf6a77d48d5";
|
device = "/dev/disk/by-uuid/0fdab735-cc3e-493a-b4ec-cbf6a77d48d5";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [ "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ];
|
options = ["x-systemd.automount" "noauto" "x-systemd.idle-timeout=600"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.borgbackup.jobs.gs = {
|
services.borgbackup.jobs.gs =
|
||||||
|
{
|
||||||
paths = "/";
|
paths = "/";
|
||||||
exclude = backupExcludes;
|
exclude = backupExcludes;
|
||||||
repo = "/backup/${config.networking.hostName}";
|
repo = "/backup/${config.networking.hostName}";
|
||||||
|
@ -81,8 +85,8 @@ in
|
||||||
yearly = -1; # Keep at least one archive for each year
|
yearly = -1; # Keep at least one archive for each year
|
||||||
};
|
};
|
||||||
startAt = "monthly";
|
startAt = "monthly";
|
||||||
} // mkIf cfg.bs.enable {
|
}
|
||||||
|
// mkIf cfg.bs.enable {
|
||||||
services.borgbackup.jobs.bs = {
|
services.borgbackup.jobs.bs = {
|
||||||
paths = "/";
|
paths = "/";
|
||||||
exclude = backupExcludes;
|
exclude = backupExcludes;
|
||||||
|
|
|
@ -1,16 +1,22 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.ddns;
|
cfg = config.dadada.ddns;
|
||||||
ddnsConfig = hostNames: {
|
ddnsConfig = hostNames: {
|
||||||
systemd.timers = listToAttrs (forEach hostNames (hostname: nameValuePair "ddns-${hostname}"
|
systemd.timers = listToAttrs (forEach hostNames (hostname:
|
||||||
|
nameValuePair "ddns-${hostname}"
|
||||||
{
|
{
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = ["timers.target"];
|
||||||
partOf = [ "ddns-${hostname}.service" ];
|
partOf = ["ddns-${hostname}.service"];
|
||||||
timerConfig.OnCalendar = "hourly";
|
timerConfig.OnCalendar = "hourly";
|
||||||
}));
|
}));
|
||||||
|
|
||||||
systemd.services = listToAttrs (forEach hostNames (hostname: nameValuePair "ddns-${hostname}"
|
systemd.services = listToAttrs (forEach hostNames (hostname:
|
||||||
|
nameValuePair "ddns-${hostname}"
|
||||||
{
|
{
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
script = ''
|
script = ''
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }@inputs:
|
{...} @ inputs: {
|
||||||
{
|
|
||||||
admin = import ./admin.nix;
|
admin = import ./admin.nix;
|
||||||
backup = import ./backup.nix;
|
backup = import ./backup.nix;
|
||||||
ddns = import ./ddns.nix;
|
ddns = import ./ddns.nix;
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.dadada.element;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.dadada.element;
|
||||||
|
in {
|
||||||
options.dadada.element = {
|
options.dadada.element = {
|
||||||
enable = lib.mkEnableOption "Enable element webapp";
|
enable = lib.mkEnableOption "Enable element webapp";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
luks = config.dadada.luks;
|
luks = config.dadada.luks;
|
||||||
fido2 = config.dadada.fido2;
|
fido2 = config.dadada.fido2;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options = {
|
options = {
|
||||||
dadada.luks = {
|
dadada.luks = {
|
||||||
uuid = mkOption {
|
uuid = mkOption {
|
||||||
|
@ -52,5 +55,4 @@ in
|
||||||
cue = true;
|
cue = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
{ config, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.fileShare;
|
cfg = config.dadada.fileShare;
|
||||||
sharePath = "/mnt/storage/share";
|
sharePath = "/mnt/storage/share";
|
||||||
ipv6 = "fd42:dead:beef::/48";
|
ipv6 = "fd42:dead:beef::/48";
|
||||||
ipv4 = "192.168.42.0/24";
|
ipv4 = "192.168.42.0/24";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.dadada.fileShare = {
|
options.dadada.fileShare = {
|
||||||
enable = mkEnableOption "Enable file share server";
|
enable = mkEnableOption "Enable file share server";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
redisSocket = "127.0.0.1:6379";
|
redisSocket = "127.0.0.1:6379";
|
||||||
cfg = config.dadada.gitea;
|
cfg = config.dadada.gitea;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.dadada.gitea = {
|
options.dadada.gitea = {
|
||||||
enable = lib.mkEnableOption "Enable gitea";
|
enable = lib.mkEnableOption "Enable gitea";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.headphones;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.headphones;
|
||||||
|
in {
|
||||||
options = {
|
options = {
|
||||||
dadada.headphones = {
|
dadada.headphones = {
|
||||||
enable = mkEnableOption "Enable bluetooth headphones with more audio codecs.";
|
enable = mkEnableOption "Enable bluetooth headphones with more audio codecs.";
|
||||||
|
@ -14,7 +17,7 @@ in
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
pulseaudio = {
|
pulseaudio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
extraModules = [pkgs.pulseaudio-modules-bt];
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set-source-volume 1 10000
|
set-source-volume 1 10000
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
cfg = config.dadada.homePage;
|
cfg = config.dadada.homePage;
|
||||||
in
|
in
|
||||||
with lib; {
|
with lib; {
|
||||||
options.dadada.homePage = {
|
options.dadada.homePage = {
|
||||||
enable = mkEnableOption "Enable home page";
|
enable = mkEnableOption "Enable home page";
|
||||||
};
|
};
|
||||||
|
@ -15,4 +19,4 @@ with lib; {
|
||||||
root = "${pkgs.homePage}";
|
root = "${pkgs.homePage}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# Source https://github.com/NixOS/nixpkgs/issues/113384
|
# Source https://github.com/NixOS/nixpkgs/issues/113384
|
||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
cfg = config.dadada.kanboard;
|
cfg = config.dadada.kanboard;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
|
@ -41,7 +45,10 @@ in {
|
||||||
ln -s /var/lib/kanboard $out/data
|
ln -s /var/lib/kanboard $out/data
|
||||||
ln -s ${./kanboard-config.php} $out/config.php
|
ln -s ${./kanboard-config.php} $out/config.php
|
||||||
'')
|
'')
|
||||||
{ outPath = "${pkgs.kanboard}/share/kanboard"; meta.priority = 10; }
|
{
|
||||||
|
outPath = "${pkgs.kanboard}/share/kanboard";
|
||||||
|
meta.priority = 10;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
locations = {
|
locations = {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.networking;
|
cfg = config.dadada.networking;
|
||||||
vpnPubKey = "x/y6I59buVzv9Lfzl+b17mGWbzxU+3Ke9mQNa1DLsDI=";
|
vpnPubKey = "x/y6I59buVzv9Lfzl+b17mGWbzxU+3Ke9mQNa1DLsDI=";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options = {
|
options = {
|
||||||
dadada.networking = {
|
dadada.networking = {
|
||||||
localResolver = {
|
localResolver = {
|
||||||
|
@ -15,7 +18,7 @@ in
|
||||||
wanInterfaces = mkOption {
|
wanInterfaces = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
description = "WAN network interfaces";
|
description = "WAN network interfaces";
|
||||||
default = [ ];
|
default = [];
|
||||||
};
|
};
|
||||||
vpnExtension = mkOption {
|
vpnExtension = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
|
@ -83,7 +86,8 @@ in
|
||||||
"149.112.112.112@853#dns.quad9.net"
|
"149.112.112.112@853#dns.quad9.net"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
(mkIf cfg.localResolver.uwu {
|
(
|
||||||
|
mkIf cfg.localResolver.uwu {
|
||||||
name = "uwu.";
|
name = "uwu.";
|
||||||
forward-addr = [
|
forward-addr = [
|
||||||
"fc00:1337:dead:beef::10.11.0.1"
|
"fc00:1337:dead:beef::10.11.0.1"
|
||||||
|
@ -91,7 +95,8 @@ in
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
(mkIf cfg.localResolver.s0 {
|
(
|
||||||
|
mkIf cfg.localResolver.s0 {
|
||||||
name = "s0.";
|
name = "s0.";
|
||||||
forward-addr = [
|
forward-addr = [
|
||||||
"192.168.178.1"
|
"192.168.178.1"
|
||||||
|
@ -110,13 +115,14 @@ in
|
||||||
|
|
||||||
networking.useDHCP = false;
|
networking.useDHCP = false;
|
||||||
|
|
||||||
networking.interfaces = listToAttrs (forEach cfg.wanInterfaces (i: nameValuePair i {
|
networking.interfaces = listToAttrs (forEach cfg.wanInterfaces (i:
|
||||||
|
nameValuePair i {
|
||||||
useDHCP = true;
|
useDHCP = true;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
networking.wireguard.interfaces = mkIf (cfg.vpnExtension != null) {
|
networking.wireguard.interfaces = mkIf (cfg.vpnExtension != null) {
|
||||||
dadada = {
|
dadada = {
|
||||||
ips = [ "fd42:9c3b:f96d:201::${cfg.vpnExtension}/64" ];
|
ips = ["fd42:9c3b:f96d:201::${cfg.vpnExtension}/64"];
|
||||||
listenPort = 51234;
|
listenPort = 51234;
|
||||||
|
|
||||||
privateKeyFile = "/var/lib/wireguard/privkey";
|
privateKeyFile = "/var/lib/wireguard/privkey";
|
||||||
|
@ -124,7 +130,7 @@ in
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = vpnPubKey;
|
publicKey = vpnPubKey;
|
||||||
allowedIPs = [ "fd42:9c3b:f96d::/48" ];
|
allowedIPs = ["fd42:9c3b:f96d::/48"];
|
||||||
endpoint = "vpn.dadada.li:51234";
|
endpoint = "vpn.dadada.li:51234";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
|
@ -134,8 +140,8 @@ in
|
||||||
|
|
||||||
# https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html
|
# https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html
|
||||||
systemd.timers.wg-reresolve-dns = mkIf (cfg.vpnExtension != null) {
|
systemd.timers.wg-reresolve-dns = mkIf (cfg.vpnExtension != null) {
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = ["timers.target"];
|
||||||
partOf = [ "wg-reresolve-dns.service" ];
|
partOf = ["wg-reresolve-dns.service"];
|
||||||
timerConfig.OnCalendar = "hourly";
|
timerConfig.OnCalendar = "hourly";
|
||||||
};
|
};
|
||||||
systemd.services.wg-reresolve-dns = mkIf (cfg.vpnExtension != null) {
|
systemd.services.wg-reresolve-dns = mkIf (cfg.vpnExtension != null) {
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
{ self
|
{
|
||||||
, home-manager
|
self,
|
||||||
, nixpkgs
|
home-manager,
|
||||||
, ...
|
nixpkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
# Global settings for nix daemon
|
# Global settings for nix daemon
|
||||||
{
|
{
|
||||||
nix.nixPath = [
|
nix.nixPath = [
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
networking.domain = mkDefault "dadada.li";
|
networking.domain = mkDefault "dadada.li";
|
||||||
|
|
||||||
services.fwupd.enable = mkDefault true;
|
services.fwupd.enable = mkDefault true;
|
||||||
|
@ -25,7 +29,7 @@ with lib;
|
||||||
vteIntegration = true;
|
vteIntegration = true;
|
||||||
syntaxHighlighting = {
|
syntaxHighlighting = {
|
||||||
enable = true;
|
enable = true;
|
||||||
highlighters = [ "main" "brackets" "pattern" "root" "line" ];
|
highlighters = ["main" "brackets" "pattern" "root" "line"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
networking.domain = mkDefault "dadada.li";
|
networking.domain = mkDefault "dadada.li";
|
||||||
networking.tempAddresses = "disabled";
|
networking.tempAddresses = "disabled";
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.share;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.share;
|
||||||
|
in {
|
||||||
options.dadada.share = {
|
options.dadada.share = {
|
||||||
enable = mkEnableOption "Enable file share";
|
enable = mkEnableOption "Enable file share";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.steam;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.steam;
|
||||||
|
in {
|
||||||
options = {
|
options = {
|
||||||
dadada.steam = {
|
dadada.steam = {
|
||||||
enable = mkEnableOption "Enable Steam config";
|
enable = mkEnableOption "Enable Steam config";
|
||||||
|
@ -15,7 +18,7 @@ in
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
|
extraPackages32 = with pkgs.pkgsi686Linux; [libva];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.pulseaudio.support32Bit = true;
|
hardware.pulseaudio.support32Bit = true;
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.autoUpgrade;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.autoUpgrade;
|
||||||
|
in {
|
||||||
options.dadada.autoUpgrade = {
|
options.dadada.autoUpgrade = {
|
||||||
enable = mkEnableOption "Enable automatic upgrades";
|
enable = mkEnableOption "Enable automatic upgrades";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
with lib;
|
pkgs,
|
||||||
let
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.dadada.vpnServer;
|
cfg = config.dadada.vpnServer;
|
||||||
wgPeer = { name, ... }: {
|
wgPeer = {name, ...}: {
|
||||||
options = {
|
options = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
|
@ -21,14 +24,13 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.dadada.vpnServer = {
|
options.dadada.vpnServer = {
|
||||||
enable = mkEnableOption "Enable wireguard gateway";
|
enable = mkEnableOption "Enable wireguard gateway";
|
||||||
peers = mkOption {
|
peers = mkOption {
|
||||||
description = "Set of extensions and public keys of peers";
|
description = "Set of extensions and public keys of peers";
|
||||||
type = with types; attrsOf (submodule wgPeer);
|
type = with types; attrsOf (submodule wgPeer);
|
||||||
default = { };
|
default = {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -37,14 +39,14 @@ in
|
||||||
interfaces."wg0" = {
|
interfaces."wg0" = {
|
||||||
allowedIPsAsRoutes = true;
|
allowedIPsAsRoutes = true;
|
||||||
privateKeyFile = "/var/lib/wireguard/wg0-key";
|
privateKeyFile = "/var/lib/wireguard/wg0-key";
|
||||||
ips = [ "fd42:9c3b:f96d:0201::0/64" ];
|
ips = ["fd42:9c3b:f96d:0201::0/64"];
|
||||||
listenPort = 51234;
|
listenPort = 51234;
|
||||||
peers = map
|
peers =
|
||||||
(peer: (
|
map
|
||||||
{
|
(peer: {
|
||||||
allowedIPs = [ "fd42:9c3b:f96d:0201::${peer.id}/128" ];
|
allowedIPs = ["fd42:9c3b:f96d:0201::${peer.id}/128"];
|
||||||
publicKey = peer.key;
|
publicKey = peer.key;
|
||||||
}))
|
})
|
||||||
(attrValues cfg.peers);
|
(attrValues cfg.peers);
|
||||||
postSetup = ''
|
postSetup = ''
|
||||||
wg set wg0 fwmark 51234
|
wg set wg0 fwmark 51234
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.dadada.weechat;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.dadada.weechat;
|
||||||
|
in {
|
||||||
options.dadada.weechat = {
|
options.dadada.weechat = {
|
||||||
enable = mkEnableOption "Enable weechat relay";
|
enable = mkEnableOption "Enable weechat relay";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autosuggestions.enable = true;
|
autosuggestions.enable = true;
|
||||||
|
@ -8,7 +12,7 @@
|
||||||
vteIntegration = true;
|
vteIntegration = true;
|
||||||
syntaxHighlighting = {
|
syntaxHighlighting = {
|
||||||
enable = true;
|
enable = true;
|
||||||
highlighters = [ "main" "brackets" "pattern" "root" "line" ];
|
highlighters = ["main" "brackets" "pattern" "root" "line"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
{
|
||||||
imports = [ ./hardware-configuration.nix ];
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
|
imports = [./hardware-configuration.nix];
|
||||||
|
|
||||||
networking.hostName = "pruflas";
|
networking.hostName = "pruflas";
|
||||||
|
|
||||||
|
@ -12,7 +16,7 @@ with lib;
|
||||||
package = pkgs.hydra-unstable;
|
package = pkgs.hydra-unstable;
|
||||||
hydraURL = "https://hydra.dadada.li";
|
hydraURL = "https://hydra.dadada.li";
|
||||||
notificationSender = "hydra@localhost";
|
notificationSender = "hydra@localhost";
|
||||||
buildMachinesFiles = [ ];
|
buildMachinesFiles = [];
|
||||||
useSubstitutes = true;
|
useSubstitutes = true;
|
||||||
listenHost = "hydra.dadada.li";
|
listenHost = "hydra.dadada.li";
|
||||||
port = 3000;
|
port = 3000;
|
||||||
|
@ -22,7 +26,7 @@ with lib;
|
||||||
{
|
{
|
||||||
hostName = "localhost";
|
hostName = "localhost";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ];
|
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark"];
|
||||||
maxJobs = 8;
|
maxJobs = 8;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -61,7 +65,7 @@ with lib;
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
@ -91,12 +95,12 @@ with lib;
|
||||||
|
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.spotify pkgs.mpv ];
|
environment.systemPackages = [pkgs.spotify pkgs.mpv];
|
||||||
|
|
||||||
users.users."media" = {
|
users.users."media" = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Media playback user";
|
description = "Media playback user";
|
||||||
extraGroups = [ "users" "video" ];
|
extraGroups = ["users" "video"];
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.domain = "dadada.li";
|
networking.domain = "dadada.li";
|
||||||
|
|
|
@ -1,34 +1,38 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ];
|
boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci"];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/6d7ea470-1909-4e84-82a6-d5d5e9eecf78";
|
device = "/dev/disk/by-uuid/6d7ea470-1909-4e84-82a6-d5d5e9eecf78";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
fileSystems."/nix" = {
|
||||||
{ device = "/dev/disk/by-uuid/337f04a7-4fe9-49a2-8a58-07dd4bc85168";
|
device = "/dev/disk/by-uuid/337f04a7-4fe9-49a2-8a58-07dd4bc85168";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/0494-CB52";
|
device = "/dev/disk/by-uuid/0494-CB52";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
hostName = "surgat";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
hostName = "surgat";
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
@ -72,10 +75,12 @@ in
|
||||||
boot.loader.grub.version = 2;
|
boot.loader.grub.version = 2;
|
||||||
boot.loader.grub.device = "/dev/sda";
|
boot.loader.grub.device = "/dev/sda";
|
||||||
|
|
||||||
networking.interfaces."ens3".ipv6.addresses = [{
|
networking.interfaces."ens3".ipv6.addresses = [
|
||||||
|
{
|
||||||
address = "2a01:4f8:c17:1d70::";
|
address = "2a01:4f8:c17:1d70::";
|
||||||
prefixLength = 64;
|
prefixLength = 64;
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
networking.defaultGateway6 = {
|
networking.defaultGateway6 = {
|
||||||
address = "fe80::1";
|
address = "fe80::1";
|
||||||
|
@ -98,7 +103,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.wireguard.interfaces."hydra" = {
|
networking.wireguard.interfaces."hydra" = {
|
||||||
ips = [ "10.3.3.1/24" ];
|
ips = ["10.3.3.1/24"];
|
||||||
listenPort = 51235;
|
listenPort = 51235;
|
||||||
|
|
||||||
privateKeyFile = "/var/lib/wireguard/hydra";
|
privateKeyFile = "/var/lib/wireguard/hydra";
|
||||||
|
@ -106,7 +111,7 @@ in
|
||||||
peers = [
|
peers = [
|
||||||
{
|
{
|
||||||
publicKey = "CTKwL6+SJIqKXr1DIHejMDgjoxlWPaT78Pz3+JqcNlw=";
|
publicKey = "CTKwL6+SJIqKXr1DIHejMDgjoxlWPaT78Pz3+JqcNlw=";
|
||||||
allowedIPs = [ "10.3.3.3/32" ];
|
allowedIPs = ["10.3.3.3/32"];
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,30 +1,33 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "virtio_pci" "xhci_pci" "sd_mod" "sr_mod" ];
|
boot.initrd.availableKernelModules = ["ata_piix" "virtio_pci" "xhci_pci" "sd_mod" "sr_mod"];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/bd0b4d2d-37e5-444b-82ba-d7629114bf11";
|
device = "/dev/disk/by-uuid/bd0b4d2d-37e5-444b-82ba-d7629114bf11";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."surgat".device = "/dev/disk/by-uuid/5aa2b4d3-5711-451c-bd35-7c33b5019093";
|
boot.initrd.luks.devices."surgat".device = "/dev/disk/by-uuid/5aa2b4d3-5711-451c-bd35-7c33b5019093";
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/472bc34f-3803-44ee-ad2a-f0080c0a44d3";
|
device = "/dev/disk/by-uuid/472bc34f-3803-44ee-ad2a-f0080c0a44d3";
|
||||||
fsType = "ext2";
|
fsType = "ext2";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
53
outputs.nix
53
outputs.nix
|
@ -1,22 +1,22 @@
|
||||||
# Adapted from Mic92/dotfiles
|
# Adapted from Mic92/dotfiles
|
||||||
{ self
|
{
|
||||||
, flake-utils
|
self,
|
||||||
, homePage
|
flake-utils,
|
||||||
, nixpkgs
|
homePage,
|
||||||
, home-manager
|
nixpkgs,
|
||||||
, nix-doom-emacs
|
home-manager,
|
||||||
, nixos-hardware
|
nix-doom-emacs,
|
||||||
, nvd
|
nixos-hardware,
|
||||||
, scripts
|
nvd,
|
||||||
, recipemd
|
scripts,
|
||||||
, ...
|
recipemd,
|
||||||
}@inputs:
|
...
|
||||||
(flake-utils.lib.eachDefaultSystem (system:
|
} @ inputs:
|
||||||
let
|
(flake-utils.lib.eachDefaultSystem (system: let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
selfPkgs = self.packages.${system};
|
selfPkgs = self.packages.${system};
|
||||||
in
|
formatter = self.formatter.${system};
|
||||||
{
|
in {
|
||||||
apps.nixos-switch = {
|
apps.nixos-switch = {
|
||||||
type = "app";
|
type = "app";
|
||||||
program = toString (pkgs.writeScript "deploy" ''
|
program = toString (pkgs.writeScript "deploy" ''
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
#!${pkgs.runtimeShell}
|
#!${pkgs.runtimeShell}
|
||||||
set -eu -o pipefail -x
|
set -eu -o pipefail -x
|
||||||
tmpdir=$(mktemp -d)
|
tmpdir=$(mktemp -d)
|
||||||
export PATH=${pkgs.lib.makeBinPath [ pkgs.coreutils pkgs.nixFlakes pkgs.jq ]}
|
export PATH=${pkgs.lib.makeBinPath [pkgs.coreutils pkgs.nixFlakes pkgs.jq]}
|
||||||
trap "rm -rf $tmpdir" EXIT
|
trap "rm -rf $tmpdir" EXIT
|
||||||
declare -A profiles=(["gorgon"]="home")
|
declare -A profiles=(["gorgon"]="home")
|
||||||
profile=''${profiles[$HOSTNAME]:-common}
|
profile=''${profiles[$HOSTNAME]:-common}
|
||||||
|
@ -50,8 +50,13 @@
|
||||||
$link/activate
|
$link/activate
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
devShell = pkgs.callPackage ./shell.nix { };
|
devShell = pkgs.callPackage ./shell.nix {};
|
||||||
})) // {
|
formatter = nixpkgs.legacyPackages."${system}".alejandra;
|
||||||
|
checks = {
|
||||||
|
format = pkgs.runCommand "check-format" {buildInputs = [formatter];} "${formatter}/bin/alejandra -c ${./.} && touch $out";
|
||||||
|
};
|
||||||
|
}))
|
||||||
|
// {
|
||||||
hmConfigurations = import ./home/configurations.nix {
|
hmConfigurations = import ./home/configurations.nix {
|
||||||
inherit self nixpkgs home-manager;
|
inherit self nixpkgs home-manager;
|
||||||
};
|
};
|
||||||
|
@ -63,12 +68,16 @@
|
||||||
};
|
};
|
||||||
nixosModules = import ./nixos/modules inputs;
|
nixosModules = import ./nixos/modules inputs;
|
||||||
overlays = import ./overlays;
|
overlays = import ./overlays;
|
||||||
hydraJobs = (
|
hydraJobs =
|
||||||
|
(
|
||||||
nixpkgs.lib.mapAttrs'
|
nixpkgs.lib.mapAttrs'
|
||||||
(name: config: nixpkgs.lib.nameValuePair name config.config.system.build.toplevel)
|
(name: config: nixpkgs.lib.nameValuePair name config.config.system.build.toplevel)
|
||||||
self.nixosConfigurations
|
self.nixosConfigurations
|
||||||
) // (nixpkgs.lib.mapAttrs'
|
)
|
||||||
|
// (
|
||||||
|
nixpkgs.lib.mapAttrs'
|
||||||
(name: config: nixpkgs.lib.nameValuePair name config.activation-script)
|
(name: config: nixpkgs.lib.nameValuePair name config.activation-script)
|
||||||
self.hmConfigurations
|
self.hmConfigurations
|
||||||
) // (let tests = import ./tests; in flake-utils.lib.eachDefaultSystem tests);
|
)
|
||||||
|
// (let tests = import ./tests; in flake-utils.lib.eachDefaultSystem tests);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
let
|
let
|
||||||
python3Packages = import ./python3-packages.nix;
|
python3Packages = import ./python3-packages.nix;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
kanboard = final: prev: {
|
kanboard = final: prev: {
|
||||||
kanboard = prev.kanboard.overrideAttrs (oldAttrs: {
|
kanboard = prev.kanboard.overrideAttrs (oldAttrs: {
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
self: super:
|
self: super: {
|
||||||
{
|
python3Packages =
|
||||||
python3Packages = super.python3Packages // super.recurseIntoAttrs (
|
super.python3Packages
|
||||||
super.python3Packages.callPackage ../pkgs/python-pkgs { }
|
// super.recurseIntoAttrs (
|
||||||
|
super.python3Packages.callPackage ../pkgs/python-pkgs {}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
self: super:
|
self: super: {
|
||||||
{
|
|
||||||
# Based on https://gist.github.com/clefru/9ed1186bf0b76d27e0ad20cbd9966b87
|
# Based on https://gist.github.com/clefru/9ed1186bf0b76d27e0ad20cbd9966b87
|
||||||
tubslatex = super.lib.overrideDerivation
|
tubslatex =
|
||||||
|
super.lib.overrideDerivation
|
||||||
(super.texlive.combine {
|
(super.texlive.combine {
|
||||||
inherit (super.texlive) scheme-full;
|
inherit (super.texlive) scheme-full;
|
||||||
tubslatex.pkgs = [ (super.callPackage ../pkgs/tubslatex { }) ];
|
tubslatex.pkgs = [(super.callPackage ../pkgs/tubslatex {})];
|
||||||
})
|
})
|
||||||
(oldAttrs: {
|
(oldAttrs: {
|
||||||
postBuild = ''
|
postBuild =
|
||||||
|
''
|
||||||
# Save the udpmap.cfg because texlive.combine removes it.
|
# Save the udpmap.cfg because texlive.combine removes it.
|
||||||
cat $out/share/texmf/web2c/updmap.cfg > $out/share/texmf/web2c/updmap.cfg.1
|
cat $out/share/texmf/web2c/updmap.cfg > $out/share/texmf/web2c/updmap.cfg.1
|
||||||
'' + oldAttrs.postBuild + ''
|
''
|
||||||
|
+ oldAttrs.postBuild
|
||||||
|
+ ''
|
||||||
# Move updmap.cfg into its original place and rerun mktexlsr, so that kpsewhich finds it
|
# Move updmap.cfg into its original place and rerun mktexlsr, so that kpsewhich finds it
|
||||||
rm $out/share/texmf/web2c/updmap.cfg || true
|
rm $out/share/texmf/web2c/updmap.cfg || true
|
||||||
cat $out/share/texmf/web2c/updmap.cfg.1 > $out/share/texmf/web2c/updmap.cfg
|
cat $out/share/texmf/web2c/updmap.cfg.1 > $out/share/texmf/web2c/updmap.cfg
|
||||||
|
@ -22,5 +25,4 @@ self: super:
|
||||||
perl `type -P updmap.pl` --sys
|
perl `type -P updmap.pl` --sys
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
{ callPackage }:
|
{callPackage}: {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
{ pkgs, stdenv, lib }:
|
{
|
||||||
|
pkgs,
|
||||||
(import
|
stdenv,
|
||||||
|
lib,
|
||||||
|
}: (import
|
||||||
(pkgs.fetchgit {
|
(pkgs.fetchgit {
|
||||||
url = "https://git.dadada.li/dadada/scripts.git";
|
url = "https://git.dadada.li/dadada/scripts.git";
|
||||||
sha256 = "sha256-Kdwb34XXLOl4AaiVmOZ3nlu/KdENMqvH+UwISv8Pyiw=";
|
sha256 = "sha256-Kdwb34XXLOl4AaiVmOZ3nlu/KdENMqvH+UwISv8Pyiw=";
|
||||||
rev = "065ff0f0ee9e44234678f0fefbba7961ea42518c";
|
rev = "065ff0f0ee9e44234678f0fefbba7961ea42518c";
|
||||||
})
|
})
|
||||||
{ stdenv = stdenv; lib = lib; })
|
{
|
||||||
|
stdenv = stdenv;
|
||||||
|
lib = lib;
|
||||||
|
})
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
{ stdenv, fetchzip, unzip }:
|
{
|
||||||
|
stdenv,
|
||||||
|
fetchzip,
|
||||||
|
unzip,
|
||||||
|
}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
src = ./tubslatex_1.3.2.tds.zip;
|
src = ./tubslatex_1.3.2.tds.zip;
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [unzip];
|
||||||
buildInputs = [ unzip ];
|
buildInputs = [unzip];
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r * $out/
|
cp -r * $out/
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
{ pkgs, lib, fetchFromGitHub, ... }:
|
|
||||||
with lib;
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
fetchFromGitHub,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
filetype = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
filetype = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
||||||
pname = "dadadaVimFiletype";
|
pname = "dadadaVimFiletype";
|
||||||
version = "0.2";
|
version = "0.2";
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{ mkShell
|
{mkShell}:
|
||||||
}:
|
|
||||||
|
|
||||||
mkShell {
|
mkShell {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
system:
|
system: {
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue