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/home/server.nix b/home/server.nix index e9cee88..dc55a39 100644 --- a/home/server.nix +++ b/home/server.nix @@ -11,11 +11,23 @@ unzip ripgrep fzf + fd + sd + bat + tldr + fortune iotop iftop just mmv-go lazygit + fish + zoxide + ]; + + imports = [ + ../modules/fish/server.nix + ../modules/lazygit ]; programs.home-manager.enable = true; diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index c7c8f54..ee977d5 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 @@ -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" @@ -95,6 +97,9 @@ "eurkey" "karabiner-elements" "wezterm" + "cyberduck" + "caffeine" + "tailscale" ]; }; @@ -121,8 +126,11 @@ orientation = "right"; show-recents = false; persistent-apps = [ - "/Applications/Zen.app" + "/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/" ]; persistent-others = [ @@ -164,6 +172,7 @@ home-manager = { extraSpecialArgs = { inherit inputs outputs; }; useGlobalPkgs = true; + backupFileExtension = "backup"; users = { dennis = import ../../home/darwin.nix; }; diff --git a/hosts/dnsc-server/default.nix b/hosts/dnsc-server/default.nix index da28607..5194cfc 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 @@ -32,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"; @@ -61,9 +74,12 @@ ]; }; + security.sudo.enable = true; + # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; + backupFileExtension = "backup"; users = { dennis = import ../../home/server.nix; }; @@ -91,35 +107,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 +155,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 1ca396c..7a146fc 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 @@ -36,6 +39,19 @@ }; 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 + ''; + }; + + security.sudo.enable = true; + # Networking networking.hostName = "dnsc-vps-sm"; networking.hostId = "380f585f"; @@ -63,7 +79,6 @@ ]; }; - # My user account users.users.dennis = { description = "dennis"; @@ -79,6 +94,7 @@ # Home Manager Setup home-manager = { extraSpecialArgs = { inherit inputs outputs; }; + backupFileExtension = "backup"; users = { dennis = import ../../home/server.nix; }; @@ -117,20 +133,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"; - }; - }; - # Caddy services.caddy = { enable = true; @@ -155,6 +157,9 @@ virtualHosts."uptime.dnsc.io".extraConfig = '' reverse_proxy localhost:9000 ''; + virtualHosts."home.dnsc.io".extraConfig = '' + reverse_proxy localhost:9001 + ''; }; # Environment variables 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/modules/fish/server.nix b/modules/fish/server.nix new file mode 100644 index 0000000..eabf92b --- /dev/null +++ b/modules/fish/server.nix @@ -0,0 +1,88 @@ +{ 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/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 + + zoxide init fish | source + ''; + + shellAliases = { + sudo = "/run/wrappers/bin/sudo"; + }; + + shellAbbrs = { + lg = "lazygit"; + g = "git"; + gco = "git checkout"; + frc = "source ~/.config/fish/**/*.fish"; + }; + }; + + home.file.".config/fish/themes".source = ./themes; +} 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/modules/homepage/default.nix b/modules/homepage/default.nix new file mode 100644 index 0000000..f897b17 --- /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://slides.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..d1794dd --- /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/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 91% rename from home/modules/nvim/deck.nix rename to modules/nvim/deck.nix index 4b19be0..8cfad0e 100644 --- a/home/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/home/modules/nvim/default.nix b/modules/nvim/default.nix similarity index 90% rename from home/modules/nvim/default.nix rename to modules/nvim/default.nix index b990f1f..cb36ab8 100644 --- a/home/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/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/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/modules/syncthing/default.nix b/modules/syncthing/default.nix new file mode 100644 index 0000000..efe4078 --- /dev/null +++ b/modules/syncthing/default.nix @@ -0,0 +1,25 @@ +{ + services.syncthing = { + enable = true; + group = "users"; + guiAddress = "0.0.0.0:8384"; + user = "dennis"; + configDir = "/home/dennis/.config/syncthing"; + overrideDevices = true; + overrideFolders = true; + settings = { + devices = { + "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"; +} + 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..dfd8f08 --- /dev/null +++ b/modules/vaultwarden/default.nix @@ -0,0 +1,8 @@ +{ + config, ... +}: { + services.vaultwarden = { + enable = true; + environmentFile = config.age.secrets."vaultwarden/env".path; + }; +} 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 89% rename from home/modules/wezterm/default.nix rename to modules/wezterm/default.nix index 016f660..739860e 100644 --- a/home/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; }; } 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 -