From c98d2f9a62f042f812818989dbcd86a4942fb054 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 28 May 2025 23:18:19 +0200 Subject: [PATCH 01/32] Updates dnsc-air config --- hosts/dnsc-air/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index c7c8f54..8844504 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -63,6 +63,9 @@ masApps = { Bitwarden = 1352778147; + "Kagi for Safari" = 1622835804; + "Wipr 2" = 1662217862; + "Yesterday For Old Reddit" = 1603279883; }; brews = [ @@ -79,11 +82,10 @@ "fnm" "imagemagick" "odin" - "todo-txt" ]; casks = [ - "zen-browser" + "chromium" "font-victor-mono" "font-victor-mono-nerd-font" "mullvadvpn" @@ -121,7 +123,7 @@ orientation = "right"; show-recents = false; persistent-apps = [ - "/Applications/Zen.app" + "/Applications/Safari.app" "/Applications/WezTerm.app" "/System/Applications/System Settings.app/" ]; From a491872bc4e20a1f3416ac624c9d57bc0f9f3da5 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 28 May 2025 23:21:01 +0200 Subject: [PATCH 02/32] Adds backup file extension to home manager --- hosts/dnsc-air/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index 8844504..e5795bb 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -166,6 +166,7 @@ home-manager = { extraSpecialArgs = { inherit inputs outputs; }; useGlobalPkgs = true; + backupFileExtension = "backup"; users = { dennis = import ../../home/darwin.nix; }; From 35d0596f88953d8e312c282524db3ccbc15b87b6 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 28 May 2025 23:30:04 +0200 Subject: [PATCH 03/32] updates dnsc-air casks --- hosts/dnsc-air/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index e5795bb..bcf838e 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -97,6 +97,9 @@ "eurkey" "karabiner-elements" "wezterm" + "cyberduck" + "caffeine" + "tailscale" ]; }; From 7ddc189772547c5e58a6095ad465d82b5ca7919d Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 28 May 2025 23:43:52 +0200 Subject: [PATCH 04/32] configures homepage dashboard on vps --- hosts/dnsc-vps-sm/default.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 1ca396c..69f2232 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -131,6 +131,30 @@ }; }; + # Homepage + services.homepage-dashboard = { + enable = true; + listenPort = 9001; + services = [ + { + "VPS" = [ + { + "Vaultwarden" = { + href = "https://vault.dnsc.io"; + icon = "vaultwarden.png"; + }; + } + { + "Uptime Kuma" = { + href = "https://uptime.dnsc.io"; + icon = "uptime-kuma.png"; + }; + } + ]; + } + ]; + }; + # Caddy services.caddy = { enable = true; @@ -155,6 +179,9 @@ virtualHosts."uptime.dnsc.io".extraConfig = '' reverse_proxy localhost:9000 ''; + virtualHosts."home.dnsc.io".extraConfig = '' + reverse_proxy localhost:9001 + ''; }; # Environment variables From 75d7d531fb5a5c0994664de6b0f95154e78f7013 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 28 May 2025 23:50:02 +0200 Subject: [PATCH 05/32] adds allowed hosts to homepage on vps --- hosts/dnsc-vps-sm/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 69f2232..d04acff 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -135,6 +135,7 @@ services.homepage-dashboard = { enable = true; listenPort = 9001; + allowedHosts = "home.dnsc.io"; services = [ { "VPS" = [ From 1dee28461bebf25644d5cfadf12aa94cc87aa857 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:01:54 +0200 Subject: [PATCH 06/32] Configures homepage dashboard --- hosts/dnsc-vps-sm/default.nix | 88 +++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index d04acff..7009b4d 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -151,6 +151,94 @@ icon = "uptime-kuma.png"; }; } + { + "Slides" = { + href = "https://uptime.dnsc.io"; + icon = "slidev.png"; + }; + } + ]; + } + { + "Homelab" = [ + { + "Jellyfin" = { + href = "http://100.103.199.4:8096"; + icon = "jellyfin.png"; + }; + } + { + "Syncthing" = { + href = "http://100.103.199.4:8384"; + icon = "syncthing.png"; + }; + } + ]; + } + ]; + bookmarks = [ + { + Tools = [ + { + Fastmail = [ + { + abbr = "FM"; + href = "https://app.fastmail.com"; + } + ]; + YNAB = [ + { + abbr = "YN"; + href = "https://app.ynab.com"; + } + ]; + } + ]; + } + { + Dev = [ + { + Codeberg = [ + { + abbr = "CB"; + href = "https://codeberg.org"; + } + ]; + Github = [ + { + abbr = "GH"; + href = "https://github.com/dennisschoepf"; + } + ]; + } + ]; + } + { + Entertainment = [ + { + YouTube = [ + { + abbr = "YT"; + href = "https://youtube.com"; + } + ]; + } + { + Twitch = [ + { + abbr = "TW"; + href = "https://twitch.tv"; + } + ]; + } + { + Overcast = [ + { + abbr = "OC"; + href = "https://overcast.fm"; + } + ]; + } ]; } ]; From 40eec873ad287c9c30f39c9fb06d20acb5d4acba Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:12:15 +0200 Subject: [PATCH 07/32] updates homepage dashboard settings --- hosts/dnsc-vps-sm/default.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 7009b4d..6392f9c 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -136,6 +136,15 @@ enable = true; listenPort = 9001; allowedHosts = "home.dnsc.io"; + settings = { + theme = "dark"; + color = "purple"; + background = { + image = "https://github.com/user-attachments/assets/8741ae6b-be80-4435-a00f-9e873ba89340"; + blur = "sm"; + opacity = 50; + }; + }; services = [ { "VPS" = [ From a0551f3d00bcc06aa6984a8eb52c5e3053a06531 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:16:06 +0200 Subject: [PATCH 08/32] updates homepage dashboard --- hosts/dnsc-vps-sm/default.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 6392f9c..5ff9bda 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -138,12 +138,7 @@ allowedHosts = "home.dnsc.io"; settings = { theme = "dark"; - color = "purple"; - background = { - image = "https://github.com/user-attachments/assets/8741ae6b-be80-4435-a00f-9e873ba89340"; - blur = "sm"; - opacity = 50; - }; + background = "https://github.com/user-attachments/assets/8741ae6b-be80-4435-a00f-9e873ba89340"; }; services = [ { @@ -195,6 +190,8 @@ href = "https://app.fastmail.com"; } ]; + } + { YNAB = [ { abbr = "YN"; @@ -213,6 +210,8 @@ href = "https://codeberg.org"; } ]; + } + { Github = [ { abbr = "GH"; From 7f9feda3ee5a1cad1888aeb5299db699564239b6 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:39:06 +0200 Subject: [PATCH 09/32] updates homepage background --- hosts/dnsc-vps-sm/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 5ff9bda..b7816e8 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -138,7 +138,11 @@ allowedHosts = "home.dnsc.io"; settings = { theme = "dark"; - background = "https://github.com/user-attachments/assets/8741ae6b-be80-4435-a00f-9e873ba89340"; + background = { + image = "https://postimg.cc/kV0Ynj68"; + blur = "sm"; + opacity = 50; + }; }; services = [ { From df942d500d3712190b2d9a1c9669d17852907095 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:41:59 +0200 Subject: [PATCH 10/32] fixes image --- hosts/dnsc-vps-sm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index b7816e8..bec7966 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -139,7 +139,7 @@ settings = { theme = "dark"; background = { - image = "https://postimg.cc/kV0Ynj68"; + image = "https://i.ibb.co/v6FjzW5V/winter.png"; blur = "sm"; opacity = 50; }; From 28a8ffd9c86920236d93e4fcfc786f9a43147e5a Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:44:53 +0200 Subject: [PATCH 11/32] updates image --- hosts/dnsc-vps-sm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index bec7966..115a8ce 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -140,8 +140,8 @@ theme = "dark"; background = { image = "https://i.ibb.co/v6FjzW5V/winter.png"; - blur = "sm"; - opacity = 50; + opacity = 40; + brightness = 50; }; }; services = [ From 8ff01ae3f14033e7b21763f9d5223f2d63bd1f69 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:55:24 +0200 Subject: [PATCH 12/32] updates dnsc-air dock --- hosts/dnsc-air/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index bcf838e..ebd9298 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -128,6 +128,8 @@ persistent-apps = [ "/Applications/Safari.app" "/Applications/WezTerm.app" + "/Applications/Calendar.app" + "/Applications/Reminders.app" "/System/Applications/System Settings.app/" ]; persistent-others = [ From e6eaa727bbb327bd605dfd2183a96de0a8ba6783 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:57:09 +0200 Subject: [PATCH 13/32] updates dock --- hosts/dnsc-air/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index ebd9298..d620881 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -126,10 +126,10 @@ orientation = "right"; show-recents = false; persistent-apps = [ - "/Applications/Safari.app" + "/System/Applications/Safari.app" "/Applications/WezTerm.app" - "/Applications/Calendar.app" - "/Applications/Reminders.app" + "/System/Applications/Calendar.app" + "/System/Applications/Reminders.app" "/System/Applications/System Settings.app/" ]; persistent-others = [ From 58ffb417dd5e7ae128f07488f6b63a67d388e10f Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 00:58:54 +0200 Subject: [PATCH 14/32] updates dock --- hosts/dnsc-air/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index d620881..29ab922 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -126,7 +126,7 @@ orientation = "right"; show-recents = false; persistent-apps = [ - "/System/Applications/Safari.app" + "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app" "/Applications/WezTerm.app" "/System/Applications/Calendar.app" "/System/Applications/Reminders.app" From b44654b9a28cc69f2e130d2adc89f79a8ec7fbac Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:26:46 +0200 Subject: [PATCH 15/32] splits out configuration into central modules --- home/darwin-work.nix | 12 ++++++------ home/darwin.nix | 14 +++++++------- home/deck.nix | 10 +++++----- hosts/dnsc-air/default.nix | 2 +- hosts/dnsc-work/default.nix | 2 +- {home/modules => modules}/aerospace/default.nix | 0 {home/modules => modules}/aerospace/work.nix | 0 {home/modules => modules}/atuin/default.nix | 0 {home/modules => modules}/fish/default.nix | 0 .../fish/themes/Rosé Pine Dawn.theme | 0 .../fish/themes/Rosé Pine Moon.theme | 0 .../fish/themes/Rosé Pine.theme | 0 {home/modules => modules}/fish/work.nix | 0 {home/modules => modules}/git/default.nix | 0 {home/modules => modules}/lazygit/default.nix | 0 .../nvim/config/after/ftplugin/markdown.vim | 0 .../nvim/config/after/ftplugin/odin.vim | 0 .../nvim/config/after/ftplugin/vimwiki.vim | 0 .../nvim/config/ftdetect/fastlane.vim | 0 {home/modules => modules}/nvim/config/init.lua | 0 .../modules => modules}/nvim/config/lazy-lock.json | 0 .../modules => modules}/nvim/config/lsp/eslint.lua | 0 .../modules => modules}/nvim/config/lsp/jsonls.lua | 0 .../modules => modules}/nvim/config/lsp/lua_ls.lua | 0 .../modules => modules}/nvim/config/lsp/nil_ls.lua | 0 .../modules => modules}/nvim/config/lsp/ts_ls.lua | 0 .../nvim/config/lua/dnsc/keymaps.lua | 0 .../nvim/config/lua/dnsc/lazy.lua | 0 .../nvim/config/lua/dnsc/lsp.lua | 0 .../nvim/config/lua/dnsc/utils.lua | 0 .../nvim/config/lua/plugins/barbar.lua | 0 .../nvim/config/lua/plugins/blink.lua | 0 .../nvim/config/lua/plugins/conform.lua | 0 .../nvim/config/lua/plugins/flash.lua | 0 .../nvim/config/lua/plugins/helpers.lua | 0 .../nvim/config/lua/plugins/lazydev.lua | 0 .../nvim/config/lua/plugins/lualine.lua | 0 .../nvim/config/lua/plugins/markdown.lua | 0 .../nvim/config/lua/plugins/mini.pairs.lua | 0 .../nvim/config/lua/plugins/notes.lua | 0 .../nvim/config/lua/plugins/nvim-surround.lua | 0 .../nvim/config/lua/plugins/oil.lua | 0 .../nvim/config/lua/plugins/schemastore.lua | 0 .../nvim/config/lua/plugins/snacks.lua | 0 .../nvim/config/lua/plugins/substitute.lua | 0 .../nvim/config/lua/plugins/theme.lua | 0 .../nvim/config/lua/plugins/todo-comments.lua | 0 .../nvim/config/lua/plugins/treesitter.lua | 0 .../nvim/config/lua/plugins/vim-dadbod-ui.lua | 0 .../nvim/config/lua/plugins/which-key.lua | 0 {home/modules => modules}/nvim/config/stylua.toml | 0 {home/modules => modules}/nvim/deck.nix | 0 {home/modules => modules}/nvim/default.nix | 0 {home/modules => modules}/ssh/default.nix | 0 .../wezterm/config/appearance.lua | 0 .../modules => modules}/wezterm/config/helpers.lua | 0 .../wezterm/config/keybindings.lua | 0 .../wezterm/config/overrides.lua | 0 .../wezterm/config/projects.lua | 0 .../modules => modules}/wezterm/config/startup.lua | 0 .../modules => modules}/wezterm/config/tab_bar.lua | 0 .../modules => modules}/wezterm/config/wezterm.lua | 0 {home/modules => modules}/wezterm/default.nix | 0 63 files changed, 20 insertions(+), 20 deletions(-) rename {home/modules => modules}/aerospace/default.nix (100%) rename {home/modules => modules}/aerospace/work.nix (100%) rename {home/modules => modules}/atuin/default.nix (100%) rename {home/modules => modules}/fish/default.nix (100%) rename {home/modules => modules}/fish/themes/Rosé Pine Dawn.theme (100%) rename {home/modules => modules}/fish/themes/Rosé Pine Moon.theme (100%) rename {home/modules => modules}/fish/themes/Rosé Pine.theme (100%) rename {home/modules => modules}/fish/work.nix (100%) rename {home/modules => modules}/git/default.nix (100%) rename {home/modules => modules}/lazygit/default.nix (100%) rename {home/modules => modules}/nvim/config/after/ftplugin/markdown.vim (100%) rename {home/modules => modules}/nvim/config/after/ftplugin/odin.vim (100%) rename {home/modules => modules}/nvim/config/after/ftplugin/vimwiki.vim (100%) rename {home/modules => modules}/nvim/config/ftdetect/fastlane.vim (100%) rename {home/modules => modules}/nvim/config/init.lua (100%) rename {home/modules => modules}/nvim/config/lazy-lock.json (100%) rename {home/modules => modules}/nvim/config/lsp/eslint.lua (100%) rename {home/modules => modules}/nvim/config/lsp/jsonls.lua (100%) rename {home/modules => modules}/nvim/config/lsp/lua_ls.lua (100%) rename {home/modules => modules}/nvim/config/lsp/nil_ls.lua (100%) rename {home/modules => modules}/nvim/config/lsp/ts_ls.lua (100%) rename {home/modules => modules}/nvim/config/lua/dnsc/keymaps.lua (100%) rename {home/modules => modules}/nvim/config/lua/dnsc/lazy.lua (100%) rename {home/modules => modules}/nvim/config/lua/dnsc/lsp.lua (100%) rename {home/modules => modules}/nvim/config/lua/dnsc/utils.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/barbar.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/blink.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/conform.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/flash.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/helpers.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/lazydev.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/lualine.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/markdown.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/mini.pairs.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/notes.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/nvim-surround.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/oil.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/schemastore.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/snacks.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/substitute.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/theme.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/todo-comments.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/treesitter.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/vim-dadbod-ui.lua (100%) rename {home/modules => modules}/nvim/config/lua/plugins/which-key.lua (100%) rename {home/modules => modules}/nvim/config/stylua.toml (100%) rename {home/modules => modules}/nvim/deck.nix (100%) rename {home/modules => modules}/nvim/default.nix (100%) rename {home/modules => modules}/ssh/default.nix (100%) rename {home/modules => modules}/wezterm/config/appearance.lua (100%) rename {home/modules => modules}/wezterm/config/helpers.lua (100%) rename {home/modules => modules}/wezterm/config/keybindings.lua (100%) rename {home/modules => modules}/wezterm/config/overrides.lua (100%) rename {home/modules => modules}/wezterm/config/projects.lua (100%) rename {home/modules => modules}/wezterm/config/startup.lua (100%) rename {home/modules => modules}/wezterm/config/tab_bar.lua (100%) rename {home/modules => modules}/wezterm/config/wezterm.lua (100%) rename {home/modules => modules}/wezterm/default.nix (100%) diff --git a/home/darwin-work.nix b/home/darwin-work.nix index c841e62..dd5943b 100644 --- a/home/darwin-work.nix +++ b/home/darwin-work.nix @@ -14,12 +14,12 @@ xdg.enable = true; imports = [ - ./modules/git - ./modules/fish/work.nix - ./modules/atuin - ./modules/wezterm - ./modules/nvim - ./modules/lazygit + ../modules/git + ../modules/fish/work.nix + ../modules/atuin + ../modules/wezterm + ../modules/nvim + ../modules/lazygit ]; programs.home-manager.enable = true; diff --git a/home/darwin.nix b/home/darwin.nix index 2e2e5bf..2b9f030 100644 --- a/home/darwin.nix +++ b/home/darwin.nix @@ -13,13 +13,13 @@ xdg.enable = true; imports = [ - ./modules/ssh - ./modules/git - ./modules/fish - ./modules/atuin - ./modules/wezterm - ./modules/nvim - ./modules/lazygit + ../modules/ssh + ../modules/git + ../modules/fish + ../modules/atuin + ../modules/wezterm + ../modules/nvim + ../modules/lazygit ]; programs.home-manager.enable = true; diff --git a/home/deck.nix b/home/deck.nix index af87d38..96e25b7 100644 --- a/home/deck.nix +++ b/home/deck.nix @@ -41,11 +41,11 @@ xdg.enable = true; imports = [ - ./modules/git - ./modules/fish - ./modules/atuin - ./modules/nvim/deck.nix - ./modules/lazygit + ../modules/git + ../modules/fish + ../modules/atuin + ../modules/nvim/deck.nix + ../modules/lazygit ]; programs.home-manager.enable = true; diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index 29ab922..cf4ec84 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -8,7 +8,7 @@ }: { imports = [ inputs.home-manager.darwinModules.home-manager - ../../home/modules/aerospace + ../../modules/aerospace ]; # Setting the user diff --git a/hosts/dnsc-work/default.nix b/hosts/dnsc-work/default.nix index 069e18b..bb3f4f9 100644 --- a/hosts/dnsc-work/default.nix +++ b/hosts/dnsc-work/default.nix @@ -8,7 +8,7 @@ }: { imports = [ inputs.home-manager.darwinModules.home-manager - ../../home/modules/aerospace/work.nix + ../../modules/aerospace/work.nix ]; # Setting the user diff --git a/home/modules/aerospace/default.nix b/modules/aerospace/default.nix similarity index 100% rename from home/modules/aerospace/default.nix rename to modules/aerospace/default.nix diff --git a/home/modules/aerospace/work.nix b/modules/aerospace/work.nix similarity index 100% rename from home/modules/aerospace/work.nix rename to modules/aerospace/work.nix diff --git a/home/modules/atuin/default.nix b/modules/atuin/default.nix similarity index 100% rename from home/modules/atuin/default.nix rename to modules/atuin/default.nix diff --git a/home/modules/fish/default.nix b/modules/fish/default.nix similarity index 100% rename from home/modules/fish/default.nix rename to modules/fish/default.nix diff --git a/home/modules/fish/themes/Rosé Pine Dawn.theme b/modules/fish/themes/Rosé Pine Dawn.theme similarity index 100% rename from home/modules/fish/themes/Rosé Pine Dawn.theme rename to modules/fish/themes/Rosé Pine Dawn.theme diff --git a/home/modules/fish/themes/Rosé Pine Moon.theme b/modules/fish/themes/Rosé Pine Moon.theme similarity index 100% rename from home/modules/fish/themes/Rosé Pine Moon.theme rename to modules/fish/themes/Rosé Pine Moon.theme diff --git a/home/modules/fish/themes/Rosé Pine.theme b/modules/fish/themes/Rosé Pine.theme similarity index 100% rename from home/modules/fish/themes/Rosé Pine.theme rename to modules/fish/themes/Rosé Pine.theme diff --git a/home/modules/fish/work.nix b/modules/fish/work.nix similarity index 100% rename from home/modules/fish/work.nix rename to modules/fish/work.nix diff --git a/home/modules/git/default.nix b/modules/git/default.nix similarity index 100% rename from home/modules/git/default.nix rename to modules/git/default.nix diff --git a/home/modules/lazygit/default.nix b/modules/lazygit/default.nix similarity index 100% rename from home/modules/lazygit/default.nix rename to modules/lazygit/default.nix diff --git a/home/modules/nvim/config/after/ftplugin/markdown.vim b/modules/nvim/config/after/ftplugin/markdown.vim similarity index 100% rename from home/modules/nvim/config/after/ftplugin/markdown.vim rename to modules/nvim/config/after/ftplugin/markdown.vim diff --git a/home/modules/nvim/config/after/ftplugin/odin.vim b/modules/nvim/config/after/ftplugin/odin.vim similarity index 100% rename from home/modules/nvim/config/after/ftplugin/odin.vim rename to modules/nvim/config/after/ftplugin/odin.vim diff --git a/home/modules/nvim/config/after/ftplugin/vimwiki.vim b/modules/nvim/config/after/ftplugin/vimwiki.vim similarity index 100% rename from home/modules/nvim/config/after/ftplugin/vimwiki.vim rename to modules/nvim/config/after/ftplugin/vimwiki.vim diff --git a/home/modules/nvim/config/ftdetect/fastlane.vim b/modules/nvim/config/ftdetect/fastlane.vim similarity index 100% rename from home/modules/nvim/config/ftdetect/fastlane.vim rename to modules/nvim/config/ftdetect/fastlane.vim diff --git a/home/modules/nvim/config/init.lua b/modules/nvim/config/init.lua similarity index 100% rename from home/modules/nvim/config/init.lua rename to modules/nvim/config/init.lua diff --git a/home/modules/nvim/config/lazy-lock.json b/modules/nvim/config/lazy-lock.json similarity index 100% rename from home/modules/nvim/config/lazy-lock.json rename to modules/nvim/config/lazy-lock.json diff --git a/home/modules/nvim/config/lsp/eslint.lua b/modules/nvim/config/lsp/eslint.lua similarity index 100% rename from home/modules/nvim/config/lsp/eslint.lua rename to modules/nvim/config/lsp/eslint.lua diff --git a/home/modules/nvim/config/lsp/jsonls.lua b/modules/nvim/config/lsp/jsonls.lua similarity index 100% rename from home/modules/nvim/config/lsp/jsonls.lua rename to modules/nvim/config/lsp/jsonls.lua diff --git a/home/modules/nvim/config/lsp/lua_ls.lua b/modules/nvim/config/lsp/lua_ls.lua similarity index 100% rename from home/modules/nvim/config/lsp/lua_ls.lua rename to modules/nvim/config/lsp/lua_ls.lua diff --git a/home/modules/nvim/config/lsp/nil_ls.lua b/modules/nvim/config/lsp/nil_ls.lua similarity index 100% rename from home/modules/nvim/config/lsp/nil_ls.lua rename to modules/nvim/config/lsp/nil_ls.lua diff --git a/home/modules/nvim/config/lsp/ts_ls.lua b/modules/nvim/config/lsp/ts_ls.lua similarity index 100% rename from home/modules/nvim/config/lsp/ts_ls.lua rename to modules/nvim/config/lsp/ts_ls.lua diff --git a/home/modules/nvim/config/lua/dnsc/keymaps.lua b/modules/nvim/config/lua/dnsc/keymaps.lua similarity index 100% rename from home/modules/nvim/config/lua/dnsc/keymaps.lua rename to modules/nvim/config/lua/dnsc/keymaps.lua diff --git a/home/modules/nvim/config/lua/dnsc/lazy.lua b/modules/nvim/config/lua/dnsc/lazy.lua similarity index 100% rename from home/modules/nvim/config/lua/dnsc/lazy.lua rename to modules/nvim/config/lua/dnsc/lazy.lua diff --git a/home/modules/nvim/config/lua/dnsc/lsp.lua b/modules/nvim/config/lua/dnsc/lsp.lua similarity index 100% rename from home/modules/nvim/config/lua/dnsc/lsp.lua rename to modules/nvim/config/lua/dnsc/lsp.lua diff --git a/home/modules/nvim/config/lua/dnsc/utils.lua b/modules/nvim/config/lua/dnsc/utils.lua similarity index 100% rename from home/modules/nvim/config/lua/dnsc/utils.lua rename to modules/nvim/config/lua/dnsc/utils.lua diff --git a/home/modules/nvim/config/lua/plugins/barbar.lua b/modules/nvim/config/lua/plugins/barbar.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/barbar.lua rename to modules/nvim/config/lua/plugins/barbar.lua diff --git a/home/modules/nvim/config/lua/plugins/blink.lua b/modules/nvim/config/lua/plugins/blink.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/blink.lua rename to modules/nvim/config/lua/plugins/blink.lua diff --git a/home/modules/nvim/config/lua/plugins/conform.lua b/modules/nvim/config/lua/plugins/conform.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/conform.lua rename to modules/nvim/config/lua/plugins/conform.lua diff --git a/home/modules/nvim/config/lua/plugins/flash.lua b/modules/nvim/config/lua/plugins/flash.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/flash.lua rename to modules/nvim/config/lua/plugins/flash.lua diff --git a/home/modules/nvim/config/lua/plugins/helpers.lua b/modules/nvim/config/lua/plugins/helpers.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/helpers.lua rename to modules/nvim/config/lua/plugins/helpers.lua diff --git a/home/modules/nvim/config/lua/plugins/lazydev.lua b/modules/nvim/config/lua/plugins/lazydev.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/lazydev.lua rename to modules/nvim/config/lua/plugins/lazydev.lua diff --git a/home/modules/nvim/config/lua/plugins/lualine.lua b/modules/nvim/config/lua/plugins/lualine.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/lualine.lua rename to modules/nvim/config/lua/plugins/lualine.lua diff --git a/home/modules/nvim/config/lua/plugins/markdown.lua b/modules/nvim/config/lua/plugins/markdown.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/markdown.lua rename to modules/nvim/config/lua/plugins/markdown.lua diff --git a/home/modules/nvim/config/lua/plugins/mini.pairs.lua b/modules/nvim/config/lua/plugins/mini.pairs.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/mini.pairs.lua rename to modules/nvim/config/lua/plugins/mini.pairs.lua diff --git a/home/modules/nvim/config/lua/plugins/notes.lua b/modules/nvim/config/lua/plugins/notes.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/notes.lua rename to modules/nvim/config/lua/plugins/notes.lua diff --git a/home/modules/nvim/config/lua/plugins/nvim-surround.lua b/modules/nvim/config/lua/plugins/nvim-surround.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/nvim-surround.lua rename to modules/nvim/config/lua/plugins/nvim-surround.lua diff --git a/home/modules/nvim/config/lua/plugins/oil.lua b/modules/nvim/config/lua/plugins/oil.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/oil.lua rename to modules/nvim/config/lua/plugins/oil.lua diff --git a/home/modules/nvim/config/lua/plugins/schemastore.lua b/modules/nvim/config/lua/plugins/schemastore.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/schemastore.lua rename to modules/nvim/config/lua/plugins/schemastore.lua diff --git a/home/modules/nvim/config/lua/plugins/snacks.lua b/modules/nvim/config/lua/plugins/snacks.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/snacks.lua rename to modules/nvim/config/lua/plugins/snacks.lua diff --git a/home/modules/nvim/config/lua/plugins/substitute.lua b/modules/nvim/config/lua/plugins/substitute.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/substitute.lua rename to modules/nvim/config/lua/plugins/substitute.lua diff --git a/home/modules/nvim/config/lua/plugins/theme.lua b/modules/nvim/config/lua/plugins/theme.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/theme.lua rename to modules/nvim/config/lua/plugins/theme.lua diff --git a/home/modules/nvim/config/lua/plugins/todo-comments.lua b/modules/nvim/config/lua/plugins/todo-comments.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/todo-comments.lua rename to modules/nvim/config/lua/plugins/todo-comments.lua diff --git a/home/modules/nvim/config/lua/plugins/treesitter.lua b/modules/nvim/config/lua/plugins/treesitter.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/treesitter.lua rename to modules/nvim/config/lua/plugins/treesitter.lua diff --git a/home/modules/nvim/config/lua/plugins/vim-dadbod-ui.lua b/modules/nvim/config/lua/plugins/vim-dadbod-ui.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/vim-dadbod-ui.lua rename to modules/nvim/config/lua/plugins/vim-dadbod-ui.lua diff --git a/home/modules/nvim/config/lua/plugins/which-key.lua b/modules/nvim/config/lua/plugins/which-key.lua similarity index 100% rename from home/modules/nvim/config/lua/plugins/which-key.lua rename to modules/nvim/config/lua/plugins/which-key.lua diff --git a/home/modules/nvim/config/stylua.toml b/modules/nvim/config/stylua.toml similarity index 100% rename from home/modules/nvim/config/stylua.toml rename to modules/nvim/config/stylua.toml diff --git a/home/modules/nvim/deck.nix b/modules/nvim/deck.nix similarity index 100% rename from home/modules/nvim/deck.nix rename to modules/nvim/deck.nix diff --git a/home/modules/nvim/default.nix b/modules/nvim/default.nix similarity index 100% rename from home/modules/nvim/default.nix rename to modules/nvim/default.nix diff --git a/home/modules/ssh/default.nix b/modules/ssh/default.nix similarity index 100% rename from home/modules/ssh/default.nix rename to modules/ssh/default.nix diff --git a/home/modules/wezterm/config/appearance.lua b/modules/wezterm/config/appearance.lua similarity index 100% rename from home/modules/wezterm/config/appearance.lua rename to modules/wezterm/config/appearance.lua diff --git a/home/modules/wezterm/config/helpers.lua b/modules/wezterm/config/helpers.lua similarity index 100% rename from home/modules/wezterm/config/helpers.lua rename to modules/wezterm/config/helpers.lua diff --git a/home/modules/wezterm/config/keybindings.lua b/modules/wezterm/config/keybindings.lua similarity index 100% rename from home/modules/wezterm/config/keybindings.lua rename to modules/wezterm/config/keybindings.lua diff --git a/home/modules/wezterm/config/overrides.lua b/modules/wezterm/config/overrides.lua similarity index 100% rename from home/modules/wezterm/config/overrides.lua rename to modules/wezterm/config/overrides.lua diff --git a/home/modules/wezterm/config/projects.lua b/modules/wezterm/config/projects.lua similarity index 100% rename from home/modules/wezterm/config/projects.lua rename to modules/wezterm/config/projects.lua diff --git a/home/modules/wezterm/config/startup.lua b/modules/wezterm/config/startup.lua similarity index 100% rename from home/modules/wezterm/config/startup.lua rename to modules/wezterm/config/startup.lua diff --git a/home/modules/wezterm/config/tab_bar.lua b/modules/wezterm/config/tab_bar.lua similarity index 100% rename from home/modules/wezterm/config/tab_bar.lua rename to modules/wezterm/config/tab_bar.lua diff --git a/home/modules/wezterm/config/wezterm.lua b/modules/wezterm/config/wezterm.lua similarity index 100% rename from home/modules/wezterm/config/wezterm.lua rename to modules/wezterm/config/wezterm.lua diff --git a/home/modules/wezterm/default.nix b/modules/wezterm/default.nix similarity index 100% rename from home/modules/wezterm/default.nix rename to modules/wezterm/default.nix From 8a8763d6b677f2abba23e6f9b34975185ae2b3c0 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:30:24 +0200 Subject: [PATCH 16/32] fixes path after module separation --- modules/nvim/deck.nix | 2 +- modules/nvim/default.nix | 2 +- modules/wezterm/default.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nvim/deck.nix b/modules/nvim/deck.nix index 4b19be0..8cfad0e 100644 --- a/modules/nvim/deck.nix +++ b/modules/nvim/deck.nix @@ -4,6 +4,6 @@ xdg.configFile."nvim" = { # mkOutOfStoreSymlink needs an absolute path, otherwise it does not work: https://github.com/nix-community/home-manager/issues/676#issuecomment-1595795685 # TODO: At least make the location of the config folder dynamic so that it works on other machines - source = config.lib.file.mkOutOfStoreSymlink /home/deck/dev/nix-config/home/modules/nvim/config; + source = config.lib.file.mkOutOfStoreSymlink /home/deck/dev/nix-config/modules/nvim/config; }; } diff --git a/modules/nvim/default.nix b/modules/nvim/default.nix index b990f1f..cb36ab8 100644 --- a/modules/nvim/default.nix +++ b/modules/nvim/default.nix @@ -4,6 +4,6 @@ xdg.configFile."nvim" = { # mkOutOfStoreSymlink needs an absolute path, otherwise it does not work: https://github.com/nix-community/home-manager/issues/676#issuecomment-1595795685 # TODO: At least make the location of the config folder dynamic so that it works on other machines - source = config.lib.file.mkOutOfStoreSymlink /Users/dennis/dev/nix-config/home/modules/nvim/config; + source = config.lib.file.mkOutOfStoreSymlink /Users/dennis/dev/nix-config/modules/nvim/config; }; } diff --git a/modules/wezterm/default.nix b/modules/wezterm/default.nix index 016f660..739860e 100644 --- a/modules/wezterm/default.nix +++ b/modules/wezterm/default.nix @@ -4,6 +4,6 @@ xdg.configFile."wezterm" = { # mkOutOfStoreSymlink needs an absolute path, otherwise it does not work: https://github.com/nix-community/home-manager/issues/676#issuecomment-1595795685 # TODO: At least make the location of the config folder dynamic so that it works on other machines - source = config.lib.file.mkOutOfStoreSymlink /Users/dennis/dev/nix-config/home/modules/wezterm/config; + source = config.lib.file.mkOutOfStoreSymlink /Users/dennis/dev/nix-config/modules/wezterm/config; }; } From ee99ab05657bb13c5c727d4c25219067647c46f6 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:44:12 +0200 Subject: [PATCH 17/32] splits out server config into modules --- hosts/dnsc-server/default.nix | 75 +---------------- hosts/dnsc-vps-sm/default.nix | 143 +------------------------------- modules/homepage/default.nix | 125 ++++++++++++++++++++++++++++ modules/jellyfin/default.nix | 26 ++++++ modules/openssh/default.nix | 12 +++ modules/syncthing/default.nix | 20 +++++ modules/ups/default.nix | 18 ++++ modules/uptime-kuma/default.nix | 8 ++ modules/vaultwarden/default.nix | 8 ++ 9 files changed, 224 insertions(+), 211 deletions(-) create mode 100644 modules/homepage/default.nix create mode 100644 modules/jellyfin/default.nix create mode 100644 modules/openssh/default.nix create mode 100644 modules/syncthing/default.nix create mode 100644 modules/ups/default.nix create mode 100644 modules/uptime-kuma/default.nix create mode 100644 modules/vaultwarden/default.nix diff --git a/hosts/dnsc-server/default.nix b/hosts/dnsc-server/default.nix index da28607..5753b25 100644 --- a/hosts/dnsc-server/default.nix +++ b/hosts/dnsc-server/default.nix @@ -1,14 +1,16 @@ { inputs, outputs, - lib, - config, pkgs, ... }: { imports = [ ./hardware-configuration.nix inputs.home-manager.nixosModules.home-manager + ../../modules/ups + ../../modules/openssh + ../../modules/jellyfin + ../../modules/syncthing ]; # General @@ -91,35 +93,7 @@ enableSSHSupport = true; }; - # UPS - power.ups = { - enable = true; - - ups."eaton-ups" = { - driver = "usbhid-ups"; - port = "auto"; - }; - - users.upsmon = { - passwordFile = "/etc/upsmon.passwd"; - upsmon = "primary"; - }; - - upsmon.monitor."eaton-ups".user = "upsmon"; - }; - # Services - # SSH - services.openssh = { - enable = true; - settings = { - X11Forwarding = false; - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - openFirewall = true; - }; - # ZFS services.zfs = { autoSnapshot.enable = true; @@ -167,50 +141,9 @@ openFirewall = true; }; - # Jellyfin - services.jellyfin = { - enable = true; - openFirewall = true; - }; - - nixpkgs.config.packageOverrides = pkgs: { - vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; - }; - - hardware.graphics = { - enable = true; - extraPackages = with pkgs; [ - intel-media-driver - intel-vaapi-driver - vaapiVdpau - intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) - vpl-gpu-rt # QSV on 11th gen or newer - intel-media-sdk # QSV up to 11th gen - ]; - }; - # Tailscale services.tailscale.enable = true; - # Syncthing - services.syncthing = { - enable = true; - group = "users"; - guiAddress = "0.0.0.0:8384"; - user = "dennis"; - dataDir = "/home/dennis/sync"; - configDir = "/home/dennis/sync/.config/syncthing"; - overrideDevices = true; - overrideFolders = true; - settings = { - devices = { - "dnsc-pixel" = { id = "FD4XYVI-UZCBEXZ-OATLR3Y-7ZZPQOA-MFWP3Q7-OFNZY33-XH4TJAF-KVHW2AI"; }; - "dnsc-air" = { id = "RYFO5XN-RRZZQI3-4W5DPHO-C7OKL5N-ZUQUBEI-ZKSWUHM-2BMTFRY-MDC7MA3"; }; - }; - }; - }; - systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; - # Environment variables environment.variables.EDITOR = "nvim"; diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 115a8ce..e881de4 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -11,6 +11,9 @@ ./networking.nix inputs.home-manager.nixosModules.home-manager inputs.ip-whitelist.nixosModules.default + ../../modules/vaultwarden + ../../modules/uptime-kuma + ../../modules/homepage ]; # Secrets @@ -63,7 +66,6 @@ ]; }; - # My user account users.users.dennis = { description = "dennis"; @@ -117,145 +119,6 @@ # Tailscale services.tailscale.enable = true; - # Vaultwarden - services.vaultwarden = { - enable = true; - environmentFile = config.age.secrets."vaultwarden/env".path; - }; - - # Uptime Kuma - services.uptime-kuma = { - enable = true; - settings = { - PORT = "9000"; - }; - }; - - # Homepage - services.homepage-dashboard = { - enable = true; - listenPort = 9001; - allowedHosts = "home.dnsc.io"; - settings = { - theme = "dark"; - background = { - image = "https://i.ibb.co/v6FjzW5V/winter.png"; - opacity = 40; - brightness = 50; - }; - }; - services = [ - { - "VPS" = [ - { - "Vaultwarden" = { - href = "https://vault.dnsc.io"; - icon = "vaultwarden.png"; - }; - } - { - "Uptime Kuma" = { - href = "https://uptime.dnsc.io"; - icon = "uptime-kuma.png"; - }; - } - { - "Slides" = { - href = "https://uptime.dnsc.io"; - icon = "slidev.png"; - }; - } - ]; - } - { - "Homelab" = [ - { - "Jellyfin" = { - href = "http://100.103.199.4:8096"; - icon = "jellyfin.png"; - }; - } - { - "Syncthing" = { - href = "http://100.103.199.4:8384"; - icon = "syncthing.png"; - }; - } - ]; - } - ]; - bookmarks = [ - { - Tools = [ - { - Fastmail = [ - { - abbr = "FM"; - href = "https://app.fastmail.com"; - } - ]; - } - { - YNAB = [ - { - abbr = "YN"; - href = "https://app.ynab.com"; - } - ]; - } - ]; - } - { - Dev = [ - { - Codeberg = [ - { - abbr = "CB"; - href = "https://codeberg.org"; - } - ]; - } - { - Github = [ - { - abbr = "GH"; - href = "https://github.com/dennisschoepf"; - } - ]; - } - ]; - } - { - Entertainment = [ - { - YouTube = [ - { - abbr = "YT"; - href = "https://youtube.com"; - } - ]; - } - { - Twitch = [ - { - abbr = "TW"; - href = "https://twitch.tv"; - } - ]; - } - { - Overcast = [ - { - abbr = "OC"; - href = "https://overcast.fm"; - } - ]; - } - ]; - } - ]; - }; - # Caddy services.caddy = { enable = true; diff --git a/modules/homepage/default.nix b/modules/homepage/default.nix new file mode 100644 index 0000000..5597fe0 --- /dev/null +++ b/modules/homepage/default.nix @@ -0,0 +1,125 @@ +{ + services.homepage-dashboard = { + enable = true; + listenPort = 9001; + allowedHosts = "home.dnsc.io"; + settings = { + theme = "dark"; + background = { + image = "https://i.ibb.co/v6FjzW5V/winter.png"; + opacity = 40; + brightness = 50; + }; + }; + services = [ + { + "VPS" = [ + { + "Vaultwarden" = { + href = "https://vault.dnsc.io"; + icon = "vaultwarden.png"; + }; + } + { + "Uptime Kuma" = { + href = "https://uptime.dnsc.io"; + icon = "uptime-kuma.png"; + }; + } + { + "Slides" = { + href = "https://uptime.dnsc.io"; + icon = "slidev.png"; + }; + } + ]; + } + { + "Homelab" = [ + { + "Jellyfin" = { + href = "http://100.103.199.4:8096"; + icon = "jellyfin.png"; + }; + } + { + "Syncthing" = { + href = "http://100.103.199.4:8384"; + icon = "syncthing.png"; + }; + } + ]; + } + ]; + bookmarks = [ + { + Tools = [ + { + Fastmail = [ + { + abbr = "FM"; + href = "https://app.fastmail.com"; + } + ]; + } + { + YNAB = [ + { + abbr = "YN"; + href = "https://app.ynab.com"; + } + ]; + } + ]; + } + { + Dev = [ + { + Codeberg = [ + { + abbr = "CB"; + href = "https://codeberg.org"; + } + ]; + } + { + Github = [ + { + abbr = "GH"; + href = "https://github.com/dennisschoepf"; + } + ]; + } + ]; + } + { + Entertainment = [ + { + YouTube = [ + { + abbr = "YT"; + href = "https://youtube.com"; + } + ]; + } + { + Twitch = [ + { + abbr = "TW"; + href = "https://twitch.tv"; + } + ]; + } + { + Overcast = [ + { + abbr = "OC"; + href = "https://overcast.fm"; + } + ]; + } + ]; + } + ]; + }; +} diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix new file mode 100644 index 0000000..5a7911a --- /dev/null +++ b/modules/jellyfin/default.nix @@ -0,0 +1,26 @@ +{ + pkgs +}: { + services.jellyfin = { + enable = true; + openFirewall = true; + }; + + nixpkgs.config.packageOverrides = pkgs: { + vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; + }; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + intel-media-driver + intel-vaapi-driver + vaapiVdpau + intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) + vpl-gpu-rt # QSV on 11th gen or newer + intel-media-sdk # QSV up to 11th gen + ]; + }; + +} + diff --git a/modules/openssh/default.nix b/modules/openssh/default.nix new file mode 100644 index 0000000..3096f39 --- /dev/null +++ b/modules/openssh/default.nix @@ -0,0 +1,12 @@ +{ + services.openssh = { + enable = true; + settings = { + X11Forwarding = false; + PermitRootLogin = "no"; + PasswordAuthentication = false; + }; + openFirewall = true; + }; +} + diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix new file mode 100644 index 0000000..7b3f733 --- /dev/null +++ b/modules/syncthing/default.nix @@ -0,0 +1,20 @@ +{ + services.syncthing = { + enable = true; + group = "users"; + guiAddress = "0.0.0.0:8384"; + user = "dennis"; + dataDir = "/home/dennis/sync"; + configDir = "/home/dennis/sync/.config/syncthing"; + overrideDevices = true; + overrideFolders = true; + settings = { + devices = { + "dnsc-pixel" = { id = "FD4XYVI-UZCBEXZ-OATLR3Y-7ZZPQOA-MFWP3Q7-OFNZY33-XH4TJAF-KVHW2AI"; }; + "dnsc-air" = { id = "RYFO5XN-RRZZQI3-4W5DPHO-C7OKL5N-ZUQUBEI-ZKSWUHM-2BMTFRY-MDC7MA3"; }; + }; + }; + }; + systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; +} + diff --git a/modules/ups/default.nix b/modules/ups/default.nix new file mode 100644 index 0000000..c6f2559 --- /dev/null +++ b/modules/ups/default.nix @@ -0,0 +1,18 @@ +{ + power.ups = { + enable = true; + + ups."eaton-ups" = { + driver = "usbhid-ups"; + port = "auto"; + }; + + users.upsmon = { + passwordFile = "/etc/upsmon.passwd"; + upsmon = "primary"; + }; + + upsmon.monitor."eaton-ups".user = "upsmon"; + }; +} + diff --git a/modules/uptime-kuma/default.nix b/modules/uptime-kuma/default.nix new file mode 100644 index 0000000..e28aef1 --- /dev/null +++ b/modules/uptime-kuma/default.nix @@ -0,0 +1,8 @@ +{ + services.uptime-kuma = { + enable = true; + settings = { + PORT = "9000"; + }; + }; +} diff --git a/modules/vaultwarden/default.nix b/modules/vaultwarden/default.nix new file mode 100644 index 0000000..d38ce62 --- /dev/null +++ b/modules/vaultwarden/default.nix @@ -0,0 +1,8 @@ +{ + config +}: { + services.vaultwarden = { + enable = true; + environmentFile = config.age.secrets."vaultwarden/env".path; + }; +} From 4beb21600add42100876bcb392392a9e3f47775e Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:46:05 +0200 Subject: [PATCH 18/32] fixes inputs for new modules --- modules/jellyfin/default.nix | 2 +- modules/vaultwarden/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/jellyfin/default.nix b/modules/jellyfin/default.nix index 5a7911a..d1794dd 100644 --- a/modules/jellyfin/default.nix +++ b/modules/jellyfin/default.nix @@ -1,5 +1,5 @@ { - pkgs + pkgs, ... }: { services.jellyfin = { enable = true; diff --git a/modules/vaultwarden/default.nix b/modules/vaultwarden/default.nix index d38ce62..dfd8f08 100644 --- a/modules/vaultwarden/default.nix +++ b/modules/vaultwarden/default.nix @@ -1,5 +1,5 @@ { - config + config, ... }: { services.vaultwarden = { enable = true; From fd0c9782644c4e2d752c50473914c7c2406b65c8 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:52:09 +0200 Subject: [PATCH 19/32] updates server config --- home/server.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/home/server.nix b/home/server.nix index e9cee88..3a16f6c 100644 --- a/home/server.nix +++ b/home/server.nix @@ -11,11 +11,22 @@ unzip ripgrep fzf + fd + sd + bat + tldr + fortune iotop iftop just mmv-go lazygit + fish + ]; + + imports = [ + ../modules/fish + ../modules/lazygit ]; programs.home-manager.enable = true; From e0d3821128848b008e636802414410580b1ee686 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:54:30 +0200 Subject: [PATCH 20/32] adds home manager extension for backups --- hosts/dnsc-server/default.nix | 1 + hosts/dnsc-vps-sm/default.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/hosts/dnsc-server/default.nix b/hosts/dnsc-server/default.nix index 5753b25..a49fd7f 100644 --- a/hosts/dnsc-server/default.nix +++ b/hosts/dnsc-server/default.nix @@ -66,6 +66,7 @@ # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; + backupFileExtension = "backup"; users = { dennis = import ../../home/server.nix; }; diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index e881de4..6bf5a44 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -81,6 +81,7 @@ # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; + backupFileExtension = "backup"; users = { dennis = import ../../home/server.nix; }; From 866847a83306893c0462747710e44e5a81cd4448 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 18:58:53 +0200 Subject: [PATCH 21/32] launch fish shell automatically on servers --- hosts/dnsc-server/default.nix | 11 +++++++++++ hosts/dnsc-vps-sm/default.nix | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/hosts/dnsc-server/default.nix b/hosts/dnsc-server/default.nix index a49fd7f..fabbaf7 100644 --- a/hosts/dnsc-server/default.nix +++ b/hosts/dnsc-server/default.nix @@ -34,6 +34,17 @@ }; nix.settings.auto-optimise-store = true; + # Launch fish shell + programs.bash = { + interactiveShellInit = '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi + ''; + }; + # Networking networking.hostName = "dnsc-server"; networking.hostId = "380f584e"; diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 6bf5a44..9838f6c 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -39,6 +39,17 @@ }; nix.settings.auto-optimise-store = true; + # Launch fish shell + programs.bash = { + interactiveShellInit = '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi + ''; + }; + # Networking networking.hostName = "dnsc-vps-sm"; networking.hostId = "380f585f"; From 283bd4d80963c4aa439bdaa9bed10b9c170a8bcb Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:02:15 +0200 Subject: [PATCH 22/32] adds separate fish config for server --- home/server.nix | 3 +- modules/fish/server.nix | 78 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 modules/fish/server.nix diff --git a/home/server.nix b/home/server.nix index 3a16f6c..dc55a39 100644 --- a/home/server.nix +++ b/home/server.nix @@ -22,10 +22,11 @@ mmv-go lazygit fish + zoxide ]; imports = [ - ../modules/fish + ../modules/fish/server.nix ../modules/lazygit ]; diff --git a/modules/fish/server.nix b/modules/fish/server.nix new file mode 100644 index 0000000..83a2b79 --- /dev/null +++ b/modules/fish/server.nix @@ -0,0 +1,78 @@ +{ config, pkgs, ... }: + +{ programs.fish = { + enable = true; + + functions = { + ff = '' + set RG_PREFIX "rg --column --line-number --no-heading --color=always --smart-case " + set INITIAL_QUERY "$argv" + fzf --ansi --disabled --query "$INITIAL_QUERY" \ + --bind "start:reload:$RG_PREFIX {q}" \ + --bind "change:reload:sleep 0.1; $RG_PREFIX {q} || true" \ + --delimiter : \ + --preview 'bat --color=always {1} --highlight-line {2}' \ + --preview-window 'up,60%,border-bottom,+{2}+3/3,~3' \ + --bind 'enter:become(nvim {1} +{2})' + ''; + fish_greeting = "fortune -a"; + resize_images = '' + # Resize all JPG images in the current directory and its subdirectories + # Usage: resize_images [percentage] + # Example: resize_images 20 - resizes all images to 20% of original size + # If no percentage is provided, defaults to 40% + + set -l percentage $argv[1] + if test -z "$percentage" + set percentage 40 + end + + for img in (find . -type f -name "*.JPG") + set original_size (stat -f %z "$img") + magick convert "$img" -resize "$percentage%" "$img" + set new_size (stat -f %z "$img") + echo "Processed $img" + echo "Original size: $original_size bytes" + echo "New size: $new_size bytes" + echo "---" + end + ''; + localip = "ifconfig | grep \"inet \" | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1"; + publicip = "curl -4 ifconfig.me"; + fzf = '' + set -Ux FZF_DEFAULT_OPTS " + --color=fg:#908caa,bg:#191724,hl:#ebbcba + --color=fg+:#e0def4,bg+:#26233a,hl+:#ebbcba + --color=border:#403d52,header:#31748f,gutter:#191724 + --color=spinner:#f6c177,info:#9ccfd8 + --color=pointer:#c4a7e7,marker:#eb6f92,prompt:#908caa" + + command fzf + ''; + }; + + interactiveShellInit = '' + fish_config theme choose "Rosé Pine" + + set hn (prompt_hostname) + set fish_cursor_default block blink + set fish_cursor_insert line blink + set fish_cursor_replace_one underscore blink + set fish_cursor_visual block + set fish_vi_force_cursor 1 + fish_vi_key_bindings + + fish_add_path /run/current-system/sw/bin + fish_add_path $HOME/.config/fish/plugins + ''; + + shellAbbrs = { + lg = "lazygit"; + g = "git"; + gco = "git checkout"; + frc = "source ~/.config/fish/**/*.fish"; + }; + }; + + home.file.".config/fish/themes".source = ./themes; +} From e7a76061a3a190c4e7e8f05fd0dcccf8ef3e40a9 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:04:50 +0200 Subject: [PATCH 23/32] adds zoxide alias to server fish --- modules/fish/server.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/fish/server.nix b/modules/fish/server.nix index 83a2b79..45a37a8 100644 --- a/modules/fish/server.nix +++ b/modules/fish/server.nix @@ -64,6 +64,8 @@ fish_add_path /run/current-system/sw/bin fish_add_path $HOME/.config/fish/plugins + + zoxide init fish | source ''; shellAbbrs = { From 025fd52f19530357e8d25ef5bf6ab08ce1f3c68f Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:08:13 +0200 Subject: [PATCH 24/32] updates fish paths --- modules/fish/server.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/fish/server.nix b/modules/fish/server.nix index 45a37a8..41fa4cb 100644 --- a/modules/fish/server.nix +++ b/modules/fish/server.nix @@ -62,6 +62,10 @@ set fish_vi_force_cursor 1 fish_vi_key_bindings + fish_add_path /run/wrappers/bin + fish_add_path /home/r/.nix-profile/bin + fish_add_path /etc/profiles/per-user/r/bin + fish_add_path /nix/var/nix/profiles/default/bin fish_add_path /run/current-system/sw/bin fish_add_path $HOME/.config/fish/plugins From f7ed896fb56656268b6a293d5e0919c4b92b3b54 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:11:01 +0200 Subject: [PATCH 25/32] enables sudo on servers --- hosts/dnsc-server/default.nix | 2 ++ hosts/dnsc-vps-sm/default.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/hosts/dnsc-server/default.nix b/hosts/dnsc-server/default.nix index fabbaf7..5194cfc 100644 --- a/hosts/dnsc-server/default.nix +++ b/hosts/dnsc-server/default.nix @@ -74,6 +74,8 @@ ]; }; + security.sudo.enable = true; + # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; diff --git a/hosts/dnsc-vps-sm/default.nix b/hosts/dnsc-vps-sm/default.nix index 9838f6c..7a146fc 100644 --- a/hosts/dnsc-vps-sm/default.nix +++ b/hosts/dnsc-vps-sm/default.nix @@ -50,6 +50,8 @@ ''; }; + security.sudo.enable = true; + # Networking networking.hostName = "dnsc-vps-sm"; networking.hostId = "380f585f"; From 22a8021459cd2c9e3b02e2b221c3acfa74904e5a Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:14:16 +0200 Subject: [PATCH 26/32] updates sudo alias for use in fish shell --- modules/fish/server.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/fish/server.nix b/modules/fish/server.nix index 41fa4cb..eabf92b 100644 --- a/modules/fish/server.nix +++ b/modules/fish/server.nix @@ -72,6 +72,10 @@ zoxide init fish | source ''; + shellAliases = { + sudo = "/run/wrappers/bin/sudo"; + }; + shellAbbrs = { lg = "lazygit"; g = "git"; From d14701ae78a60ffbd851f7068078e5f903e3b358 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 19:18:44 +0200 Subject: [PATCH 27/32] Removes todo.txt --- todo.txt | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 todo.txt diff --git a/todo.txt b/todo.txt deleted file mode 100644 index 9c14fdc..0000000 --- a/todo.txt +++ /dev/null @@ -1,16 +0,0 @@ -x 2025-04-12 2025-03-01 Set up luals +config @home due:2025-05-01 -x Set up eslint ls -x Set up jsonls -x Set up better (Enter vs. super-tab) keymaps for blink -x Set up keymaps for LSP -x Set up snacks picker instead of fzf -x 2025-05-06 Set up lua dev environment -x 2025-05-06 Steam deck install Nix https://github.com/DeterminateSystems/nix-installer?tab=readme-ov-file -x 2025-05-06 2025-05-04 which-key Neovim Config fixen +neovim -x 2025-05-06 2025-05-04 which-key mappings in keymaps.lua mit descriptions +neovim -x 2025-05-06 2025-05-04 substitute.nvim konfigurieren +neovim -x 2025-05-06 2025-05-06 Steam Deck nix build fixen +deck -x 2025-05-06 2025-04-26 IP Access restricten für dnsc-vps-sm (https://github.com/Oak-Digital/nixos-ip-whitelist-firewall) +homelab -2025-05-06 Steam deck install Tailscale https://github.com/tailscale-dev/deck-tailscale +deck -2025-04-25 Backup einrichten für Vaultwarden (https://www.arthurkoziel.com/restic-backups-b2-nixos/, https://github.com/dani-garcia/vaultwarden/wiki/General-%28not-docker%29) +homelab - From 07e64c5dff235f688d9b0b48563b6843e442b5b8 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 20:47:20 +0200 Subject: [PATCH 28/32] updates syncthing devices --- modules/syncthing/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 7b3f733..fc51d22 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -10,8 +10,8 @@ overrideFolders = true; settings = { devices = { - "dnsc-pixel" = { id = "FD4XYVI-UZCBEXZ-OATLR3Y-7ZZPQOA-MFWP3Q7-OFNZY33-XH4TJAF-KVHW2AI"; }; "dnsc-air" = { id = "RYFO5XN-RRZZQI3-4W5DPHO-C7OKL5N-ZUQUBEI-ZKSWUHM-2BMTFRY-MDC7MA3"; }; + "dnsc-phone" = { id = "NGHODAF-W646NPR-R5IEL2R-QLULKB6-I4APGMB-5PIM6B6-5HZCLAV-HRTSEQI"; }; }; }; }; From 7c43d2c98abd13f2078891f9753266d931356867 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 21:05:35 +0200 Subject: [PATCH 29/32] updates syncthing config dir --- modules/syncthing/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index fc51d22..7aa84f0 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -5,7 +5,7 @@ guiAddress = "0.0.0.0:8384"; user = "dennis"; dataDir = "/home/dennis/sync"; - configDir = "/home/dennis/sync/.config/syncthing"; + # configDir = "/home/dennis/sync/.config/syncthing"; overrideDevices = true; overrideFolders = true; settings = { From 9ed96f7142d80599fd12c29c4df55a240048ff68 Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 21:12:04 +0200 Subject: [PATCH 30/32] updates syncthing config --- modules/syncthing/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 7aa84f0..efe4078 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -4,8 +4,7 @@ group = "users"; guiAddress = "0.0.0.0:8384"; user = "dennis"; - dataDir = "/home/dennis/sync"; - # configDir = "/home/dennis/sync/.config/syncthing"; + configDir = "/home/dennis/.config/syncthing"; overrideDevices = true; overrideFolders = true; settings = { @@ -13,6 +12,12 @@ "dnsc-air" = { id = "RYFO5XN-RRZZQI3-4W5DPHO-C7OKL5N-ZUQUBEI-ZKSWUHM-2BMTFRY-MDC7MA3"; }; "dnsc-phone" = { id = "NGHODAF-W646NPR-R5IEL2R-QLULKB6-I4APGMB-5PIM6B6-5HZCLAV-HRTSEQI"; }; }; + folders = { + "notes" = { + path = "/home/dennis/notes"; + devices = [ "dnsc-air" "dnsc-phone" ]; + }; + }; }; }; systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; From 530a99d04e35bcd99e8e004bf28d6fa731406d4b Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 21:22:05 +0200 Subject: [PATCH 31/32] updates homepage config --- modules/homepage/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/homepage/default.nix b/modules/homepage/default.nix index 5597fe0..f897b17 100644 --- a/modules/homepage/default.nix +++ b/modules/homepage/default.nix @@ -28,7 +28,7 @@ } { "Slides" = { - href = "https://uptime.dnsc.io"; + href = "https://slides.dnsc.io"; icon = "slidev.png"; }; } From c2a06d4ac2683c61fdf5003686d2ee133e89cbfe Mon Sep 17 00:00:00 2001 From: Dennis Date: Thu, 29 May 2025 21:26:14 +0200 Subject: [PATCH 32/32] updates dock for dnsc-air --- hosts/dnsc-air/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index cf4ec84..ee977d5 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -128,6 +128,7 @@ persistent-apps = [ "/System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app" "/Applications/WezTerm.app" + "/System/Applications/Mail.app" "/System/Applications/Calendar.app" "/System/Applications/Reminders.app" "/System/Applications/System Settings.app/"