diff --git a/.stfolder/syncthing-folder-a0745f.txt b/.stfolder/syncthing-folder-a0745f.txt deleted file mode 100644 index 2f6a7df..0000000 --- a/.stfolder/syncthing-folder-a0745f.txt +++ /dev/null @@ -1,5 +0,0 @@ -# This directory is a Syncthing folder marker. -# Do not delete. - -folderID: nix -created: 2026-01-29T23:06:32-06:00 diff --git a/device.nix b/device.nix new file mode 100644 index 0000000..29cb6fb --- /dev/null +++ b/device.nix @@ -0,0 +1 @@ +{ device = "laptop"; } \ No newline at end of file diff --git a/etc/nixos/configuration.nix b/etc/nixos/configuration.nix deleted file mode 100644 index d7a39b1..0000000 --- a/etc/nixos/configuration.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - imports = [ - /home/bug/nix/main.nix - ]; -} diff --git a/etc/nixos/device.nix b/etc/nixos/device.nix deleted file mode 100644 index 80e3d80..0000000 --- a/etc/nixos/device.nix +++ /dev/null @@ -1 +0,0 @@ -{ desktop = true; } \ No newline at end of file diff --git a/etc/nixos/flake.nix b/etc/nixos/flake.nix deleted file mode 100644 index ede163d..0000000 --- a/etc/nixos/flake.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - inputs = { - # nixpkgs.follows = "nixos-cosmic/nixpkgs"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - - flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest"; - - nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; - - hytale-launcher.url = "github:JPyke3/hytale-launcher-nix"; - - stylix = { - url = "github:nix-community/stylix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - nixVirt = { - url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - noctalia = { - url = "github:noctalia-dev/noctalia-shell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - quickshell = { - url = "git+https://git.outfoxxed.me/quickshell/quickshell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - dms-plugin-registry = { - url = "github:AvengeMedia/dms-plugin-registry"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, nixVirt, noctalia, quickshell, dms-plugin-registry, ... }: - let - deviceType = import /etc/nixos/device.nix; - system = "x86_64-linux"; - in - { - nixosConfigurations.nix = nixpkgs.lib.nixosSystem { - inherit system; - - specialArgs = { inherit inputs; inherit (deviceType) desktop; }; - - modules = [ - { - nix.settings = { - substituters = [ "https://cosmic.cachix.org/" ]; - trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; - }; - } - - flatpaks.nixosModules.nix-flatpak - - nixVirt.nixosModules.default - - ./configuration.nix - ]; - }; - }; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..650b62c --- /dev/null +++ b/flake.lock @@ -0,0 +1,568 @@ +{ + "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1760703920, + "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "d646af9b7d14bff08824538164af99d0c521b185", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1764873433, + "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1746162366, + "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767609335, + "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flatpaks": { + "locked": { + "lastModified": 1767983141, + "narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "440818969ac2cbd77bfe025e884d0aa528991374", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "latest", + "repo": "nix-flatpak", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1767737596, + "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "GNOME", + "ref": "gnome-49", + "repo": "gnome-shell", + "type": "gitlab" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1770164260, + "narHash": "sha256-mQgOAYWlVJyuyXjZN6yxqXWyODvQI5P/UZUCU7IOuYo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "4fda26500b4539e0a1e3afba9f0e1616bdad4f85", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "hytale-launcher": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1770238404, + "narHash": "sha256-/ajGYszaZxjboxwNsMaw/EBn+BEp1YIe6geFthy/M6A=", + "owner": "JPyke3", + "repo": "hytale-launcher-nix", + "rev": "bfb52bff72c572f71f621ea7654ea760bc848118", + "type": "github" + }, + "original": { + "owner": "JPyke3", + "repo": "hytale-launcher-nix", + "type": "github" + } + }, + "nixos-cosmic": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1751591814, + "narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=", + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc", + "type": "github" + }, + "original": { + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1769018530, + "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "88d3861acdd3d2f0e361767018218e51810df8a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1751048012, + "narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a684c58d46ebbede49f280b653b9e56100aa3877", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1770115704, + "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1751011381, + "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1770181073, + "narHash": "sha256-ksTL7P9QC1WfZasNlaAdLOzqD8x5EPyods69YBqxSfk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bf922a59c5c9998a6584645f7d0de689512e444c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nur": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767810917, + "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "flatpaks": "flatpaks", + "home-manager": "home-manager", + "hytale-launcher": "hytale-launcher", + "nixos-cosmic": "nixos-cosmic", + "nixpkgs": "nixpkgs_4", + "stylix": "stylix", + "vscode-server": "vscode-server" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixos-cosmic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751251399, + "narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1769978605, + "narHash": "sha256-Vjniae6HHJCb9xZLeUOP15aRQXSZuKeeaZFM+gRDCgo=", + "owner": "nix-community", + "repo": "stylix", + "rev": "ce22070ec5ce6169a6841da31baea33ce930ed38", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "stylix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1767710407, + "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1767489635, + "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1767488740, + "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "vscode-server": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1770124655, + "narHash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=", + "owner": "nix-community", + "repo": "nixos-vscode-server", + "rev": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-vscode-server", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b9a13cd --- /dev/null +++ b/flake.nix @@ -0,0 +1,81 @@ +{ + inputs = { + # nixpkgs.follows = "nixos-cosmic/nixpkgs"; + + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest"; + + nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; + + hytale-launcher.url = "github:JPyke3/hytale-launcher-nix"; + + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + vscode-server.url = "github:nix-community/nixos-vscode-server"; + + home-manager.url = "github:nix-community/home-manager"; + }; + + outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, ... }: + let + deviceType = import ./device.nix; + system = "x86_64-linux"; + in + { + nixosConfigurations = { + nix = nixpkgs.lib.nixosSystem { + inherit system; + + specialArgs = { inherit inputs; inherit (deviceType) device; }; + + modules = [ + { + nix.settings = { + substituters = [ "https://cosmic.cachix.org/" ]; + trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; + }; + } + + flatpaks.nixosModules.nix-flatpak + + ./main.nix + ]; + }; + + box = nixpkgs.lib.nixosSystem { + inherit system; + + specialArgs = { inherit inputs; inherit (deviceType) device; }; + + modules = [ + ./main.nix + + flatpaks.nixosModules.nix-flatpak + + vscode-server.nixosModules.default + ]; + }; + }; + + homeConfigurations = { + bug = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + + extraSpecialArgs = { + inherit inputs; + inherit (deviceType) device; + }; + + modules = [ + stylix.homeManagerModules.stylix + + ./home.nix + ]; + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..437d000 --- /dev/null +++ b/home.nix @@ -0,0 +1,122 @@ +{inputs, config, pkgs, device, ... }: + +{ + home = { + username = "bug"; + homeDirectory = "/home/bug"; + stateVersion = "25.11"; + packages = []; + file = {}; + sessionVariables = { + EDITOR = "micro"; + MICRO_TRUECOLOR = 1; + }; + }; + + nixpkgs.config.allowUnfree = true; + + programs.home-manager.enable = true; + + services.syncthing = { + enable = true; + + overrideDevices = true; + overrideFolders = true; + + key = "/home/bug/.syncthing/key.pem"; + cert = "/home/bug/.syncthing/cert.pem"; + + settings = { + devices = { + desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV"; + laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2"; + server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA"; + }; + + folders = { + "Documents" = { + path = "/home/bug/Documents"; + devices = ["desktop" "laptop"]; + }; + + "Downloads" = { + path = "/home/bug/Downloads"; + devices = ["desktop" "laptop"]; + }; + + "Pictures" = { + path = "/home/bug/Pictures"; + devices = ["desktop" "laptop"]; + }; + + "Videos" = { + path = "/home/bug/Videos"; + devices = ["desktop" "laptop"]; + }; + + "nix" = { + path = "/home/bug/nix"; + devices = ["desktop" "laptop" "server"]; + + ignorePatterns = [ + "device.nix" + "hardware-configuration.nix" + ]; + }; + + "home-manager" = { + path = "/home/bug/.config/home-manager"; + devices = ["desktop" "laptop"]; + }; + + "hytale" = { + path = "/home/bug/.local/share/Hytale/UserData/Saves"; + devices = ["desktop" "laptop"]; + }; + + "ssh" = { + path = "/home/bug/.ssh"; + devices = ["desktop" "laptop"]; + }; + }; + }; + }; + + stylix = { + enable = (device != "server"); + autoEnable = true; + polarity = "dark"; + + # catppuccin mocha + base16Scheme = { + base00 = "1E1E2E"; + base01 = "181825"; + base02 = "313244"; + base03 = "45475A"; + base04 = "585B70"; + base05 = "CDD6F4"; + base06 = "F5E0DC"; + base07 = "B4BEFE"; + base08 = "F38BA8"; + base09 = "FAB387"; + base0A = "F9E2AF"; + base0B = "A6E3A1"; + base0C = "94E2D5"; + base0D = "89B4FA"; + base0E = "CBA6F7"; + base0F = "F2CDCD"; + }; + + fonts.emoji = { + name = "Twitter Color Emoji"; + package = pkgs.twitter-color-emoji; + }; + + targets = { + vesktop.enable = true; + gnome.enable = true; + gtk.enable = true; + firefox.enable = true; + }; + }; +} \ No newline at end of file diff --git a/main.nix b/main.nix index 9664503..219c311 100644 --- a/main.nix +++ b/main.nix @@ -1,24 +1,33 @@ -{ lib, config, inputs, pkgs, options, desktop, ... }: +{ lib, config, inputs, pkgs, options, device, ... }: -let - #inherit (inputs) nixVirt; - #nixvirt.lib = nixVirt.lib; - - nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz"); - - nix-alien = import ( - builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master" - ) {}; - - #nvramPath = "/home/bug/.local/share/libvirt/qemu"; - #win10Config = import ./vms/win10.nix { inherit pkgs nvramPath; uuid = "c08333dc-33f9-4117-969a-ac46e19ba81f"; }; -in { imports = [ /etc/nixos/hardware-configuration.nix - nix-gaming.nixosModules.platformOptimizations - nix-gaming.nixosModules.pipewireLowLatency - ]; + + ./modules/users.nix + ./modules/boot.nix + ./modules/network.nix + ./modules/locale.nix + ./modules/security.nix + ] ++ (if device == "server" then [ + ./modules/packages.nix + ./modules/vscode-server.nix + + ({ pkgs, ... }: { + environment.systemPackages = with pkgs; [ + nh comma nix-index home-manager micro wget git fastfetch + ]; + }) + ] else [ + ./modules/packages.nix + ./modules/cosmic.nix + ./modules/graphics.nix + ./modules/audio.nix + ./modules/home-manager.nix + ./modules/mpd.nix + ./modules/swap.nix + ./modules/virtualisation.nix + ]); system = { stateVersion = "25.11"; @@ -29,639 +38,46 @@ in }; }; - nix.optimise.automatic = true; - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - users.users.bug = { - isNormalUser = true; - description = "Bug"; - extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ]; - }; - - hardware = { - graphics = { - enable = true; - enable32Bit = true; - - extraPackages = with pkgs; [ - libva-vdpau-driver - libvdpau - libvdpau-va-gl - vdpauinfo - libva - libva-utils - libglvnd - mesa - ] ++ (if desktop then [ - nvidia-vaapi-driver - ] else [ - - ]); - }; - - nvidia = if desktop then { - modesetting.enable = true; - - powerManagement.enable = false; - powerManagement.finegrained = false; - - open = false; - - nvidiaSettings = true; - - package = config.boot.kernelPackages.nvidiaPackages.beta; - - nvidiaPersistenced = true; - } else {}; - - enableRedistributableFirmware = true; - }; - - systemd.user.extraConfig = '' - DefaultEnvironment="PATH=/run/current-system/sw/bin" - ''; - - systemd.services.monitord.wantedBy = [ "multi-user.target" ]; - - systemd.services.mpd.environment = { - XDG_RUNTIME_DIR = "/run/user/1000"; - }; - - boot = { - kernelModules = if desktop then ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "uinput"] else []; - kernelParams = if desktop then ["nvidia-drm.modeset=1" "nvidia_drm.fbdev=1"] else []; - - kernelPackages = pkgs.linuxPackages_zen; - - kernel.sysctl = { - "fs.file-max" = 524288; - }; - - initrd.checkJournalingFS = false; - - loader = { - grub.splashImage = null; - - systemd-boot.enable = true; - systemd-boot.configurationLimit = 25; - - efi.canTouchEfiVariables = true; - }; - }; - - swapDevices = [{ - device = "/var/lib/swapfile"; - size = 8 * 1024; - }]; - - zramSwap = { - enable = true; - memoryMax = 64 * 1024 * 1024 * 1024; - }; - - time.timeZone = "America/Chicago"; - - i18n = { - defaultLocale = "en_US.UTF-8"; - extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - }; - - networking = { - hostName = "nix"; - - networkmanager.enable = true; - nameservers = ["1.1.1.1" "1.0.0.1"]; - }; - - services.cloudflare-warp.enable = !desktop; - - security = { - rtkit.enable = true; - polkit.enable = true; - - sudo = { - enable = true; - wheelNeedsPassword = false; - }; - }; - - xdg = { - portal = { - enable = true; - xdgOpenUsePortal = true; - - config = { - common.default = ["gtk"]; - }; - - extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic]; - }; - - mime = { - enable = true; - - defaultApplications = { - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; - "x-scheme-handler/about" = "firefox.desktop"; - "x-scheme-handler/unknown" = "firefox.desktop"; - "application/pdf" = "firefox.desktop"; - - "inode/directory" = "com.system76.CosmicFiles.desktop"; - - "text/plain" = "com.system76.CosmicEdit.desktop"; - "text/markdown" = "com.system76.CosmicEdit.desktop"; - - "application/zip" = "org.gnome.FileRoller.desktop"; - "application/x-7z-compressed" = "org.gnome.FileRoller.desktop"; - "application/x-tar" = "org.gnome.FileRoller.desktop"; - "application/gzip" = "org.gnome.FileRoller.desktop"; - "application/x-xz" = "org.gnome.FileRoller.desktop"; - "application/x-zip-compressed" = "org.gnome.FileRoller.desktop"; - - "application/x-ms-dos-executable" = "wine.desktop"; - }; - }; - }; - - services = { - greetd.enable = true; - - logind.settings.Login = { - HandleLidSwitch = "ignore"; - HandleLidSwitchDocked = "ignore"; - }; - - system76-scheduler.enable = true; - - displayManager = { - cosmic-greeter.enable = true; - - autoLogin = { - enable = desktop; - user = "bug"; - }; - }; - - desktopManager = { - cosmic.enable = true; - }; - - xserver = { - enable = true; - - videoDrivers = if desktop then ["nvidia"] else ["amdgpu"]; - excludePackages = [pkgs.xterm]; - - xkb = { - layout = "us"; - variant = ""; - }; - }; - - fstrim.enable = true; - - openssh = { - enable = true; - - settings = { - PasswordAuthentication = false; - KbdInteractiveAuthentication = false; - - PermitRootLogin = "no"; - - PubkeyAuthentication = true; - - X11Forwarding = true; - AllowTcpForwarding = true; - }; - }; - - pulseaudio.enable = false; - - pipewire = { - enable = true; - - wireplumber.enable = true; - - alsa.enable = true; - alsa.support32Bit = true; - - pulse.enable = true; - - lowLatency.enable = false; - - jack.enable = true; - }; - - mpd = { - enable = !desktop; - - settings = { - music_directory = "/run/media/bug/Music/"; - - decoder = [ - { - plugin = "ffmpeg"; - enabled = "yes"; - } - { - plugin = "opus"; - enabled = "no"; - } - ]; - - audio_output = [{ - type = "pipewire"; - name = "PipeWire Sound Server"; - }]; - }; - - user = "bug"; - }; - - ollama = { - enable = false; - - loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"]; - }; - - flatpak = { - enable = true; - - remotes = lib.mkOptionDefault [{ - name = "flathub-beta"; - location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"; - }]; - - update.auto.enable = true; - uninstallUnmanaged = true; - - packages = [ - "org.vinegarhq.Sober" - "org.vinegarhq.Vinegar" - "org.gnome.Decibels" - "org.pipewire.Helvum" - "community.pathofbuilding.PathOfBuilding" - - { - appId = "com.hytale.Launcher"; - sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0="; - bundle = "${pkgs.fetchurl { - url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak"; - sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0="; - }}"; - } - - # add Polytoria client - # https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak - - { - appId = "com.polytoria.launcher"; - sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg="; - bundle = "${pkgs.fetchurl { - url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak"; - sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg="; - }}"; - } - ]; - - overrides = { - global = { - Context.sockets = ["wayland" "!x11" "!fallback-x11"]; - }; - }; - }; - }; - - fonts = { - fontDir.enable = true; - enableDefaultPackages = true; - - packages = with pkgs; [ - twitter-color-emoji - nerd-fonts.fira-code - nerd-fonts.droid-sans-mono - ]; - - fontconfig = { - enable = true; - useEmbeddedBitmaps = true; - - defaultFonts = { - emoji = [ "Twitter Color Emoji" ]; - }; - }; - }; - - users.users.bug.packages = with pkgs; [ - vscode - - (luajit.withPackages (ps: with ps; [ - luasocket - bit32 - ])) - - go - - (python3.withPackages (ps: with ps; [ - unidecode - discordpy - setuptools - - pip - pynput - python-uinput - - mido - - pyautogui - pygobject3 - pycairo - - tkinter - - numpy - scipy - imageio - - evdev - ])) - - nodejs - - (blender.withPackages (ps: with ps; [ - libGLU - gcc - zlib - xorg.libX11 - fontconfig - pcre2 - xorg.libXext - xorg.libxcb - glib - ])) - - plasticity - obsidian - vesktop - nicotine-plus - fastfetch - tree - gh - scanmem - samrewritten - impression - - mission-center - - authenticator - - steamtinkerlaunch - - obs-studio - - #prismlauncher - - euphonica - - kooha - - loupe - - arduino-ide - ]; - - environment = { - variables = { - MICRO_TRUECOLOR = 1; - } // (if desktop then { - WGPU_BACKEND = "gl"; - GBM_BACKEND = "nvidia-drm"; - LIBVA_DRIVER_NAME = "nvidia"; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - EGL_PLATFORM = "wayland"; - } else { - - }); - - sessionVariables = { - BROWSER = "firefox"; - COSMIC_DATA_CONTROL_ENABLED = 1; - WEBKIT_DISABLE_COMPOSITING_MODE = "1"; - NIXPKGS_ALLOW_UNFREE = 1; - } // (if desktop then { - WGPU_BACKEND = "gl"; - GBM_BACKEND = "nvidia-drm"; - LIBVA_DRIVER_NAME = "nvidia"; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - EGL_PLATFORM = "wayland"; - } else { - - }); - - systemPackages = with pkgs; [ - home-manager - comma - nix-index - - git - wget - - gcc - gnumake - - nmap - inetutils - - nix-prefetch - nix-output-monitor - nvd - - nixfmt - nixd - nil - - nh - - gnome-boxes - - openjdk - zlib - glfw - glew - - wine64 - wineWow64Packages.full - - lug-helper - - appimage-run - - vulkan-tools - vulkan-validation-layers - vulkan-loader - - pulseaudioFull - - gamemode - - winetricks - - steam-run - - firmware-updater - - cosmic-applets - cosmic-edit - cosmic-ext-calculator - cosmic-ext-tweaks - cosmic-screenshot - quick-webapps - - nix-alien.nix-alien - - file-roller - unzip - - xdg-desktop-portal-gtk - xdg-desktop-portal-cosmic - - mangohud - mesa-demos - - lutris - - gnome-software - - neovim - - micro - - inputs.hytale-launcher.packages.${pkgs.system}.default - - baobab - ] ++ (if desktop then [ - (nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override { - tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ]; - }) - - libxshmfence - - (appimage-run.override { - extraPkgs = pkgs: [ pkgs.xorg.libxshmfence pkgs.linuxPackages.nvidia_x11 ]; - }) - ] else [ - (nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override { - tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ]; - }) - - bambu-studio - - inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default - - kitty - ]); + nix = { + optimise.automatic = true; + settings.experimental-features = [ "nix-command" "flakes" ]; }; nixpkgs = { config = { allowUnfree = true; - cudaSupport = desktop; - nvidia.acceptLicense = desktop; + cudaSupport = (device == "desktop"); + nvidia.acceptLicense = (device == "desktop"); }; overlays = [ ]; }; - - virtualisation = { - /* - libvirt = { - enable = true; - connections."qemu:///system" = { - networks = [ - { - definition = nixvirt.lib.network.writeXML (nixvirt.lib.network.templates.bridge { - name = "default"; - uuid = "cda3b7dd-71fd-44e3-8093-340f47a88c83"; - subnet_byte = 122; - bridge_name = "virbr0"; - }); + environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1; - active = true; - } - ]; - - domains = lib.mkForce [ - { definition = nixvirt.lib.domain.writeXML win10Config; } - ]; - }; - }; - */ + systemd = { + user.extraConfig = '' + DefaultEnvironment="PATH=/run/current-system/sw/bin" + ''; - libvirtd.enable = true; - - spiceUSBRedirection.enable = true; + services.monitord.wantedBy = [ "multi-user.target" ]; }; + services.fstrim.enable = true; + programs = { - hyprland.enable = !desktop; - labwc.enable = !desktop; - - dms-shell = { - enable = false; # !desktop; - - enableSystemMonitoring = true; - enableClipboard = true; - enableDynamicTheming = true; - enableAudioWavelength = true; - enableCalendarEvents = true; - - plugins = { - #nixMonitor.enable = true; - - DankNixMonitor = { - enable = true; - src = pkgs.fetchFromGitHub { - owner = "antonjah"; - repo = "nix-monitor"; - rev = "f3dbe00"; - hash = "sha256-biRc7ESKzPK5Ueus1xjVT8OXCHar3+Qi+Osv/++A+Ls="; - }; - }; - }; - }; - - - appimage = { - enable = true; - binfmt = true; - }; - bash.shellAliases = { fetch = "fastfetch --file ~/nix/nix.ans"; - neofetch = "fetch"; - rebuild = "sudo nixos-rebuild switch --impure"; # home-manager switch --impure + rebuild = "ns os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure #pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')"; #pi = "pissh \"cd $(pwd) && bash\""; - pi = "ssh pi.bug.tools"; + #pi = "ssh pi.bug.tools"; + box = "ssh box.bug.tools"; pico = "ssh pico.sh"; @@ -681,59 +97,5 @@ ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _"; hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher"; }; - - firefox = { - enable = true; - - package = pkgs.firefox-bin; - }; - - steam = { - enable = true; - - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = false; - - localNetworkGameTransfers.openFirewall = true; - - gamescopeSession.enable = true; - - extraCompatPackages = with pkgs; [ - proton-ge-bin - ]; - - platformOptimizations.enable = true; - }; - - ydotool.enable = true; - - gamescope = { - enable = true; - capSysNice = true; - args = [ - "--rt" - "--expose-wayland" - ]; - }; - - virt-manager.enable = true; - - nix-ld = { - enable = true; - - libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [ - libxml2 - udev - gcc - egl-wayland - mesa - libglvnd - wayland - xorg.libX11 - xorg.libXcursor - xorg.libXrandr - xorg.libXi - ]); - }; }; } diff --git a/new/modules/audio.nix b/modules/audio.nix similarity index 98% rename from new/modules/audio.nix rename to modules/audio.nix index a27f3c0..4856538 100644 --- a/new/modules/audio.nix +++ b/modules/audio.nix @@ -20,5 +20,5 @@ jack.enable = true; }; - } + }; } \ No newline at end of file diff --git a/new/modules/boot.nix b/modules/boot.nix similarity index 68% rename from new/modules/boot.nix rename to modules/boot.nix index 8eebc51..d9192ba 100644 --- a/new/modules/boot.nix +++ b/modules/boot.nix @@ -7,10 +7,6 @@ kernelPackages = pkgs.linuxPackages_zen; - kernel.sysctl = { - "fs.file-max" = 524288; - }; - initrd.checkJournalingFS = false; loader = { @@ -24,14 +20,4 @@ efi.canTouchEfiVariables = true; }; }; - - swapDevices = [{ - device = "/var/lib/swapfile"; - size = 8 * 1024; - }]; - - zramSwap = { - enable = true; - memoryMax = 64 * 1024 * 1024 * 1024; - }; } \ No newline at end of file diff --git a/new/modules/cosmic.nix b/modules/cosmic.nix similarity index 100% rename from new/modules/cosmic.nix rename to modules/cosmic.nix diff --git a/new/modules/graphics.nix b/modules/graphics.nix similarity index 89% rename from new/modules/graphics.nix rename to modules/graphics.nix index ca9df7d..9789053 100644 --- a/new/modules/graphics.nix +++ b/modules/graphics.nix @@ -29,14 +29,14 @@ libva-utils libglvnd mesa - ] ++ (if desktop then [ + ] ++ (if (device == "desktop") then [ nvidia-vaapi-driver ] else [ ]); }; - nvidia = if desktop then { + nvidia = if (device == "desktop") then { modesetting.enable = true; powerManagement.enable = false; @@ -80,4 +80,9 @@ }); }; + + services.logind.settings.Login = { + HandleLidSwitch = "ignore"; + HandleLidSwitchDocked = "ignore"; + }; } \ No newline at end of file diff --git a/new/modules/home-manager.nix b/modules/home-manager.nix similarity index 100% rename from new/modules/home-manager.nix rename to modules/home-manager.nix diff --git a/new/modules/locale.nix b/modules/locale.nix similarity index 100% rename from new/modules/locale.nix rename to modules/locale.nix diff --git a/new/modules/mailserver.nix b/modules/mailserver.nix similarity index 100% rename from new/modules/mailserver.nix rename to modules/mailserver.nix diff --git a/new/modules/mpd.nix b/modules/mpd.nix similarity index 100% rename from new/modules/mpd.nix rename to modules/mpd.nix diff --git a/new/modules/network.nix b/modules/network.nix similarity index 100% rename from new/modules/network.nix rename to modules/network.nix diff --git a/new/modules/packages.nix b/modules/packages.nix similarity index 98% rename from new/modules/packages.nix rename to modules/packages.nix index ecaafab..0fb323d 100644 --- a/new/modules/packages.nix +++ b/modules/packages.nix @@ -1,4 +1,4 @@ -{ lib, config, inputs, pkgs, options, desktop, ... }: +{ lib, config, inputs, pkgs, options, device, ... }: let nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz"); @@ -192,7 +192,7 @@ in inputs.hytale-launcher.packages.${pkgs.system}.default baobab - ] ++ (if desktop then [ + ] ++ (if (device == "desktop") then [ (nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override { tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ]; }) diff --git a/new/modules/security.nix b/modules/security.nix similarity index 100% rename from new/modules/security.nix rename to modules/security.nix diff --git a/new/modules/swap.nix b/modules/swap.nix similarity index 100% rename from new/modules/swap.nix rename to modules/swap.nix diff --git a/new/modules/users.nix b/modules/users.nix similarity index 100% rename from new/modules/users.nix rename to modules/users.nix diff --git a/new/modules/virtualisation.nix b/modules/virtualisation.nix similarity index 100% rename from new/modules/virtualisation.nix rename to modules/virtualisation.nix diff --git a/new/modules/vscode-server.nix b/modules/vscode-server.nix similarity index 100% rename from new/modules/vscode-server.nix rename to modules/vscode-server.nix diff --git a/new/device.nix b/new/device.nix deleted file mode 100644 index 5a0213e..0000000 --- a/new/device.nix +++ /dev/null @@ -1 +0,0 @@ -{ device = "laptop"; } # Possible values: "desktop", "laptop", "server" \ No newline at end of file diff --git a/new/devices/desktop.nix b/new/devices/desktop.nix deleted file mode 100644 index 0446f5a..0000000 --- a/new/devices/desktop.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ lib, config, inputs, pkgs, options, desktop, ... }: - -{ - imports = [ - ../modules/cosmic.nix - ../modules/graphics.nix - ] -} \ No newline at end of file diff --git a/new/devices/laptop.nix b/new/devices/laptop.nix deleted file mode 100644 index b97dcc5..0000000 --- a/new/devices/laptop.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, device, ... }: - -{ - services.logind.settings.Login = { - HandleLidSwitch = "ignore"; - HandleLidSwitchDocked = "ignore"; - }; -} \ No newline at end of file diff --git a/new/devices/server.nix b/new/devices/server.nix deleted file mode 100644 index 47a6993..0000000 --- a/new/devices/server.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, pkgs, ... }: - -{ - imports = [ - ../modules/vscode-server.nix - ../modules/mailserver.nix - ]; - - environment.systemPackages = with pkgs; [ - nh - comma - nix-index - - home-manager - - micro - wget - git - - fastfetch - ]; -} \ No newline at end of file diff --git a/new/flake.nix b/new/flake.nix deleted file mode 100644 index 55e67ae..0000000 --- a/new/flake.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - inputs = { - # nixpkgs.follows = "nixos-cosmic/nixpkgs"; - - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - - flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest"; - - nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; - - hytale-launcher.url = "github:JPyke3/hytale-launcher-nix"; - - stylix = { - url = "github:nix-community/stylix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - vscode-server.url = "github:nix-community/nixos-vscode-server"; - }; - - outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, ... }: - let - deviceType = import /etc/nixos/device.nix; - system = "x86_64-linux"; - in - { - nixosConfigurations.nix = nixpkgs.lib.nixosSystem { - inherit system; - - specialArgs = { inherit inputs; inherit (deviceType) desktop; }; - - modules = [ - { - nix.settings = { - substituters = [ "https://cosmic.cachix.org/" ]; - trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; - }; - } - - flatpaks.nixosModules.nix-flatpak - - vscode-server.nixosModules.default - - ./configuration.nix - ]; - }; - }; -} diff --git a/new/main.nix b/new/main.nix deleted file mode 100644 index 3617b5b..0000000 --- a/new/main.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ lib, config, inputs, pkgs, options, device, ... }: - -{ - imports = [ - /etc/nixos/hardware-configuration.nix - - ./modules/users.nix - ./modules/boot.nix - ./modules/network.nix - ./modules/locale.nix - ./modules/security.nix - ] ++ (if device == "server" then [ - ./modules/packages.nix - ./modules/vscode-server.nix - - ({ config, pkgs, ... }: { - environment.systemPackages = with pkgs; [ - nh comma nix-index home-manager micro wget git fastfetch - ]; - }) - ] else [ - ./modules/packages.nix - ./modules/cosmic.nix - ./modules/graphics.nix - ./modules/audio.nix - ./modules/home-manager.nix - ./modules/mpd.nix - ./modules/swap.nix - ./modules/virtualisation.nix - ]); - - system = { - stateVersion = "25.11"; - - autoUpgrade = { - enable = true; - allowReboot = true; - }; - }; - - nix = { - optimise.automatic = true; - settings.experimental-features = [ "nix-command" "flakes" ]; - }; - - nixpkgs = { - config = { - allowUnfree = true; - - cudaSupport = (device == "desktop"); - nvidia.acceptLicense = (device == "desktop"); - }; - - overlays = [ - - ]; - }; - - environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1; - - systemd = { - user.extraConfig = '' - DefaultEnvironment="PATH=/run/current-system/sw/bin" - ''; - - services.monitord.wantedBy = [ "multi-user.target" ]; - }; - - services.fstrim.enable = true; - - programs = { - bash.shellAliases = { - fetch = "fastfetch --file ~/nix/nix.ans"; - - rebuild = "ns os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure - - #pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')"; - #pi = "pissh \"cd $(pwd) && bash\""; - #pi = "ssh pi.bug.tools"; - box = "ssh box.bug.tools"; - - pico = "ssh pico.sh"; - - # tuns name port - tuns = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: tun name port\"; exit 1; fi; -if [[ \"$1\" =~ ^[0-9]+$ ]]; then port=\"$1\"; name=\"$2\"; -elif [[ \"$2\" =~ ^[0-9]+$ ]]; then port=\"$2\"; name=\"$1\"; -else echo \"Error: One argument must be a number (port)\"; exit 1; fi; -ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _"; - - # pgs name directory - pgs = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: pgs NAME DIRECTORY\"; exit 1; fi; rsync -rv \"$2\" pgs.sh:/\"$1\"'\'' _"; - - bambu = "env -u WAYLAND_DISPLAY XDG_SESSION_TYPE=x11 WEBKIT_FORCE_COMPOSITING_MODE=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 GBM_BACKEND=dri bambu-studio"; - - scale = "env GDK_BACKEND=x11 GDK_SCALE=1 GDK_DPI_SCALE=1"; - - hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher"; - }; - }; -} diff --git a/vms/win10.nix b/vms/win10.nix deleted file mode 100644 index c230a36..0000000 --- a/vms/win10.nix +++ /dev/null @@ -1,314 +0,0 @@ -{ - nvramPath, - pkgs, - uuid, -}: - -{ - inherit uuid; - type = "kvm"; - - title = "Windows 10"; - name = "win10"; - description = "A Windows 10 vm define in nix"; - - sysinfo = { - type = "smbios"; - bios.entry = [ - { - name = "vendor"; - value = "INSYDE Corp."; - } - { - name = "version"; - value = "03.02"; - } - { - name = "date"; - value = "01/23/2024"; - } - ]; - system.entry = [ - { - name = "manufacturer"; - value = "Framework"; - } - { - name = "product"; - value = "Laptop 16 (AMD Ryzen 7040 Series)"; - } - { - name = "version"; - value = "AG"; - } - { - name = "serial"; - value = "FRAGADDPAG4096006K"; - } - { - name = "uuid"; - value = uuid; - } - { - name = "sku"; - value = "FRAGACCP0G"; - } - { - name = "family"; - value = "16in"; - } - ]; - }; - vcpu = { - count = 4; - placement = "static"; - }; - memory = { - count = 16; - unit = "GiB"; - }; - cputune = { - vcpupin = [ - { - vcpu = 0; - cpuset = "4"; - } - { - vcpu = 1; - cpuset = "5"; - } - { - vcpu = 2; - cpuset = "6"; - } - { - vcpu = 3; - cpuset = "7"; - } - ]; - }; - cpu = { - mode = "host-passthrough"; - check = "none"; - migratable = true; - cache = { - level = 3; - mode = "emulate"; - }; - feature = [ - { - policy = "disable"; - name = "hypervisor"; - } - { - policy = "require"; - name = "svm"; - } - { - policy = "require"; - name = "topoext"; - } - ]; - topology = { - sockets = 1; - dies = 1; - cores = 2; - threads = 2; - }; - }; - - # OS - os = { - type = "hvm"; - arch = "x86_64"; - machine = "pc-q35-8.2"; - loader = { - readonly = true; - type = "pflash"; - path = "${pkgs.OVMFFull.fd}/FV/OVMF_CODE.ms.fd"; - }; - nvram = { - template = "${pkgs.OVMFFull.fd}/FV/OVMF_VARS.ms.fd"; - path = "${nvramPath}/win10gpu.nvram"; - }; - smbios.mode = "sysinfo"; - }; - - features = { - acpi = { }; - apic = { }; - hyperv = { - mode = "custom"; - relaxed = { - state = true; - }; - vapic = { - state = true; - }; - spinlocks = { - state = true; - retries = 8191; - }; - vendor_id = { - state = true; - value = "1234567890ab"; - }; - }; - kvm.hidden = { - state = true; - }; - vmport.state = false; - }; - - clock = { - offset = "localtime"; - timer = [ - { - name = "rtc"; - tickpolicy = "catchup"; - } - { - name = "pit"; - tickpolicy = "delay"; - } - { - name = "hpet"; - present = false; - } - { - name = "hypervclock"; - present = true; - } - ]; - }; - - pm = { - suspend-to-mem = { - enabled = false; - }; - suspend-to-disk = { - enabled = false; - }; - }; - - devices = { - emulator = "${pkgs.qemu}/bin/qemu-system-x86_64"; - - # Disks - hostdev = []; - - # Input - input = [ - { - type = "keyboard"; - bus = "virtio"; - } - { - type = "mouse"; - bus = "virtio"; - } - ]; - - # Video + Audio - graphics = { - type = "spice"; - autoport = true; - listen = { - type = "address"; - }; - image = { - compression = false; - }; - }; - - video = { - model = { - type = "vga"; - vram = 65536; - heads = 1; - primary = true; - }; - }; - - sound = { - model = "ich9"; - }; - audio = { - id = 1; - type = "spice"; - }; - - # Interfaces - controller = [ - { - type = "usb"; - index = 0; - model = "qemu-xhci"; - ports = 15; - } - { - type = "pci"; - index = 0; - model = "pcie-root"; - } - { - type = "virtio-serial"; - index = 0; - } - ]; - - serial = [ - { - type = "pty"; - target = { - type = "isa-serial"; - port = 0; - model.name = "isa-serial"; - }; - } - ]; - - console = [ - { - type = "pty"; - target = { - type = "serial"; - port = 0; - }; - } - ]; - - channel = [ - { - type = "spicevmc"; - target = { - type = "virtio"; - name = "com.redhat.spice.0"; - }; - } - ]; - - # Other - watchdog = { - model = "itco"; - action = "reset"; - }; - memballoon.model = "none"; - }; - - qemu-commandline = { - arg = [ - { value = "-cpu"; } - { value = "host,kvm=off,hv_time,hv_vendor_id=null,-hypervisor"; } - { value = "-machine"; } - { value = "q35"; } - { value = "-device"; } - { value = "{\"driver\":\"ivshmem-plain\",\"id\":\"shmem0\",\"memdev\":\"looking-glass\"}"; } - { value = "-object"; } - { - value = "{\"qom-type\":\"memory-backend-file\",\"id\":\"looking-glass\",\"mem-path\":\"/dev/kvmfr0\",\"size\":134217728,\"share\":true}"; - } - ]; - }; -} -