diff --git a/flake.lock b/flake.lock index b9dbc1a..8c800ce 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1758270360, - "narHash": "sha256-yqh6EEhlpVWRoKl85o1s+QZ72UHWTvornnc3C0Ls484=", + "lastModified": 1758956381, + "narHash": "sha256-ROUw5E8CibG3jEy6oHjrkF6/P60eiaUJmc2s2ecC/LM=", "owner": "catppuccin", "repo": "nix", - "rev": "2e0aacdd6abbecd1b1c0511a2fcd1460a6bc6645", + "rev": "02dee881c3e644e2b561f407742f1fd927c40b83", "type": "github" }, "original": { @@ -127,27 +127,6 @@ "type": "github" } }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "neovim-nightly-overlay", - "hercules-ci-effects", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1754487366, - "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", - "type": "github" - }, - "original": { - "id": "flake-parts", - "type": "indirect" - } - }, "flake-utils": { "inputs": { "systems": "systems" @@ -246,7 +225,10 @@ }, "hercules-ci-effects": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": [ + "neovim-nightly-overlay", + "flake-parts" + ], "nixpkgs": [ "neovim-nightly-overlay", "nixpkgs" @@ -273,11 +255,11 @@ ] }, "locked": { - "lastModified": 1758296614, - "narHash": "sha256-l60D1i0aaSqemy9dL7wP0ePMfcv/oZbeKpvUMY+q0kQ=", + "lastModified": 1758928860, + "narHash": "sha256-ZqaRdd+KoR54dNJPtd7UX4O0X+02YItnTpQVu28lSVI=", "owner": "nix-community", "repo": "home-manager", - "rev": "55b1f5b7b191572257545413b98e37abab2fdb00", + "rev": "bc2afee55bc5d3b825287829d6592b9cc1405aad", "type": "github" }, "original": { @@ -340,11 +322,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1758307909, - "narHash": "sha256-aZ9gNCx5OtT++i6dUNbU4kRE9Nj9aLuOx7hNZW7FTn8=", - "rev": "3a4f9488f0a9ca46b22b38de7e0a760a9a63129a", + "lastModified": 1758638108, + "narHash": "sha256-VD8osntS4qPeo8v26YXPU9AouBSU1+3Wj6moQXqMAwI=", + "rev": "992c3ae981e75c902f72e8a04b44e902e9501642", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/3a4f9488f0a9ca46b22b38de7e0a760a9a63129a.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/992c3ae981e75c902f72e8a04b44e902e9501642.tar.gz" }, "original": { "type": "tarball", @@ -401,11 +383,11 @@ ] }, "locked": { - "lastModified": 1757448266, - "narHash": "sha256-aLjHKVWkb9XHyoMmDBxLG2Ycg4CJFeieLdEg3CWeIwk=", + "lastModified": 1758498346, + "narHash": "sha256-MaS7LwFtHziNrg1yQWyx9LTnka2Hb15y5MSncZ+IvvI=", "owner": "moonlight-mod", "repo": "moonlight", - "rev": "83debd7870e77e21694c9a76e3975baf842e435e", + "rev": "b074791394b0c7777bf713cff30cf0dc2144b096", "type": "github" }, "original": { @@ -446,11 +428,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1758326788, - "narHash": "sha256-jTy1mZXyUQEsnyyye8y+jM49FkSIwT3wUviNRocS4oE=", + "lastModified": 1758931509, + "narHash": "sha256-NFOXeqUwhH+V+XXJP3Z8RRzjulOzokwOPQ2kbDuFvX8=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "7660a81d4710ef71df2ab352220d11c0873ab494", + "rev": "93318bab5ce403a60a694ad1b6219760935553f7", "type": "github" }, "original": { @@ -462,11 +444,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1758319198, - "narHash": "sha256-vbtHQm0FRX1Qa7uSguBiW7zmzSVpTXUEU96kRwapI1M=", + "lastModified": 1758863424, + "narHash": "sha256-fYY8JrOuqovlOcXfryf2xiahBPTXHQExFpMIsur69/A=", "owner": "neovim", "repo": "neovim", - "rev": "19ba5899460ffdbf159ad4323ae5f3af6ce2eb53", + "rev": "a0c60e819df1b4d4ae5ac631d48e874fa1cf9b92", "type": "github" }, "original": { @@ -482,11 +464,11 @@ ] }, "locked": { - "lastModified": 1758102940, - "narHash": "sha256-wwqf3+A8EiqwWpcAaPN20QXJLlpGPpwtLTrzgnngI2o=", + "lastModified": 1758805352, + "narHash": "sha256-BHdc43Lkayd+72W/NXRKHzX5AZ+28F3xaUs3a88/Uew=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "ebd0bfc11fc2b5cff37401e9b3703881ad5fabbd", + "rev": "c48e963a5558eb1c3827d59d21c5193622a1477c", "type": "github" }, "original": { @@ -596,11 +578,11 @@ }, "nixpkgsSmall": { "locked": { - "lastModified": 1758251931, - "narHash": "sha256-m2v94CWDmvezPO6xKB7M9IQbaY+SQMsACD8T5rspotE=", + "lastModified": 1758845457, + "narHash": "sha256-13aqctceCPFO7ai9S8vcTZOKlgCHQeqhyAlzAzt20BU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5bb6983cc938bb40aa829d2ccf420ca7faacbd41", + "rev": "5824aa9aa8762db1cb263040a57ca795a53efcd9", "type": "github" }, "original": { @@ -612,11 +594,11 @@ }, "nixpkgsUnstable": { "locked": { - "lastModified": 1758198701, - "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", + "lastModified": 1758690382, + "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", "type": "github" }, "original": { @@ -660,11 +642,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1758262103, - "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=", + "lastModified": 1758763312, + "narHash": "sha256-puBMviZhYlqOdUUgEmMVJpXqC/ToEqSvkyZ30qQ09xM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01", + "rev": "e57b3b16ad8758fd681511a078f35c416a8cc939", "type": "github" }, "original": { @@ -676,11 +658,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1758216857, - "narHash": "sha256-h1BW2y7CY4LI9w61R02wPaOYfmYo82FyRqHIwukQ6SY=", + "lastModified": 1758791193, + "narHash": "sha256-F8WmEwFoHsnix7rt290R0rFXNJiMbClMZyIC/e+HYf0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d2ed99647a4b195f0bcc440f76edfa10aeb3b743", + "rev": "25e53aa156d47bad5082ff7618f5feb1f5e02d01", "type": "github" }, "original": { @@ -692,11 +674,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1757746433, - "narHash": "sha256-fEvTiU4s9lWgW7mYEU/1QUPirgkn+odUBTaindgiziY=", + "lastModified": 1758262103, + "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6d7ec06d6868ac6d94c371458fc2391ded9ff13d", + "rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01", "type": "github" }, "original": { @@ -818,11 +800,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1758007585, - "narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=", + "lastModified": 1758425756, + "narHash": "sha256-L3N8zV6wsViXiD8i3WFyrvjDdz76g3tXKEdZ4FkgQ+Y=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139", + "rev": "e0fdaea3c31646e252a60b42d0ed8eafdb289762", "type": "github" }, "original": { @@ -838,11 +820,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1758331784, - "narHash": "sha256-p875/DbftYnTkogv2CeNe5eMYrX9LCEaFGuMoDv3dj4=", + "lastModified": 1758641466, + "narHash": "sha256-B0900YOZMKkoJiwT78hqWA+Oc0hh2PInOp+FM0CcvLk=", "owner": "LGFae", "repo": "swww", - "rev": "16f284670913750216112ce59849b1e82e63d4cb", + "rev": "3fc6dd696bb4f6bbe20df76dbdb2fdc70bf6025a", "type": "github" }, "original": { @@ -904,11 +886,11 @@ ] }, "locked": { - "lastModified": 1758206697, - "narHash": "sha256-/DbPkh6PZOgfueCbs3uzlk4ASU2nPPsiVWhpMCNkAd0=", + "lastModified": 1758728421, + "narHash": "sha256-ySNJ008muQAds2JemiyrWYbwbG+V7S5wg3ZVKGHSFu8=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "128222dc911b8e2e18939537bed1762b7f3a04aa", + "rev": "5eda4ee8121f97b218f7cc73f5172098d458f1d1", "type": "github" }, "original": { @@ -925,11 +907,11 @@ ] }, "locked": { - "lastModified": 1758255782, - "narHash": "sha256-uBjTUcpb+P1nMoj0jDfIavNPJ3zkGmatvvxU2TTHSXQ=", + "lastModified": 1758946930, + "narHash": "sha256-dC+03a5Lfi2KYCgb4mFvewHfa3N8LOMhkfZ1dzEPGfY=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "ef8fb5704a9aa2845d95ef36b5250a57fb6d5bd6", + "rev": "75f421d180518e3a1b2daf9c39efaf3d13cd1dd3", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c36b09a..224d4da 100644 --- a/flake.nix +++ b/flake.nix @@ -144,6 +144,30 @@ ]; }; + buldak = nixpkgsUnstable.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = specialArgs; + modules = [ + ./hosts/buldak/configuration.nix + catppuccin.nixosModules.catppuccin + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${username} = { + imports = [./home-manager/home.nix catppuccin.homeModules.catppuccin moonlight.homeModules.default]; + + home.packages = [ + inputs.miovim.packages.${system}.default + ]; + + }; + + home-manager.extraSpecialArgs = { inherit inputs; }; + } + ]; + }; + workstation = nixpkgsUnstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = specialArgs; diff --git a/home-manager/home.nix b/home-manager/home.nix index 4feb8c7..65912d2 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -68,7 +68,7 @@ wofi-emoji obsidian - cinny-desktop + #cinny-desktop audacious audacious-plugins diff --git a/hosts/buldak/configuration.nix b/hosts/buldak/configuration.nix new file mode 100644 index 0000000..de2540a --- /dev/null +++ b/hosts/buldak/configuration.nix @@ -0,0 +1,127 @@ +# 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’). + +{ + config, + pkgs, + inputs, + ... +}: + +{ + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../shared/client/tailscale.nix + ../../shared/client/niri.nix + ../../shared/client/nh.nix + ../../shared + ./features + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + boot.initrd.luks.devices."luks-d265e9b2-2ef5-445a-83f2-ec022e0eec7b".device = + "/dev/disk/by-uuid/d265e9b2-2ef5-445a-83f2-ec022e0eec7b"; + networking.hostName = "buldak"; # 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 = "Europe/Paris"; + + # Select internationalisation properties. + i18n.defaultLocale = "fr_FR.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "fr_FR.UTF-8"; + LC_IDENTIFICATION = "fr_FR.UTF-8"; + LC_MEASUREMENT = "fr_FR.UTF-8"; + LC_MONETARY = "fr_FR.UTF-8"; + LC_NAME = "fr_FR.UTF-8"; + LC_NUMERIC = "fr_FR.UTF-8"; + LC_PAPER = "fr_FR.UTF-8"; + LC_TELEPHONE = "fr_FR.UTF-8"; + LC_TIME = "fr_FR.UTF-8"; + }; + + # Configure keymap in X11 + services.xserver = { + layout = "fr"; + xkbVariant = ""; + }; + + # Configure console keymap + console.keyMap = "fr"; + + programs.zsh.enable = true; + environment.pathsToLink = [ "/share/zsh" ]; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.misschloe777 = { + isNormalUser = true; + description = "misschloe777"; + shell = pkgs.zsh; + extraGroups = [ + "networkmanager" + "wheel" + "audio" + "video" + "podman" + ]; + packages = with pkgs; [ + inputs.zen-browser.packages."${system}".default + ]; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + ]; + + nixpkgs.config.permittedInsecurePackages = [ + "libsoup-2.74.3" + ]; + + # 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 = "23.11"; # Did you read the comment? + +} diff --git a/hosts/buldak/features/default.nix b/hosts/buldak/features/default.nix new file mode 100644 index 0000000..5bb232f --- /dev/null +++ b/hosts/buldak/features/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./discord.nix + ./steam.nix + ./software.nix + ]; +} diff --git a/hosts/buldak/features/discord.nix b/hosts/buldak/features/discord.nix new file mode 100644 index 0000000..8cdb9fe --- /dev/null +++ b/hosts/buldak/features/discord.nix @@ -0,0 +1,31 @@ +{ + config, + pkgs, + inputs, + ... +}: +let + moonlight-client = pkgs.discord.override { + withMoonlight = true; + }; +in +{ + environment.systemPackages = with pkgs; [ + moonlight-client + inputs.moonlight.packages.${pkgs.system}.moonlight + vesktop + ]; + # screen record support + xdg = { + autostart.enable = true; + icons.enable = true; + portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + wlr.enable = true; + }; + }; +} diff --git a/hosts/buldak/features/software.nix b/hosts/buldak/features/software.nix new file mode 100644 index 0000000..dbe233f --- /dev/null +++ b/hosts/buldak/features/software.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + zathura + bitwarden + nil + obs-studio + osu-lazer-bin + signal-desktop + cider-2 + ]; + + virtualisation.containers.enable = true; + virtualisation = { + podman = { + enable = true; + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; +} diff --git a/hosts/buldak/features/steam.nix b/hosts/buldak/features/steam.nix new file mode 100644 index 0000000..5f0549b --- /dev/null +++ b/hosts/buldak/features/steam.nix @@ -0,0 +1,17 @@ +{config, pkgs, lib, ...}: +{ + programs.gamemode.enable = true; + + 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 + }; + + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "steam" + "steam-unwrapped" + "steam-original" + "steam-run" + ]; +} \ No newline at end of file diff --git a/hosts/buldak/hardware-configuration.nix b/hosts/buldak/hardware-configuration.nix new file mode 100644 index 0000000..1c6d852 --- /dev/null +++ b/hosts/buldak/hardware-configuration.nix @@ -0,0 +1,43 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/5e2200d9-f6bf-43df-8d78-94e3347ec707"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-54e84289-beb1-4d69-ab9c-35ac6a2b9691".device = "/dev/disk/by-uuid/54e84289-beb1-4d69-ab9c-35ac6a2b9691"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/5176-EBC5"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/f9247f03-0464-460b-a0cd-687a5ffeb001"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno2.useDHCP = lib.mkDefault true; + # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/shared/client/default.nix b/shared/client/default.nix index 911deba..38652b6 100644 --- a/shared/client/default.nix +++ b/shared/client/default.nix @@ -4,4 +4,8 @@ ./nh.nix ./tailscale.nix ]; + + environment.systemPackages = with pkgs; [ + inputs.zen-browser.packages."${system}".default + ]; }