Compare commits
36 Commits
sway
...
plasma-man
| Author | SHA1 | Date | |
|---|---|---|---|
| 62a507e703 | |||
| c0d7d934f3 | |||
| cb91f69c49 | |||
| bc6378cb22 | |||
| a13676311a | |||
| ec57592715 | |||
| 051c223eb7 | |||
| 6030f6ea42 | |||
| df77fd5c74 | |||
| 458bcb4cdf | |||
| 40e10bab34 | |||
| 3477a3480f | |||
| d2ae7f8e11 | |||
| ff3a0a4738 | |||
| 1a857399a6 | |||
| 4620288747 | |||
| b5f2e1738f | |||
| 8e27017aa4 | |||
| 4ca9804db8 | |||
| 6417540b51 | |||
| 3f1bdc7af0 | |||
| 4d39f8a635 | |||
| 736194b8b4 | |||
| 4096dc75b9 | |||
| 18afc61e33 | |||
| 9ba6006fca | |||
| 000db04502 | |||
| 42a34a6c40 | |||
| 5e029720ef | |||
| 5289d8847b | |||
| d9e5fdb0df | |||
| fb8431da2d | |||
| e9d14167aa | |||
| 3a9348730b | |||
| 1da9e92a24 | |||
| 75baf55d5b |
11
.sops.yaml
Normal file
11
.sops.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
keys:
|
||||||
|
- &admin_johno age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
||||||
|
- &host_z790prors age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
||||||
|
- &host_nixbook age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
||||||
|
creation_rules:
|
||||||
|
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *admin_johno
|
||||||
|
- *host_z790prors
|
||||||
|
- *host_nixbook
|
||||||
76
flake.lock
generated
76
flake.lock
generated
@@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725694918,
|
"lastModified": 1728041527,
|
||||||
"narHash": "sha256-+HsjshXpqNiJHLaJaK0JnIicJ/a1NquKcfn4YZ3ILgg=",
|
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda",
|
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -22,11 +22,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725634671,
|
"lastModified": 1727802920,
|
||||||
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -36,10 +36,72 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1725762081,
|
||||||
|
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"plasma-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728750492,
|
||||||
|
"narHash": "sha256-9IHlIsH4gLqQjS2lFbEnsl/ItdqzBBLWLsyXS0k0jf8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"rev": "c6d4b6f3e0138c08f37d66fcfbcbe37dab08f108",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "plasma-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs",
|
||||||
|
"plasma-manager": "plasma-manager",
|
||||||
|
"sops-nix": "sops-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727423009,
|
||||||
|
"narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"rev": "127a96f49ddc377be6ba76964411bab11ae27803",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
57
flake.nix
57
flake.nix
@@ -4,54 +4,69 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
plasma-manager = {
|
||||||
|
url = "github:nix-community/plasma-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... } @ inputs: {
|
outputs = { self, nixpkgs, ... } @ inputs: let
|
||||||
nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem {
|
baseModules = [
|
||||||
|
./roles
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = baseModules ++ [
|
||||||
./machines/z790prors/configuration.nix
|
./machines/z790prors/configuration.nix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.johno = import ./home/home-z790prors.nix;
|
home-manager.users.johno = import ./home/home-z790prors.nix;
|
||||||
|
home-manager.extraSpecialArgs.customPkgs =
|
||||||
|
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = baseModules ++ [
|
||||||
./roles
|
|
||||||
./machines/nix-book/configuration.nix
|
./machines/nix-book/configuration.nix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.johno = import ./home/home-nix-book.nix;
|
home-manager.users.johno = import ./home/home-nix-book.nix;
|
||||||
|
home-manager.extraSpecialArgs.customPkgs =
|
||||||
|
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations.boxy = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.boxy = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs; };
|
modules = baseModules ++ [
|
||||||
modules = [
|
|
||||||
./machines/boxy/configuration.nix
|
./machines/boxy/configuration.nix
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
|
||||||
home-manager.users.johno = import ./home/home-default.nix;
|
home-manager.users.johno = import ./home/home-default.nix;
|
||||||
|
home-manager.extraSpecialArgs.customPkgs =
|
||||||
|
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, customPkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
nextcloudTalkDesktop = pkgs.callPackage ./modules/applications/nextcloud-talk-desktop/package.nix {};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
@@ -62,7 +59,7 @@ in
|
|||||||
pkgs.wofi
|
pkgs.wofi
|
||||||
pkgs.vlc
|
pkgs.vlc
|
||||||
|
|
||||||
nextcloudTalkDesktop
|
customPkgs.nextcloudTalkDesktop
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
@@ -106,9 +103,10 @@ in
|
|||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./modules/applications/emacs/default.nix
|
./modules/emacs
|
||||||
./modules/games/lutris/default.nix
|
./modules/i3+sway
|
||||||
./modules/window_managers/i3/default.nix
|
./modules/lutris
|
||||||
|
./modules/plasma-manager
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.bash.enable = true;
|
programs.bash.enable = true;
|
||||||
@@ -189,15 +187,6 @@ in
|
|||||||
package = pkgs.kdePackages.kdeconnect-kde;
|
package = pkgs.kdePackages.kdeconnect-kde;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.spotifyd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
global = {
|
|
||||||
username = "johnogle222";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
tray = {
|
tray = {
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./home-default.nix
|
./home-default.nix
|
||||||
./modules/window_managers/hyprland/nix-book.nix
|
./modules/hyprland/nix-book.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home.i3_sway.extraSwayConfig = {
|
||||||
|
output.eDP-1.scale = "1.75";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./home-default.nix
|
./home-default.nix
|
||||||
./modules/window_managers/hyprland/z790prors.nix
|
./modules/hyprland/z790prors.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
emacs = pkgs.emacs29;
|
|
||||||
doomSync = (let
|
|
||||||
git = pkgs.git;
|
|
||||||
in ''
|
|
||||||
export PATH=${emacs}/bin:${git}/bin:$PATH
|
|
||||||
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
|
|
||||||
'');
|
|
||||||
in {
|
|
||||||
home.packages = [
|
|
||||||
pkgs.emacs-all-the-icons-fonts
|
|
||||||
pkgs.fontconfig
|
|
||||||
pkgs.graphviz
|
|
||||||
pkgs.isort
|
|
||||||
pkgs.nerdfonts
|
|
||||||
pkgs.nil # nix lsp language server
|
|
||||||
pkgs.nixfmt-rfc-style
|
|
||||||
(pkgs.ripgrep.override {withPCRE2 = true;})
|
|
||||||
pkgs.pipenv
|
|
||||||
pkgs.poetry
|
|
||||||
pkgs.python3
|
|
||||||
];
|
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
|
||||||
|
|
||||||
home.file = {
|
|
||||||
".config/emacs" = {
|
|
||||||
source = fetchGit {
|
|
||||||
url = "https://github.com/doomemacs/doomemacs.git";
|
|
||||||
# When updating me, remember to run `doom sync`
|
|
||||||
rev = "ac1122ae67d762e09fc6684945b52adff96cf1dc";
|
|
||||||
};
|
|
||||||
# We need to use recursive mode here or else doom fails to sync for
|
|
||||||
# some reason related to the permissions on the synced path. I'm not
|
|
||||||
# quite sure of everything that's going on here.
|
|
||||||
recursive = true;
|
|
||||||
|
|
||||||
# Because `recursive = true` will cause this to sync every single
|
|
||||||
# activation, we turn this off here.
|
|
||||||
#
|
|
||||||
# There's probably a way we could do better detection of this within
|
|
||||||
# our onChange shell?
|
|
||||||
#
|
|
||||||
# onChange = doomSync;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
|
||||||
EDITOR = "emacs -nw";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionPath = [
|
|
||||||
"${config.xdg.configHome}/emacs/bin"
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = emacs;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."doom" = {
|
|
||||||
source = ./doom;
|
|
||||||
# Sync doom if we updated the config
|
|
||||||
onChange = doomSync;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
67
home/modules/emacs/default.nix
Normal file
67
home/modules/emacs/default.nix
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
doomSync = (let
|
||||||
|
git = pkgs.git;
|
||||||
|
in ''
|
||||||
|
export PATH=${pkgs.emacs}/bin:${git}/bin:$PATH
|
||||||
|
${config.xdg.configHome}/emacs/bin/doom sync -u -j $((`nproc`/4*3))
|
||||||
|
'');
|
||||||
|
in {
|
||||||
|
config = {
|
||||||
|
home.packages = [
|
||||||
|
pkgs.emacs-all-the-icons-fonts
|
||||||
|
pkgs.fontconfig
|
||||||
|
pkgs.graphviz
|
||||||
|
pkgs.isort
|
||||||
|
pkgs.nerdfonts
|
||||||
|
pkgs.nil # nix lsp language server
|
||||||
|
pkgs.nixfmt-rfc-style
|
||||||
|
(pkgs.ripgrep.override {withPCRE2 = true;})
|
||||||
|
pkgs.pipenv
|
||||||
|
pkgs.poetry
|
||||||
|
pkgs.python3
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".config/emacs" = {
|
||||||
|
source = fetchGit {
|
||||||
|
url = "https://github.com/doomemacs/doomemacs.git";
|
||||||
|
# When updating me, remember to run `doom sync`
|
||||||
|
rev = "5ad99220b86ae1bf421861dfad24492d768ac4d9";
|
||||||
|
};
|
||||||
|
# We need to use recursive mode here or else doom fails to sync for
|
||||||
|
# some reason related to the permissions on the synced path. I'm not
|
||||||
|
# quite sure of everything that's going on here.
|
||||||
|
recursive = true;
|
||||||
|
|
||||||
|
# Because `recursive = true` will cause this to sync every single
|
||||||
|
# activation, we turn this off here.
|
||||||
|
#
|
||||||
|
# There's probably a way we could do better detection of this within
|
||||||
|
# our onChange shell?
|
||||||
|
#
|
||||||
|
# onChange = doomSync;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables = {
|
||||||
|
DOOMLOCALDIR = "${config.xdg.dataHome}/doom";
|
||||||
|
EDITOR = "emacs -nw";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionPath = [
|
||||||
|
"${config.xdg.configHome}/emacs/bin"
|
||||||
|
];
|
||||||
|
|
||||||
|
xdg.configFile."doom" = {
|
||||||
|
source = ./doom;
|
||||||
|
# Sync doom if we updated the config
|
||||||
|
onChange = doomSync;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 842 KiB After Width: | Height: | Size: 842 KiB |
146
home/modules/i3+sway/default.nix
Normal file
146
home/modules/i3+sway/default.nix
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.home.i3_sway;
|
||||||
|
i3_cfg = config.xsession.windowManager.i3.config;
|
||||||
|
|
||||||
|
shared_config = recursiveUpdate rec {
|
||||||
|
modifier = "Mod4";
|
||||||
|
terminal = "kitty";
|
||||||
|
defaultWorkspace = "workspace number 1";
|
||||||
|
|
||||||
|
keybindings = {
|
||||||
|
"${shared_config.modifier}+Return" = "exec ${terminal}";
|
||||||
|
"${shared_config.modifier}+Shift+q" = "kill";
|
||||||
|
"${shared_config.modifier}+d" = "exec ${i3_cfg.menu}";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+h" = "focus left";
|
||||||
|
"${shared_config.modifier}+j" = "focus down";
|
||||||
|
"${shared_config.modifier}+k" = "focus up";
|
||||||
|
"${shared_config.modifier}+l" = "focus right";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+h" = "move left";
|
||||||
|
"${shared_config.modifier}+Shift+j" = "move down";
|
||||||
|
"${shared_config.modifier}+Shift+k" = "move up";
|
||||||
|
"${shared_config.modifier}+Shift+l" = "move right";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Left" = "focus left";
|
||||||
|
"${shared_config.modifier}+Down" = "focus down";
|
||||||
|
"${shared_config.modifier}+Up" = "focus up";
|
||||||
|
"${shared_config.modifier}+Right" = "focus right";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+Left" = "move left";
|
||||||
|
"${shared_config.modifier}+Shift+Down" = "move down";
|
||||||
|
"${shared_config.modifier}+Shift+Up" = "move up";
|
||||||
|
"${shared_config.modifier}+Shift+Right" = "move right";
|
||||||
|
|
||||||
|
#"${shared_config.modifier}+h" = "split h";
|
||||||
|
"${shared_config.modifier}+v" = "split v";
|
||||||
|
"${shared_config.modifier}+f" = "fullscreen toggle";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+s" = "layout stacking";
|
||||||
|
"${shared_config.modifier}+w" = "layout tabbed";
|
||||||
|
"${shared_config.modifier}+e" = "layout toggle split";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+space" = "floating toggle";
|
||||||
|
"${shared_config.modifier}+space" = "focus mode_toggle";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+a" = "focus parent";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+minus" = "move scratchpad";
|
||||||
|
"${shared_config.modifier}+minus" = "scratchpad show";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+1" = "workspace number 1";
|
||||||
|
"${shared_config.modifier}+2" = "workspace number 2";
|
||||||
|
"${shared_config.modifier}+3" = "workspace number 3";
|
||||||
|
"${shared_config.modifier}+4" = "workspace number 4";
|
||||||
|
"${shared_config.modifier}+5" = "workspace number 5";
|
||||||
|
"${shared_config.modifier}+6" = "workspace number 6";
|
||||||
|
"${shared_config.modifier}+7" = "workspace number 7";
|
||||||
|
"${shared_config.modifier}+8" = "workspace number 8";
|
||||||
|
"${shared_config.modifier}+9" = "workspace number 9";
|
||||||
|
"${shared_config.modifier}+0" = "workspace number 10";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+1" =
|
||||||
|
"move container to workspace number 1";
|
||||||
|
"${shared_config.modifier}+Shift+2" =
|
||||||
|
"move container to workspace number 2";
|
||||||
|
"${shared_config.modifier}+Shift+3" =
|
||||||
|
"move container to workspace number 3";
|
||||||
|
"${shared_config.modifier}+Shift+4" =
|
||||||
|
"move container to workspace number 4";
|
||||||
|
"${shared_config.modifier}+Shift+5" =
|
||||||
|
"move container to workspace number 5";
|
||||||
|
"${shared_config.modifier}+Shift+6" =
|
||||||
|
"move container to workspace number 6";
|
||||||
|
"${shared_config.modifier}+Shift+7" =
|
||||||
|
"move container to workspace number 7";
|
||||||
|
"${shared_config.modifier}+Shift+8" =
|
||||||
|
"move container to workspace number 8";
|
||||||
|
"${shared_config.modifier}+Shift+9" =
|
||||||
|
"move container to workspace number 9";
|
||||||
|
"${shared_config.modifier}+Shift+0" =
|
||||||
|
"move container to workspace number 10";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+Shift+c" = "reload";
|
||||||
|
"${shared_config.modifier}+Shift+r" = "restart";
|
||||||
|
|
||||||
|
"${shared_config.modifier}+r" = "mode resize";
|
||||||
|
|
||||||
|
"XF86MonBrightnessUp" = "exec brightnessctl s +5%";
|
||||||
|
"XF86MonBrightnessDown" = "exec brightnessctl s 5%-";
|
||||||
|
};
|
||||||
|
} cfg.extraSharedConfig;
|
||||||
|
in {
|
||||||
|
options.home.i3_sway = {
|
||||||
|
extraSharedConfig = mkOption {
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
extraI3Config = mkOption {
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
extraSwayConfig = mkOption {
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
xsession.windowManager.i3 = let
|
||||||
|
base_i3_config = recursiveUpdate shared_config {
|
||||||
|
keybindings = {
|
||||||
|
"${shared_config.modifier}+Shift+e" =
|
||||||
|
"exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
config = recursiveUpdate base_i3_config cfg.extraI3Config;
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.sway = let
|
||||||
|
base_sway_config = recursiveUpdate shared_config {
|
||||||
|
keybindings = {
|
||||||
|
"${shared_config.modifier}+Shift+e" =
|
||||||
|
"exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
"type:keyboard" = {
|
||||||
|
xkb_options = "caps:escape";
|
||||||
|
};
|
||||||
|
"type:touchpad" = {
|
||||||
|
tap = "enabled";
|
||||||
|
tap_button_map = "lrm";
|
||||||
|
drag = "enabled";
|
||||||
|
natural_scroll = "disabled";
|
||||||
|
dwt = "enabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
config = recursiveUpdate base_sway_config cfg.extraSwayConfig;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
150
home/modules/plasma-manager/default.nix
Normal file
150
home/modules/plasma-manager/default.nix
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
|
||||||
|
# The following can be generated with the command:
|
||||||
|
# nix run github:nix-community/plasma-manager
|
||||||
|
#
|
||||||
|
# Plasma-manager options documentation
|
||||||
|
# https://nix-community.github.io/plasma-manager/options.xhtml
|
||||||
|
#
|
||||||
|
# Polonium usage
|
||||||
|
# https://github.com/zeroxoneafour/polonium/blob/master/docs/usage.md
|
||||||
|
#
|
||||||
|
# TODO: Extract this configuration into something that's a bit easier to manage
|
||||||
|
# TODO: Update shortcuts for better window/tiling/desktop management akin to i3wm
|
||||||
|
# TODO(ambitious): Add Kmail support to plasma-manager
|
||||||
|
{
|
||||||
|
programs.plasma = {
|
||||||
|
enable = true;
|
||||||
|
overrideConfig = true;
|
||||||
|
|
||||||
|
kwin = {
|
||||||
|
scripts.polonium.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hotkeys.commands."launch-konsole" = {
|
||||||
|
name = "Launch Konsole";
|
||||||
|
key = "Meta+Enter";
|
||||||
|
command = "konsole";
|
||||||
|
};
|
||||||
|
|
||||||
|
shortcuts = {
|
||||||
|
kmix = {
|
||||||
|
"decrease_microphone_volume" = "Microphone Volume Down";
|
||||||
|
"decrease_volume" = "Volume Down";
|
||||||
|
"decrease_volume_small" = "Shift+Volume Down";
|
||||||
|
"increase_microphone_volume" = "Microphone Volume Up";
|
||||||
|
"increase_volume" = "Volume Up";
|
||||||
|
"increase_volume_small" = "Shift+Volume Up";
|
||||||
|
"mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
|
||||||
|
"mute" = "Volume Mute";
|
||||||
|
};
|
||||||
|
|
||||||
|
mediacontrol = {
|
||||||
|
"mediavolumedown" = "none,,Media volume down";
|
||||||
|
"mediavolumeup" = "none,,Media volume up";
|
||||||
|
"nextmedia" = "Media Next";
|
||||||
|
"pausemedia" = "Media Pause";
|
||||||
|
"playmedia" = "none,,Play media playback";
|
||||||
|
"playpausemedia" = "Media Play";
|
||||||
|
"previousmedia" = "Media Previous";
|
||||||
|
"stopmedia" = "Media Stop";
|
||||||
|
};
|
||||||
|
|
||||||
|
ksmserver = {
|
||||||
|
"Lock Session" = ["Meta+Ctrl+Q" "Screensaver,Meta+L" "Screensaver,Lock Session"];
|
||||||
|
};
|
||||||
|
|
||||||
|
kwin = {
|
||||||
|
"Window Close" = "Meta+Shift+Q";
|
||||||
|
"Kill Window" = "Meta+Ctrl+Esc";
|
||||||
|
"Window Operations Menu" = "Alt+F3";
|
||||||
|
"Window Resize" = "Meta+R,,Resize Window";
|
||||||
|
|
||||||
|
"Overview" = "Meta+W";
|
||||||
|
"Grid View" = "Meta+G";
|
||||||
|
"Edit Tiles" = "Meta+T";
|
||||||
|
|
||||||
|
"Activate Window Demanding Attention" = "Meta+Ctrl+A";
|
||||||
|
|
||||||
|
"PoloniumCycleEngine" = "Meta+|,none,Polonium: Cycle Engine";
|
||||||
|
"PoloniumFocusAbove" = "Meta+K,none,Polonium: Focus Above";
|
||||||
|
"PoloniumFocusBelow" = "Meta+J,none,Polonium: Focus Below";
|
||||||
|
"PoloniumFocusLeft" = "Meta+H,none,Polonium: Focus Left";
|
||||||
|
"PoloniumFocusRight" = "Meta+L,none,Polonium: Focus Right";
|
||||||
|
"PoloniumInsertAbove" = "Meta+Shift+K,none,Polonium: Insert Above";
|
||||||
|
"PoloniumInsertBelow" = "Meta+Shift+J,none,Polonium: Insert Below";
|
||||||
|
"PoloniumInsertLeft" = "Meta+Shift+H,none,Polonium: Insert Left";
|
||||||
|
"PoloniumInsertRight" = "Meta+Shift+L,none,Polonium: Insert Right";
|
||||||
|
"PoloniumOpenSettings" = "Meta+\\\\,none,Polonium: Open Settings Dialog";
|
||||||
|
"PoloniumResizeAbove" = "Meta+Ctrl+K,none,Polonium: Resize Above";
|
||||||
|
"PoloniumResizeBelow" = "Meta+Ctrl+J,none,Polonium: Resize Below";
|
||||||
|
"PoloniumResizeLeft" = "Meta+Ctrl+H,none,Polonium: Resize Left";
|
||||||
|
"PoloniumResizeRight" = "Meta+Ctrl+L,none,Polonium: Resize Right";
|
||||||
|
"PoloniumRetileWindow" = "Meta+Shift+Space,none,Polonium: Retile Window";
|
||||||
|
"PoloniumSwitchBTree" = [ ];
|
||||||
|
"PoloniumSwitchHalf" = [ ];
|
||||||
|
"PoloniumSwitchKwin" = [ ];
|
||||||
|
"PoloniumSwitchMonocle" = [ ];
|
||||||
|
"PoloniumSwitchThreeColumn" = [ ];
|
||||||
|
|
||||||
|
"Show Desktop" = "Meta+D";
|
||||||
|
"Switch to Desktop 1" = "Meta+1,,Switch to Desktop 1";
|
||||||
|
"Switch to Desktop 2" = "Meta+2,,Switch to Desktop 2";
|
||||||
|
"Switch to Desktop 3" = "Meta+3,,Switch to Desktop 3";
|
||||||
|
"Switch to Desktop 4" = "Meta+4,,Switch to Desktop 4";
|
||||||
|
"Switch to Desktop 5" = "Meta+5,,Switch to Desktop 5";
|
||||||
|
"Switch to Desktop 6" = "none,,Switch to Desktop 6";
|
||||||
|
"Switch to Desktop 7" = "none,,Switch to Desktop 7";
|
||||||
|
"Switch to Desktop 8" = "none,,Switch to Desktop 8";
|
||||||
|
"Switch to Desktop 9" = "none,,Switch to Desktop 9";
|
||||||
|
"Window to Desktop 1" = "Meta+!,,Window to Desktop 1";
|
||||||
|
"Window to Desktop 2" = "Meta+@,,Window to Desktop 2";
|
||||||
|
"Window to Desktop 3" = "Meta+#,,Window to Desktop 3";
|
||||||
|
"Window to Desktop 4" = "Meta+$,,Window to Desktop 4";
|
||||||
|
"Window to Desktop 5" = "Meta+%,,Window to Desktop 5";
|
||||||
|
"Window to Desktop 6" = "none,,Window to Desktop 6";
|
||||||
|
"Window to Desktop 7" = "none,,Window to Desktop 7";
|
||||||
|
"Window to Desktop 8" = "none,,Window to Desktop 8";
|
||||||
|
"Window to Desktop 9" = "none,,Window to Desktop 9";
|
||||||
|
|
||||||
|
"Walk Through Windows" = "Alt+Tab";
|
||||||
|
"Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
|
||||||
|
"Walk Through Windows of Current Application" = "Alt+`";
|
||||||
|
"Walk Through Windows of Current Application (Reverse)" = "Alt+~";
|
||||||
|
"Window Fullscreen" = "Meta+Shift+F,,Make Window Fullscreen";
|
||||||
|
|
||||||
|
"Window Quick Tile Bottom" = "Meta+Down";
|
||||||
|
"Window Quick Tile Left" = "Meta+Left";
|
||||||
|
"Window Quick Tile Right" = "Meta+Right";
|
||||||
|
"Window Quick Tile Top" = "Meta+Up";
|
||||||
|
|
||||||
|
"view_actual_size" = "Meta+0";
|
||||||
|
"view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
|
||||||
|
"view_zoom_out" = "Meta+-";
|
||||||
|
};
|
||||||
|
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
|
||||||
|
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
|
||||||
|
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
|
||||||
|
"org_kde_powerdevil"."Hibernate" = "Hibernate";
|
||||||
|
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
|
||||||
|
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
|
||||||
|
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
|
||||||
|
"org_kde_powerdevil"."PowerDown" = "Power Down";
|
||||||
|
"org_kde_powerdevil"."PowerOff" = "Power Off";
|
||||||
|
"org_kde_powerdevil"."Sleep" = "Sleep";
|
||||||
|
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
|
||||||
|
"org_kde_powerdevil"."Turn Off Screen" = [ ];
|
||||||
|
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
|
||||||
|
|
||||||
|
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
|
||||||
|
};
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
kwinrc.Desktops.Number = {
|
||||||
|
value = 9;
|
||||||
|
immutable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
xsession.windowManager.i3 = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
modifier = "Mod4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -2,18 +2,26 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
# your system. Help is available in the configuration.nix(5) man page, on
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../roles/common/default.nix
|
|
||||||
../../roles/nix/default.nix
|
|
||||||
(import ../../roles/kodi/default.nix { autologin = true; wayland = true; inherit lib; inherit pkgs; })
|
|
||||||
(import ../../roles/users/default.nix { extraGroups = []; })
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
roles = {
|
||||||
|
audio.enable = true;
|
||||||
|
kodi = {
|
||||||
|
enable = true;
|
||||||
|
autologin = true;
|
||||||
|
wayland = true;
|
||||||
|
};
|
||||||
|
users.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
@@ -22,6 +30,8 @@
|
|||||||
|
|
||||||
hardware.graphics.enable = true;
|
hardware.graphics.enable = true;
|
||||||
|
|
||||||
|
services.displayManager.enable = mkForce false;
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -10,9 +10,12 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
roles = {
|
roles = {
|
||||||
|
audio.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
nfs-mounts.enable = true;
|
nfs-mounts.enable = true;
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
|
spotifyd.enable = true;
|
||||||
users = {
|
users = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraGroups = [ "video" ];
|
extraGroups = [ "video" ];
|
||||||
|
|||||||
@@ -2,23 +2,32 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ inputs, lib, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../roles/common/default.nix
|
|
||||||
(import ../../roles/desktop/default.nix { x11Only = true; inherit inputs; inherit pkgs; })
|
|
||||||
../../roles/kids/default.nix
|
|
||||||
(import ../../roles/kodi/default.nix { autologin = false; wayland = false; inherit lib; inherit pkgs; })
|
|
||||||
../../roles/nfs-mounts/default.nix
|
|
||||||
../../roles/nix/default.nix
|
|
||||||
../../roles/printing/default.nix
|
|
||||||
(import ../../roles/users/default.nix { extraGroups = ["input" "libvirtd"]; })
|
|
||||||
../../roles/virtualisation/default.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
roles = {
|
||||||
|
audio.enable = true;
|
||||||
|
desktop = {
|
||||||
|
enable = true;
|
||||||
|
x11Only = true;
|
||||||
|
};
|
||||||
|
kodi.enable = true;
|
||||||
|
nfs-mounts.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
|
spotifyd.enable = true;
|
||||||
|
users = {
|
||||||
|
enable = true;
|
||||||
|
extraGroups = [ "input" "libvirtd" ];
|
||||||
|
kids = true;
|
||||||
|
};
|
||||||
|
virtualisation.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|||||||
@@ -15,11 +15,17 @@
|
|||||||
"nvidia_uvm"
|
"nvidia_uvm"
|
||||||
"nvidia_drm"
|
"nvidia_drm"
|
||||||
];
|
];
|
||||||
|
boot.kernelParams = [
|
||||||
|
"nvidia_drm.fbdev=1"
|
||||||
|
"nvidia_drm.modeset=1"
|
||||||
|
];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
hardware.graphics.enable = true;
|
hardware.graphics.enable = true;
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
services.xserver.screenSection = ''Option "metamodes" "3440x1440_165 +0+0"'';
|
||||||
|
services.xserver.enableTearFree = true;
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
@@ -46,6 +52,14 @@
|
|||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
services.beesd.filesystems = {
|
||||||
|
root = {
|
||||||
|
spec = "LABEL=nixos";
|
||||||
|
hashTableSizeMB = 4096;
|
||||||
|
verbosity = "crit";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
|||||||
4
packages/default.nix
Normal file
4
packages/default.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
nextcloudTalkDesktop = pkgs.callPackage ./nextcloud-talk-desktop {};
|
||||||
|
}
|
||||||
32
roles/audio/default.nix
Normal file
32
roles/audio/default.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.audio;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.roles.audio = {
|
||||||
|
enable = mkEnableOption "Enable the audio role";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
paprefs
|
||||||
|
pavucontrol
|
||||||
|
pulsemixer
|
||||||
|
];
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
hardware.pulseaudio.package = pkgs.pulseaudioFull;
|
||||||
|
hardware.pulseaudio.extraConfig = "
|
||||||
|
load-module module-combine-sink
|
||||||
|
load-module module-switch-on-connect
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
26
roles/bluetooth/default.nix
Normal file
26
roles/bluetooth/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.bluetooth;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.roles.bluetooth = {
|
||||||
|
enable = mkEnableOption "Enable the bluetooth role";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable
|
||||||
|
{
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
hardware.bluetooth.settings = {
|
||||||
|
General = {
|
||||||
|
Enable = "Source,Sink,Media,Socket";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.blueman.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,24 +1,21 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.roles;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./audio
|
||||||
|
./bluetooth
|
||||||
./desktop
|
./desktop
|
||||||
./kodi
|
./kodi
|
||||||
./nfs-mounts
|
./nfs-mounts
|
||||||
./printing
|
./printing
|
||||||
|
./secrets
|
||||||
|
./spotifyd
|
||||||
./users
|
./users
|
||||||
./virtualisation
|
./virtualisation
|
||||||
];
|
];
|
||||||
|
|
||||||
options.roles = {
|
|
||||||
enable = mkEnableOption "Enable roles";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
@@ -37,11 +34,6 @@ in
|
|||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
git
|
git
|
||||||
@@ -66,9 +58,6 @@ in
|
|||||||
substituters = [
|
substituters = [
|
||||||
"https://hyprland.cachix.org"
|
"https://hyprland.cachix.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,31 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.roles.desktop;
|
cfg = config.roles.desktop;
|
||||||
|
|
||||||
|
basePackages = with pkgs; [
|
||||||
|
brightnessctl
|
||||||
|
mangohud # Should probably get refactored with steam/gamescope out to a gaming role
|
||||||
|
polonium # auto tiling kwin addon
|
||||||
|
];
|
||||||
|
|
||||||
|
x11BasePackages = with pkgs; [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
x11OnlyPackages = with pkgs; [
|
||||||
|
emacs
|
||||||
|
];
|
||||||
|
|
||||||
|
waylandBasePackages = with pkgs; [
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clipboard
|
||||||
|
mako
|
||||||
|
];
|
||||||
|
|
||||||
|
waylandOnlyPackages = with pkgs; [
|
||||||
|
emacs-gtk
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.roles.desktop = {
|
options.roles.desktop = {
|
||||||
@@ -14,7 +39,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
config = mkIf cfg.enable
|
||||||
{
|
{
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
layout = "us";
|
layout = "us";
|
||||||
@@ -22,8 +47,10 @@ in
|
|||||||
options = "caps:escape";
|
options = "caps:escape";
|
||||||
};
|
};
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.xserver.displayManager = {
|
|
||||||
lightdm.enable = true;
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = !cfg.x11Only;
|
||||||
};
|
};
|
||||||
services.desktopManager.plasma6.enable = true;
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
@@ -38,12 +65,6 @@ in
|
|||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; mkIf (!cfg.x11Only) [
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
|
||||||
mako
|
|
||||||
];
|
|
||||||
programs.sway = mkIf (!cfg.x11Only) {
|
programs.sway = mkIf (!cfg.x11Only) {
|
||||||
enable = true;
|
enable = true;
|
||||||
wrapperFeatures.gtk = true;
|
wrapperFeatures.gtk = true;
|
||||||
@@ -52,10 +73,38 @@ in
|
|||||||
|
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
programs.java.enable = true;
|
programs.java.enable = true;
|
||||||
|
programs.gamemode = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
programs.gamescope = {
|
||||||
|
enable = true;
|
||||||
|
#capSysNice = true;
|
||||||
|
args = [
|
||||||
|
#"--adaptive-sync"
|
||||||
|
#"--nested-refresh 165"
|
||||||
|
#"--backend wayland"
|
||||||
|
"--hdr-enabled"
|
||||||
|
"--hdr-itm-enable"
|
||||||
|
"--hdr-debug-force-output"
|
||||||
|
"--mangoapp"
|
||||||
|
"--rt"
|
||||||
|
"--steam"
|
||||||
|
#"--xwayland-count 2"
|
||||||
|
];
|
||||||
|
env = {
|
||||||
|
#PROTON_DISABLE_NVAPI = "1";
|
||||||
|
MANGOHUD = "1";
|
||||||
|
#MANGOHUD_CONFIG = "cpu_temp gpu_temp ram vram";
|
||||||
|
};
|
||||||
|
};
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
gamescopeSession = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
#package = pkgs.steam.override {
|
#package = pkgs.steam.override {
|
||||||
#withJava = true;
|
#withJava = true;
|
||||||
#withPrimus = true;
|
#withPrimus = true;
|
||||||
@@ -71,6 +120,15 @@ in
|
|||||||
|
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
users.extraGroups.docker.members = [ "johno" ];
|
users.extraGroups.docker.members = [ "johno" ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; mkMerge [
|
||||||
|
basePackages
|
||||||
|
x11BasePackages
|
||||||
|
(mkIf cfg.x11Only x11OnlyPackages)
|
||||||
|
# TODO: Do we need a "wayland only" mode?
|
||||||
|
(mkIf (!cfg.x11Only) waylandBasePackages)
|
||||||
|
(mkIf (!cfg.x11Only) waylandOnlyPackages)
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,38 +25,47 @@ in
|
|||||||
steam-library
|
steam-library
|
||||||
youtube
|
youtube
|
||||||
]);
|
]);
|
||||||
in {
|
in mkIf cfg.enable
|
||||||
users.extraUsers.kodi.isNormalUser = true;
|
{
|
||||||
|
users.extraUsers.kodi.isNormalUser = true;
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPorts = [ 8080 ];
|
allowedTCPPorts = [ 8080 ];
|
||||||
allowedUDPPorts = [ 8080 ];
|
allowedUDPPorts = [ 8080 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services = if cfg.autologin then mkMerge [
|
||||||
|
(mkIf cfg.wayland {
|
||||||
|
cage = mkIf cfg.wayland {
|
||||||
|
user = "kodi";
|
||||||
|
program = "${kodiPkg}/bin/kodi-standalone";
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
xserver = {
|
||||||
|
enable = false;
|
||||||
|
autorun = false;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf (!cfg.wayland) {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.kodi = {
|
||||||
|
enable = true;
|
||||||
|
package = kodiPkg;
|
||||||
|
};
|
||||||
|
displayManager.lightdm = {
|
||||||
|
enable = true;
|
||||||
|
greeter.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
displayManager = {
|
||||||
|
autoLogin.enable = true;
|
||||||
|
autoLogin.user = "kodi";
|
||||||
|
defaultSession = "kodi";
|
||||||
|
sessionData.autologinSession = "kodi";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
] else {};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = mkIf cfg.autologin {
|
|
||||||
cage = mkIf cfg.wayland {
|
|
||||||
user = "kodi";
|
|
||||||
program = "${kodiPkg}/bin/kodi-standalone";
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
xserver = mkIf (!cfg.wayland) {
|
|
||||||
enable = true;
|
|
||||||
desktopManager.kodi = {
|
|
||||||
enable = true;
|
|
||||||
package = kodiPkg;
|
|
||||||
};
|
|
||||||
displayManager.lightdm = {
|
|
||||||
enable = true;
|
|
||||||
greeter.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
displayManager = mkIf (!cfg.wayland) {
|
|
||||||
autoLogin.enable = true;
|
|
||||||
autoLogin.user = "kodi";
|
|
||||||
defaultSession = "kodi";
|
|
||||||
sessionData.autologinSession = "kodi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,15 +16,16 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = mkIf cfg.enable
|
||||||
fileSystems."/media" = {
|
{
|
||||||
device = "10.0.0.43:/media";
|
fileSystems."/media" = {
|
||||||
fsType = "nfs";
|
device = "10.0.0.43:/media";
|
||||||
options = [
|
fsType = "nfs";
|
||||||
"defaults"
|
options = [
|
||||||
"nofail"
|
"defaults"
|
||||||
"softreval"
|
"nofail"
|
||||||
];
|
"softreval"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,22 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.printing;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
options.roles.printing = {
|
options.roles.printing = {
|
||||||
enable = mkEnableOption "Enable default printing setup";
|
enable = mkEnableOption "Enable default printing setup";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = mkIf cfg.enable
|
||||||
services.printing.enable = true;
|
{
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
# TODO: Add actual printer setup config here...
|
services.avahi = {
|
||||||
};
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
8
roles/secrets/default.nix
Normal file
8
roles/secrets/default.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ config, lib, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
||||||
|
sops.defaultSopsFormat = "yaml";
|
||||||
|
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" "/home/johno/.ssh/id_ed25519" ];
|
||||||
|
sops.secrets.example_key = {};
|
||||||
|
}
|
||||||
40
roles/spotifyd/default.nix
Normal file
40
roles/spotifyd/default.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.spotifyd;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.roles.spotifyd = {
|
||||||
|
enable = mkEnableOption "Enable the spotifyd role";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable
|
||||||
|
{
|
||||||
|
roles.audio.enable = true;
|
||||||
|
|
||||||
|
services.spotifyd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
use_mpris = false;
|
||||||
|
backend = "alsa";
|
||||||
|
device = "sysdefault";
|
||||||
|
bitrate = 320;
|
||||||
|
cache_path = "";
|
||||||
|
zeroconf_port = 1234;
|
||||||
|
autoplay = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
1234
|
||||||
|
57621
|
||||||
|
];
|
||||||
|
networking.firewall.allowedUDPPorts = [
|
||||||
|
5353
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ in
|
|||||||
kidsPackages = with pkgs; [
|
kidsPackages = with pkgs; [
|
||||||
firefox
|
firefox
|
||||||
];
|
];
|
||||||
in {
|
in mkIf cfg.enable {
|
||||||
users.users.johno = {
|
users.users.johno = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "John Ogle";
|
description = "John Ogle";
|
||||||
|
|||||||
@@ -2,13 +2,17 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.roles.virtualisation;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
options.roles.virtualisation = {
|
options.roles.virtualisation = {
|
||||||
enable = mkEnableOption "Enable virtualisation";
|
enable = mkEnableOption "Enable virtualisation";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = mkIf cfg.enable
|
||||||
virtualisation.libvirtd.enable = true;
|
{
|
||||||
programs.virt-manager.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
};
|
programs.virt-manager.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
48
secrets/secrets.yaml
Normal file
48
secrets/secrets.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
hello: ENC[AES256_GCM,data:5ZpbPx3D8gQc1fOhViUqiCr0zLWYotB+vIBixqTbqP9XLS52y6tr5DXus0aV9mTgka5deqc=,iv:yPJaCqDD9WD56swfBjSm7A62ZTTIQDqyAKOgP1ese+U=,tag:bo8+7Ne2f9aEZSvpkt1fzA==,type:str]
|
||||||
|
example_key: ENC[AES256_GCM,data:v15bEcb0H3vaj13blg==,iv:9P3IA7ChBamo41VE8G8tj46sZqeijsO1LcvwLtEPVPA=,tag:o/lAyAYYGNLP9EjQNa/K8Q==,type:str]
|
||||||
|
example_array:
|
||||||
|
- ENC[AES256_GCM,data:3Vwa7dfNfKzRc/xpk6I=,iv:IevBgxwWdaBvZY1ywteWcfWwDIA8lK3FTWs67lLBKxw=,tag:Mx5lzUeNZ/3wJBWAl5XSBw==,type:str]
|
||||||
|
- ENC[AES256_GCM,data:epkT6WPGW5Oe/S+4HtU=,iv:N0yoDuieAaEi+NuCoCL4zrkhaDDdkttboI89m+UccjQ=,tag:OoERRByb0OM4un9oGLJQgA==,type:str]
|
||||||
|
#ENC[AES256_GCM,data:YzMFXxn3sbbHpGB4jPRtRw==,iv:TN6ogQuH7c6xtDoWt0Ew9B2f7wuaipJynvscZmaJYoU=,tag:No0UwEktEyMNBg/46P+Zmg==,type:comment]
|
||||||
|
example_number: ENC[AES256_GCM,data:jmLoVC+8YIlB2A==,iv:u9GztD/aE9UN5zWq3Am2nhYwmYt3sf8sy65MHbhVoD0=,tag:wKuf1mMr5XBJveJrz0uHPA==,type:float]
|
||||||
|
example_booleans:
|
||||||
|
- ENC[AES256_GCM,data:ZacILA==,iv:xo+7aFFQXzbJzKDY0mYTeFLf10AlnHkywDRAMHeprEM=,tag:F/OnJdqjrZP02sTLWLmnbg==,type:bool]
|
||||||
|
- ENC[AES256_GCM,data:NaFrvrs=,iv:kKDmGs9u/w5qrZ/379Jlx8AotUVADvH+eHwHCqykmkE=,tag:nD9TsmkXUm4ABaT1ABWmcg==,type:bool]
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1ls6a033d4p4u8h4rwazjwt8w4c4xg73wq0mdnm64jajxzcz4k9asvjnks3
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjak9vRVJtVmJoanhEZ0hQ
|
||||||
|
MFJwMEE4UDcrRkdPRmZ6R09FSDY1aTk3Y1dNClZJYXRLNU5senR3Qzh6VmZGMlhu
|
||||||
|
bnl6VjlaUEFISnBtSTVrcEd0ZjI5Q2MKLS0tIFl1b3A5ZWVqc1gvWVZnZis0ZHFk
|
||||||
|
bWhnNVB2TUJ4YzY4NHdSVXhPc3dReTgKWRYBbBE3+oGsRNw1CROhFY+btENbShfv
|
||||||
|
gw3IdW7OoZV6JpJBOcI82eOuOkIxrmgSGDGeyy10/a5MA/cB1umm+w==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age12l5u7sw59u5pkwp83qm8t3ff7uv0ld2c9k3zh5j4ame9k2szcynqu7ftqe
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGcmV3TDlNL2Zxb0h5QTYx
|
||||||
|
QkVmczA0MDc2ZnpNNU1YeFVzSXJwc3RWUmk4CjF4bHIrVU9VM3htTUxGZ2FUR256
|
||||||
|
UEovdVV2cmNIbkloS1VobTNFSDVyRG8KLS0tIEFhUk5kL3hCNGs4MGJBTmNJaVFm
|
||||||
|
b2ZBUGJ1K0lKTitKYTRUMWszQzhBU0UKBaM6t6JmWfiG+wPorGea1gqvV5RSIPyw
|
||||||
|
6yb2PcH2oZ0HrjJM5sjfu7XOWY3KneiZZikR1BpD5KvevfagWTSR/w==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1fa3zqavfmqk4ssa22yne9td90gyqv9q5a8y0s8jp3xak8q7p3yjqyn7rkg
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaMFJiNjVOb0lTcmJ3VnhH
|
||||||
|
WlRKZERRZFM3TFZBZGNSZC9GdHlHakMza21zClJ3SDdFUkVRc3oyVVU3WEtDQzBu
|
||||||
|
OEFqS3NwbHZFUlpCYlN6RW84N0F1amcKLS0tIHFZK21aTHdwZ2dWbVRrWEZDWFZj
|
||||||
|
aU1IQzdTMVhnbHhsNENwMG05dXhOU2MK8fEJea9sL5JLgltVlTI6mRDb+Tl83Iz7
|
||||||
|
4wPYvo68cn8vimXqSk45ldHRrNa3zhYai3CalQaGtDT3fkWGvSq0zQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-09-28T15:44:39Z"
|
||||||
|
mac: ENC[AES256_GCM,data:YUi+AbS6DQTmrSyOXsbkZWfWaMyKGR8fYm/MHcxmqChi8hng+UWHBZjsLBe6ef/FLH3rnP6bhfwK8KYnVS6fHvHahoqIq/BHydTsqrclnSgRAGl8Lh0yuhwISNRvP1AuW5pd50sdQaS0uGOtzOCharI/pZ9H+cmt2SB5WOCdeLs=,iv:2nBG6it3tNSLSia8hGzCcesuK9QwzB9EzfjWegjQ2kw=,tag:RGGPAPw/rQKhWA2OqLjTJw==,type:str]
|
||||||
|
pgp: []
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.9.0
|
||||||
Reference in New Issue
Block a user