Gitea fixes, formatting with nixpkgs-fmt
This commit is contained in:
parent
7551396a58
commit
3c172be12d
68 changed files with 733 additions and 689 deletions
|
@ -2,6 +2,7 @@ keys:
|
|||
- &erwin b785a9688947edabb9ec8933ee7adefe1d943c7b
|
||||
- &loki a6e31f5ab2bf34ca3f614d81ed9d6ae54dbcb9f7
|
||||
- &drone 8eefb1f8c85704ca47aa226a692372b1fc4bb9bf
|
||||
- &gitea ca0dba2f767679957879077fb8922c8ba16710be
|
||||
creation_rules:
|
||||
- path_regex: machines/loki/[^/]+\.yaml$
|
||||
key_groups:
|
||||
|
@ -16,4 +17,5 @@ creation_rules:
|
|||
- path_regex: machines/gitea/[^/]+\.yaml$
|
||||
key_groups:
|
||||
- pgp:
|
||||
- *erwin
|
||||
- *erwin
|
||||
- *gitea
|
24
flake.lock
24
flake.lock
|
@ -85,11 +85,11 @@
|
|||
},
|
||||
"emacs-overlay": {
|
||||
"locked": {
|
||||
"lastModified": 1650746813,
|
||||
"narHash": "sha256-RY2UXfjOmIE9xr/vSAxQOQQBjBgsr5pmA+NK5RCLpmg=",
|
||||
"lastModified": 1650946623,
|
||||
"narHash": "sha256-YGoR+ypDCii9Kl4bZ2NgOh0DLV6xSjcyM2rZsAWVdCM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "b3418d25f48c177c14e1fa677701067dc78936a6",
|
||||
"rev": "4356a0643b98868883425711daa02dde1290b2ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -166,11 +166,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1650478719,
|
||||
"narHash": "sha256-308c2cM4hW9AW6dSQ080ycXGyEJGkG/OwOINkYL9Mnw=",
|
||||
"lastModified": 1650920743,
|
||||
"narHash": "sha256-7xxdtLp295HswhyEjr991QJsBFeadUo43NiAsHnQ5+8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "93a69d07389311ffd6ce1f4d01836bbc2faec644",
|
||||
"rev": "223a73c2ba7d358b23666937cb13a59b31df511c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -254,11 +254,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1650701402,
|
||||
"narHash": "sha256-XKfstdtqDg+O+gNBx1yGVKWIhLgfEDg/e2lvJSsp9vU=",
|
||||
"lastModified": 1650831523,
|
||||
"narHash": "sha256-6pDZ08SAXsUx5rOP391x+TG39ENP/XA8VMa1tQvgEjc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bc41b01dd7a9fdffd32d9b03806798797532a5fe",
|
||||
"rev": "87d34a6b8982e901b8e50096b8e79ebc0e66cda0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -385,11 +385,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1650681299,
|
||||
"narHash": "sha256-JNvHHeeXDl3UnjWolMSbH2sWvhAYPfAutL815kZ6vFs=",
|
||||
"lastModified": 1650941217,
|
||||
"narHash": "sha256-rWpp8pKM9jYcvG7JiNAw+ITOlY20h8K83S3RQc9pY74=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "d10f36b093459eb71ddcfedbab538c1ae3dfebb2",
|
||||
"rev": "b4cc9abdd42655b61325f3feb062cacc51a54de2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
224
flake.nix
224
flake.nix
|
@ -69,77 +69,77 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
sops,
|
||||
ha-now-playing,
|
||||
pamedia,
|
||||
...
|
||||
} @ inputs:
|
||||
with inputs; let
|
||||
defSystem = system: baseConfig:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "${system}";
|
||||
modules = [
|
||||
{_module.args.inputs = inputs;}
|
||||
{_module.args.self-overlay = self.overlay;}
|
||||
({...}: {
|
||||
imports =
|
||||
builtins.attrValues self.nixosModules
|
||||
++ [
|
||||
{
|
||||
nix.nixPath = ["nixpkgs=${nixpkgs}"];
|
||||
nixpkgs.overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
}
|
||||
outputs =
|
||||
{ self
|
||||
, sops
|
||||
, ha-now-playing
|
||||
, pamedia
|
||||
, ...
|
||||
} @ inputs:
|
||||
with inputs; let
|
||||
defSystem = system: baseConfig:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
system = "${system}";
|
||||
modules = [
|
||||
{ _module.args.inputs = inputs; }
|
||||
{ _module.args.self-overlay = self.overlay; }
|
||||
({ ... }: {
|
||||
imports =
|
||||
builtins.attrValues self.nixosModules
|
||||
++ [
|
||||
{
|
||||
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
|
||||
nixpkgs.overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
}
|
||||
|
||||
baseConfig
|
||||
home-manager.nixosModules.home-manager
|
||||
{home-manager.useUserPackages = true;}
|
||||
];
|
||||
baseConfig
|
||||
home-manager.nixosModules.home-manager
|
||||
{ home-manager.useUserPackages = true; }
|
||||
];
|
||||
|
||||
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
})
|
||||
sops.nixosModules.sops
|
||||
];
|
||||
};
|
||||
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
})
|
||||
sops.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
defContainer = system: baseConfig:
|
||||
nixos-generators.nixosGenerate {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
format = "proxmox-lxc";
|
||||
modules = [
|
||||
{_module.args.inputs = inputs;}
|
||||
{_module.args.self-overlay = self.overlay;}
|
||||
({...}: {
|
||||
imports =
|
||||
builtins.attrValues self.nixosModules
|
||||
++ [
|
||||
{
|
||||
nix.nixPath = ["nixpkgs=${nixpkgs}"];
|
||||
nixpkgs.overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
}
|
||||
defContainer = system: baseConfig:
|
||||
nixos-generators.nixosGenerate {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
format = "proxmox-lxc";
|
||||
modules = [
|
||||
{ _module.args.inputs = inputs; }
|
||||
{ _module.args.self-overlay = self.overlay; }
|
||||
({ ... }: {
|
||||
imports =
|
||||
builtins.attrValues self.nixosModules
|
||||
++ [
|
||||
{
|
||||
nix.nixPath = [ "nixpkgs=${nixpkgs}" ];
|
||||
nixpkgs.overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
}
|
||||
|
||||
baseConfig
|
||||
home-manager.nixosModules.home-manager
|
||||
{home-manager.useUserPackages = true;}
|
||||
];
|
||||
baseConfig
|
||||
home-manager.nixosModules.home-manager
|
||||
{ home-manager.useUserPackages = true; }
|
||||
];
|
||||
|
||||
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
})
|
||||
sops.nixosModules.sops
|
||||
];
|
||||
};
|
||||
in
|
||||
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
})
|
||||
sops.nixosModules.sops
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
overlay = import ./overlays;
|
||||
# overlay = final: prev: {
|
||||
|
@ -159,30 +159,36 @@
|
|||
nixosConfigurations = {
|
||||
vm1 = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/vm1/configuration.nix {inherit self;})
|
||||
(import ./machines/vm1/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
vm2 = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/vm2/configuration.nix {inherit self;})
|
||||
(import ./machines/vm2/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
loki = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/loki/configuration.nix {inherit self;})
|
||||
(import ./machines/loki/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
drone = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/drone/configuration.nix {inherit self;})
|
||||
(import ./machines/drone/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
proxy = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/proxy/configuration.nix {inherit self;})
|
||||
(import ./machines/proxy/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
gitea = defSystem "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/gitea/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -190,56 +196,60 @@
|
|||
nixosContainers = {
|
||||
drone = defContainer "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/drone/configuration.nix {inherit self;})
|
||||
(import ./machines/drone/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
proxy = defContainer "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/proxy/configuration.nix {inherit self;})
|
||||
(import ./machines/proxy/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
|
||||
gitea = defContainer "x86_64-linux" {
|
||||
imports = [
|
||||
(import ./machines/gitea/configuration.nix {inherit self;})
|
||||
(import ./machines/gitea/configuration.nix { inherit self; })
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
// (flake-utils.lib.eachSystem ["aarch64-linux" "x86_64-linux"])
|
||||
(
|
||||
system: let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
config = {
|
||||
allowUnsupportedSystem = true;
|
||||
allowUnfree = true;
|
||||
// (flake-utils.lib.eachSystem [ "aarch64-linux" "x86_64-linux" ])
|
||||
(
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
self.overlay
|
||||
ha-now-playing.overlays.${system}
|
||||
pamedia.overlays.${system}
|
||||
];
|
||||
config = {
|
||||
allowUnsupportedSystem = true;
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
in rec {
|
||||
packages = flake-utils.lib.flattenTree {
|
||||
rofi-wayland = pkgs.rofi-wayland;
|
||||
nix-plugins = pkgs.nix-plugins;
|
||||
backscrub = pkgs.backscrub;
|
||||
};
|
||||
|
||||
apps = {
|
||||
rofi-wayland = flake-utils.lib.mkApp {drv = packages.rofi-wayland;};
|
||||
nix-plugins = flake-utils.lib.mkApp {drv = packages.nix-plugins;};
|
||||
backscrub = flake-utils.lib.mkApp {drv = packages.backscrub;};
|
||||
};
|
||||
|
||||
devShell = with pkgs;
|
||||
mkShell {
|
||||
nativeBuildInputs = [sops ssh-to-pgp];
|
||||
packages = [sops];
|
||||
in
|
||||
rec {
|
||||
packages = flake-utils.lib.flattenTree {
|
||||
rofi-wayland = pkgs.rofi-wayland;
|
||||
nix-plugins = pkgs.nix-plugins;
|
||||
backscrub = pkgs.backscrub;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
apps = {
|
||||
rofi-wayland = flake-utils.lib.mkApp { drv = packages.rofi-wayland; };
|
||||
nix-plugins = flake-utils.lib.mkApp { drv = packages.nix-plugins; };
|
||||
backscrub = flake-utils.lib.mkApp { drv = packages.backscrub; };
|
||||
};
|
||||
|
||||
devShell = with pkgs;
|
||||
mkShell {
|
||||
nativeBuildInputs = [ sops ssh-to-pgp ];
|
||||
packages = [ sops ];
|
||||
};
|
||||
|
||||
formatter = pkgs.nixpkgs-fmt;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.alacritty;
|
||||
importYAML = name: yamlFile: (lib.importJSON ((pkgs.runCommandNoCC name {} ''
|
||||
mkdir -p $out
|
||||
${pkgs.yaml2json}/bin/yaml2json < ${yamlFile} | ${pkgs.jq}/bin/jq -a '.' > $out/tmp.json
|
||||
'')
|
||||
.outPath
|
||||
+ "/tmp.json"));
|
||||
importYAML = name: yamlFile: (lib.importJSON ((pkgs.runCommandNoCC name { } ''
|
||||
mkdir -p $out
|
||||
${pkgs.yaml2json}/bin/yaml2json < ${yamlFile} | ${pkgs.jq}/bin/jq -a '.' > $out/tmp.json
|
||||
'').outPath
|
||||
+ "/tmp.json"));
|
||||
theme = importYAML "theme" (builtins.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/dracula/alacritty/05faff15c0158712be87d200081633d9f4850a7d/dracula.yml";
|
||||
sha256 = "1366rvvni2shbqlcrbypjv4f7p7ccdr6bvr685jnj8ipwqjjb6rn";
|
||||
});
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.alacritty.enable = mkEnableOption "Enable alacritty";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.bat;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.bat = {
|
||||
enable = mkEnableOption "enable bat";
|
||||
};
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.dropbox;
|
||||
in {
|
||||
options.eboskma.programs.dropbox = {enable = mkEnableOption "activate dropbox";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.dropbox = { enable = mkEnableOption "activate dropbox"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.dropbox.enable = true;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.dunst;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.dunst = {
|
||||
enable = mkEnableOption "activate dunst";
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.electron;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.electron = {
|
||||
enable = mkEnableOption "activate electron settings";
|
||||
wayland = mkEnableOption "set Wayland compatibility settings";
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.emacs;
|
||||
emacs = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [epkgs.emacsql epkgs.emacsql-sqlite]));
|
||||
emacs = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.emacsql epkgs.emacsql-sqlite ]));
|
||||
|
||||
orgProtocolDesktop = pkgs.makeDesktopItem {
|
||||
name = "org-protocol";
|
||||
desktopName = "Emacs Org Protocol Handler";
|
||||
icon = "emacs";
|
||||
categories = ["Development" "TextEditor"];
|
||||
keywords = ["org-protocol"];
|
||||
categories = [ "Development" "TextEditor" ];
|
||||
keywords = [ "org-protocol" ];
|
||||
type = "Application";
|
||||
exec = "${emacs}/bin/emacsclient -- %u";
|
||||
terminal = false;
|
||||
mimeTypes = ["x-scheme-handler/org-protocol"];
|
||||
mimeTypes = [ "x-scheme-handler/org-protocol" ];
|
||||
startupWMClass = "Emacs";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.emacs = {
|
||||
enable = mkEnableOption "activate emacs";
|
||||
daemon = mkOption {
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.firefox;
|
||||
|
@ -46,7 +45,7 @@ with lib; let
|
|||
)
|
||||
+ " %u";
|
||||
icon = "firefox";
|
||||
categories = ["GNOME" "GTK" "Network" "WebBrowser"];
|
||||
categories = [ "GNOME" "GTK" "Network" "WebBrowser" ];
|
||||
mimeTypes = [
|
||||
"text/html"
|
||||
"text/xml"
|
||||
|
@ -69,7 +68,8 @@ with lib; let
|
|||
"X-MultipleArgs" = "false";
|
||||
};
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.firefox = {
|
||||
enable = mkEnableOption "enable firefox";
|
||||
work = mkOption {
|
||||
|
@ -99,6 +99,6 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
home.packages = [nonDefaultDesktop];
|
||||
home.packages = [ nonDefaultDesktop ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.fish;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.fish = {
|
||||
enable = mkEnableOption "Enable fish shell";
|
||||
};
|
||||
|
@ -14,7 +14,7 @@ in {
|
|||
config = mkIf (cfg.enable) {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
functions = import ./functions.nix {inherit (pkgs) git;};
|
||||
functions = import ./functions.nix { inherit (pkgs) git; };
|
||||
|
||||
plugins = [
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{git}: {
|
||||
{ git }: {
|
||||
reload = {
|
||||
body = ''
|
||||
history --save
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.foot;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.foot = {
|
||||
enable = mkEnableOption "activate foot";
|
||||
server = mkEnableOption "enable foot server";
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.git;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.git = {
|
||||
enable = mkEnableOption "enable git";
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.gpg;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.gpg = {
|
||||
enable = mkEnableOption "enable gpg";
|
||||
};
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.neovim;
|
||||
in {
|
||||
options.eboskma.programs.neovim = {enable = mkEnableOption "activate neovim";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.neovim = { enable = mkEnableOption "activate neovim"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# unfortunately this does properly support a Lua based config
|
||||
|
@ -28,7 +28,7 @@ in {
|
|||
# '';
|
||||
# };
|
||||
|
||||
home.packages = with pkgs; [neovim];
|
||||
home.packages = with pkgs; [ neovim ];
|
||||
|
||||
xdg.configFile.nvim = {
|
||||
source = ./config;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.obs-studio;
|
||||
in {
|
||||
options.eboskma.programs.obs-studio = {enable = mkEnableOption "activate obs-studio";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.obs-studio = { enable = mkEnableOption "activate obs-studio"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.obs-studio = {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.rofi;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.rofi.enable = mkEnableOption "Enable rofi";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.solvespace;
|
||||
in {
|
||||
options.eboskma.programs.solvespace = {enable = mkEnableOption "activate solvespace";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.solvespace = { enable = mkEnableOption "activate solvespace"; };
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
home.packages = with pkgs; [
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.ssh;
|
||||
in {
|
||||
options.eboskma.programs.ssh = {enable = mkEnableOption "activate ssh";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.ssh = { enable = mkEnableOption "activate ssh"; };
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
programs.ssh = {
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.sway;
|
||||
|
@ -10,7 +9,8 @@ with lib; let
|
|||
swaylockcmd = "${pkgs.swaylock-effects}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --clock --image ~/.wallpapers/river-2560.png --fade-in 0.5 --scaling fill";
|
||||
# swaylockcmd = "${pkgs.swaylock}/bin/swaylock --ignore-empty-password --daemonize --show-failed-attempts --indicator-caps-lock --image ~/.wallpapers/river-2560.png --scaling fill";
|
||||
rofiPower = pkgs.writeShellScriptBin "rofi-power" (builtins.readFile ./powermenu.sh);
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.sway.enable = mkEnableOption "Enable sway";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -20,9 +20,9 @@ in {
|
|||
modifier = mod;
|
||||
|
||||
assigns = {
|
||||
"1" = [{app_id = "firefox";}];
|
||||
"2" = [{app_id = "Alacritty";} {app_id = "foot";}];
|
||||
"3" = [{class = "Code";}];
|
||||
"1" = [{ app_id = "firefox"; }];
|
||||
"2" = [{ app_id = "Alacritty"; } { app_id = "foot"; }];
|
||||
"3" = [{ class = "Code"; }];
|
||||
};
|
||||
bars = [
|
||||
{
|
||||
|
@ -78,12 +78,12 @@ in {
|
|||
right = "o";
|
||||
|
||||
floating = {
|
||||
criteria = [{app_id = "gnome-calculator";}];
|
||||
criteria = [{ app_id = "gnome-calculator"; }];
|
||||
modifier = mod;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
names = ["Iosevka Nerd Font"];
|
||||
names = [ "Iosevka Nerd Font" ];
|
||||
style = "Regular";
|
||||
size = 12.0;
|
||||
};
|
||||
|
@ -287,7 +287,7 @@ in {
|
|||
systemd.user.targets.tray = {
|
||||
Unit = {
|
||||
Description = "Home Manager System Tray";
|
||||
Requires = ["graphical-session-pre.target"];
|
||||
Requires = [ "graphical-session-pre.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.tmux;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.tmux = {
|
||||
enable = mkEnableOption "enable tmux";
|
||||
};
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
flake-inputs,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, flake-inputs
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.vscode;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.vscode.enable = mkEnableOption "enable vscode";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.waybar;
|
||||
|
@ -14,7 +13,8 @@ with lib; let
|
|||
if [[ ''${COUNT} != 0 ]]; then DISABLED=" ''${COUNT}"; fi
|
||||
if ${pkgs.dunst}/bin/dunstctl is-paused | grep -q "false" ; then echo "''${ENABLED}"; else echo "''${DISABLED}"; fi
|
||||
'';
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.waybar.enable = mkEnableOption "Enable waybar";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -140,7 +140,7 @@ in {
|
|||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = ["奄" "奔" "墳"];
|
||||
default = [ "奄" "奔" "墳" ];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.programs.zathura;
|
||||
in {
|
||||
options.eboskma.programs.zathura = {enable = mkEnableOption "activate zathura";};
|
||||
in
|
||||
{
|
||||
options.eboskma.programs.zathura = { enable = mkEnableOption "activate zathura"; };
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
programs.zathura = {
|
||||
|
|
|
@ -4,7 +4,7 @@ let
|
|||
};
|
||||
|
||||
lib = import "${krops}/lib";
|
||||
pkgs = import "${krops}/pkgs" {};
|
||||
pkgs = import "${krops}/pkgs" { };
|
||||
source = name:
|
||||
lib.evalSource [
|
||||
{
|
||||
|
@ -25,7 +25,8 @@ let
|
|||
source = source name;
|
||||
target = lib.mkTarget target;
|
||||
};
|
||||
in rec {
|
||||
in
|
||||
rec {
|
||||
# Deployments
|
||||
|
||||
# Run with:
|
||||
|
@ -34,4 +35,5 @@ in rec {
|
|||
loki = createHost "loki" "root@loki";
|
||||
drone = createHost "drone" "root@10.0.0.202";
|
||||
proxy = createHost "proxy" "root@10.0.0.251";
|
||||
gitea = createHost "gitea" "root@10.0.0.203";
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{self, ...}: {
|
||||
{ self, ... }: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../users/root
|
||||
|
@ -33,7 +33,7 @@
|
|||
};
|
||||
|
||||
defaultGateway = "10.0.0.1";
|
||||
nameservers = ["10.0.0.254"];
|
||||
nameservers = [ "10.0.0.254" ];
|
||||
};
|
||||
|
||||
environment.noXlibs = true;
|
||||
|
@ -42,8 +42,8 @@
|
|||
|
||||
sops.defaultSopsFile = ./secrets.yaml;
|
||||
sops.secrets = {
|
||||
drone = {};
|
||||
drone-runner = {};
|
||||
drone = { };
|
||||
drone-runner = { };
|
||||
};
|
||||
|
||||
system.stateVersion = "21.11";
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/virtualisation/lxc-container.nix")
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ self, ... }@inputs: {
|
||||
{ self, ... } @ inputs: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../users/root
|
||||
../../users/erwin
|
||||
];
|
||||
|
@ -9,7 +10,7 @@
|
|||
nix-common.enable = true;
|
||||
};
|
||||
|
||||
# boot.isContainer = true;
|
||||
boot.isContainer = true;
|
||||
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
|
@ -22,15 +23,16 @@
|
|||
interfaces = {
|
||||
eth0 = {
|
||||
ipv4.addresses = [
|
||||
{ address = "10.0.0.203";
|
||||
prefixLength = 24;
|
||||
{
|
||||
address = "10.0.0.201";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
defaultGateway = "10.0.0.1";
|
||||
nameservers = ["10.0.0.254"];
|
||||
nameservers = [ "10.0.0.254" ];
|
||||
};
|
||||
|
||||
environment.noXlibs = true;
|
||||
|
|
10
machines/gitea/hardware-configuration.nix
Normal file
10
machines/gitea/hardware-configuration.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/virtualisation/lxc-container.nix")
|
||||
];
|
||||
}
|
|
@ -5,28 +5,48 @@ sops:
|
|||
azure_kv: []
|
||||
hc_vault: []
|
||||
age: []
|
||||
lastmodified: "2022-04-25T15:50:15Z"
|
||||
mac: ENC[AES256_GCM,data:r+PbyDB1s0zBoczJVTaTnUvLw8Oqywul1zB7S8clXYtgWDSCIJ2igwupwmH2mYqEzTUutaKNjjAxbaerD8rrBgsJ1K1PSQwk6MawEskVwmdGbIdfCB8r0qHCNOE7pVRgTXyFxjEH6D9xxl/QJhVVTXXnZebR+r9q2SmJyazlFEg=,iv:lV6i7EKu6v0HORk1RhateMB9T0xMhROYKtd67M4fEJk=,tag:iTpNCUruB8Yd/5PlypdmQA==,type:str]
|
||||
lastmodified: "2022-04-26T19:26:23Z"
|
||||
mac: ENC[AES256_GCM,data:8KcUH12RqxkuX7MQpm4Xtl0YNUnhj/ef55ix8mb59ncLfjWauM7KlYVJg+La0FrqvWOFNNsMTYiBNlt/1KU9tqJs7kjzQQvhkcUDA6jAnFKtLCV6X8fd+3mon2UUL6eh5FDWjy3lTp45VrWNwTjC+LP1RAGGG7ie4tuI69PM1h0=,iv:SoU3hXDCZwJk4BLgjFU00rQUdqxlD5j8LcdQ8RZvbGs=,tag:9uveuZWgDesins8lk5w9Dw==,type:str]
|
||||
pgp:
|
||||
- created_at: "2022-04-25T15:49:31Z"
|
||||
- created_at: "2022-04-26T19:30:48Z"
|
||||
enc: |
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMA6BoiFpcAxNSAQ//cqGJB1/5LEEG9tmgwYoTAW3hhMaF3yDuMRQbYG8CKw8t
|
||||
ftrqUSltqoZi/9f7AHeQl82LnrdlHyHD3+uzcC1FYgYCU5OslD/IuvYBkVGXlvGh
|
||||
kk7yBNSEsxVo2sPkrUPJzxapFcf1j2gm83WZ4vTUQ8Mn5UYmGBNmVw4cLtO/R732
|
||||
ZhvvLePeF2Za79UxEKIkbh2CWNNA80PLZt8pLUsl+HXnWxNep6fDdwrC6GdU3C8o
|
||||
qcHN7+JGZdDYFqD0bsxpHFYcbg8OWajFJ4vbx9JHSNfjxXRqzaWr+3I93N/aMra/
|
||||
vXyqeRaqowXx9hL2lIAU2Pvpe79+YMeYm3WgEI0ytBz7o86majq3DQ3+XjESIpoy
|
||||
5hNC+cgFiuBUE6e1lBq3812ycsH+HPtha2ppsyr5CX1Fjc63hkszU0bH6UL1jUVk
|
||||
hUAEuLiKADnwPJK1NGrXHqyfEYhIAFkCvEgBK5zoCkcuQ/r2CsO8GfQdOPDwVKcC
|
||||
WLHQU9hq66iCLTd9IxVfOn5YcMjHk6Ie5Dam7cbF3pVAcXrKneYgNK4kdh7aBOqe
|
||||
dasqr/HNJ4Fi15lrVyx2g8c8mb68AbmTCydPX5tZ3RCIc0r8i4iEbYS0Ny8jVPZp
|
||||
6qzI3qo0LnrnMaqqKiJAGH2x3y4bJUlrlab3tV0Kou7e2oM4WhY3jVFXtdAV7+HS
|
||||
XgGGtcTnOE6cSrFRZCSCCzsRrvgDY3NNrrcVBayeCHG+OLqgiHngReG9CdbMzi9E
|
||||
8yIxWF3/8kbKqru6TSheHgOu1v0q/RnCAEqukRynw/Ze8t2/tzGkzETgRMcCoDU=
|
||||
=q/Xc
|
||||
hQIMA6BoiFpcAxNSARAAmVgrY+u/uozCxB3xTegvh2C+VOW4yxDBKGFfM5/NS3PR
|
||||
XneeBNRxJZ2BFsOnGtJZSsCkiD1FwVw9nYCnA1TCjw62gkHyJsvQziUM8WKrpIW0
|
||||
RXHllXawOW7Lb0faUcTRF90Z//kVfk4o33Xs895IK+mk+iRpLdE0RrINBfZ7jb0y
|
||||
OJ93wJ0CL7A5KtltUBthX+POqI12bbj7hnUtz05mfpQG6PcnRwMHJBUk0JPo4s4H
|
||||
8ksJlPRrbwi7JU5XQTo7SDTp/IwbXbewCylkS7nt05znIOFIejC22XEv8w0XPX8p
|
||||
ZwQxPvOrXb4f1PDFgv65ej2aXREc7sidwqg8hUiBsKBuxRjFQFzLcwhNzAKwv30s
|
||||
Nrj4yTMn2qNIjhsfHfMgRpm/iwvpsAFWFUqGkwb3gs3V7PjOidRMB4xDY1QV9Pae
|
||||
b8z18S4cFIh69Aev3fiDzopL5xF7ZBcayIjwC6RkhYzcedkz5oPl2tqqkJCiPQe9
|
||||
ohxGF8m/9k/OhQRKl8HURybMyX7SwAXA9Tx1dNbb2xbPNaFXSBKxpF7B2k3kD/pQ
|
||||
skuuHDl2z/deoD0Gu75+Svvb6jv82P3+KL9waaxrnfQQ3avX6hIQ9zF34jTxHbtr
|
||||
UHAxEtuuIdER8756fWtgWshpdY2rWQ54flT6nlhtsNN1Io/flXdeof6S3hDiKAnS
|
||||
XgEAVMKweW8Q2OhGhJZSEnP8IpRsPuGu3G1v8/L+lzJEK4edvUr9IgqGUq7Iqeql
|
||||
7+sw+jFzJPsPhiFpvZx1pB1RGS50q6O/Ch8/AMK7SvYD6oSASYfa/ifzAZSapiE=
|
||||
=r/Wn
|
||||
-----END PGP MESSAGE-----
|
||||
fp: b785a9688947edabb9ec8933ee7adefe1d943c7b
|
||||
- created_at: "2022-04-26T19:30:48Z"
|
||||
enc: |
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMA7iSLIuhZxC+AQ/+Pr6/373P/TKxh3S1rg2SwIlwJ6pZo4E4JZBmCQ+YTZNz
|
||||
WOg9WLUrMVAgax6dDTf+GPPCLphI7SfQjPqpHEOw/eUtZhSqmcq61no0gVyDgv5s
|
||||
KHPrary79dVG7xw9i/ipc8LPc8hujeXHD4hzv2iYlod4LhjPwR4WsxaQJ7fbaU5V
|
||||
V7Gu4wzdoiOTl1fthXaUAqjgJ/iRlQhML5B46dMVg5E7g7GKmJjPuBhDWIAz+/2Y
|
||||
fNY5dWL7B5R67zFmrxUUa9Wbr1SvEViR4bKaUURMhixzgWAxgQ79zR4B3J1D+tW/
|
||||
2TnpPgP2b5ikMKbUFBEX7x/oGmvVn4DJcDwQEM1X5+nMOpT7j4cx0NOnhUkJNfdW
|
||||
VJK2bN/XBlfy9SnAz/nzleKzO+p27LvBfnyvC4fC9ZySNfVWdcDaqCRbF0mfHWB1
|
||||
2C0HfEAQe7X7Vzpc3w+FyyZuQRNixTQjl2pouJIVWQOUFGy5Xn5yZgWrb93day9K
|
||||
Q2zem+jMHQQpDc/KPSh1qIgboAh7UnxhfKJCUUortL6eMOL7UQi42qautDngl93D
|
||||
opBSf2my+gqFajV6Y0vYO9MSGFd92XLwqQXnJMPEHm/aDsQRxW8mf71ZMu1iMUns
|
||||
IU8nPgki2VC3Z+OnSYdUv8aSY5K341xODfntmrcdO/Q1dvsXEyPtZ81BQn4nY2jS
|
||||
WAH3bwUphfdA/PNBRTGrYp/TiTdhj1cGtgyjY1QgIA2i8PTRAD4nk3kY6qwchUJE
|
||||
Mjx0i74gMqFOZ81iFS1ohiya2zhP5mwbLzIP4hdt5J9UvDozhS52VE0=
|
||||
=vu1S
|
||||
-----END PGP MESSAGE-----
|
||||
fp: ca0dba2f767679957879077fb8922c8ba16710be
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.7.2
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{self, ...}: {
|
||||
imports = [./hardware-configuration.nix ../../users/erwin ../../users/root];
|
||||
{ self, ... }: {
|
||||
imports = [ ./hardware-configuration.nix ../../users/erwin ../../users/root ];
|
||||
|
||||
eboskma = {
|
||||
# backscrub.enable = true;
|
||||
|
@ -28,9 +28,9 @@
|
|||
};
|
||||
networking = {
|
||||
enable = true;
|
||||
dhcpInterfaces = ["enp4s0"];
|
||||
dhcpInterfaces = [ "enp4s0" ];
|
||||
hosts = {
|
||||
"10.0.0.252" = ["pve.datarift.nl"];
|
||||
"10.0.0.252" = [ "pve.datarift.nl" ];
|
||||
};
|
||||
};
|
||||
nix-common = {
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd" "apple-mfi-fastcharge"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" "apple-mfi-fastcharge" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/42065c7e-d0aa-4de8-a913-014cf59d48ac";
|
||||
|
@ -32,9 +31,8 @@
|
|||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [{device = "/dev/disk/by-uuid/d93788f7-1b94-4687-8313-055d17f42b7e";}];
|
||||
swapDevices = [{ device = "/dev/disk/by-uuid/d93788f7-1b94-4687-8313-055d17f42b7e"; }];
|
||||
|
||||
# high-resolution display
|
||||
hardware.video.hidpi.enable = lib.mkDefault true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{self, ...}: {
|
||||
{ self, ... }: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../users/root
|
||||
|
@ -33,7 +33,7 @@
|
|||
};
|
||||
|
||||
defaultGateway = "10.0.0.1";
|
||||
nameservers = ["10.0.0.254"];
|
||||
nameservers = [ "10.0.0.254" ];
|
||||
};
|
||||
|
||||
environment.noXlibs = true;
|
||||
|
@ -41,7 +41,7 @@
|
|||
services.openssh.enable = true;
|
||||
|
||||
sops.defaultSopsFile = ./secrets.yaml;
|
||||
sops.secrets = {};
|
||||
sops.secrets = { };
|
||||
|
||||
system.stateVersion = "21.11";
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/virtualisation/lxc-container.nix")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{self, ...}: {
|
||||
imports = [./hardware-configuration.nix];
|
||||
{ self, ... }: {
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
eboskma = {
|
||||
desktop = {
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
|
@ -27,5 +26,5 @@
|
|||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [{device = "/dev/disk/by-label/swap";}];
|
||||
swapDevices = [{ device = "/dev/disk/by-label/swap"; }];
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{self, ...}: {
|
||||
imports = [./hardware-configuration.nix];
|
||||
{ self, ... }: {
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
eboskma = {
|
||||
base = {
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, modulesPath
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
|
||||
boot.initrd.kernelModules = ["kvm-amd"];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
|
||||
boot.initrd.kernelModules = [ "kvm-amd" ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
|
@ -27,5 +26,5 @@
|
|||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [{device = "/dev/disk/by-label/swap";}];
|
||||
swapDevices = [{ device = "/dev/disk/by-label/swap"; }];
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.backscrub;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.backscrub = {
|
||||
enable = mkEnableOption "enable v4l2loopback kernel module";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
boot.extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
||||
# Register a v4l2loopback device at boot
|
||||
boot.kernelModules = [
|
||||
"v4l2loopback"
|
||||
|
@ -25,6 +25,6 @@ in {
|
|||
options v4l2loopback card_label="VirtualCam"
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs; [backscrub];
|
||||
environment.systemPackages = with pkgs; [ backscrub ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.base;
|
||||
|
@ -11,7 +10,8 @@ with lib; let
|
|||
inherit (pkgs.stdenv) mkDerivation;
|
||||
inherit lib;
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.base = {
|
||||
kernel = mkOption {
|
||||
description = "which kernel to run";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
mkDerivation,
|
||||
lib,
|
||||
{ mkDerivation
|
||||
, lib
|
||||
,
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "probe-rs-udev-rules";
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.bluetooth;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.bluetooth = {
|
||||
enable = mkEnableOption "activate bluetooth";
|
||||
};
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
self-overlay,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, inputs
|
||||
, self-overlay
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.desktop;
|
||||
bt = config.eboskma.bluetooth;
|
||||
in {
|
||||
in
|
||||
{
|
||||
# imports = [ ../../users/erwin.nix ../../users/root.nix ];
|
||||
|
||||
options.eboskma.desktop = {
|
||||
|
@ -43,7 +43,7 @@ in {
|
|||
EDITOR = "${pkgs.neovim}/bin/nvim";
|
||||
};
|
||||
|
||||
nixpkgs.config = {allowUnfree = true;};
|
||||
nixpkgs.config = { allowUnfree = true; };
|
||||
|
||||
home.stateVersion = "21.11";
|
||||
|
||||
|
@ -101,7 +101,7 @@ in {
|
|||
imagemagick
|
||||
imv
|
||||
iotop
|
||||
(jetbrains.clion.override {jdk = pkgs.jetbrains.jdk;})
|
||||
(jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
|
||||
kicad
|
||||
mpv
|
||||
nomachine-client
|
||||
|
@ -119,7 +119,7 @@ in {
|
|||
wireshark
|
||||
wl-clipboard
|
||||
]
|
||||
++ (with gst_all_1; [gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi]);
|
||||
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
|
@ -156,7 +156,7 @@ in {
|
|||
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [fcitx5-m17n fcitx5-gtk fcitx5-configtool];
|
||||
fcitx5.addons = with pkgs; [ fcitx5-m17n fcitx5-gtk fcitx5-configtool ];
|
||||
};
|
||||
|
||||
gtk = {
|
||||
|
@ -246,13 +246,13 @@ in {
|
|||
portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
|
||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
gtkUsePortal = true;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
dbus.packages = [pkgs.gcr];
|
||||
dbus.packages = [ pkgs.gcr ];
|
||||
avahi.publish.workstation = true;
|
||||
gvfs.enable = true;
|
||||
pcscd.enable = true;
|
||||
|
@ -271,7 +271,7 @@ in {
|
|||
updateWtmp = true;
|
||||
startSession = true;
|
||||
};
|
||||
pki.certificates = [(builtins.readFile ./horus-ca.pem)];
|
||||
pki.certificates = [ (builtins.readFile ./horus-ca.pem) ];
|
||||
};
|
||||
|
||||
environment = {
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.docker;
|
||||
in {
|
||||
options.eboskma.docker = {enable = mkEnableOption "activate docker";};
|
||||
in
|
||||
{
|
||||
options.eboskma.docker = { enable = mkEnableOption "activate docker"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [docker-compose];
|
||||
environment.systemPackages = with pkgs; [ docker-compose ];
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
|
@ -20,6 +20,6 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = ["docker"];
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "docker" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.drone;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.drone = {
|
||||
enable = mkEnableOption "activate drone CI";
|
||||
};
|
||||
|
@ -18,8 +18,8 @@ in {
|
|||
drone = {
|
||||
autoStart = true;
|
||||
image = "drone/drone:2";
|
||||
ports = ["8100:80"];
|
||||
volumes = ["drone_data:/data"];
|
||||
ports = [ "8100:80" ];
|
||||
volumes = [ "drone_data:/data" ];
|
||||
environmentFiles = [
|
||||
/var/run/secrets/drone
|
||||
];
|
||||
|
@ -28,7 +28,7 @@ in {
|
|||
drone-runner-docker = {
|
||||
autoStart = true;
|
||||
image = "drone/drone-runner-docker:1";
|
||||
ports = ["3000:3000"];
|
||||
ports = [ "3000:3000" ];
|
||||
volumes = [
|
||||
"/var/run/docker.sock:/var/run/docker.sock"
|
||||
];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.element-web;
|
||||
matrixClientConfig = pkgs.writeText "element-web.json" (builtins.readFile ./element-web.json);
|
||||
in {
|
||||
options.eboskma.element-web = {enable = mkEnableOption "activate element-web";};
|
||||
in
|
||||
{
|
||||
options.eboskma.element-web = { enable = mkEnableOption "activate element-web"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
eboskma.docker.enable = true;
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.fonts;
|
||||
in {
|
||||
options.eboskma.fonts = {enable = mkEnableOption "activate fonts";};
|
||||
in
|
||||
{
|
||||
options.eboskma.fonts = { enable = mkEnableOption "activate fonts"; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
|
||||
fonts = with pkgs; [
|
||||
(nerdfonts.override {fonts = ["CascadiaCode" "DroidSansMono" "FantasqueSansMono" "FiraCode" "Iosevka" "JetBrainsMono" "Meslo" "Noto" "SourceCodePro"];})
|
||||
(nerdfonts.override { fonts = [ "CascadiaCode" "DroidSansMono" "FantasqueSansMono" "FiraCode" "Iosevka" "JetBrainsMono" "Meslo" "Noto" "SourceCodePro" ]; })
|
||||
dejavu_fonts
|
||||
google-fonts
|
||||
kochi-substitute
|
||||
|
@ -27,10 +27,10 @@ in {
|
|||
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = ["Recursive Sans Casual Static Medium"];
|
||||
sansSerif = ["Recursive Sans Linear Static Medium"];
|
||||
monospace = ["Iosevka Nerd Font"];
|
||||
emoji = ["Noto Color Emoji"];
|
||||
serif = [ "Recursive Sans Casual Static Medium" ];
|
||||
sansSerif = [ "Recursive Sans Linear Static Medium" ];
|
||||
monospace = [ "Iosevka Nerd Font" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{ pkgs, config, lib, ...}:
|
||||
with lib;
|
||||
let
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.gitea;
|
||||
giteaCfg = config.services.gitea;
|
||||
in
|
||||
|
@ -13,19 +16,20 @@ in
|
|||
user = "git";
|
||||
domain = "git.datarift.nl";
|
||||
appName = "Gitea Datarift";
|
||||
rootUrl = "https://git.datarift.nl/";
|
||||
rootUrl = "https://git.datarift.nl/";
|
||||
log.level = "Warn";
|
||||
lfs = {
|
||||
enable = true;
|
||||
};
|
||||
disableRegistration = true;
|
||||
cookieSecure = true;
|
||||
|
||||
|
||||
database = {
|
||||
type = "postgres";
|
||||
socket = "/run/postgresql";
|
||||
passwordFile = "/run/secrets/gitea_db_password";
|
||||
createDatabase = false;
|
||||
user = "git";
|
||||
};
|
||||
|
||||
settings = {
|
||||
|
@ -62,6 +66,8 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 3000 ];
|
||||
|
||||
users.users.git = {
|
||||
description = "Gitea service user";
|
||||
home = giteaCfg.stateDir;
|
||||
|
@ -69,17 +75,17 @@ in
|
|||
group = "gitea";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
# Explicitly specify version here, because upgrading is a manual process that involves dumping and restoring databases:
|
||||
# https://nixos.org/manual/nixos/unstable/index.html#module-services-postgres-upgrading
|
||||
package = pkgs.postgresql_14;
|
||||
|
||||
ensureDatabases = ["gitea"];
|
||||
ensureDatabases = [ "gitea" ];
|
||||
ensureUsers = [
|
||||
{
|
||||
name = "gitea";
|
||||
name = "git";
|
||||
ensurePermissions = {
|
||||
"DATABASE gitea" = "ALL PRIVILEGES";
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.gnome;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.gnome.enable = mkEnableOption "activate gnome support settings";
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
|
|
|
@ -1,69 +1,69 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.greetd;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.greetd = {
|
||||
enable = mkEnableOption "enable greetd";
|
||||
};
|
||||
|
||||
config =
|
||||
mkIf (cfg.enable)
|
||||
{
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config /etc/greetd/sway-config";
|
||||
{
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config /etc/greetd/sway-config";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [greetd.gtkgreet quintom-cursor-theme papirus-icon-theme arc-theme];
|
||||
environment.systemPackages = with pkgs; [ greetd.gtkgreet quintom-cursor-theme papirus-icon-theme arc-theme ];
|
||||
|
||||
environment.etc = {
|
||||
"greetd/sway-config" = {
|
||||
text = ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
include /etc/sway/config.d/*
|
||||
'';
|
||||
user = "greeter";
|
||||
group = "greeter";
|
||||
};
|
||||
"greetd/environments" = {
|
||||
text = ''
|
||||
${pkgs.sway}/bin/sway
|
||||
${pkgs.bash}/bin/bash
|
||||
'';
|
||||
user = "greeter";
|
||||
group = "greeter";
|
||||
};
|
||||
"sway/config.d/systemd-env.conf" = {
|
||||
text = ''
|
||||
exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
|
||||
exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
|
||||
'';
|
||||
};
|
||||
"xdg/gtk-3.0/settings.ini" = {
|
||||
text = generators.toINI {} {
|
||||
Settings = {
|
||||
gtk-theme-name = "Arc-Dark";
|
||||
gtk-icon-theme-name = "Papirus-Dark";
|
||||
gtk-cursor-theme-name = "Quintom_Ink";
|
||||
gtk-application-prefer-dark-theme = "true";
|
||||
environment.etc = {
|
||||
"greetd/sway-config" = {
|
||||
text = ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
include /etc/sway/config.d/*
|
||||
'';
|
||||
user = "greeter";
|
||||
group = "greeter";
|
||||
};
|
||||
"greetd/environments" = {
|
||||
text = ''
|
||||
${pkgs.sway}/bin/sway
|
||||
${pkgs.bash}/bin/bash
|
||||
'';
|
||||
user = "greeter";
|
||||
group = "greeter";
|
||||
};
|
||||
"sway/config.d/systemd-env.conf" = {
|
||||
text = ''
|
||||
exec_always --no-startup-id systemctl --user import-environment _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
|
||||
exec_always --no-startup-id dbus-update-activation-environment --systemd _JAVA_AWT_WM_NONREPARENTING MOZ_ENABLE_WAYLAND MOZ_DBUS_REMOTE QT_QPA_PLATFORM QT_WAYLAND_DISABLE_WINDOWDECORATION QT_QPA_PLATFORMTHEME SDL_VIDEODRIVER SSH_AUTH_SOCK
|
||||
'';
|
||||
};
|
||||
"xdg/gtk-3.0/settings.ini" = {
|
||||
text = generators.toINI { } {
|
||||
Settings = {
|
||||
gtk-theme-name = "Arc-Dark";
|
||||
gtk-icon-theme-name = "Papirus-Dark";
|
||||
gtk-cursor-theme-name = "Quintom_Ink";
|
||||
gtk-application-prefer-dark-theme = "true";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.livebook;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.livebook = {
|
||||
enable = mkEnableOption "Start a livebook container";
|
||||
dataDir = mkOption {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.networking;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.networking = {
|
||||
enable = mkEnableOption "activate networing settings";
|
||||
|
||||
|
@ -27,13 +27,13 @@ in {
|
|||
interfaces = listToAttrs (builtins.map
|
||||
(iface: {
|
||||
name = iface;
|
||||
value = {useDHCP = true;};
|
||||
value = { useDHCP = true; };
|
||||
})
|
||||
cfg.dhcpInterfaces);
|
||||
hosts = cfg.hosts;
|
||||
|
||||
firewall = {
|
||||
trustedInterfaces = ["lo"];
|
||||
trustedInterfaces = [ "lo" ];
|
||||
interfaces = listToAttrs (builtins.map
|
||||
(iface: {
|
||||
name = iface;
|
||||
|
@ -49,7 +49,7 @@ in {
|
|||
cfg.dhcpInterfaces);
|
||||
};
|
||||
};
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = ["networkmanager"];
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "networkmanager" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nmap
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.nginx-proxy-manager;
|
||||
in {
|
||||
options.eboskma.nginx-proxy-manager = {enable = mkEnableOption "Nginx Proxy Manager";};
|
||||
in
|
||||
{
|
||||
options.eboskma.nginx-proxy-manager = { enable = mkEnableOption "Nginx Proxy Manager"; };
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
eboskma.docker.enable = true;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.nix-common;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.nix-common = {
|
||||
enable = mkEnableOption "activate nix-common";
|
||||
disable-cache = mkEnableOption "no not use binary cache";
|
||||
|
@ -25,7 +25,7 @@ in {
|
|||
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
allowed-users = ["root"];
|
||||
allowed-users = [ "root" ];
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
{ lib
|
||||
, pkgs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.var;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.var.mainUser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "erwin";
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.sound;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.sound.enable = mkEnableOption "activate sound settings";
|
||||
|
||||
config = mkIf (cfg.enable) {
|
||||
|
@ -21,10 +21,10 @@ in {
|
|||
config = {
|
||||
bluez-monitor.rules = [
|
||||
{
|
||||
matches = [{"device.name" = "~bluez_card.*";}];
|
||||
matches = [{ "device.name" = "~bluez_card.*"; }];
|
||||
actions = {
|
||||
"update-props" = {
|
||||
"bluez5.reconnect-profiles" = ["hfp_hf" "hsp_hs" "a2dp_sink"];
|
||||
"bluez5.reconnect-profiles" = [ "hfp_hf" "hsp_hs" "a2dp_sink" ];
|
||||
"bluez5.msbc-support" = true;
|
||||
"bluez5.sbc-xq-support" = true;
|
||||
};
|
||||
|
@ -32,8 +32,8 @@ in {
|
|||
}
|
||||
{
|
||||
matches = [
|
||||
{"node.name" = "~bluez_input.*";}
|
||||
{"node.name" = "~bluez_output.*";}
|
||||
{ "node.name" = "~bluez_input.*"; }
|
||||
{ "node.name" = "~bluez_output.*"; }
|
||||
];
|
||||
actions = {
|
||||
"node.pause-on-idle" = false;
|
||||
|
@ -64,8 +64,8 @@ in {
|
|||
|
||||
security.rtkit.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [pavucontrol];
|
||||
environment.systemPackages = with pkgs; [ pavucontrol ];
|
||||
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = ["audio"];
|
||||
users.extraUsers.${config.eboskma.var.mainUser}.extraGroups = [ "audio" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.systemd;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.eboskma.systemd = {
|
||||
enable = mkEnableOption "activate systemd settings";
|
||||
};
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
final: prev: rec {
|
||||
rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland {};
|
||||
nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins {};
|
||||
lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim {};
|
||||
rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { };
|
||||
nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins { };
|
||||
lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim { };
|
||||
backscrub =
|
||||
prev.pkgs.callPackage ../pkgs/backscrub
|
||||
{
|
||||
inherit (prev.pkgs) gcc cmake opencv curl stdenv git tensorflow-lite flatbuffers;
|
||||
};
|
||||
onnx-runtime = prev.pkgs.callPackage ../pkgs/onnx-runtime {inherit (prev.pkgs) stdenv;};
|
||||
obs-backgroundremoval = prev.pkgs.callPackage ../pkgs/obs-backgroundremoval {inherit (prev.pkgs) stdenv fetchFromGitHub cmake obs-studio opencv onnx-runtime;};
|
||||
{
|
||||
inherit (prev.pkgs) gcc cmake opencv curl stdenv git tensorflow-lite flatbuffers;
|
||||
};
|
||||
onnx-runtime = prev.pkgs.callPackage ../pkgs/onnx-runtime { inherit (prev.pkgs) stdenv; };
|
||||
obs-backgroundremoval = prev.pkgs.callPackage ../pkgs/obs-backgroundremoval { inherit (prev.pkgs) stdenv fetchFromGitHub cmake obs-studio opencv onnx-runtime; };
|
||||
|
||||
swaynotificationcenter = prev.swaynotificationcenter.overrideAttrs (oldAttrs: rec {
|
||||
version = "0.5";
|
||||
|
@ -19,6 +19,6 @@ final: prev: rec {
|
|||
hash = "sha256-Jjbr6GJ0MHlO+T/simPNYQnB5b7Cr85j4GRjRGa5B6s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [prev.scdoc];
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ prev.scdoc ];
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
opencv,
|
||||
gcc,
|
||||
curl,
|
||||
git,
|
||||
tensorflow-lite,
|
||||
flatbuffers,
|
||||
{ stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, opencv
|
||||
, gcc
|
||||
, curl
|
||||
, git
|
||||
, tensorflow-lite
|
||||
, flatbuffers
|
||||
,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
name = "backscrub";
|
||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
|||
sha256 = "14gd77m7dy0wg15y0i8zhki8cm7np2spx7yi162b2xqaav04b1cj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [gcc cmake git];
|
||||
buildInputs = [opencv curl tensorflow-lite flatbuffers];
|
||||
patches = [./fix-cmake-for-nixos.patch];
|
||||
nativeBuildInputs = [ gcc cmake git ];
|
||||
buildInputs = [ opencv curl tensorflow-lite flatbuffers ];
|
||||
patches = [ ./fix-cmake-for-nixos.patch ];
|
||||
}
|
||||
|
|
|
@ -1,36 +1,36 @@
|
|||
{pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
with pkgs; let
|
||||
nvim-customized = wrapNeovim neovim-unwrapped {};
|
||||
nvim-customized = wrapNeovim neovim-unwrapped { };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lunarvim";
|
||||
version = "0.0.1";
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lunarvim";
|
||||
version = "0.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LunarVim";
|
||||
repo = "LunarVim";
|
||||
rev = "0e531891b1dfd04fa02a22b48ce075120b512277";
|
||||
sha256 = "0yfr3vh8p1s9wy21s6bgpp6kp6s9pqlb6k66s76sa22vz4sjiyxb";
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "LunarVim";
|
||||
repo = "LunarVim";
|
||||
rev = "0e531891b1dfd04fa02a22b48ce075120b512277";
|
||||
sha256 = "0yfr3vh8p1s9wy21s6bgpp6kp6s9pqlb6k66s76sa22vz4sjiyxb";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [makeWrapper nvim-customized];
|
||||
buildInputs = [nvim-customized];
|
||||
nativeBuildInputs = [ makeWrapper nvim-customized ];
|
||||
buildInputs = [ nvim-customized ];
|
||||
|
||||
buildPhase = ''
|
||||
echo "hello"
|
||||
'';
|
||||
buildPhase = ''
|
||||
echo "hello"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp -r $(pwd) $out/lvim
|
||||
export shim="$out/lvim/utils/bin/lvim"
|
||||
substituteInPlace "$shim" \
|
||||
--replace "exec nvim" "exec ${nvim-customized}/bin/nvim"
|
||||
chmod +x "$shim"
|
||||
makeWrapper "$shim" "$out/bin/lvim" \
|
||||
--set LUNARVIM_RUNTIME_DIR "$out" \
|
||||
--prefix PATH : ${lib.makeBinPath [fzf git ripgrep]}
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/bin
|
||||
cp -r $(pwd) $out/lvim
|
||||
export shim="$out/lvim/utils/bin/lvim"
|
||||
substituteInPlace "$shim" \
|
||||
--replace "exec nvim" "exec ${nvim-customized}/bin/nvim"
|
||||
chmod +x "$shim"
|
||||
makeWrapper "$shim" "$out/bin/lvim" \
|
||||
--set LUNARVIM_RUNTIME_DIR "$out" \
|
||||
--prefix PATH : ${lib.makeBinPath [fzf git ripgrep]}
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nixUnstable,
|
||||
cmake,
|
||||
pkg-config,
|
||||
boost,
|
||||
nlohmann_json,
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nixUnstable
|
||||
, cmake
|
||||
, pkg-config
|
||||
, boost
|
||||
, nlohmann_json
|
||||
,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nix-plugins";
|
||||
|
@ -19,9 +19,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-Zbc0iq5ZAr73B+NJvpBHm9GIJhb9qrq0vFmV/ucNT5I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [cmake pkg-config];
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
||||
buildInputs = [nixUnstable boost nlohmann_json];
|
||||
buildInputs = [ nixUnstable boost nlohmann_json ];
|
||||
|
||||
meta = {
|
||||
description = "Collection of miscellaneous plugins for the nix expression language";
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
fetchFromGitHub,
|
||||
stdenv,
|
||||
cmake,
|
||||
obs-studio,
|
||||
opencv,
|
||||
onnx-runtime,
|
||||
git,
|
||||
{ fetchFromGitHub
|
||||
, stdenv
|
||||
, cmake
|
||||
, obs-studio
|
||||
, opencv
|
||||
, onnx-runtime
|
||||
, git
|
||||
,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-backgroundremoval";
|
||||
|
@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "TI1FlhE0+JL50gAZCSsI+g8savX8GRQkH3jYli/66hQ=";
|
||||
};
|
||||
|
||||
cmakeFlags = ["-DGIT_TAG=v${version}"];
|
||||
patches = [./cmake_set_version.patch];
|
||||
cmakeFlags = [ "-DGIT_TAG=v${version}" ];
|
||||
patches = [ ./cmake_set_version.patch ];
|
||||
|
||||
nativeBuildInputs = [cmake git];
|
||||
buildInputs = [opencv onnx-runtime obs-studio];
|
||||
nativeBuildInputs = [ cmake git ];
|
||||
buildInputs = [ opencv onnx-runtime obs-studio ];
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{stdenv}:
|
||||
{ stdenv }:
|
||||
stdenv.mkDerivation {
|
||||
pname = "onnx-runtime";
|
||||
version = "1.7.0";
|
||||
|
|
|
@ -1,52 +1,52 @@
|
|||
{pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
with pkgs;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rofi-wayland-unwrapped";
|
||||
version = "1.7.3";
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rofi-wayland-unwrapped";
|
||||
version = "1.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lbonn";
|
||||
repo = "rofi";
|
||||
rev = "${version}+wayland1";
|
||||
fetchSubmodules = true;
|
||||
# sha256 = "1h6lh4lrkxzs6iy2rzn5g71dnz6qck4j8cxpgy1ja179vrnj1sf7";
|
||||
sha256 = "qvIxWxiQj42VgScSsrF1Yf6ifgEbZes0flNbbwc3O8I=";
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "lbonn";
|
||||
repo = "rofi";
|
||||
rev = "${version}+wayland1";
|
||||
fetchSubmodules = true;
|
||||
# sha256 = "1h6lh4lrkxzs6iy2rzn5g71dnz6qck4j8cxpgy1ja179vrnj1sf7";
|
||||
sha256 = "qvIxWxiQj42VgScSsrF1Yf6ifgEbZes0flNbbwc3O8I=";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs "script"
|
||||
# root not present in build /etc/passwd
|
||||
sed -i 's/~root/~nobody/g' test/helper-expand.c
|
||||
'';
|
||||
preConfigure = ''
|
||||
patchShebangs "script"
|
||||
# root not present in build /etc/passwd
|
||||
sed -i 's/~root/~nobody/g' test/helper-expand.c
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [meson ninja pkgconfig];
|
||||
buildInputs = with pkgs; [
|
||||
libxkbcommon
|
||||
pango
|
||||
cairo
|
||||
git
|
||||
bison
|
||||
flex
|
||||
librsvg
|
||||
check
|
||||
libstartup_notification
|
||||
xorg.libxcb
|
||||
xorg.xcbutil
|
||||
xorg.xcbutilwm
|
||||
xcb-util-cursor
|
||||
xcbutilxrm
|
||||
which
|
||||
wayland-protocols
|
||||
wayland
|
||||
];
|
||||
nativeBuildInputs = [ meson ninja pkgconfig ];
|
||||
buildInputs = with pkgs; [
|
||||
libxkbcommon
|
||||
pango
|
||||
cairo
|
||||
git
|
||||
bison
|
||||
flex
|
||||
librsvg
|
||||
check
|
||||
libstartup_notification
|
||||
xorg.libxcb
|
||||
xorg.xcbutil
|
||||
xorg.xcbutilwm
|
||||
xcb-util-cursor
|
||||
xcbutilxrm
|
||||
which
|
||||
wayland-protocols
|
||||
wayland
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Window switcher, run dialog and dmenu replacement";
|
||||
homepage = "https://github.com/davatorium/rofi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [c0deaddict];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
meta = with lib; {
|
||||
description = "Window switcher, run dialog and dmenu replacement";
|
||||
homepage = "https://github.com/davatorium/rofi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ c0deaddict ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }: {
|
||||
users.users.erwin = {
|
||||
isNormalUser = true;
|
||||
home = "/home/erwin";
|
||||
extraGroups = ["wheel" "adm" "audio" "video"];
|
||||
extraGroups = [ "wheel" "adm" "audio" "video" ];
|
||||
shell = pkgs.fish;
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
(pkgs.fetchurl {
|
||||
|
@ -12,5 +12,5 @@
|
|||
];
|
||||
};
|
||||
|
||||
nix.settings.allowed-users = ["erwin"];
|
||||
nix.settings.allowed-users = [ "erwin" ];
|
||||
}
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
{ pkgs
|
||||
, config
|
||||
, lib
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.eboskma.desktop;
|
||||
in {
|
||||
options.eboskma.desktop = {enable = mkEnableOption "desktop configuration";};
|
||||
in
|
||||
{
|
||||
options.eboskma.desktop = { enable = mkEnableOption "desktop configuration"; };
|
||||
|
||||
config =
|
||||
mkIf (cfg.enable) {
|
||||
};
|
||||
mkIf (cfg.enable) { };
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }: {
|
||||
users.users.root = {
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
(pkgs.fetchurl {
|
||||
|
|
Loading…
Reference in a new issue