diff --git a/flake.lock b/flake.lock index c6b64bb..5882ce2 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1774211390, - "narHash": "sha256-sTtAgCCaX8VNNZlQFACd3i1IQ+DB0Wf3COgiFS152ds=", + "lastModified": 1776876344, + "narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "f62a4dbfa4e5584f14ad4c62afedf6e4b433cf70", + "rev": "648a13d0ee1e03a843b3e145b8ece15393058701", "type": "github" }, "original": { @@ -82,11 +82,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1774640361, - "narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=", + "lastModified": 1775706155, + "narHash": "sha256-h7Rw0vlb0n0Jsk21WJPm7H+1T1bG+PEuxE5cJ2TZl8A=", "owner": "abenz1267", "repo": "elephant", - "rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4", + "rev": "376ee71c66db38683daabd57350bf3f6f086eaf8", "type": "github" }, "original": { @@ -132,11 +132,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -216,11 +216,11 @@ ] }, "locked": { - "lastModified": 1775268934, - "narHash": "sha256-Sa5tW5kYPJornQEkFVD43F/0d4/WP+/GLTNktTFe2qU=", + "lastModified": 1777218285, + "narHash": "sha256-d2FY71SBVKVbT1PsfXA71jz0vD520NijS4lrcvUMeGk=", "owner": "nix-community", "repo": "home-manager", - "rev": "9dc93220c1c9a410ef6277d6dc55c571d9e592d0", + "rev": "c55c498c9aa205b16cca78b57a7275625726d532", "type": "github" }, "original": { @@ -245,11 +245,11 @@ ] }, "locked": { - "lastModified": 1772461003, - "narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=", + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", "type": "github" }, "original": { @@ -274,11 +274,11 @@ ] }, "locked": { - "lastModified": 1772461523, - "narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=", + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", "type": "github" }, "original": { @@ -304,11 +304,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1775307976, - "narHash": "sha256-s7tT69WTAX8CdZg1Gr1L4n2W/IgyPCfFXJFllXS5A5g=", + "lastModified": 1777227673, + "narHash": "sha256-nORN5YGU0T2PnvgpMc7ukPWza27oVtTTquCGOhpEV+A=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "13fec3de9b40dbd075ce0ec5c88ef86117e25443", + "rev": "84d45bd13acce0b16c8f86e83144f22b18d9398e", "type": "github" }, "original": { @@ -350,11 +350,11 @@ ] }, "locked": { - "lastModified": 1772467975, - "narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=", + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", "owner": "hyprwm", "repo": "hyprland-guiutils", - "rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", "type": "github" }, "original": { @@ -380,11 +380,11 @@ ] }, "locked": { - "lastModified": 1771865848, - "narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=", + "lastModified": 1777220105, + "narHash": "sha256-M9JZK+8GVKAIVdQpcCG/49zBF3ylxO8zxW+hVjM5QpE=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960", + "rev": "dbe221941a5095e1b381ac460a152cf173b108b8", "type": "github" }, "original": { @@ -434,11 +434,11 @@ ] }, "locked": { - "lastModified": 1772459629, - "narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=", + "lastModified": 1776426736, + "narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "7615ee388de18239a4ab1400946f3d0e498a8186", + "rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9", "type": "github" }, "original": { @@ -511,11 +511,11 @@ ] }, "locked": { - "lastModified": 1774211405, - "narHash": "sha256-6KNwP4ojUzv3YBlZU5BqCpTrWHcix1Jo01BISsTT0xk=", + "lastModified": 1777148223, + "narHash": "sha256-PTf7kRFFzCW6rIYxLH2fWfVJmj86FSYe3k6L8B+IM9o=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "cb4e152dc72095a2af422956c6b689590572231a", + "rev": "fa3992be2dfebe4ab06d753c6ca59bea298e798f", "type": "github" }, "original": { @@ -536,11 +536,11 @@ ] }, "locked": { - "lastModified": 1772459835, - "narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=", + "lastModified": 1777148232, + "narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "0a692d4a645165eebd65f109146b8861e3a925e7", + "rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92", "type": "github" }, "original": { @@ -565,11 +565,11 @@ ] }, "locked": { - "lastModified": 1773074819, - "narHash": "sha256-qRqYnXiKoJLRTcfaRukn7EifmST2IVBUMZOeZMAc5UA=", + "lastModified": 1776728575, + "narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=", "owner": "hyprwm", "repo": "hyprwire", - "rev": "f68afd0e73687598cc2774804fedad76693046f0", + "rev": "f3a80888783702a39691b684d099e16b83ed4702", "type": "github" }, "original": { @@ -586,11 +586,11 @@ "optnix": "optnix" }, "locked": { - "lastModified": 1775272181, - "narHash": "sha256-9Y3ASONdIdYtTbZCg7Nv+jntkXo9m1VMpxlMvvNhHWI=", + "lastModified": 1777152325, + "narHash": "sha256-8z6TM8o91moN+rhgzErnhluIHaS5X9B2xvZnIwFA88I=", "owner": "nix-community", "repo": "nixos-cli", - "rev": "14dab96159beab052bf04be41c8e5cd486807042", + "rev": "ad72187c1628a409f8bb7a9256cca94c0362c5b9", "type": "github" }, "original": { @@ -617,11 +617,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1772328832, - "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", "type": "github" }, "original": { @@ -648,11 +648,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1774106199, - "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { @@ -664,11 +664,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1774855581, - "narHash": "sha256-YkreHeMgTCYvJ5fESV0YyqQK49bHGe2B51tH6claUh4=", + "lastModified": 1775793324, + "narHash": "sha256-omax7atcZbol+6HJ2RLpP+ZCFcPa5bZ65Hn71RufeWQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "15c6719d8c604779cf59e03c245ea61d3d7ab69b", + "rev": "9d29d5f667d7467f98efc31881e824fa586c927e", "type": "github" }, "original": { @@ -680,11 +680,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1775036866, - "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", + "lastModified": 1776877367, + "narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", + "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57", "type": "github" }, "original": { @@ -696,11 +696,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1768564909, - "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", "type": "github" }, "original": { @@ -718,11 +718,11 @@ "noctalia-qs": "noctalia-qs" }, "locked": { - "lastModified": 1775309721, - "narHash": "sha256-yZIMJhv1Jg2I1bsag/chncl4nb/5pkrEKVwpkOqJqpI=", + "lastModified": 1777079905, + "narHash": "sha256-TvYEXwkZnRFQRuFyyqTNSfPnU2tMdhtiBOXSk2AWLJA=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "819b2d33b04b2180b6ef19dab7f86af7d3603a52", + "rev": "a50c92167c8d438000270f7eca36f6eea74f388e", "type": "github" }, "original": { @@ -741,11 +741,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1775135550, - "narHash": "sha256-79JP2QTdvp1jg7HGxAW+xzhzhLnlKUi8yGXq9nDCeH0=", + "lastModified": 1776585574, + "narHash": "sha256-j35EWhKoGhKrfcXcAOpoRVgXEPQt41Eukji/h59cnjk=", "owner": "noctalia-dev", "repo": "noctalia-qs", - "rev": "e7224b756dcd10eec040df818a4c7a0fda5d6eff", + "rev": "75d180c28a9ab4470e980f3d6f706ad6c5213add", "type": "github" }, "original": { @@ -789,11 +789,11 @@ ] }, "locked": { - "lastModified": 1774104215, - "narHash": "sha256-EAtviqz0sEAxdHS4crqu7JGR5oI3BwaqG0mw7CmXkO8=", + "lastModified": 1776796298, + "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f799ae951fde0627157f40aec28dec27b22076d0", + "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", "type": "github" }, "original": { @@ -853,11 +853,11 @@ "systems": "systems_6" }, "locked": { - "lastModified": 1772835103, - "narHash": "sha256-4A4DEMDxJgPbbszLVdnlhFsvQS73X91dANZN0wbrX6g=", + "lastModified": 1776138006, + "narHash": "sha256-hnfHAZ0y+PVAOs2pbHeeTTKJkFxhRnTl4ZoPqlpfyWw=", "owner": "WillPower3309", "repo": "swayfx", - "rev": "434d992494da97e46071618f56a527656d23161a", + "rev": "1ccec2aef0e24a2c9ef0ec39a479dbcc21b9e5c9", "type": "github" }, "original": { @@ -980,11 +980,11 @@ ] }, "locked": { - "lastModified": 1773297127, - "narHash": "sha256-6E/yhXP7Oy/NbXtf1ktzmU8SdVqJQ09HC/48ebEGBpk=", + "lastModified": 1775636079, + "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "71b125cd05fbfd78cab3e070b73544abe24c5016", + "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", "type": "github" }, "original": { @@ -1002,11 +1002,11 @@ "systems": "systems_7" }, "locked": { - "lastModified": 1773675699, - "narHash": "sha256-GrormZ2KxchtCLuO90+5fioEQmlUCKBIil0Mzr9w0Iw=", + "lastModified": 1775815794, + "narHash": "sha256-4aYljsM+f09YLERdo+kQjg9lvxVc6yxc+rPRFdgeXxw=", "owner": "abenz1267", "repo": "walker", - "rev": "d2702235710da3d7daf55c912ca7534261cf20f5", + "rev": "a0b5fa92e05c7d52936472c5027265b14e746bae", "type": "github" }, "original": { @@ -1043,11 +1043,11 @@ ] }, "locked": { - "lastModified": 1773601989, - "narHash": "sha256-2tJf/CQoHApoIudxHeJye+0Ii7scR0Yyi7pNiWk0Hn8=", + "lastModified": 1777035886, + "narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "a9b862d1aa000a676d310cc62d249f7ad726233d", + "rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e", "type": "github" }, "original": { @@ -1063,11 +1063,11 @@ ] }, "locked": { - "lastModified": 1775277437, - "narHash": "sha256-zCi04nIBNwTMt8n35w9cBgNUqnyhbjivsGlx6/Qhqug=", + "lastModified": 1777092705, + "narHash": "sha256-qKMvM2+eKusg6H6lG2bwDdFjNi1XfEjdLD5xIt8ZgFs=", "owner": "youwen5", "repo": "zen-browser-flake", - "rev": "de6d9094822a8f87fc380d1638f34d6cc6fa68ca", + "rev": "10f5c809db4f8e7badb6d505924ebbaaeefda4e4", "type": "github" }, "original": { diff --git a/home/desktop/window-managers/niri.nix b/home/desktop/window-managers/niri.nix index 1843e14..92f3e61 100644 --- a/home/desktop/window-managers/niri.nix +++ b/home/desktop/window-managers/niri.nix @@ -46,6 +46,7 @@ in accel-profile "flat" } + focus-follows-mouse max-scroll-amount="0%" } output "Samsung Electric Company S24D330 0x5A5A5131" { mode "1920x1080@60" @@ -71,20 +72,25 @@ in ${modifier}+Shift+R { switch-preset-column-width-back; } ${modifier}+F { expand-column-to-available-width; } ${modifier}+G { toggle-window-floating; } + ${modifier}+Shift+F { fullscreen-window; } //Column Navigation ${modifier}+H { focus-column-left; } ${modifier}+L { focus-column-right; } + ${modifier}+WheelScrollDown { focus-column-right; } + ${modifier}+WheelScrollUp { focus-column-left; } ${modifier}+Left { focus-column-left; } ${modifier}+Right { focus-column-right; } - ${modifier}+Shift+H { move-column-left-or-to-monitor-left; } - ${modifier}+Shift+L { move-column-right-or-to-monitor-right; } - ${modifier}+Shift+Left { move-column-left-or-to-monitor-left; } - ${modifier}+Shift+Right { move-column-right-or-to-monitor-right; } + ${modifier}+Shift+H { move-column-left; } + ${modifier}+Shift+L { move-column-right; } + ${modifier}+Shift+J { move-column-to-monitor-next; } + ${modifier}+Shift+K { move-column-to-monitor-previous; } + ${modifier}+Shift+Left { move-column-left; } + ${modifier}+Shift+Right { move-column-right; } //Workspace Navigation - ${modifier}+J cooldown-ms=150 { focus-workspace-down; } - ${modifier}+K cooldown-ms=150 { focus-workspace-up; } + ${modifier}+J cooldown-ms=150 { focus-monitor-next; } + ${modifier}+K cooldown-ms=150 { focus-monitor-previous; } ${modifier}+Down cooldown-ms=150 { focus-workspace-down; } ${modifier}+Up cooldown-ms=150 { focus-workspace-up; } diff --git a/hosts/marty-pc/default.nix b/hosts/marty-pc/default.nix index 1f4eb8b..5aecca3 100644 --- a/hosts/marty-pc/default.nix +++ b/hosts/marty-pc/default.nix @@ -14,7 +14,7 @@ useGlobalPkgs = true; useUserPackages = true; users = { - "${config.user.userName}" = import ./home.nix; + "${config.user.userName}" = import ./home.nix; }; }; imports = [ diff --git a/hosts/marty-pc/options.nix b/hosts/marty-pc/options.nix index 8c07686..72ab183 100644 --- a/hosts/marty-pc/options.nix +++ b/hosts/marty-pc/options.nix @@ -6,6 +6,9 @@ }: { + imports = [ + ../../modules/device/desktop.nix + ]; config = { user = { userName = "marty"; @@ -17,7 +20,6 @@ locale = "de_DE.UTF-8"; hostname = "marty-pc"; }; - device.type = "desktop"; apps = { audio = { base.enable = true; diff --git a/hosts/marty-server/custom.nix b/hosts/marty-server/custom.nix new file mode 100644 index 0000000..0520a60 --- /dev/null +++ b/hosts/marty-server/custom.nix @@ -0,0 +1,93 @@ +{ + config, + pkgs, + inputs, + ... +}: + +let + domain = "http://marty-server"; + netname = "tamatas-upcycling"; + ipv4host = "192.168.101.10"; + ipv4local = "192.168.101.11"; + ipv6host = "fc00::101:1"; + ipv6local = "fc00::101:2"; + porthost1 = 9001; + portlocal1 = 80; + +in + +{ + + networking = { + hosts = { + ipv4local = [ netname ]; + ipv6local = [ netname ]; + }; + }; + + containers.tamatas-upcycling = { + autoStart = true; + privateNetwork = true; + hostAddress = ipv4host; + localAddress = ipv4local; + hostAddress6 = ipv6host; + localAddress6 = ipv6local; + forwardPorts = [ + { + hostPort = porthost1; + containerPort = portlocal1; + } + ]; + bindMounts = { + }; + + config = + { + config, + pkgs, + lib, + ... + }: + { + + users = { + users = { + marty = { + group = "users"; + isSystemUser = true; + }; + }; + groups = { + users = { }; + }; + }; + + services = { + wordpress.sites."tamatas-upcycling.de" = { + languages = [ pkgs.wordpressPackages.languages.de_DE ]; + settings = { + WPLANG = "de_DE"; + WP_SITEURL = domain; + WP_HOME = domain; + }; + }; + phpfpm.pools."wordpress-tamatas-upcycling.de".phpOptions = '' + upload_max_filesize=1G + post_max_size=1G + ''; + resolved.enable = true; + }; + + networking = { + firewall = { + enable = true; + allowedTCPPorts = [ portlocal1 ]; + }; + useHostResolvConf = lib.mkForce false; + }; + + system.stateVersion = "25.05"; + }; + }; +} diff --git a/hosts/marty-server/default.nix b/hosts/marty-server/default.nix index 8403779..d3ca932 100644 --- a/hosts/marty-server/default.nix +++ b/hosts/marty-server/default.nix @@ -9,28 +9,18 @@ }: { - networking = { - hostName = "marty-server"; - interfaces = { - eno1 = { - wakeOnLan = { - enable = true; - policy = [ "magic" ]; - }; - }; - }; - }; - home-manager = { extraSpecialArgs = { inherit inputs; }; useGlobalPkgs = true; useUserPackages = true; users = { - marty = import ./home.nix; + "${config.user.userName}" = import ./home.nix; }; }; - imports = [ ./hardware.nix ]; - - virtualisation.docker.enable = true; + imports = [ + ./hardware.nix + ./custom.nix + ./options.nix + ]; system.stateVersion = "25.11"; # Did you read the comment? } diff --git a/hosts/marty-server/home.nix b/hosts/marty-server/home.nix index 1252bf0..a4a37ec 100644 --- a/hosts/marty-server/home.nix +++ b/hosts/marty-server/home.nix @@ -3,92 +3,18 @@ pkgs, inputs, lib, + osConfig, ... }: { - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "marty"; - home.homeDirectory = "/home/marty"; - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "25.11"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - - programs.fish.enable = true; - - home.packages = with pkgs; [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/marty/etc/profile.d/hm-session-vars.sh - # - - development = { - vscodium.enable = false; - git.enable = true; - }; - terminal = { - kitty.enable = false; - }; + home.username = osConfig.user.userName; + home.homeDirectory = "/home/${osConfig.user.userName}"; + home.stateVersion = "25.11"; imports = [ - ./../../modules - + ./../../home ]; - # Let Home Manager install and manage itself. programs.home-manager.enable = true; } diff --git a/hosts/marty-server/options.nix b/hosts/marty-server/options.nix new file mode 100644 index 0000000..75cbc6c --- /dev/null +++ b/hosts/marty-server/options.nix @@ -0,0 +1,161 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + imports = [ + ../../modules/device/server.nix + ]; + config = { + user = { + userName = "marty"; + shell = pkgs.fish; + }; + system = { + timezone = "Europe/Berlin"; + language = "en_GB.UTF-8"; + locale = "de_DE.UTF-8"; + hostname = "marty-server"; + }; + apps = { + audio = { + base.enable = true; + media.enable = false; + editing.enable = false; + }; + development = { + editor = { + vscodium.enable = false; + emacs.enable = true; + default = "emacs"; + }; + languages = { + python.enable = true; + }; + godot.enable = false; + }; + gaming = { + enable = true; + steam.enable = false; + minecraft.enable = false; + }; + image = { + base.enable = true; + editing.enable = false; + }; + internet = { + browsers = { + zen-browser.enable = false; + tor-browser.enable = false; + default = "lynx"; + }; + mail = { + enable = false; + providers = { + protonmail.enable = true; + }; + }; + }; + messaging = { + signal.enable = false; + element = { + enable = false; + selfhosted = false; + }; + }; + misc = { + obsidian.enable = false; + bitwarden.enable = false; + blender.enable = false; + }; + sync = { + kde-connect.enable = true; + nextcloud.enable = false; + syncthing = { + enable = true; + devices = { + marty-pc = { + id = "6PJZD52-EEWIO7U-MZMJJ5B-33DGNSU-O7DJVRT-GAE7QZG-ZY3VIMV-VSMBDQP"; + autoAcceptFolder = true; + }; + marty-server = { + id = "UDMXEKZ-HYIFI5S-VAKE75O-K3C65QV-LS43QA5-3JTHWKL-CI5C3Y6-P4NSQQM"; + autoAcceptFolders = true; + }; + marty-latitude = { + id = "SOAWHKA-BCQGO5G-IJ24WTO-RDETP5M-LNTVO66-MHIOUU2-NNQ57P6-FFKNSA6"; + autoAcceptFolders = true; + }; + marty-thinkpad = { + id = "NWHFQSW-FOBGFLV-YMZR77Q-KNRR3YC-4C6PKXT-TTPDCOL-CDB6QX4-3QJE2AN"; + autoAcceptFolders = true; + }; + marty-pixel = { + id = "GSBXOGW-6SYLDUQ-HPH7FBJ-CKHWQIK-K5YORB4-CYKGYT6-DLCVSAK-LA2RMAK"; + autoAcceptFolders = true; + }; + marty-fairphone = { + id = "2ISVWQV-4USY5IA-2OU55CE-Q7VLPD7-4RVQ5WX-FXQSJMY-2ES4EZG-IGFB7QG"; + autoAcceptFolders = true; + }; + }; + }; + }; + terminal = { + kitty = { + enable = true; + }; + default = "kitty"; + tui = { + ranger.enable = true; + }; + toys = true; + }; + video = { + base.enable = true; + media.enable = false; + editing.enable = false; + }; + }; + desktop = { + window-managers = { + hyprland = { + enable = false; + }; + niri = { + enable = false; + }; + sway = { + enable = false; + }; + }; + shell = { + noctalia = { + enable = false; + }; + swww = { + enable = false; + }; + walker = { + enable = false; + }; + waybar = { + enable = false; + }; + }; + utilities = { + grimblast = { + enable = false; + }; + }; + }; + server = { + synapse = { + subdomain = "yap"; + }; + }; + }; +} diff --git a/modules/apps/audio/default.nix b/modules/apps/audio/default.nix index cb7ed8d..572eef2 100644 --- a/modules/apps/audio/default.nix +++ b/modules/apps/audio/default.nix @@ -25,6 +25,7 @@ pavucontrol playerctl streamrip + gst_all_1.gstreamer ] else [ ] diff --git a/modules/apps/internet/default.nix b/modules/apps/internet/default.nix index 5ae91ab..0dddffc 100644 --- a/modules/apps/internet/default.nix +++ b/modules/apps/internet/default.nix @@ -9,5 +9,6 @@ imports = [ ./browser.nix ./mail.nix + ./rss.nix ]; } diff --git a/modules/apps/internet/rss.nix b/modules/apps/internet/rss.nix new file mode 100644 index 0000000..eaba947 --- /dev/null +++ b/modules/apps/internet/rss.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + apps.internet.rss = { + enable = lib.mkEnableOption "enable rss"; + }; + }; + config = { + environment.systemPackages = + with pkgs; + [ + + ] + ++ ( + if config.apps.internet.rss.enable then + [ + newsflash + ] + else + [ ] + ); + }; +} diff --git a/modules/device/default.nix b/modules/device/default.nix index 87422e4..383130b 100644 --- a/modules/device/default.nix +++ b/modules/device/default.nix @@ -9,14 +9,7 @@ options = { device.type = lib.mkOption { default = "minimal"; - description = "device type (desktop, laptop, server, minimal) for base config"; + description = "device type"; }; }; - - imports = [ - ./minimal.nix - ./desktop.nix - ./laptop.nix - ./server.nix - ]; } diff --git a/modules/device/desktop.nix b/modules/device/desktop.nix index 2085aba..4abc265 100644 --- a/modules/device/desktop.nix +++ b/modules/device/desktop.nix @@ -6,5 +6,14 @@ }: { - config = { }; + config = { + device.type = "desktop"; + apps = { + internet = { + rss = { + enable = true; + }; + }; + }; + }; } diff --git a/modules/server/misc/default.nix b/modules/server/misc/default.nix index ff10566..5750f6d 100644 --- a/modules/server/misc/default.nix +++ b/modules/server/misc/default.nix @@ -10,5 +10,6 @@ ./dawarich.nix ./forgejo.nix ./lauti.nix + ./vaultwarden.nix ]; } diff --git a/modules/server/misc/vaultwarden.nix b/modules/server/misc/vaultwarden.nix new file mode 100644 index 0000000..c05d4c3 --- /dev/null +++ b/modules/server/misc/vaultwarden.nix @@ -0,0 +1,49 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options = { + server.misc.vaultwarden = { + enable = lib.mkEnableOption "enable dawarich"; + port = lib.mkOption { + default = 8000; + description = "vaultwarden port"; + }; + public = lib.mkEnableOption "make vaultwarden public"; + subdomain = lib.mkOption { + default = "vault"; + description = "vaultwarden subdomain"; + }; + }; + }; + config = { + services = { + vaultwarden = { + enable = true; + config = { + DOMAIN = "https://${config.server.misc.vaultwarden.subdomain}.${config.networking.domain}"; + SIGNUPS_ALLOWED = false; + }; + }; + nginx = { + virtualHosts = { + "${config.server.misc.vaultwarden.subdomain}.${config.networking.domain}" = + if config.server.misc.vaultwarden.public then + { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.server.misc.vaultwarden.port}"; + }; + } + else + { }; + }; + }; + }; + }; +}