diff --git a/flake.lock b/flake.lock index 9669d89..985a194 100644 --- a/flake.lock +++ b/flake.lock @@ -426,16 +426,16 @@ ] }, "locked": { - "lastModified": 1747331121, - "narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=", + "lastModified": 1747556831, + "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=", "owner": "nix-community", "repo": "home-manager", - "rev": "1eec32f0efe3b830927989767a9e6ece0d82d608", + "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } diff --git a/flake.nix b/flake.nix index 6ce4241..754ec2c 100644 --- a/flake.nix +++ b/flake.nix @@ -8,7 +8,7 @@ nixos-hardware.url = "github:NixOS/nixos-hardware/master"; # Home manager - home-manager.url = "github:nix-community/home-manager/release-24.11"; + home-manager.url = "github:nix-community/home-manager/release-25.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; hardware.url = "github:nixos/nixos-hardware"; @@ -164,6 +164,16 @@ ]; }); + unstableFor = forAllSystems (system: import unstable { + inherit system; + config = { + allowUnfree = true; + }; + overlays = [ + nur.overlay + ]; + }); + # for when space matters litePkgsFor = forAllSystems (system: import nixpkgs { inherit system; @@ -327,19 +337,19 @@ ]; }; - deck = unstable.lib.nixoxSystem { + deck = unstable.lib.nixosSystem rec { specialArgs = { inherit inputs self; }; system = "x86_64-linux"; + pkgs = unstableFor.${system}; modules = [ ./hosts/deck - jovian.nixosModule.default + jovian.nixosModules.default self.nixosModules.wireguard agenix.nixosModules.age self.nixosModules.backup home-manager.nixosModules.home-manager { - nix.registry.nixpkgs.flake = nixpkgs; - nix.registry.unstable.flake = unstable; + nix.registry.nixpkgs.flake = unstable; home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.anish = import ./home/gui; diff --git a/home/profiles/cli/default.nix b/home/profiles/cli/default.nix index de1c6b6..d215a07 100644 --- a/home/profiles/cli/default.nix +++ b/home/profiles/cli/default.nix @@ -1,7 +1,7 @@ { lib, pkgs, config, ... }: { home.packages = with pkgs; [ - unstable.claude-code + # unstable.claude-code binutils # coreutils dnsutils diff --git a/home/profiles/desktop/default.nix b/home/profiles/desktop/default.nix index ce80b2d..9031a48 100644 --- a/home/profiles/desktop/default.nix +++ b/home/profiles/desktop/default.nix @@ -22,7 +22,7 @@ in paper-icon-theme papirus-icon-theme libsForQt5.qtstyleplugin-kvantum - qt5ct + # qt5ct gtk-engine-murrine gtk_engines maim @@ -30,8 +30,8 @@ in inotify-tools offpunk termpdfpy - libsForQt5.kontact - thunderbird + # libsForQt5.kontact + # thunderbird ]; # GTK4 color scheme? diff --git a/hosts/deck/configuration.nix b/hosts/deck/configuration.nix new file mode 100644 index 0000000..8926d07 --- /dev/null +++ b/hosts/deck/configuration.nix @@ -0,0 +1,120 @@ +# 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, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "deck"; # 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/Los_Angeles"; + + # 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. + # services.xserver.enable = true; + + # Enable the GNOME Desktop Environment. + # services.xserver.displayManager.gdm.enable = true; + # services.xserver.desktopManager.gnome.enable = true; + + # Configure keymap in X11 + # services.xserver.xkb = { + # layout = "us"; + # variant = ""; + # }; + + + # 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; + + # 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’. + # users.users.anish = { + # isNormalUser = true; + # extraGroups = [ "networkmanager" "wheel" ]; + # packages = with pkgs; [ + # # thunderbird + # ]; + # }; + + # Enable automatic login for the user. + services.xserver.displayManager.autoLogin.enable = true; + services.xserver.displayManager.autoLogin.user = "anish"; + + # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; + + # Install firefox. + # programs.firefox.enable = 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 + ]; + + # 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/hosts/deck/default.nix b/hosts/deck/default.nix index a33b728..fcf8c0e 100644 --- a/hosts/deck/default.nix +++ b/hosts/deck/default.nix @@ -5,7 +5,7 @@ ../users/anish ../profiles/core # ../profiles/bluetooth - ../profiles/music + # ../profiles/music ../profiles/sync/cal ../profiles/wifi ../profiles/desktop @@ -25,16 +25,16 @@ # }; users.users.anish.extraGroups = [ "adbusers" "wheel" "plugdev" "libvertd" ]; - boot.plymouth = { - enable = true; - themePackages = [ pkgs.plymouth-themes ]; - theme = "motion"; - }; + # boot.plymouth = { + # enable = true; + # themePackages = [ pkgs.plymouth-themes ]; + # theme = "motion"; + # }; jovian.steam.enable = true; jovian.devices.steamdeck.enable = true; jovian.steam.user = "anish"; jovian.steam.autoStart = true; - jovian.steam.desktopSession = "none+bspwm"; + jovian.steam.desktopSession = "gnome"; jovian.decky-loader.enable = true; } diff --git a/hosts/deck/hardware-configuration.nix b/hosts/deck/hardware-configuration.nix new file mode 100644 index 0000000..8313aef --- /dev/null +++ b/hosts/deck/hardware-configuration.nix @@ -0,0 +1,40 @@ +# 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 = [ "nvme" "xhci_pci" "usbhid" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/d432dae0-3512-4891-9582-56d7ecd8524c"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/5B4C-7406"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/f75a730e-c849-4edd-a17f-52492d4260dc"; } + ]; + + # 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.wlo1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/profiles/core/default.nix b/hosts/profiles/core/default.nix index 3c65441..3612b19 100644 --- a/hosts/profiles/core/default.nix +++ b/hosts/profiles/core/default.nix @@ -32,7 +32,7 @@ in }; environment.systemPackages = with pkgs; [ - pinentry_gnome + # pinentry_gnome cached-nix-shell ]; diff --git a/hosts/profiles/desktop/default.nix b/hosts/profiles/desktop/default.nix index 156c82c..303945d 100644 --- a/hosts/profiles/desktop/default.nix +++ b/hosts/profiles/desktop/default.nix @@ -62,14 +62,14 @@ in }; environment.systemPackages = with pkgs; [ - unstable.sublime-music - unstable.nheko - unstable.signal-desktop - unstable.tuba - unstable.newsflash - unstable.liferea - unstable.gh - unstable.flyctl + sublime-music + # nheko + signal-desktop + tuba + newsflash + liferea + gh + flyctl kooha light @@ -99,18 +99,18 @@ in papirus-icon-theme calendar-cli wyrd - tic-80 + # tic-80 ytfzf yt-dlp ]; - xdg.portal = { + # xdg.portal = { # Breaks link clicking in nheko # Portal doesn't seem to find Firefox as an acceptable app to open links? - enable = false; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - xdgOpenUsePortal = false; - }; + # enable = false; + # extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + #xdgOpenUsePortal = false; + # }; location.provider = "geoclue2"; services = { @@ -122,11 +122,13 @@ in }; }; xserver = { - enable = true; + enable = false; xkb.layout = "us,dvorak"; desktopManager.wallpaper.mode = "fill"; + desktopManager.gnome.enable = true; displayManager = { - defaultSession = "none+bspwm"; + # gdm.enable = true; + # defaultSession = "none+bspwm"; sessionCommands = '' ${pkgs.xorg.xrdb}/bin/xrdb -merge <