mirror of
https://github.com/sstent/vmimages.git
synced 2026-02-06 20:41:41 +00:00
fixing fitbit
This commit is contained in:
@@ -1,48 +0,0 @@
|
|||||||
# This is your system's configuration file.
|
|
||||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# You can import other NixOS modules here
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
# Include my hardware settings.
|
|
||||||
./hardware.nix
|
|
||||||
# Include static network settings.
|
|
||||||
./networking.nix
|
|
||||||
"${modulesPath}/virtualisation/hyperv-image.nix"
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs = {config = {allowUnfree = true;};};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
settings = {
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "HyperV";
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
system.stateVersion = "23.05";
|
|
||||||
|
|
||||||
mymods = {
|
|
||||||
gnome.enable = true;
|
|
||||||
user_sstent.enable = true;
|
|
||||||
sshd.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [22];
|
|
||||||
|
|
||||||
environment.etc."ssh/ssh_host_rsa_key".source = ./ssh/ssh_host_rsa_key;
|
|
||||||
environment.etc."ssh/ssh_host_rsa_key".mode = "0400";
|
|
||||||
environment.etc."ssh/ssh_host_rsa_key.pub".source = ./ssh/ssh_host_rsa_key.pub;
|
|
||||||
environment.etc."ssh/ssh_host_ed25519_key".source = ./ssh/ssh_host_ed25519_key;
|
|
||||||
environment.etc."ssh/ssh_host_ed25519_key".mode = "0400";
|
|
||||||
environment.etc."ssh/ssh_host_ed25519_key.pub".source = ./ssh/ssh_host_ed25519_key.pub;
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# This is just an example, you should generate yours with nixos-generate-config and put it in here.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# Set your system kind (needed for flakes)
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
virtualisation.hypervGuest.videoMode = "1920x1080";
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["sd_mod" "sr_mod"];
|
|
||||||
boot.initrd.kernelModules = [];
|
|
||||||
boot.kernelModules = ["hv_sock"];
|
|
||||||
|
|
||||||
# fileSystems."/" = {
|
|
||||||
# device = "/dev/disk/by-label/nixos";
|
|
||||||
# autoResize = true;
|
|
||||||
# fsType = "ext4";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# fileSystems."/boot" = {
|
|
||||||
# device = "/dev/disk/by-label/ESP";
|
|
||||||
# fsType = "vfat";
|
|
||||||
# };
|
|
||||||
|
|
||||||
fileSystems."/mnt/Public" = {
|
|
||||||
device = "//192.168.1.109/Public";
|
|
||||||
fsType = "cifs";
|
|
||||||
options = let
|
|
||||||
# this line prevents hanging on network split
|
|
||||||
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
|
|
||||||
# in ["${automount_opts},credentials=/etc/nixos/smb-secrets"];
|
|
||||||
in ["${automount_opts}"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# You can import other NixOS modules here
|
|
||||||
hyperv = {
|
|
||||||
baseImageSize = 8096;
|
|
||||||
};
|
|
||||||
|
|
||||||
# environment.etc = {
|
|
||||||
# nixos.source = ../..;
|
|
||||||
# };
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
# This file was populated at runtime with the networking
|
|
||||||
# details gathered from the active system.
|
|
||||||
networking = {
|
|
||||||
useDHCP = false;
|
|
||||||
nameservers = [
|
|
||||||
"192.168.1.1"
|
|
||||||
"192.168.1.250"
|
|
||||||
"8.8.8.8"
|
|
||||||
"8.8.4.4"
|
|
||||||
];
|
|
||||||
defaultGateway = {
|
|
||||||
address = "192.168.1.1";
|
|
||||||
};
|
|
||||||
interfaces.eth0 = {
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "192.168.1.230";
|
|
||||||
prefixLength = 24;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
|
||||||
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
|
||||||
QyNTUxOQAAACBRqPpgqp6hRtY97TI6Mz5vDrhL62QDJsO7oZtkOacFwAAAAJAcdclzHHXJ
|
|
||||||
cwAAAAtzc2gtZWQyNTUxOQAAACBRqPpgqp6hRtY97TI6Mz5vDrhL62QDJsO7oZtkOacFwA
|
|
||||||
AAAEC5jt0tLdgOmfZOlDMV4bDqH5Q4/8/mYmVdQxGwArBYaVGo+mCqnqFG1j3tMjozPm8O
|
|
||||||
uEvrZAMmw7uhm2Q5pwXAAAAAC3Jvb3RASHlwZXJWAQI=
|
|
||||||
-----END OPENSSH PRIVATE KEY-----
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFGo+mCqnqFG1j3tMjozPm8OuEvrZAMmw7uhm2Q5pwXA root@HyperV
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
|
||||||
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
|
|
||||||
zudLA/fCobMAAAALcm9vdEBIeXBlclY=
|
|
||||||
-----END OPENSSH PRIVATE KEY-----
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDFr00AO9ojy2RbfV2ECYnBtw/RvGGRIy7dDGuDACieuHb3DgdtbLx3ovZIQtRk+Dz8unw+a0Tve6wS2elym4smQ7onY1efosw9kkfS5ReEjIqNpRpPjfrlJm6+Jnhk+Ps1h5pYFzkTXlnlgZJeaOOV5LL8s2k8vMZVGW9dDrHbeQkCOZfPWIFnN+m8E0OLo0zAxVwMMCDrjwjxiXUz/HESxyGpiZ1AbWHVnByp97AyMbnCBcqqmm6NAnN87m7WF79MrTGfLOFwp615huhSVGOQmszR3Xwm3u6F/vG0FSreiXvMxirS+dYZ2/d3+oUCh90Zs7oCiVTUe6Ty2rtj8DzIwj97HrJFTs6HHHa7lH7YUAG0iI86Tr9rlgWtZ1Nwl7LKqyHUnZtKQ3t4G11CYneQfgjVsUsUcTDuteOIsL9MmWdh/r4IGLV8n6ub3XOrmr0jvzrpJzib6OaQLsyGjrD+PqtHSujzwNIgH06/fqnGS6P4i57ahI986HSsKhW3qH3fAejWpNWMaWgvNcOkgVzlot2MPw5nJBjjY41ilndt0p3YNqGu0uh1e4zz5PAY5xseuu/UyQaghUndmGXKPxsKOyTcDW6mHOdBI12dxlJHC0BwqpwLy95FIWinniiE28o1jZA682auG3zbGVE1WHePrlbJNBVL2HMpH+pkj7eyiw== root@HyperV
|
|
||||||
@@ -3,23 +3,10 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:{
|
||||||
with lib; let
|
|
||||||
cfg = config.custom.beets;
|
|
||||||
in {
|
|
||||||
options.custom.beets = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = "Enable Beets";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.ffmpeg # for replaygain
|
pkgs.ffmpeg # for replaygain
|
||||||
];
|
];
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
secrets.discogs_json = {
|
secrets.discogs_json = {
|
||||||
path = "${config.xdg.configHome}/beets/discogs_token.json";
|
path = "${config.xdg.configHome}/beets/discogs_token.json";
|
||||||
@@ -168,5 +155,4 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
{
|
|
||||||
#inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
#outputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
# ./beets.nix
|
|
||||||
# ./keybase.nix
|
|
||||||
"${inputs.vscode-server}/modules/vscode-server/home.nix"
|
|
||||||
];
|
|
||||||
# ++ (builtins.attrValues outputs.homeManagerModules);
|
|
||||||
|
|
||||||
###dotfiles path variable
|
|
||||||
options._dotfiles = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "${inputs.self}/home-manager/dotfiles";
|
|
||||||
description = "Path to the dotfiles in this repository";
|
|
||||||
};
|
|
||||||
|
|
||||||
###secrets path variable
|
|
||||||
options._secrets = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "/run/user/1000/secrets/";
|
|
||||||
description = "Path to the Secrets runtime";
|
|
||||||
};
|
|
||||||
|
|
||||||
###secretstore path variable
|
|
||||||
options._secretstore = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "${inputs.self}/secrets/";
|
|
||||||
description = "Path to the Secrets storage";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
#nixpkgs = {
|
|
||||||
# overlays = builtins.attrValues outputs.overlays;
|
|
||||||
# config = {
|
|
||||||
# allowUnfree = true;
|
|
||||||
# allowUnfreePredicate = _: true;
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
|
|
||||||
#nix = {
|
|
||||||
# package = lib.mkDefault pkgs.nix;
|
|
||||||
# settings = {
|
|
||||||
# experimental-features = ["nix-command" "flakes" "repl-flake"];
|
|
||||||
# warn-dirty = false;
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
|
|
||||||
##VSCode
|
|
||||||
services.vscode-server.enable = true;
|
|
||||||
services.vscode-server.enableFHS = true;
|
|
||||||
services.vscode-server.nodejsPackage = pkgs.nodejs-18_x;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
20
home-manager/keybase.nix
Normal file
20
home-manager/keybase.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
util,
|
||||||
|
hostName,
|
||||||
|
...
|
||||||
|
}:{
|
||||||
|
|
||||||
|
services.keybase.enable = true;
|
||||||
|
services.kbfs.enable = true;
|
||||||
|
systemd.user.services.keybase.Unit.After = ["sops-nix.service"];
|
||||||
|
systemd.user.services.kbfs.Unit.After = ["sops-nix.service"];
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
secrets = hm_secrets "$../secrets/user_dotfiles/${username}@${hostName}/keybase/" "${config.xdg.configHome}/keybase/";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,21 +3,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:{
|
||||||
with lib; let
|
|
||||||
cfg = config.custom.ssh-proxy;
|
|
||||||
in {
|
|
||||||
options.custom.ssh-proxy = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Enable ssh-proxy for WSL
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
npiperelay
|
npiperelay
|
||||||
socat
|
socat
|
||||||
@@ -41,5 +28,4 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,10 @@
|
|||||||
imports = [
|
imports = [
|
||||||
../common.nix
|
../common.nix
|
||||||
../user-sstent.nix
|
../user-sstent.nix
|
||||||
|
../wsl.nix
|
||||||
|
../syncthing.nix
|
||||||
|
../mnt_public.nix
|
||||||
|
../vpn.nix
|
||||||
inputs.nixos-wsl.nixosModules.wsl
|
inputs.nixos-wsl.nixosModules.wsl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -12,27 +12,6 @@
|
|||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
|
||||||
###dotfiles path variable
|
|
||||||
options._dotfiles = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "${inputs.self}/home-manager/dotfiles";
|
|
||||||
description = "Path to the dotfiles in this repository";
|
|
||||||
};
|
|
||||||
|
|
||||||
###secrets path variable
|
|
||||||
options._secrets = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "/run/user/1000/secrets";
|
|
||||||
description = "Path to the Secrets runtime";
|
|
||||||
};
|
|
||||||
|
|
||||||
###secretstore path variable
|
|
||||||
options._secretstore = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = "${inputs.self}/secrets";
|
|
||||||
description = "Path to the Secrets storage";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "23.05";
|
||||||
|
|
||||||
@@ -41,18 +20,10 @@
|
|||||||
age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
useUserPackages = true;
|
|
||||||
#extraSpecialArgs = {inherit inputs outputs;};
|
|
||||||
sharedModules = [
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
programs.fuse.userAllowOther = true;
|
programs.fuse.userAllowOther = true;
|
||||||
security.sudo.wheelNeedsPassword = false;
|
security.sudo.wheelNeedsPassword = false;
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
# nixpkgs.overlays = overlays;
|
# nixpkgs.overlays = overlays;
|
||||||
# Enable nix flakes
|
# Enable nix flakes
|
||||||
@@ -64,6 +35,12 @@
|
|||||||
# nix.nixPath = [ "nixpkgs=pkgs.outPath" ];
|
# nix.nixPath = [ "nixpkgs=pkgs.outPath" ];
|
||||||
networking.search = ["node.dc1.consul" "service.dc1.consul"];
|
networking.search = ["node.dc1.consul" "service.dc1.consul"];
|
||||||
|
|
||||||
|
##VSCode
|
||||||
|
services.vscode-server.enable = true;
|
||||||
|
services.vscode-server.enableFHS = true;
|
||||||
|
services.vscode-server.nodejsPackage = pkgs.nodejs-18_x;
|
||||||
|
|
||||||
|
|
||||||
#services.envfs.enable = true;
|
#services.envfs.enable = true;
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.git
|
pkgs.git
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
{ system, self, nixpkgs, inputs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
config.allowUnfree = true; # Allow proprietary software
|
|
||||||
};
|
|
||||||
|
|
||||||
lib = nixpkgs.lib;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
StuPC-WSL = lib.nixosSystem {
|
|
||||||
# Laptop profile
|
|
||||||
inherit system;
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
#../home-manager #hyprland and sway,go to this dir,choose one
|
|
||||||
] ++ [
|
|
||||||
./common.nix
|
|
||||||
] ++ [
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
# extraSpecialArgs = { inherit user; };
|
|
||||||
users.sstent = {
|
|
||||||
imports = [
|
|
||||||
(import ../home-manager)
|
|
||||||
] ++ [
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nixpkgs = {
|
|
||||||
overlays =
|
|
||||||
[
|
|
||||||
self.overlays.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -8,6 +8,10 @@
|
|||||||
imports = [
|
imports = [
|
||||||
../common.nix
|
../common.nix
|
||||||
../user-sstent.nix
|
../user-sstent.nix
|
||||||
|
../wsl.nix
|
||||||
|
../syncthing.nix
|
||||||
|
../mnt_public.nix
|
||||||
|
../vpn.nix
|
||||||
inputs.nixos-wsl.nixosModules.wsl
|
inputs.nixos-wsl.nixosModules.wsl
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -4,18 +4,13 @@
|
|||||||
outputs,
|
outputs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:{
|
||||||
with lib; let
|
|
||||||
cfg = config.custom.mnt_public;
|
|
||||||
in {
|
|
||||||
options.custom.mnt_public.enable = mkEnableOption "Enable mnt/Public";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
fileSystems."/mnt/Public" = {
|
fileSystems."/mnt/Public" = {
|
||||||
device = "//192.168.1.109/Public";
|
device = "//192.168.1.109/Public";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
# options = ["uid=0,gid=1000"];
|
# options = ["uid=0,gid=1000"];
|
||||||
options = ["guest" "uid=1000"];
|
options = ["guest" "uid=1000"];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -3,14 +3,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:{
|
||||||
with lib; let
|
|
||||||
cfg = config.custom.sshd;
|
|
||||||
in {
|
|
||||||
#define option to enable this
|
#define option to enable this
|
||||||
options.custom.sshd.enable = mkEnableOption "Enable SSH";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
permitRootLogin = "no";
|
permitRootLogin = "no";
|
||||||
@@ -18,5 +12,5 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [22];
|
networking.firewall.allowedTCPPorts = [22];
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -5,12 +5,7 @@
|
|||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
{
|
||||||
cfg = config.custom.syncthing;
|
|
||||||
in {
|
|
||||||
options.custom.syncthing.enable = mkEnableOption "Enable mnt/Public";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dataDir = "/home/sstent";
|
dataDir = "/home/sstent";
|
||||||
@@ -33,5 +28,5 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -6,12 +6,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
{
|
||||||
cfg = config.custom.wsl;
|
|
||||||
in {
|
|
||||||
options.custom.wsl.enable = mkEnableOption "Enable WSL2 settings";
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
# Enable native Docker support
|
# Enable native Docker support
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
@@ -53,5 +49,4 @@ in {
|
|||||||
};
|
};
|
||||||
wantedBy = ["sysinit.target"];
|
wantedBy = ["sysinit.target"];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{lib, ...}:
|
|
||||||
with builtins;
|
|
||||||
with lib; rec {
|
|
||||||
# attrsToList
|
|
||||||
attrsToList = attrs:
|
|
||||||
mapAttrsToList (name: value: {inherit name value;}) attrs;
|
|
||||||
|
|
||||||
# mapFilterAttrs ::
|
|
||||||
# (name -> value -> bool)
|
|
||||||
# (name -> value -> { name = any; value = any; })
|
|
||||||
# attrs
|
|
||||||
mapFilterAttrs = pred: f: attrs: filterAttrs pred (mapAttrs' f attrs);
|
|
||||||
|
|
||||||
# Generate an attribute set by mapping a function over a list of values.
|
|
||||||
genAttrs' = values: f: listToAttrs (map f values);
|
|
||||||
|
|
||||||
# anyAttrs :: (name -> value -> bool) attrs
|
|
||||||
anyAttrs = pred: attrs:
|
|
||||||
any (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
|
|
||||||
# countAttrs :: (name -> value -> bool) attrs
|
|
||||||
countAttrs = pred: attrs:
|
|
||||||
count (attr: pred attr.name attr.value) (attrsToList attrs);
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# {lib}:
|
|
||||||
# lib.makeExtensible (self:
|
|
||||||
# let
|
|
||||||
# callLibs = file: import file { lib = self; };
|
|
||||||
# in
|
|
||||||
# rec {
|
|
||||||
# ## Define your own library functions here!
|
|
||||||
# #id = x: x;
|
|
||||||
# ## Or in files, containing functions that take {lib}
|
|
||||||
# map = callLibs ./map.nix;
|
|
||||||
# ## In configs, they can be used under "lib.our"
|
|
||||||
# })
|
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) makeExtensible attrValues foldr;
|
|
||||||
inherit (modules) mapModules;
|
|
||||||
|
|
||||||
modules = import ./modules.nix {
|
|
||||||
inherit lib;
|
|
||||||
self.attrs = import ./attrs.nix {
|
|
||||||
inherit lib;
|
|
||||||
self = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mylib = makeExtensible (self:
|
|
||||||
with self;
|
|
||||||
mapModules ./.
|
|
||||||
(file: import file {inherit self lib pkgs inputs;}));
|
|
||||||
in
|
|
||||||
mylib.extend
|
|
||||||
(self: super:
|
|
||||||
foldr (a: b: a // b) {} (attrValues super))
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with builtins;
|
|
||||||
with lib; {
|
|
||||||
toCSSFile = file: let
|
|
||||||
fileName = removeSuffix ".scss" (baseNameOf file);
|
|
||||||
compiledStyles =
|
|
||||||
pkgs.runCommand "compileScssFile"
|
|
||||||
{buildInputs = [pkgs.sass];} ''
|
|
||||||
mkdir "$out"
|
|
||||||
scss --sourcemap=none \
|
|
||||||
--no-cache \
|
|
||||||
--style compressed \
|
|
||||||
--default-encoding utf-8 \
|
|
||||||
"${file}" \
|
|
||||||
>>"$out/${fileName}.css"
|
|
||||||
'';
|
|
||||||
in "${compiledStyles}/${fileName}.css";
|
|
||||||
|
|
||||||
toFilteredImage = imageFile: options: let
|
|
||||||
result = "result.png";
|
|
||||||
filteredImage =
|
|
||||||
pkgs.runCommand "filterWallpaper"
|
|
||||||
{buildInputs = [pkgs.imagemagick];} ''
|
|
||||||
mkdir "$out"
|
|
||||||
convert ${options} ${imageFile} $out/${result}
|
|
||||||
'';
|
|
||||||
in "${filteredImage}/${result}";
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{lib, ...}: let
|
|
||||||
inherit
|
|
||||||
(builtins)
|
|
||||||
readDir
|
|
||||||
;
|
|
||||||
|
|
||||||
inherit
|
|
||||||
(lib)
|
|
||||||
filterAttrs
|
|
||||||
hasPrefix
|
|
||||||
hasSuffix
|
|
||||||
mapAttrs'
|
|
||||||
nameValuePair
|
|
||||||
;
|
|
||||||
in rec {
|
|
||||||
filter = name: func: attrs: filterAttrs name (mapAttrs' func attrs);
|
|
||||||
|
|
||||||
# 'sops' Encrypted Secrets
|
|
||||||
hm_secrets = dir: out_dir:
|
|
||||||
filter (name: type: type != null && !(hasPrefix "_" name)) (name: type:
|
|
||||||
# if type == "regular" && hasSuffix ".age" name
|
|
||||||
if type == "regular"
|
|
||||||
then
|
|
||||||
nameValuePair name {
|
|
||||||
sopsFile = dir + "/${name}";
|
|
||||||
format = "binary";
|
|
||||||
path = out_dir + "/${name}";
|
|
||||||
}
|
|
||||||
else nameValuePair "" null) (readDir dir);
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
self,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (builtins) attrValues readDir pathExists concatLists;
|
|
||||||
inherit (lib) id mapAttrsToList filterAttrs hasPrefix hasSuffix nameValuePair removeSuffix;
|
|
||||||
inherit (self.attrs) mapFilterAttrs;
|
|
||||||
in rec {
|
|
||||||
mapModules = dir: fn:
|
|
||||||
mapFilterAttrs
|
|
||||||
(n: v:
|
|
||||||
v
|
|
||||||
!= null
|
|
||||||
&& !(hasPrefix "_" n))
|
|
||||||
(n: v: let
|
|
||||||
path = "${toString dir}/${n}";
|
|
||||||
in
|
|
||||||
if v == "directory" && pathExists "${path}/default.nix"
|
|
||||||
then nameValuePair n (fn path)
|
|
||||||
else if
|
|
||||||
v
|
|
||||||
== "regular"
|
|
||||||
&& n != "default.nix"
|
|
||||||
&& hasSuffix ".nix" n
|
|
||||||
then nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else nameValuePair "" null)
|
|
||||||
(readDir dir);
|
|
||||||
|
|
||||||
mapModules' = dir: fn:
|
|
||||||
attrValues (mapModules dir fn);
|
|
||||||
|
|
||||||
mapModulesRec = dir: fn:
|
|
||||||
mapFilterAttrs
|
|
||||||
(n: v:
|
|
||||||
v
|
|
||||||
!= null
|
|
||||||
&& !(hasPrefix "_" n))
|
|
||||||
(n: v: let
|
|
||||||
path = "${toString dir}/${n}";
|
|
||||||
in
|
|
||||||
if v == "directory"
|
|
||||||
then nameValuePair n (mapModulesRec path fn)
|
|
||||||
else if v == "regular" && n != "default.nix" && hasSuffix ".nix" n
|
|
||||||
then nameValuePair (removeSuffix ".nix" n) (fn path)
|
|
||||||
else nameValuePair "" null)
|
|
||||||
(readDir dir);
|
|
||||||
|
|
||||||
mapModulesRec' = dir: fn: let
|
|
||||||
dirs =
|
|
||||||
mapAttrsToList
|
|
||||||
(k: _: "${dir}/${k}")
|
|
||||||
(filterAttrs
|
|
||||||
(n: v: v == "directory" && !(hasPrefix "_" n))
|
|
||||||
(readDir dir));
|
|
||||||
files = attrValues (mapModules dir id);
|
|
||||||
paths = files ++ concatLists (map (d: mapModulesRec' d id) dirs);
|
|
||||||
in
|
|
||||||
map fn paths;
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.my; let
|
|
||||||
sys = "x86_64-linux";
|
|
||||||
in {
|
|
||||||
mkHost = path: attrs @ {system ? sys, ...}:
|
|
||||||
nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {inherit lib inputs system;};
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
nixpkgs.pkgs = pkgs;
|
|
||||||
networking.hostName = mkDefault (removeSuffix ".nix" (baseNameOf path));
|
|
||||||
}
|
|
||||||
(filterAttrs (n: v: !elem n ["system"]) attrs)
|
|
||||||
../. # /default.nix
|
|
||||||
(import path)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
mapHosts = dir: attrs @ {system ? system, ...}:
|
|
||||||
mapModules dir
|
|
||||||
(hostPath: mkHost hostPath attrs);
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{lib, ...}: let
|
|
||||||
inherit (lib) mkOption types;
|
|
||||||
in rec {
|
|
||||||
mkOpt = type: default:
|
|
||||||
mkOption {inherit type default;};
|
|
||||||
|
|
||||||
mkOpt' = type: default: description:
|
|
||||||
mkOption {inherit type default description;};
|
|
||||||
|
|
||||||
mkBoolOpt = default:
|
|
||||||
mkOption {
|
|
||||||
inherit default;
|
|
||||||
type = types.bool;
|
|
||||||
example = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }: { imports = [
|
|
||||||
|
|
||||||
|
|
||||||
./nixos/mnt_public
|
|
||||||
./nixos/ssh
|
|
||||||
./nixos/syncthing
|
|
||||||
./nixos/vpn
|
|
||||||
./nixos/wsl2
|
|
||||||
|
|
||||||
]; }
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }: { imports = [
|
|
||||||
|
|
||||||
|
|
||||||
./home-manager/beets
|
|
||||||
./home-manager/keybase
|
|
||||||
./home-manager/ssh-proxy
|
|
||||||
|
|
||||||
]; }
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
util,
|
|
||||||
hostName,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.my; let
|
|
||||||
cfg = config.custom.keybase;
|
|
||||||
username = config.home.username;
|
|
||||||
secretstore = config._secretstore;
|
|
||||||
in {
|
|
||||||
options.custom.keybase = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = "Enable KeyBase";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.keybase.enable = true;
|
|
||||||
services.kbfs.enable = true;
|
|
||||||
systemd.user.services.keybase.Unit.After = ["sops-nix.service"];
|
|
||||||
systemd.user.services.kbfs.Unit.After = ["sops-nix.service"];
|
|
||||||
|
|
||||||
sops = {
|
|
||||||
secrets = hm_secrets "${secretstore}/user_dotfiles/${username}@${hostName}/keybase/" "${config.xdg.configHome}/keybase/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
secretstore = config._secretstore;
|
|
||||||
host = config.networking.hostName;
|
|
||||||
secretpath = "${secretstore}/hosts/${host}/mullvad/device.json";
|
|
||||||
in {
|
|
||||||
sops.secrets.device_json = {
|
|
||||||
sopsFile = "${secretstore}/hosts/${host}/mullvad/device.json";
|
|
||||||
device_json.format = "binary";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc."mullvad-vpn/device.conf".source = config.sops.secrets.device_json.path;
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# This file defines overlays
|
|
||||||
{inputs, ...}: {
|
|
||||||
# This one brings our custom packages from the 'pkgs' directory
|
|
||||||
additions = final: _prev: import ../pkgs {pkgs = final;};
|
|
||||||
|
|
||||||
# This one contains whatever you want to overlay
|
|
||||||
# You can change versions, add patches, set compilation flags, anything really.
|
|
||||||
# https://nixos.wiki/wiki/Overlays
|
|
||||||
modifications = final: prev: {
|
|
||||||
# example = prev.example.overrideAttrs (oldAttrs: rec {
|
|
||||||
# ...
|
|
||||||
# });
|
|
||||||
};
|
|
||||||
|
|
||||||
# When applied, the unstable nixpkgs set (declared in the flake inputs) will
|
|
||||||
# be accessible through 'pkgs.unstable'
|
|
||||||
unstable-packages = final: _prev: {
|
|
||||||
unstable = import inputs.nixpkgs-unstable {
|
|
||||||
system = final.system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
rec{
|
|
||||||
overlay = final: prev:
|
|
||||||
let
|
|
||||||
dirContents = builtins.readDir ../pkgs;
|
|
||||||
genPackage = name: {
|
|
||||||
inherit name;
|
|
||||||
value = final.callPackage (../pkgs + "/${name}") { };
|
|
||||||
};
|
|
||||||
names = builtins.attrNames dirContents;
|
|
||||||
in
|
|
||||||
builtins.listToAttrs (map genPackage names);
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchurl,
|
|
||||||
unzip,
|
|
||||||
}: let
|
|
||||||
version = "1.6.3";
|
|
||||||
srcs = {
|
|
||||||
x86_64-linux = fetchurl {
|
|
||||||
url = "https://github.com/jstarks/npiperelay/releases/download/v0.1.0/npiperelay_windows_amd64.zip";
|
|
||||||
sha256 = "sha256-a572H/0XwDUHqaPVTYFdzrPa5mmsZ/w79CJdHnZM5fY=";
|
|
||||||
};
|
|
||||||
|
|
||||||
# aarch64-linux = fetchurl {
|
|
||||||
# url =
|
|
||||||
# "https://deconz.dresden-elektronik.de/debian/stable/deconz_${version}-debian-buster-stable_arm64.deb";
|
|
||||||
# sha256 = "sha256-zuy4e9bzcRqDeXP6mfzZLCDK/3we25LH6xktnO6HXps=";
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "npiperelay";
|
|
||||||
inherit version;
|
|
||||||
|
|
||||||
src = srcs.${stdenv.hostPlatform.system};
|
|
||||||
|
|
||||||
nativeBuildInputs = [unzip];
|
|
||||||
|
|
||||||
#buildInputs = [ qtserialport qtwebsockets ];
|
|
||||||
unpackPhase = ''
|
|
||||||
mkdir npiperelay-$version
|
|
||||||
cd npiperelay-$version
|
|
||||||
unzip $src
|
|
||||||
'';
|
|
||||||
#unpackPhase = "dpkg-deb -x $src .";
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp npiperelay.exe $out/bin/npiperelay.exe
|
|
||||||
chmod +x $out/bin/npiperelay.exe
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Helper to interface with Windows ssh-agent.exe service from Windows Subsystem for Linux (WSL)";
|
|
||||||
# 2019-08-19: The homepage links to old software that doesn't even work --
|
|
||||||
# it fails to detect ConBee2.
|
|
||||||
homepage = "https://github.com/rupor-github/wsl-ssh-agent";
|
|
||||||
license = licenses.free;
|
|
||||||
platforms = ["x86_64-linux"];
|
|
||||||
maintainers = with maintainers; [sstent];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user