diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index f12c45a..0000000 --- a/configuration.nix +++ /dev/null @@ -1,226 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ - inputs, - config, - pkgs, - ... -}: - -{ - imports = [ - inputs.home-manager.nixosModules.home-manager - ]; - - home-manager = { - extraSpecialArgs = { inherit inputs; }; - users = { - dea = import ./home.nix; - }; - }; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "tohka"; # Define your hostname. - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Enable networking - networking.networkmanager.enable = true; - - # Set your time zone. - time.timeZone = "America/New_York"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.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"; - }; - - # Enable the X11 windowing system. - # You can disable this if you're only using the Wayland session. - services.xserver.enable = true; - - # Enable the KDE Plasma Desktop Environment. - services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; - - # Configure keymap in X11 - services.xserver.xkb = { - layout = "us"; - variant = ""; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - # hardware.pulseaudio.enable = false; - services.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - security.polkit.enable = true; - - # Enables nginx - services.nginx.enable = true; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - # Define a user account. Don't forget to set a password with ‘passwd’. - - # Enable docker virtualisation. - virtualisation.docker.enable = true; - - # Install firefox. - programs.firefox.enable = true; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - # Enables nix commands + flakes - nix.settings.extra-experimental-features = [ - "nix-command" - "flakes" - "pipe-operators" - ]; - - # ====================== - # List packages installed in system profile. To search, run: - # $ nix search wget - # nixos-rebuild switch --use-remote-sudo - # ====================== - # Update packages?: - # sudo nix-channel --update - # sudo nixos-rebuild switch - # ====================== - # sudo nixos-rebuild switch --flake . - environment.systemPackages = with pkgs; [ - wget - lunarvim - vscode - python3 - p7zip - unzip - chawan # tui browser cha - git - gcc - gdb - glibc.static - nixfmt - - kitty # terminal - wayland - - emacs # calander/todo list - - nemo # file browser - monophony # yt music tryout - - vesktop # discord-canary - equibop # equibop 3.1.7 - - vivaldi # vivaldi install requires qt5 - qt5.qtbase - - starship # shell customizer - - libreoffice-qt # libreoffice - hunspell - hunspellDicts.uk_UA - hunspellDicts.th_TH - openjdk - - notepad-next # notepad++ - sqlitebrowser - - ffmpeg-full - yt-dlp - qbittorrent - - bottles # windows emulation - - element-desktop # element 4 matrix - ]; - - # There have been amdgpu issues in 6.10 so you maybe need to revert on the default lts kernel. - # boot.kernelPackages = pkgs.linuxPackages; - programs.steam = { - enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - }; - - services.mullvad-vpn = { - enable = true; - package = pkgs.mullvad-vpn; # mullvad only has the cli - }; - - programs.nix-ld = { - enable = true; - libraries = with pkgs; [ - ## Put here any library that is required when running a package - ## ... - ## Uncomment if you want to use the libraries provided by default in the steam distribution - ## but this is quite far from being exhaustive - ## https://github.com/NixOS/nixpkgs/issues/354513 - (pkgs.runCommand "steamrun-lib" { } "mkdir $out; ln -s ${pkgs.steam-run.fhsenv}/usr/lib64 $out/lib") - ]; - }; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "24.11"; # Did you read the comment? - -} diff --git a/exprs/overlay.nix b/exprs/overlay.nix deleted file mode 100644 index 2fae41b..0000000 --- a/exprs/overlay.nix +++ /dev/null @@ -1,14 +0,0 @@ -inputs: final: prev: { - waywall = prev.waywall.overrideAttrs ( - f: p: { - version = "0-unstable-2026-01-06"; - - src = prev.fetchFromGitHub { - owner = "tesselslate"; - repo = "waywall"; - rev = "c6504f95f8d757a2e060c4df8bd3ed145ad59e8d"; - hash = "sha256-kfBsppc+esz0Q6iIIKAeOMwkIWdN12AlH3Dji8bU32c="; - }; - } - ); -} \ No newline at end of file diff --git a/flake.lock b/flake.lock index ebc50a0..fd1417c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,17 +1,147 @@ { "nodes": { - "home-manager": { + "cerulean": { "inputs": { + "deploy-rs": "deploy-rs", + "microvm": "microvm", "nixpkgs": [ + "nixpkgs-unstable" + ], + "nt": "nt", + "sops-nix": "sops-nix", + "systems": [ + "systems" + ] + }, + "locked": { + "lastModified": 1774498035, + "narHash": "sha256-7TS/1kjtiVYx9tfzMi5s01Zfc8GloygBVihEaU5+wDs=", + "owner": "cry128", + "repo": "cerulean", + "rev": "22c31ad331145a25125c165d96bd898ae9f3c916", + "type": "github" + }, + "original": { + "owner": "cry128", + "ref": "refactor/snowflake", + "repo": "cerulean", + "type": "github" + } + }, + "deploy-rs": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "cerulean", + "nixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1770019181, + "narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=", + "owner": "serokell", + "repo": "deploy-rs", + "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171", + "type": "github" + }, + "original": { + "owner": "serokell", + "repo": "deploy-rs", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "cerulean", + "nt", + "nix-unit", "nixpkgs" ] }, "locked": { - "lastModified": 1771756436, - "narHash": "sha256-Tl2I0YXdhSTufGqAaD1ySh8x+cvVsEI1mJyJg12lxhI=", + "lastModified": 1762440070, + "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1782949081, + "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": [ + "mango", + "scenefx", + "systems" + ] + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager-unstable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1784913159, + "narHash": "sha256-JWq0BfjO4ktpH5USfQNQzdvHpIDT8fSKD5K7LvdMRFs=", "owner": "nix-community", "repo": "home-manager", - "rev": "5bd3589390b431a63072868a90c0f24771ff4cbb", + "rev": "079a3b5d1aa6a719920a51316253b7d6dd22738d", "type": "github" }, "original": { @@ -20,6 +150,90 @@ "type": "github" } }, + "mango": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs-unstable" + ], + "scenefx": "scenefx" + }, + "locked": { + "lastModified": 1785033711, + "narHash": "sha256-8NLTWtOMa9FUjEPguV8eHL8fLuNRsY1lAM4uBNZGK+Y=", + "owner": "mangowm", + "repo": "mango", + "rev": "1b6e01d72c1985024235be044ad8799ed0f8326a", + "type": "github" + }, + "original": { + "owner": "mangowm", + "repo": "mango", + "type": "github" + } + }, + "microvm": { + "inputs": { + "nixpkgs": [ + "cerulean", + "nixpkgs" + ], + "spectrum": "spectrum" + }, + "locked": { + "lastModified": 1773018425, + "narHash": "sha256-fpgZBmZpKoEXEowBK/6m8g9FcOLWQ4UxhXHqCw2CpSM=", + "owner": "microvm-nix", + "repo": "microvm.nix", + "rev": "25ebda3c558e923720c965832dc9a04f559a055c", + "type": "github" + }, + "original": { + "owner": "microvm-nix", + "repo": "microvm.nix", + "type": "github" + } + }, + "millennium": { + "inputs": { + "millennium-src": "millennium-src", + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "dir": "packages/nix", + "lastModified": 1784860807, + "narHash": "sha256-nznQFS9H8er9bTwxKG4LSa2D0lGsxIPUqDuWa1rbJkA=", + "owner": "SteamClientHomebrew", + "repo": "millennium", + "rev": "266e41ea8924c41e51145ae986a9bdf68f9415d9", + "type": "github" + }, + "original": { + "dir": "packages/nix", + "owner": "SteamClientHomebrew", + "repo": "millennium", + "type": "github" + } + }, + "millennium-src": { + "flake": false, + "locked": { + "lastModified": 1783268941, + "narHash": "sha256-MJLJ0I48HXgfOpISTAbDMYMUdWj9A6M+jGQz4uAvwyw=", + "owner": "SteamClientHomebrew", + "repo": "Millennium", + "rev": "f37f05bdbd4727d873a1ad83ce72d062ef9a0c48", + "type": "github" + }, + "original": { + "owner": "SteamClientHomebrew", + "repo": "Millennium", + "rev": "f37f05bdbd4727d873a1ad83ce72d062ef9a0c48", + "type": "github" + } + }, "nix-flatpak": { "locked": { "lastModified": 1767983141, @@ -36,13 +250,61 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "cerulean", + "nt", + "nix-unit", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737420293, + "narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nix-unit": { + "inputs": { + "flake-parts": "flake-parts", + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "cerulean", + "nt", + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1762774186, + "narHash": "sha256-hRADkHjNt41+JUHw2EiSkMaL4owL83g5ZppjYUdF/Dc=", + "owner": "nix-community", + "repo": "nix-unit", + "rev": "1c9ab50554eed0b768f9e5b6f646d63c9673f0f7", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-unit", + "type": "github" + } + }, "nixcats": { "locked": { - "lastModified": 1770584904, - "narHash": "sha256-9Zaz8lbKF2W9pwXZEnbiGsicHdBoU+dHt3Wv3mCJoZ8=", + "lastModified": 1777273601, + "narHash": "sha256-xBUa8Tl9V7IXI+VmLEuDc81La/EhoSn1C3EVSnJ3cfU=", "owner": "BirdeeHub", "repo": "nixCats-nvim", - "rev": "538fdde784d2909700d97a8ef307783b33a86fb1", + "rev": "f69ea013e328841a7def7037ed59788a76be8816", "type": "github" }, "original": { @@ -53,11 +315,42 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771369470, - "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "lastModified": 1767313136, + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0182a361324364ae3f436a63005877674cf45efb", + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1782614948, + "narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1784796856, + "narHash": "sha256-wWFrV5/Qbm+lyt5x20E/bSbfJiGKMo4RCxZV8cl/WZI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e2587caef70cea85dd97d7daab492899902dbf5d", "type": "github" }, "original": { @@ -67,21 +360,56 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1785030361, + "narHash": "sha256-CzyekASpsH73NBvS2IQxyDd3Se0RiX4u6tqMBhiIEFU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c19bef392dec3a8bfd60dbd1f4013233b8af9cf5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "nt": { + "inputs": { + "nix-unit": "nix-unit", + "nixpkgs": "nixpkgs", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1773738366, + "narHash": "sha256-oH22HyNHEdCoCQo734sQCHUr6C0jmGQJMZ13dsgEHkk=", + "owner": "cry128", + "repo": "nt", + "rev": "f32c3a726a3d608d30aaaa1df2301c1eaf5ef8f4", + "type": "github" + }, + "original": { + "owner": "cry128", + "repo": "nt", + "type": "github" + } + }, "plasma-manager": { "inputs": { "home-manager": [ - "home-manager" + "home-manager-unstable" ], "nixpkgs": [ - "nixpkgs" + "nixpkgs-unstable" ] }, "locked": { - "lastModified": 1770766818, - "narHash": "sha256-12RCFLyAedyMOdenUi7cN3ioJPEGjA/ZG1BLjugfUVs=", + "lastModified": 1783574839, + "narHash": "sha256-ICof1tV4/9XheBLBGf7dhMhfMq4dOs1zwTHrr7zGFlA=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "44b928068359b7d2310a34de39555c63c93a2c90", + "rev": "c551f0687658e4bb699cfff6015436ad7ee57a0d", "type": "github" }, "original": { @@ -92,11 +420,222 @@ }, "root": { "inputs": { - "home-manager": "home-manager", + "cerulean": "cerulean", + "home-manager-unstable": "home-manager-unstable", + "mango": "mango", + "millennium": "millennium", "nix-flatpak": "nix-flatpak", "nixcats": "nixcats", - "nixpkgs": "nixpkgs", - "plasma-manager": "plasma-manager" + "nixpkgs": "nixpkgs_2", + "nixpkgs-unstable": "nixpkgs-unstable", + "plasma-manager": "plasma-manager", + "sddm-silent": "sddm-silent", + "systems": "systems_4", + "zen-browser": "zen-browser" + } + }, + "scenefx": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "mango", + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1782624992, + "narHash": "sha256-vUjLG6eubEhJJVa9LPygIcVmNoHwYbSUTJcWEcbxnU4=", + "owner": "wlrfx", + "repo": "scenefx", + "rev": "37ccd723bef49e6891156ffafce8f549f01446cc", + "type": "github" + }, + "original": { + "owner": "wlrfx", + "repo": "scenefx", + "type": "github" + } + }, + "sddm-silent": { + "inputs": { + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1785015872, + "narHash": "sha256-7dTNd8o3xInMXSBRkRCkHAGQc+e0mrlljDGTXKhk6I0=", + "owner": "uiriansan", + "repo": "SilentSDDM", + "rev": "da69191d32721c1f093d13bfd803e8d8000bd712", + "type": "github" + }, + "original": { + "owner": "uiriansan", + "repo": "SilentSDDM", + "type": "github" + } + }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "cerulean", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1773096132, + "narHash": "sha256-M3zEnq9OElB7zqc+mjgPlByPm1O5t2fbUrH3t/Hm5Ag=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "d1ff3b1034d5bab5d7d8086a7803c5a5968cd784", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "sops-nix", + "type": "github" + } + }, + "spectrum": { + "flake": false, + "locked": { + "lastModified": 1772189877, + "narHash": "sha256-i1p90Rgssb//aNiTDFq46ZG/fk3LmyRLChtp/9lddyA=", + "ref": "refs/heads/main", + "rev": "fe39e122d898f66e89ffa17d4f4209989ccb5358", + "revCount": 1255, + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + }, + "original": { + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + } + }, + "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" + } + }, + "systems_3": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "cerulean", + "nt", + "nix-unit", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762410071, + "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "97a30861b13c3731a84e09405414398fbf3e109f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": [ + "home-manager-unstable" + ], + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1784985989, + "narHash": "sha256-Mz4G81HXJlUtHoJtA31D+Ob7uma2BX7E/y7F9QazuFc=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "a8f9b6d014c9cfe0615dccb2bc7808713f6e62c2", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index dece79e..3268352 100644 --- a/flake.nix +++ b/flake.nix @@ -2,56 +2,52 @@ description = "release the dea files"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; + systems.url = "github:nix-systems/default-linux"; + + nixpkgs.url = "github:NixOS/nixpkgs"; + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager-unstable.url = "github:nix-community/home-manager"; + home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable"; + + cerulean.url = "github:cry128/cerulean/refactor/snowflake"; + cerulean.inputs.systems.follows = "systems"; + cerulean.inputs.nixpkgs.follows = "nixpkgs-unstable"; + + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + inputs.home-manager.follows = "home-manager-unstable"; + }; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; nixcats.url = "github:BirdeeHub/nixCats-nvim"; + millennium = { + url = "github:SteamClientHomebrew/millennium?dir=packages/nix"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + plasma-manager = { url = "github:nix-community/plasma-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.home-manager.follows = "home-manager"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + inputs.home-manager.follows = "home-manager-unstable"; }; - }; + + mango = { + url = "github:mangowm/mango"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; + + sddm-silent = { + url = "github:uiriansan/SilentSDDM"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; +}; nixConfig = { extra-experimental-features = "pipe-operators"; }; - outputs = - inputs@{ self, nixpkgs, nixcats, ... }: - let - lib = nixpkgs.lib; - - commonModules = [ - ./configuration.nix - ./user.nix - inputs.nix-flatpak.nixosModules.nix-flatpak - ]; - in - { - # laptop - nixosConfigurations.nahemah = lib.nixosSystem { - specialArgs = { - host = "nahemah"; - inherit inputs; - }; - modules = [ - ./hosts/nahemah/hardware-configuration.nix - ] - ++ commonModules; - }; - - # pc - nixosConfigurations.sandalphon = lib.nixosSystem { - specialArgs = { inherit inputs; }; - modules = [ - ./hosts/sandalphon/hardware-configuration.nix - ./hosts/sandalphon/configuration.nix - ./hosts/sandalphon/games.nix - ] - ++ commonModules; - }; - }; + outputs = {cerulean, ...} @ inputs: + cerulean.snow.flake inputs ./.; } diff --git a/groups/all/default.nix b/groups/all/default.nix new file mode 100644 index 0000000..ab72c63 --- /dev/null +++ b/groups/all/default.nix @@ -0,0 +1,30 @@ +# configuration shared by all cerulean nodes +{lib, ...}: { + nix.settings.extra-experimental-features = [ + "nix-command" + "flakes" + "pipe-operators" + ]; + + boot.loader.systemd-boot.enable = lib.mkDefault true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = lib.mkDefault "tohka"; + networking.networkmanager.enable = true; + networking.nftables.enable = true; # firewall + networking.firewall.enable = true; + + time.timeZone = lib.mkDefault "America/New_York"; + i18n.defaultLocale = lib.mkDefault "en_US.UTF-8"; + i18n.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"; + }; +} diff --git a/groups/yezelhlev/default.nix b/groups/yezelhlev/default.nix new file mode 100644 index 0000000..0a16c0f --- /dev/null +++ b/groups/yezelhlev/default.nix @@ -0,0 +1,109 @@ +{ + pkgs, + root, + lib, # temp call for services.displayManager.sddm.wayland.enable + ... +}: { + imports = [ + ./programs.nix + /${root}/hosts/modules/steam.nix + ]; + + # Configure keymap in X11 + services.xserver.enable = true; + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + # Enable the KDE Plasma Desktop Environment. + services.displayManager.sddm = { + enable = true; + wayland.enable = lib.mkDefault true; + }; + + services.desktopManager.plasma6.enable = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + audio.enable = true; + wireplumber.enable = true; + + alsa.enable = true; + alsa.support32Bit = true; + # pulse.enable = true; + # jack.enable = true; + }; + + security.polkit.enable = true; + + services.nginx.enable = true; + + services.mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; # mullvad only has the cli + }; + + # Enable docker virtualisation. + virtualisation.docker.enable = true; + + programs.nix-ld = { + enable = true; + libraries = [ + ## Put here any library that is required when running a package + ## ... + ## Uncomment if you want to use the libraries provided by default in the steam distribution + ## but this is quite far from being exhaustive + ## https://github.com/NixOS/nixpkgs/issues/354513 + (pkgs.runCommand "steamrun-lib" {} "mkdir $out; ln -s ${pkgs.steam-run.fhsenv}/usr/lib64 $out/lib") + ]; + }; + + programs.nh = { + enable = true; + clean.enable = true; + clean.extraArgs = "--keep-since 7d --keep 3"; + flake = "/home/dea/dea-files"; # sets NH_OS_FLAKE variable for you + }; + + programs.mango = { + enable = false; # TODO: enable mango after configuring + }; + + programs.silentSDDM = { + enable = true; + theme = "default"; + }; + + users.users.dea = { + description = "dea"; + isNormalUser = true; + extraGroups = [ + "networkmanager" + "wheel" + "docker" + ]; + packages = with pkgs; [ + kdePackages.kate + # thunderbird + ]; + }; + + # Better alternative to the standard ssh-agent + # services.pcscd.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.11"; # Did you read the comment? +} diff --git a/groups/yezelhlev/programs.nix b/groups/yezelhlev/programs.nix new file mode 100644 index 0000000..8172e93 --- /dev/null +++ b/groups/yezelhlev/programs.nix @@ -0,0 +1,74 @@ +{upkgs, ...}: { + # ====================== + # List packages installed in system profile. To search, run: + # $ nix search wget + # nixos-rebuild switch --use-remote-sudo + # ====================== + # Update packages?: + # sudo nix-channel --update + # sudo nixos-rebuild switch + # ====================== + # sudo nixos-rebuild switch --flake . + environment.systemPackages = with upkgs; [ + # CLI tools + git + lazygit + wget + unzip + p7zip + kitty # terminal + starship # shell customizer + tree + btop-cuda # system monitoring + croc # e2ee file transfer + chawan # tui browser cha + shellcheck # sh warning + calcure # calendar app TODO: remove & fork calendar.vim + + # fonts + nerd-fonts.droid-sans-mono + + # editors + vscode + + # languages + gcc + gdb + glibc.static + python3 + nixfmt + + # window management + wayland + waywall + pipewire + + # programs + vivaldi # TODO: switch to zen later + vesktop # discord-canary + equibop # equibop 3.1.7 + element-desktop # element 4 matrix + monophony # yt music tryout + syncplay + qbittorrent + libreoffice-qt # libreoffice + notepad-next # notepad++ + # notepadqq # TODO: which is better? + sqlitebrowser + bottles # windows emulation + + # dependencies + libsForQt5.qtbase # vivaldi + others + libsForQt5.qtstyleplugin-kvantum # libs for Qt5 + libsForQt5.qt5ct + qt5.qtbase + + hunspell # spellcheck for libreoffice + hunspellDicts.uk_UA + hunspellDicts.th_TH + openjdk + + ffmpeg-full # mpv + syncplay + yt-dlp + ]; +} diff --git a/home.nix b/home.nix deleted file mode 100644 index 12f30b0..0000000 --- a/home.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - pkgs, - inputs, - ... -}: - -{ - # Enables nix commands + flakes - set in configuration.nix - # nix = { - # settings.extra-experimental-features = [ - # "nix-command" - # "flakes" - # "pipe-operators" - # ]; - # }; - - # Home manager things - home.username = "dea"; - home.homeDirectory = "/home/dea"; - home.stateVersion = "25.11"; - home.packages = with pkgs; [ - libsForQt5.qtstyleplugin-kvantum # libs for Qt5 - libsForQt5.qt5ct - libsForQt5.qt5.qtbase - btop-cuda - - croc - syncplay - ]; - - # programs.neovim = { }; - - home.sessionPath = [ - "$HOME/.local/bin" - ]; - - nixpkgs.config.allowUnfree = true; - nixpkgs.overlays = [ - (import ./exprs/overlay.nix { }) - (self: super: { - element-desktop = super.element-desktop.overrideAttrs ( - final: prev: { - desktopItems = [ - ((builtins.elemAt prev.desktopItems 0).override { - exec = "element-desktop %u --password-store=\"gnome-libsecret\""; - }) - ]; - } - ); - }) - ]; - imports = [ - ./homemanager/mpv.nix - ./hosts/sandalphon/mcsr/home.nix - ./homemanager/vim/nixcats.nix - inputs.plasma-manager.homeModules.plasma-manager - ]; - - # dconf.settings = {}; - - # home = {}; - - programs.bash = { - enable = true; - bashrcExtra = builtins.readFile ./homemanager/bashrc; - }; - - programs.starship = { - enable = true; - settings = builtins.readFile ./homemanager/starship.toml - |> builtins.fromTOML; - }; - - programs.plasma = { - enable = true; - kwin.edgeBarrier = 50; - }; - - programs.home-manager.enable = true; -} diff --git a/homemanager/bashrc b/homemanager/bashrc deleted file mode 100644 index 1947c6f..0000000 --- a/homemanager/bashrc +++ /dev/null @@ -1,17 +0,0 @@ -eval "$(starship init bash)" - -alias eep='systemctl suspend' -alias hibernate='systemctl hybrid-sleep' -alias restart='systemctl reboot' -alias shutdown='systemctl poweroff' -alias vim='dvim' -alias nvim='dvim' -rebuild() { - if [ -z "$1" ] - then - sudo nixos-rebuild switch --flake ~/dea-files#"$(hostname)" - else - sudo nixos-rebuild switch --flake ~/dea-files#"$1" - fi -} -[ -f "/home/dea/.ghcup/env" ] && . "/home/dea/.ghcup/env" # ghcup-env diff --git a/homes/dea/default.nix b/homes/dea/default.nix new file mode 100644 index 0000000..0a41632 --- /dev/null +++ b/homes/dea/default.nix @@ -0,0 +1,42 @@ +{ + config, + inputs, + root, + ... +}: { + imports = [ + inputs.plasma-manager.homeModules.plasma-manager # + + #/${root}/homes/modules/shell + /${root}/homes/modules/bash + /${root}/homes/modules/starship + /${root}/homes/modules/vim + /${root}/homes/modules/mpv + /${root}/homes/modules/zen + /${root}/homes/modules/wm + ]; + + home.username = "dea"; + home.homeDirectory = "/home/dea"; + home.sessionPath = [ + "$HOME/.local/bin" + ]; + home.shellAliases = { + eep = "systemctl suspend"; + hibernate = "systemctl hybrid-sleep"; + restart = "systemctl reboot"; + shutdown = "systemctl poweroff"; + vim = "dvim"; + nvim = "dvim"; + rebuild = "nh os switch ~/dea-files"; + trybuild = "nh os test ~/dea-files"; + }; + + programs.plasma = { + enable = true; + kwin.edgeBarrier = 50; + }; + + # DO NOT MODIFY + home.stateVersion = "25.11"; +} diff --git a/homes/modules/bash/bashrc b/homes/modules/bash/bashrc new file mode 100644 index 0000000..b1070af --- /dev/null +++ b/homes/modules/bash/bashrc @@ -0,0 +1,3 @@ +eval "$(starship init bash)" + +[ -f "/home/dea/.ghcup/env" ] && . "/home/dea/.ghcup/env" # ghcup-env diff --git a/homes/modules/bash/default.nix b/homes/modules/bash/default.nix new file mode 100644 index 0000000..8078099 --- /dev/null +++ b/homes/modules/bash/default.nix @@ -0,0 +1,6 @@ +{...}: { + programs.bash = { + enable = true; + bashrcExtra = builtins.readFile ./bashrc; + }; +} diff --git a/homemanager/mpv.nix b/homes/modules/mpv/default.nix similarity index 100% rename from homemanager/mpv.nix rename to homes/modules/mpv/default.nix diff --git a/homes/modules/starship/default.nix b/homes/modules/starship/default.nix new file mode 100644 index 0000000..39017df --- /dev/null +++ b/homes/modules/starship/default.nix @@ -0,0 +1,8 @@ +{...}: { + programs.starship = { + enable = true; + settings = + builtins.readFile ./starship.toml + |> builtins.fromTOML; + }; +} diff --git a/homemanager/starship.toml b/homes/modules/starship/starship.toml similarity index 100% rename from homemanager/starship.toml rename to homes/modules/starship/starship.toml diff --git a/homes/modules/vim/default.nix b/homes/modules/vim/default.nix new file mode 100644 index 0000000..c42d9b4 --- /dev/null +++ b/homes/modules/vim/default.nix @@ -0,0 +1 @@ +import ./nixcats.nix diff --git a/homemanager/vim/init.lua b/homes/modules/vim/init.lua similarity index 100% rename from homemanager/vim/init.lua rename to homes/modules/vim/init.lua diff --git a/homemanager/vim/lua/lsp/capabilities.lua b/homes/modules/vim/lua/lsp/capabilities.lua similarity index 100% rename from homemanager/vim/lua/lsp/capabilities.lua rename to homes/modules/vim/lua/lsp/capabilities.lua diff --git a/homemanager/vim/lua/lsp/completion.lua b/homes/modules/vim/lua/lsp/completion.lua similarity index 100% rename from homemanager/vim/lua/lsp/completion.lua rename to homes/modules/vim/lua/lsp/completion.lua diff --git a/homemanager/vim/lua/lsp/indentation.lua b/homes/modules/vim/lua/lsp/indentation.lua similarity index 66% rename from homemanager/vim/lua/lsp/indentation.lua rename to homes/modules/vim/lua/lsp/indentation.lua index df7c2a8..edab845 100644 --- a/homemanager/vim/lua/lsp/indentation.lua +++ b/homes/modules/vim/lua/lsp/indentation.lua @@ -7,6 +7,15 @@ vim.api.nvim_create_autocmd("FileType", { end, }) +vim.api.nvim_create_autocmd("FileType", { + pattern = "hs", + callback = function() + vim.opt_local.shiftwidth = 2 + vim.opt_local.tabstop = 2 + vim.opt_local.expandtab = true + end, +}) + vim.api.nvim_create_autocmd("FileType", { pattern = "nix", callback = function() diff --git a/homemanager/vim/lua/lsp/init.lua b/homes/modules/vim/lua/lsp/init.lua similarity index 100% rename from homemanager/vim/lua/lsp/init.lua rename to homes/modules/vim/lua/lsp/init.lua diff --git a/homemanager/vim/lua/lsp/lsp.lua b/homes/modules/vim/lua/lsp/lsp.lua similarity index 100% rename from homemanager/vim/lua/lsp/lsp.lua rename to homes/modules/vim/lua/lsp/lsp.lua diff --git a/homemanager/vim/lua/plugins/comment.lua b/homes/modules/vim/lua/plugins/comment.lua similarity index 100% rename from homemanager/vim/lua/plugins/comment.lua rename to homes/modules/vim/lua/plugins/comment.lua diff --git a/homemanager/vim/lua/plugins/dressing.lua b/homes/modules/vim/lua/plugins/dressing.lua similarity index 100% rename from homemanager/vim/lua/plugins/dressing.lua rename to homes/modules/vim/lua/plugins/dressing.lua diff --git a/homemanager/vim/lua/plugins/format.lua b/homes/modules/vim/lua/plugins/format.lua similarity index 100% rename from homemanager/vim/lua/plugins/format.lua rename to homes/modules/vim/lua/plugins/format.lua diff --git a/homemanager/vim/lua/plugins/fyler.lua b/homes/modules/vim/lua/plugins/fyler.lua similarity index 100% rename from homemanager/vim/lua/plugins/fyler.lua rename to homes/modules/vim/lua/plugins/fyler.lua diff --git a/homemanager/vim/lua/plugins/init.lua b/homes/modules/vim/lua/plugins/init.lua similarity index 100% rename from homemanager/vim/lua/plugins/init.lua rename to homes/modules/vim/lua/plugins/init.lua diff --git a/homemanager/vim/lua/plugins/mini-hipatterns.lua b/homes/modules/vim/lua/plugins/mini-hipatterns.lua similarity index 100% rename from homemanager/vim/lua/plugins/mini-hipatterns.lua rename to homes/modules/vim/lua/plugins/mini-hipatterns.lua diff --git a/homemanager/vim/lua/plugins/orgmode.lua b/homes/modules/vim/lua/plugins/orgmode.lua similarity index 100% rename from homemanager/vim/lua/plugins/orgmode.lua rename to homes/modules/vim/lua/plugins/orgmode.lua diff --git a/homemanager/vim/lua/plugins/telescope.lua b/homes/modules/vim/lua/plugins/telescope.lua similarity index 100% rename from homemanager/vim/lua/plugins/telescope.lua rename to homes/modules/vim/lua/plugins/telescope.lua diff --git a/homemanager/vim/lua/plugins/treesitter.lua b/homes/modules/vim/lua/plugins/treesitter.lua similarity index 100% rename from homemanager/vim/lua/plugins/treesitter.lua rename to homes/modules/vim/lua/plugins/treesitter.lua diff --git a/homemanager/vim/nixcats.nix b/homes/modules/vim/nixcats.nix similarity index 99% rename from homemanager/vim/nixcats.nix rename to homes/modules/vim/nixcats.nix index 32b54cc..b45a388 100644 --- a/homemanager/vim/nixcats.nix +++ b/homes/modules/vim/nixcats.nix @@ -85,6 +85,7 @@ in nvim-web-devicons base16-nvim mini-nvim + calendar-vim (pkgs.vimUtils.buildVimPlugin { pname = "candyland-nvim"; diff --git a/homes/modules/wm/default.nix b/homes/modules/wm/default.nix new file mode 100644 index 0000000..85a8041 --- /dev/null +++ b/homes/modules/wm/default.nix @@ -0,0 +1,14 @@ +{ lib, ... }: + +{ + options = { + deaFiles.wm = lib.mkOption { + type = lib.types.enum [(lib.listDir ./. |> builtins.toString)]; + default = null; + }; + }; + + config = { + deaFiles.wm = "mangowc"; + }; +} diff --git a/homes/modules/wm/mango.conf b/homes/modules/wm/mango.conf new file mode 100644 index 0000000..ab4bd54 --- /dev/null +++ b/homes/modules/wm/mango.conf @@ -0,0 +1,39 @@ +# Monitors +# main monitor +# monitorrule = name: + +# Startup +# exec-once waybar +# exec-once awww-daemon + +exec-once = playerctld daemon + +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XDG_SESSION_TYPE=wayland XDG_CURRENT_DESKTOP=wlroots PATH + +# Keyboard/mouse +repeat_rate = 20 +repeat_delay = 200 + +xkb_rules_layout = us +xkb_rules_variant = basic + +trackpad_natural_scrolling = 0 +scroll_method = 1 +disable_while_typing = 0 + +mouse_natural_scrolling = 0 +accel_profile = 0 + +# https://github.com/fcitx/fcitx5 (chinese pinyin) +env=GTK_IM_MODULE,fcitx +env=QT_IM_MODULE,fcitx +env=QT_IM_MODULES,wayland;fcitx +env=SDL_IM_MODULE,fcitx +env=XMODIFIERS,@im=fcitx +env=GLFW_IM_MODULE,ibus + +# Screenshare +# TODO: pipewire, pipewire-pulse, xdg-desktop-portal-wlr +# +# #source= + diff --git a/homes/modules/wm/mangowc/default.nix b/homes/modules/wm/mangowc/default.nix new file mode 100644 index 0000000..d5928f6 --- /dev/null +++ b/homes/modules/wm/mangowc/default.nix @@ -0,0 +1,14 @@ +{ inputs, ... }: + +{ + wayland.windowManager.mango = { + enable = true; + }; + + systemd = { + enable = true; + xdgAutostart = true; + }; + + settings = builtins.readFile ./mango.conf; +} diff --git a/homes/modules/zen/default.nix b/homes/modules/zen/default.nix new file mode 100644 index 0000000..3044c4e --- /dev/null +++ b/homes/modules/zen/default.nix @@ -0,0 +1,15 @@ +{ + inputs, + ... +}: + +{ + imports = [ + inputs.zen-browser.homeModules.twilight + ]; + + programs.zen-browser = { + enable = true; + # policies = {}; + }; +} diff --git a/hosts/modules/steam.nix b/hosts/modules/steam.nix new file mode 100644 index 0000000..7d409b6 --- /dev/null +++ b/hosts/modules/steam.nix @@ -0,0 +1,24 @@ +{upkgs, ...}: { + programs.steam = { + enable = true; + package = upkgs.millennium-steam; + + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + localNetworkGameTransfers.openFirewall = true; + + extraCompatPackages = with upkgs; [ + proton-ge-bin + ]; + }; + + programs.gamemode.enable = true; + + environment.systemPackages = with upkgs; [ + steamcmd + protonup-qt + + bottles + mangohud + ]; +} diff --git a/hosts/nahemah/configuration.nix b/hosts/nahemah/configuration.nix deleted file mode 100644 index 604175f..0000000 --- a/hosts/nahemah/configuration.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - pkgs, - ... -}: - -{ - networking.hostName = lib.mkForce "nahemah"; - - environment.systemPackages = with pkgs; [ - - ]; -} diff --git a/hosts/nahemah/default.nix b/hosts/nahemah/default.nix new file mode 100644 index 0000000..97a6981 --- /dev/null +++ b/hosts/nahemah/default.nix @@ -0,0 +1,76 @@ +{ + root, + ... +}: { + imports = [ + ./hardware-configuration.nix + ]; + + networking.hostName = "nahemah"; + + # lock screen theming + programs.silentSDDM = { + backgrounds.dea = /${root}/assets/wallpapers/lantern.png; + profileIcons.dea = /${root}/assets/pfps/happy.jpg; + settings = { + "General" = { + background-fill-mode = "fill"; + }; + "LockScreen" = { + background = "lantern.png"; + blur = 0; + }; + "LockScreen.Clock" = { + position = "center-right"; + align = "center"; + font = "DroidSansM Nerd Font"; + font-size = 160; + }; + "LockScreen.Date" = { + display = false; + }; + "LockScreen.Message" = { + display = true; + position = "bottom-center"; + align = "center"; + text = "Have a maimai day :3"; + font-family = "DroidSansM Nerd Font"; + display-icon = false; + }; + "LoginScreen" = { + background = "lantern.png"; + }; + "LoginScreen.LoginArea" = { + position = "right"; + margin = 96; + }; + "LoginScreen.LoginArea.Avatar" = { + shape = "square"; + active-border-color = "#c4c4f1"; + active-border-size = 4; + }; + "LoginScreen.LoginArea.Username" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.LoginArea.PasswordInput" = { + font-family = "DroidSansM Nerd Font"; + width = 216; + }; + "LoginScreen.LoginArea.Spinner" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.LoginArea.WarningMessage" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.MenuArea.Buttons" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.MenuArea.Popups" = { + font-family = "DroidSansM Nerd Font"; + }; + "Tooltips" = { + font-family = "DroidSansM Nerd Font"; + }; + }; + }; +} diff --git a/hosts/sandalphon/configuration.nix b/hosts/sandalphon/configuration.nix deleted file mode 100644 index b333047..0000000 --- a/hosts/sandalphon/configuration.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - lib, - inputs, - pkgs, - config, - ... -}: - -let - nvidiaPackage = config.hardware.nvidia.package; -in -{ - networking.hostName = lib.mkForce "sandalphon"; - - # nvidia drivers - hardware.graphics.enable = true; - services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ]; - hardware.nvidia = { - modesetting.enable = true; - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead - # of just the bare essentials. - powerManagement.enable = false; - - powerManagement.finegrained = false; - # open = true; - open = lib.mkOverride 990 (nvidiaPackage ? open && nvidiaPackage ? firmware); - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - - services.flatpak = { - enable = true; - packages = [ - { - appId = "org.vinegarhq.Sober"; - origin = "flathub"; - } - ]; - }; - - environment.systemPackages = with pkgs; [ - - ]; -} diff --git a/hosts/sandalphon/default.nix b/hosts/sandalphon/default.nix new file mode 100644 index 0000000..e29adb7 --- /dev/null +++ b/hosts/sandalphon/default.nix @@ -0,0 +1,105 @@ +{ + config, + root, + ... +}: { + imports = [ + ./hardware-configuration.nix + ./games.nix + ]; + + networking.hostName = "sandalphon"; + + # nvidia drivers + hardware.graphics.enable = true; + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.stable; + open = true; + + nvidiaSettings = true; + modesetting.enable = true; + powerManagement.enable = false; + powerManagement.finegrained = false; + }; + + # lock screen theming + programs.silentSDDM = { + backgrounds.dea = /${root}/assets/wallpapers/lock.png; + profileIcons.dea = /${root}/assets/pfps/happy.jpg; + settings = { + "General" = { + background-fill-mode = "fill"; + }; + "LockScreen" = { + background = "lock.png"; + blur = 0; + }; + "LockScreen.Clock" = { + position = "center-left"; + align = "center"; + font = "DroidSansM Nerd Font"; + font-size = 160; + }; + "LockScreen.Date" = { + display = false; + }; + "LockScreen.Message" = { + display = true; + position = "bottom-center"; + align = "center"; + text = "Have a maimai day :3"; + font-family = "DroidSansM Nerd Font"; + display-icon = false; + }; + "LoginScreen" = { + background = "lock.png"; + }; + "LoginScreen.LoginArea" = { + position = "left"; + margin = 96; + }; + "LoginScreen.LoginArea.Avatar" = { + shape = "square"; + active-border-color = "#c4c4f1"; + active-border-size = 4; + }; + "LoginScreen.LoginArea.Username" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.LoginArea.PasswordInput" = { + font-family = "DroidSansM Nerd Font"; + width = 216; + }; + "LoginScreen.LoginArea.Spinner" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.LoginArea.WarningMessage" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.MenuArea.Buttons" = { + font-family = "DroidSansM Nerd Font"; + }; + "LoginScreen.MenuArea.Popups" = { + font-family = "DroidSansM Nerd Font"; + }; + "Tooltips" = { + font-family = "DroidSansM Nerd Font"; + }; + }; + }; + + services.flatpak = { + enable = true; + packages = [ + { + appId = "org.vinegarhq.Sober"; + origin = "flathub"; + } + ]; + }; + + home-manager.sharedModules = [ + ./mcsr + ]; +} diff --git a/hosts/sandalphon/games.nix b/hosts/sandalphon/games.nix index ec1fe17..2550cdb 100644 --- a/hosts/sandalphon/games.nix +++ b/hosts/sandalphon/games.nix @@ -1,17 +1,13 @@ -{ pkgs, ... }: - -{ - imports = [ ./mcsr ]; - +{upkgs, ...}: { # hardware = { # xone.enable = true; # xpadneo.enable = true; # }; - environment.systemPackages = with pkgs; [ + environment.systemPackages = with upkgs; [ prismlauncher # minecraft r2modman - # osu-lazer-bin + osu-lazer-bin waywall glfw3-minecraft ]; @@ -19,7 +15,7 @@ programs = { obs-studio = { enable = true; - plugins = with pkgs.obs-studio-plugins; [ + plugins = with upkgs.obs-studio-plugins; [ obs-pipewire-audio-capture ]; }; diff --git a/hosts/sandalphon/mcsr/default.nix b/hosts/sandalphon/mcsr/default.nix index ffcd441..eeb82a4 100644 --- a/hosts/sandalphon/mcsr/default.nix +++ b/hosts/sandalphon/mcsr/default.nix @@ -1 +1 @@ -{ } +import ./home.nix diff --git a/nixpkgs.nix b/nixpkgs.nix new file mode 100644 index 0000000..3f92124 --- /dev/null +++ b/nixpkgs.nix @@ -0,0 +1,35 @@ +{ + inputs, + system, + ... +}@args: +{ + nixpkgs.channels = rec { + base = spkgs; + spkgs = { + inherit system; + source = inputs.nixpkgs; + overlays = [ + (import ./overlays args) + ]; + config = { + allowUnfree = true; + allowBroken = false; + }; + }; + + # nixpkgs-unstable (upkgs) + upkgs = { + inherit system; + source = inputs.nixpkgs-unstable; + overlays = [ + inputs.millennium.overlays.default + (import ./overlays args) + ]; + config = { + allowUnfree = true; + allowBroken = false; + }; + }; + }; +} diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 0000000..446cb54 --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,30 @@ +{ + inputs, + system, + ... +}: ( + self: super: { + element-desktop = super.element-desktop.overrideAttrs ( + final: prev: { + desktopItems = [ + ((builtins.elemAt prev.desktopItems 0).override { + exec = "element-desktop %u --password-store=\"gnome-libsecret\""; + }) + ]; + } + ); + + waywall = super.waywall.overrideAttrs ( + f: p: { + version = "0-unstable-2026-01-06"; + + src = super.fetchFromGitHub { + owner = "tesselslate"; + repo = "waywall"; + rev = "c6504f95f8d757a2e060c4df8bd3ed145ad59e8d"; + hash = "sha256-kfBsppc+esz0Q6iIIKAeOMwkIWdN12AlH3Dji8bU32c="; + }; + } + ); + } +) diff --git a/snow.nix b/snow.nix new file mode 100644 index 0000000..6687cea --- /dev/null +++ b/snow.nix @@ -0,0 +1,32 @@ +{inputs, ...}: { + nodes = { + base = inputs.nixpkgs-unstable; + homeManager = inputs.home-manager-unstable; + + args = {inherit inputs;}; + modules = [ + inputs.nix-flatpak.nixosModules.nix-flatpak + inputs.sddm-silent.nixosModules.default + inputs.mango.nixosModules.mango + ]; + + groups = { + # desktop environment group + yezelhlev = {}; + }; + + nodes = { + # laptop + nahemah = { + system = "x86_64-linux"; + groups = groups: [groups.yezelhlev]; + }; + + # pc + sandalphon = { + system = "x86_64-linux"; + groups = groups: [groups.yezelhlev]; + }; + }; + }; +} diff --git a/user.nix b/user.nix deleted file mode 100644 index 22eaa3b..0000000 --- a/user.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs, ... }: -{ - users.users.dea = { - isNormalUser = true; - description = "dea"; - extraGroups = [ - "networkmanager" - "wheel" - "docker" - ]; - packages = with pkgs; [ - kdePackages.kate - # thunderbird - ]; - }; -}