Compare commits
3 commits
a33f4b8707
...
1764a421ab
| Author | SHA1 | Date | |
|---|---|---|---|
| 1764a421ab | |||
| 9f1cf602e5 | |||
| 93f8b84d73 |
14 changed files with 163 additions and 14 deletions
|
|
@ -18,6 +18,9 @@
|
||||||
profiles = {
|
profiles = {
|
||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
personal.enable = true;
|
personal.enable = true;
|
||||||
|
personal.mail = true;
|
||||||
|
personal.contacts = true;
|
||||||
|
personal.calendar = true;
|
||||||
webis.enable = true;
|
webis.enable = true;
|
||||||
impermanence.enable = true;
|
impermanence.enable = true;
|
||||||
};
|
};
|
||||||
|
|
@ -36,6 +39,7 @@
|
||||||
profile.outputs = [
|
profile.outputs = [
|
||||||
{
|
{
|
||||||
criteria = "eDP-1";
|
criteria = "eDP-1";
|
||||||
|
scale = 1.0;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ in
|
||||||
};
|
};
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
environment.persistence."/persist" = {
|
environment.persistence."/persist" = {
|
||||||
|
enable = cfg.enable;
|
||||||
hideMounts = true;
|
hideMounts = true;
|
||||||
directories = [
|
directories = [
|
||||||
"/etc/NetworkManager/system-connections"
|
"/etc/NetworkManager/system-connections"
|
||||||
|
|
@ -27,7 +28,6 @@ in
|
||||||
"/var/lib/nixos"
|
"/var/lib/nixos"
|
||||||
"/var/lib/systemd"
|
"/var/lib/systemd"
|
||||||
"/var/log"
|
"/var/log"
|
||||||
"/etc/mullvad-vpn/"
|
|
||||||
];
|
];
|
||||||
files = [
|
files = [
|
||||||
"/etc/machine-id"
|
"/etc/machine-id"
|
||||||
|
|
@ -39,27 +39,14 @@ in
|
||||||
];
|
];
|
||||||
users.moritz = {
|
users.moritz = {
|
||||||
directories = [
|
directories = [
|
||||||
".SynologyDrive/data"
|
|
||||||
".SynologyDrive/log"
|
|
||||||
".cache/keepassxc"
|
".cache/keepassxc"
|
||||||
".cache/nvim/luac"
|
|
||||||
".cat_installer" # eduroam
|
".cat_installer" # eduroam
|
||||||
".config/JetBrains"
|
|
||||||
".config/Mullvad VPN/"
|
|
||||||
".config/Nextcloud"
|
".config/Nextcloud"
|
||||||
".config/Signal/"
|
".config/Signal/"
|
||||||
".config/calibre"
|
".config/calibre"
|
||||||
".config/github-copilot"
|
|
||||||
".config/kdeconnect"
|
|
||||||
".config/keepassxc"
|
".config/keepassxc"
|
||||||
".java/.userPrefs/jetbrains/"
|
|
||||||
".local/share/JetBrains"
|
|
||||||
".local/share/PrismLauncher/"
|
|
||||||
".local/share/Steam/"
|
".local/share/Steam/"
|
||||||
".local/share/direnv"
|
|
||||||
".local/share/nvim"
|
|
||||||
".local/share/zoxide"
|
".local/share/zoxide"
|
||||||
".local/state/nvim"
|
|
||||||
".mozilla"
|
".mozilla"
|
||||||
"Documents"
|
"Documents"
|
||||||
"Downloads"
|
"Downloads"
|
||||||
|
|
|
||||||
55
modules/profiles/personal_calendar.nix
Normal file
55
modules/profiles/personal_calendar.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
{ lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.my.profiles.personal;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.profiles.personal.calendar = mkEnableOption "calendar";
|
||||||
|
|
||||||
|
config = mkIf cfg.contacts {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".local/share/vdirsyncer/"
|
||||||
|
];
|
||||||
|
home-manager.users.moritz = {
|
||||||
|
programs.khal.enable = true;
|
||||||
|
programs.vdirsyncer.enable = true;
|
||||||
|
services.vdirsyncer.enable = true;
|
||||||
|
accounts.calendar = {
|
||||||
|
basePath = "Documents/Calendar";
|
||||||
|
accounts.personal = {
|
||||||
|
local = {
|
||||||
|
type = "filesystem";
|
||||||
|
fileExt = ".ics";
|
||||||
|
};
|
||||||
|
remote = {
|
||||||
|
passwordCommand = [ "cat" "/run/agenix/nextcloud" ];
|
||||||
|
url = "https://nextcloud.moritzboeh.me/remote.php/dav";
|
||||||
|
type = "caldav";
|
||||||
|
userName = "moritz";
|
||||||
|
};
|
||||||
|
primaryCollection = "personal";
|
||||||
|
khal.enable = true;
|
||||||
|
khal.type = "discover";
|
||||||
|
vdirsyncer.enable = true;
|
||||||
|
vdirsyncer.collections = [
|
||||||
|
"personal" # Personal
|
||||||
|
"einkaufsliste" # Einkaufsliste
|
||||||
|
"9b8be6f3-d85c-4c1e-b006-00910f56bf5d" # Tasks
|
||||||
|
"contact_birthdays" # Contact birthdays
|
||||||
|
"f71a1a0f-08c5-45de-84e8-e7f16b748ba5" # Uni
|
||||||
|
"32c96d6f-a575-48b1-949a-6ae548f7a779" # Work
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
age.secrets.nextcloud = {
|
||||||
|
file = ../../secrets/nextcloud.age;
|
||||||
|
owner = "1000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
53
modules/profiles/personal_contacts.nix
Normal file
53
modules/profiles/personal_contacts.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{ lib
|
||||||
|
, config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.my.profiles.personal;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.profiles.personal.contacts = mkEnableOption "contacts";
|
||||||
|
|
||||||
|
config = mkIf cfg.contacts {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = mkIf (!cfg.calendar) [
|
||||||
|
".local/share/vdirsyncer/"
|
||||||
|
];
|
||||||
|
home-manager.users.moritz = {
|
||||||
|
programs.khard.enable = true;
|
||||||
|
programs.vdirsyncer.enable = true;
|
||||||
|
services.vdirsyncer.enable = true;
|
||||||
|
programs.aerc.extraConfig.compose.address-book-cmd = "khard email --remove-first-line --parsable %s";
|
||||||
|
accounts.contact = {
|
||||||
|
basePath = "Documents/Contacts";
|
||||||
|
accounts.personal = {
|
||||||
|
local = {
|
||||||
|
type = "filesystem";
|
||||||
|
fileExt = ".vcf";
|
||||||
|
};
|
||||||
|
remote = {
|
||||||
|
passwordCommand = [ "cat" "/run/agenix/nextcloud" ];
|
||||||
|
url = "https://nextcloud.moritzboeh.me/remote.php/dav";
|
||||||
|
type = "carddav";
|
||||||
|
userName = "moritz";
|
||||||
|
};
|
||||||
|
khard.enable = true;
|
||||||
|
khard.defaultCollection = "contacts";
|
||||||
|
vdirsyncer.enable = true;
|
||||||
|
vdirsyncer.collections = [
|
||||||
|
# "z-app-generated--contactsinteraction--recent" # Recently contacted
|
||||||
|
# "z-server-generated--system" # Accounts
|
||||||
|
"contacts" # Contacts
|
||||||
|
];
|
||||||
|
vdirsyncer.conflictResolution = [ "vimdiff" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
age.secrets.nextcloud = {
|
||||||
|
file = ../../secrets/nextcloud.age;
|
||||||
|
owner = "1000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -60,6 +60,8 @@ in
|
||||||
realName = "Moritz Böhme";
|
realName = "Moritz Böhme";
|
||||||
mbsync.enable = true;
|
mbsync.enable = true;
|
||||||
mbsync.create = "both";
|
mbsync.create = "both";
|
||||||
|
mbsync.remove = "both";
|
||||||
|
mbsync.expunge = "both";
|
||||||
passwordCommand = "${lib.getExe' pkgs.coreutils "cat"} /run/agenix/email";
|
passwordCommand = "${lib.getExe' pkgs.coreutils "cat"} /run/agenix/email";
|
||||||
};
|
};
|
||||||
accounts.email.maildirBasePath = "Documents/Mail";
|
accounts.email.maildirBasePath = "Documents/Mail";
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,10 @@ in
|
||||||
options.my.programs.direnv.enable = mkEnableOption "direnv";
|
options.my.programs.direnv.enable = mkEnableOption "direnv";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".local/share/direnv"
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users.moritz.programs.direnv = {
|
home-manager.users.moritz.programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,12 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf anyEnabled {
|
config = mkIf anyEnabled {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".config/JetBrains"
|
||||||
|
".java/.userPrefs/jetbrains/"
|
||||||
|
".local/share/JetBrains"
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users.moritz = {
|
home-manager.users.moritz = {
|
||||||
xdg.configFile."ideavim/ideavimrc" = {
|
xdg.configFile."ideavim/ideavimrc" = {
|
||||||
source = ./ideavimrc;
|
source = ./ideavimrc;
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,13 @@ in
|
||||||
options.my.programs.nvim.enable = mkEnableOption "nvim";
|
options.my.programs.nvim.enable = mkEnableOption "nvim";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".cache/nvim/luac"
|
||||||
|
".config/github-copilot"
|
||||||
|
".local/share/nvim"
|
||||||
|
".local/state/nvim"
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users.moritz = {
|
home-manager.users.moritz = {
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,10 @@ in
|
||||||
options.my.programs.prismlauncher.enable = mkEnableOption "prismlauncher";
|
options.my.programs.prismlauncher.enable = mkEnableOption "prismlauncher";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".local/share/PrismLauncher/"
|
||||||
|
];
|
||||||
|
|
||||||
users.users.moritz.packages = [ prismlauncher ];
|
users.users.moritz.packages = [ prismlauncher ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@ in
|
||||||
options.my.services.kdeconnect.enable = mkEnableOption "kdeconnect";
|
options.my.services.kdeconnect.enable = mkEnableOption "kdeconnect";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".config/kdeconnect"
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users.moritz.services.kdeconnect.enable = mkIf (!config.my.programs.gnome.enable) true;
|
home-manager.users.moritz.services.kdeconnect.enable = mkIf (!config.my.programs.gnome.enable) true;
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPortRanges = [ ports ];
|
allowedTCPPortRanges = [ ports ];
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,14 @@ in
|
||||||
options.my.services.mullvad.enable = mkEnableOption "mullvad";
|
options.my.services.mullvad.enable = mkEnableOption "mullvad";
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist" = {
|
||||||
|
directories = [
|
||||||
|
"/etc/mullvad-vpn/"
|
||||||
|
];
|
||||||
|
users.moritz.directories = [
|
||||||
|
".config/Mullvad VPN/"
|
||||||
|
];
|
||||||
|
};
|
||||||
services.mullvad-vpn.enable = true;
|
services.mullvad-vpn.enable = true;
|
||||||
users.users.moritz.packages = with pkgs; [
|
users.users.moritz.packages = with pkgs; [
|
||||||
mullvad-vpn
|
mullvad-vpn
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,11 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
environment.persistence."/persist".users.moritz.directories = [
|
||||||
|
".SynologyDrive/data"
|
||||||
|
".SynologyDrive/log"
|
||||||
|
];
|
||||||
|
|
||||||
systemd.user.services.synology-drive = {
|
systemd.user.services.synology-drive = {
|
||||||
after = [ "graphical-session.target" "network.target" ];
|
after = [ "graphical-session.target" "network.target" ];
|
||||||
partOf = [ "graphical-session.target" ];
|
partOf = [ "graphical-session.target" ];
|
||||||
|
|
|
||||||
9
secrets/nextcloud.age
Normal file
9
secrets/nextcloud.age
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 CjuqfA QloWb6Q2yIcherp9k+O0A0uEO0rc8X3Kcldtt2HmQmQ
|
||||||
|
EQ2+UJx12ODOzDciyy4D8sFfd3ANkb8CqkEMkzhkH4c
|
||||||
|
-> ssh-ed25519 wG6LYg wZH/zMmCxvo/+OCm0WelbWc7iCilNQOKS8jFH2T/DQ0
|
||||||
|
Yyaa55UpdM+VmtLHlLOL86ERaJorDVk9rgsD91kJyBM
|
||||||
|
-> ssh-ed25519 ZYd7Zg CypGom+Ot6b4naMAhFL3rNVHZHcQeHGQ+3LXPCIMYUQ
|
||||||
|
HrXypX9Zvvwu4c8N8cKftjAUyRfZdNacn3WeV0KKbY4
|
||||||
|
--- O/DBTdosaXCPZK2a1oEbIeEv12uiJOJQ4LJrP+F+JhE
|
||||||
|
Õѳ…H1¤Œ³˜ãHhÉk¹œÐ/âívÂTÃâÍÝãÕ†©î>¡ÚÖšÏè‰ÄÚ '>zsù‹'çe¸…º
|
||||||
|
|
@ -30,4 +30,5 @@ in
|
||||||
"anthropic.age".publicKeys = personal;
|
"anthropic.age".publicKeys = personal;
|
||||||
"nix-github-token.age".publicKeys = personal;
|
"nix-github-token.age".publicKeys = personal;
|
||||||
"email.age".publicKeys = personal;
|
"email.age".publicKeys = personal;
|
||||||
|
"nextcloud.age".publicKeys = personal;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue