156 lines
4.0 KiB
Nix
Executable File
156 lines
4.0 KiB
Nix
Executable File
{ config, lib, pkgs, ... }:
|
|
let
|
|
pkgsVersion = pkgs; #.unstable;
|
|
in
|
|
{
|
|
services = {
|
|
# Enable Flatpak
|
|
flatpak.enable = lib.mkDefault false;
|
|
|
|
# enable auto discovery of printers
|
|
avahi = {
|
|
enable = lib.mkDefault true;
|
|
nssmdns4 = lib.mkDefault true;
|
|
openFirewall = lib.mkDefault true;
|
|
};
|
|
|
|
restic.backups = {
|
|
jallen-nas = {
|
|
initialize = true;
|
|
createWrapper = true;
|
|
inhibitsSleep = true;
|
|
environmentFile = config.sops.templates."restic.env".path;
|
|
passwordFile = config.sops.secrets."desktop/restic/password".path;
|
|
repositoryFile = config.sops.secrets."desktop/restic/repo".path;
|
|
paths = [
|
|
"/home/matt"
|
|
];
|
|
exclude = [
|
|
"/home/matt/Steam"
|
|
"/home/matt/Heroic"
|
|
"/home/matt/1TB"
|
|
"/home/matt/Downloads"
|
|
"/home/matt/Nextcloud"
|
|
"/home/matt/.cache"
|
|
"/home/matt/.local/share/Steam"
|
|
"/home/matt/.var/app/com.valvesoftware.Steam"
|
|
"/home/matt/.tmp"
|
|
"/home/matt/.thumbnails"
|
|
"/home/matt/.compose-cache"
|
|
];
|
|
};
|
|
proton-drive = {
|
|
initialize = true;
|
|
createWrapper = true;
|
|
inhibitsSleep = true;
|
|
passwordFile = config.sops.secrets."desktop/restic/password".path;
|
|
rcloneConfigFile = "/home/matt/.config/rclone/rclone.conf";
|
|
repository = "rclone:proton-drive:backup-nix";
|
|
paths = [
|
|
"/home/matt"
|
|
];
|
|
exclude = [
|
|
"/home/matt/Steam"
|
|
"/home/matt/Heroic"
|
|
"/home/matt/1TB"
|
|
"/home/matt/Downloads"
|
|
"/home/matt/Nextcloud"
|
|
"/home/matt/.cache"
|
|
"/home/matt/.local/share/Steam"
|
|
"/home/matt/.var/app/com.valvesoftware.Steam"
|
|
"/home/matt/.tmp"
|
|
"/home/matt/.thumbnails"
|
|
"/home/matt/.compose-cache"
|
|
];
|
|
};
|
|
};
|
|
|
|
btrfs = {
|
|
autoScrub.enable = lib.mkDefault true;
|
|
autoScrub.fileSystems = lib.mkDefault [
|
|
"/nix"
|
|
"/root"
|
|
"/etc"
|
|
"/var/log"
|
|
"/home"
|
|
];
|
|
};
|
|
|
|
ratbagd.enable = lib.mkDefault true;
|
|
|
|
keyd = {
|
|
enable = false;
|
|
keyboards = {
|
|
default = {
|
|
ids = [ "*" ];
|
|
settings = {
|
|
main = {
|
|
# Use ⌘ key (leftmeta) to activate macOS-like layer
|
|
leftmeta = "layer(meta_mac)";
|
|
};
|
|
|
|
meta_mac = {
|
|
# Tab switching
|
|
tab = "swapm(app_switch_state, M-tab)";
|
|
"`" = "A-f6";
|
|
|
|
# App shortcuts
|
|
c = "C-insert"; # Copy
|
|
v = "S-insert"; # Paste
|
|
x = "S-delete"; # Cut
|
|
|
|
"1" = "A-1";
|
|
"2" = "A-2";
|
|
"3" = "A-3";
|
|
"4" = "A-4";
|
|
"5" = "A-5";
|
|
"6" = "A-6";
|
|
"7" = "A-7";
|
|
"8" = "A-8";
|
|
"9" = "A-9";
|
|
|
|
# Move to line start/end
|
|
left = "home";
|
|
right = "end";
|
|
};
|
|
|
|
app_switch_state = {
|
|
tab = "M-tab";
|
|
right = "M-tab";
|
|
"`" = "M-S-tab";
|
|
left = "M-S-tab";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd = {
|
|
user.services = {
|
|
rclone-home-proton = {
|
|
enable = lib.mkDefault false;
|
|
path = with pkgsVersion; [
|
|
bash
|
|
pkgs.rclone
|
|
];
|
|
script = ''
|
|
rclone sync /home/matt proton-drive:backup-nix --exclude '/home/matt/Games/**' --exclude '/home/matt/1TB/**' --exclude '/home/matt/Downloads/**'
|
|
'';
|
|
};
|
|
|
|
rsync-home = {
|
|
enable = lib.mkDefault false;
|
|
path = with pkgsVersion; [
|
|
bash
|
|
rsync
|
|
openssh
|
|
];
|
|
script = ''
|
|
rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.3:/media/nas/main/backup/desktop-nix/home
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|