From 05a6822ec0c68c05ce12a157f9886c105fd220ca Mon Sep 17 00:00:00 2001 From: Tao Tien <29749622+taotien@users.noreply.github.com> Date: Sat, 16 Aug 2025 16:31:10 -0700 Subject: [PATCH] default cosmic --- extras/cosmic.nix | 14 -- flake.nix | 13 -- systems/BASED.nix | 368 +++++++++++++++++++++++----------------------- systems/NOmom.nix | 14 +- users/tao.nix | 316 +++++++++++++++++++-------------------- 5 files changed, 353 insertions(+), 372 deletions(-) diff --git a/extras/cosmic.nix b/extras/cosmic.nix index 4b65f39..da0be91 100644 --- a/extras/cosmic.nix +++ b/extras/cosmic.nix @@ -1,16 +1,2 @@ {pkgs, ...}: { - services.desktopManager.plasma6.enable = false; - services.displayManager.sddm.enable = false; - - services.desktopManager.cosmic.enable = true; - services.displayManager.cosmic-greeter.enable = true; - - environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1; - - environment.cosmic.excludePackages = with pkgs; [ - cosmic-edit - cosmic-player - cosmic-term - cosmic-wallpapers - ]; } diff --git a/flake.nix b/flake.nix index a5bd4b9..4db9c93 100644 --- a/flake.nix +++ b/flake.nix @@ -23,10 +23,6 @@ # url = "github:mattwparas/helix/steel-event-system"; # inputs.nixpkgs.follows = "nixpkgs"; # }; - # nixos-cosmic = { - # url = "github:lilyinstarlight/nixos-cosmic"; - # inputs.nixpkgs.follows = "nixpkgs"; - # }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; @@ -35,12 +31,10 @@ nixConfig = { extra-substituters = [ - # "https://cosmic.cachix.org/" # "https://helix.cachix.org/" "https://devenv.cachix.org" ]; extra-trusted-public-keys = [ - # "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" # "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ]; @@ -56,7 +50,6 @@ agenix, disko, home-manager, - # nixos-cosmic, zen-browser, ... } @ inputs: { @@ -79,8 +72,6 @@ ./extras/dev.nix ./extras/gaming.nix ./extras/folding.nix - # nixos-cosmic.nixosModules.default - ./extras/cosmic.nix ]; }; NOlaptop = nixpkgs.lib.nixosSystem { @@ -106,8 +97,6 @@ ./extras/uwuraid.nix ./extras/dev.nix ./extras/gaming.nix - # nixos-cosmic.nixosModules.default - ./extras/cosmic.nix ]; }; NOmom = nixpkgs.lib.nixosSystem { @@ -132,8 +121,6 @@ nixos-hardware.nixosModules.raspberry-pi-4 ./systems/BASED.nix ./systems/NObangers.nix - # nixos-cosmic.nixosModules.default - ./extras/cosmic.nix agenix.nixosModules.default ./extras/uwuraid.nix ]; diff --git a/systems/BASED.nix b/systems/BASED.nix index 5a7744e..a2efc51 100644 --- a/systems/BASED.nix +++ b/systems/BASED.nix @@ -1,197 +1,195 @@ { - inputs, - lib, - pkgs, - modulesPath, - ... + inputs, + lib, + pkgs, + modulesPath, + ... }: { - environment.systemPackages = with pkgs; [ - # inputs.helix.packages.${pkgs.system}.default - # screen - bat - bottom - cifs-utils - du-dust - dumbpipe - exfatprogs - fastfetch - ffmpeg - firefox - git - helix - inputs.agenix.packages.${pkgs.system}.default - inputs.zen-browser.packages."${system}".default - jujutsu - mesa - mpv - ouch - pueue - ripgrep - # rustdesk - sendme - skim - tree - wezterm - wget - zstd - ]; - programs.partition-manager.enable = lib.mkDefault true; - - # programs.nh = { - # enable = true; - # }; - - programs.firefox.enable = true; - programs.firefox.policies = { - DisablePocket = true; - PasswordManagerEnabled = false; - NoDefaultBookmarks = false; - }; - programs.firefox.preferences = { - "media.ffmpeg.vaapi.enabled" = true; - - "widget.use-xdg-desktop-portal.file-picker" = 1; - "widget.use-xdg-desktop-portal.location" = 1; - "widget.use-xdg-desktop-portal.mime-handler" = 1; - "widget.use-xdg-desktop-portal.open-uri" = 1; - "widget.use-xdg-desktop-portal.settings" = 1; - - "accessibility.browsewithcaret_shortcut.enabled" = false; - "browser.bookmarks.restore_default_bookmarks" = false; - }; - - services.flatpak.enable = true; - - hardware.graphics.enable = true; - # hardware.opengl = { - # enable = true; - # extraPackaged = with pkgs; [ - # libvdpau-va-gl - # ]; - # }; - services.xserver.enable = lib.mkDefault true; - services.xserver.excludePackages = [pkgs.xterm]; - services.xserver.xkb.layout = "us"; - systemd.services.display-manager.restartIfChanged = false; - services.displayManager.sddm.enable = lib.mkDefault true; - services.displayManager.sddm.wayland.enable = true; - services.desktopManager.plasma6.enable = lib.mkDefault true; - environment.plasma6.excludePackages = with pkgs; [ - kdePackages.elisa - kdePackages.konsole - kdePackages.gwenview - kdePackages.kate - kdePackages.xwaylandvideobridge - xterm - ]; - - services.openssh.enable = true; - users.users.root.openssh.authorizedKeys.keys = [ - ]; - programs.ssh.startAgent = true; - services.gnome.gcr-ssh-agent.enable = false; - - services.printing.enable = lib.mkDefault true; - services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin]; - services.avahi = { - enable = true; - nssmdns4 = true; - openFirewall = true; - }; - - networking.networkmanager.enable = true; - networking.networkmanager.wifi.backend = "iwd"; - services.tailscale.enable = true; - services.resolved.enable = true; - networking.wireless.iwd = { - enable = true; - settings.IPv6.Enabled = true; - settings.Settings.AutoConnect = true; - }; - - services.smartd.enable = true; - # services.btrfs.autoScrub.enable = lib.mkDefault true; - - security.rtkit.enable = true; - services.pipewire = { - enable = lib.mkDefault true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - wireplumber.enable = lib.mkDefault true; - }; - - security.sudo-rs.enable = true; - security.sudo.enable = false; - - i18n.inputMethod = { - enable = lib.mkDefault true; - type = "fcitx5"; - fcitx5.addons = with pkgs; [ - fcitx5-gtk - fcitx5-mozc - fcitx5-rime + environment.systemPackages = with pkgs; [ + # inputs.helix.packages.${pkgs.system}.default + # screen + bat + bottom + cifs-utils + du-dust + dumbpipe + exfatprogs + fastfetch + ffmpeg + firefox + git + helix + inputs.agenix.packages.${pkgs.system}.default + inputs.zen-browser.packages."${system}".default + jujutsu + mesa + mpv + ouch + pueue + ripgrep + # rustdesk + sendme + skim + tree + wezterm + wget + zstd ]; - }; + programs.partition-manager.enable = lib.mkDefault true; - environment.variables = { - EDITOR = "hx"; - VISUAL = "hx"; - PAGER = "bat"; - SKIM_DEFAULT_COMMAND = "rg --files"; - }; - environment.sessionVariables = { - EDITOR = "hx"; - VISUAL = "hx"; - PAGER = "bat"; - SKIM_DEFAULT_COMMAND = "rg --files"; - }; + # programs.nh = { + # enable = true; + # }; - time.timeZone = lib.mkDefault "US/Pacific"; - # services.automatic-timezoned.enable = lib.mkDefault true; - # i18n.defaultLocale = "en_US.UTF-8"; - # i18n.extraLocaleSettings = { - # LC_CTYPE = "en_US.UTF-8"; - # LC_MESSAGES = "en_US.UTF-8"; - # LC_ALL = "en_US.UTF-8"; - # }; + programs.firefox.enable = true; + programs.firefox.policies = { + DisablePocket = true; + PasswordManagerEnabled = false; + NoDefaultBookmarks = false; + }; + programs.firefox.preferences = { + "media.ffmpeg.vaapi.enabled" = true; - # systemd.extraConfig = '' - # DefaultTimeoutStopSec=15s - # ''; + "widget.use-xdg-desktop-portal.file-picker" = 1; + "widget.use-xdg-desktop-portal.location" = 1; + "widget.use-xdg-desktop-portal.mime-handler" = 1; + "widget.use-xdg-desktop-portal.open-uri" = 1; + "widget.use-xdg-desktop-portal.settings" = 1; - zramSwap = { - enable = true; - algorithm = "zstd"; - }; + "accessibility.browsewithcaret_shortcut.enabled" = false; + "browser.bookmarks.restore_default_bookmarks" = false; + }; - boot.loader.systemd-boot.enable = lib.mkDefault true; - boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; - boot.loader.timeout = lib.mkForce 1; - # boot.supportedFilesystems = ["ntfs" "btrfs"]; - hardware.enableAllFirmware = true; - hardware.bluetooth.enable = lib.mkDefault true; - # hardware.bluetooth.settings.General.Experimental = true; + services.flatpak.enable = true; - imports = [(modulesPath + "/installer/scan/not-detected.nix")]; - - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - # adding logged in users allows for passwordless root - # trusted-users = ["root"]; - system-features = [ - "benchmark" - "big-parallel" - "gccarch-znver3" - "gccarch-znver4" - "kvm" - "nixos-test" + hardware.graphics.enable = true; + # hardware.opengl = { + # enable = true; + # extraPackaged = with pkgs; [ + # libvdpau-va-gl + # ]; + # }; + services.xserver.enable = lib.mkDefault true; + services.xserver.excludePackages = [pkgs.xterm]; + services.xserver.xkb.layout = "us"; + systemd.services.display-manager.restartIfChanged = false; + services.desktopManager.cosmic.enable = lib.mkDefault true; + services.displayManager.cosmic-greeter.enable = lib.mkDefault true; + environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1; + environment.cosmic.excludePackages = with pkgs; [ + cosmic-edit + cosmic-player + cosmic-term + cosmic-wallpapers ]; - }; - nixpkgs.config = {allowUnfree = true;}; - nix.nixPath = ["nixpkgs=${pkgs.path}"]; - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - system.stateVersion = lib.mkDefault "23.05"; + services.openssh.enable = true; + users.users.root.openssh.authorizedKeys.keys = [ + ]; + programs.ssh.startAgent = true; + services.gnome.gcr-ssh-agent.enable = false; + + services.printing.enable = lib.mkDefault true; + services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin]; + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + + networking.networkmanager.enable = true; + networking.networkmanager.wifi.backend = "iwd"; + services.tailscale.enable = true; + services.resolved.enable = true; + networking.wireless.iwd = { + enable = true; + settings.IPv6.Enabled = true; + settings.Settings.AutoConnect = true; + }; + + services.smartd.enable = true; + # services.btrfs.autoScrub.enable = lib.mkDefault true; + + security.rtkit.enable = true; + services.pipewire = { + enable = lib.mkDefault true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = lib.mkDefault true; + }; + + security.sudo-rs.enable = true; + security.sudo.enable = false; + + i18n.inputMethod = { + enable = lib.mkDefault true; + type = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-gtk + fcitx5-mozc + fcitx5-rime + ]; + }; + + environment.variables = { + EDITOR = "hx"; + VISUAL = "hx"; + PAGER = "bat"; + SKIM_DEFAULT_COMMAND = "rg --files"; + }; + environment.sessionVariables = { + EDITOR = "hx"; + VISUAL = "hx"; + PAGER = "bat"; + SKIM_DEFAULT_COMMAND = "rg --files"; + }; + + time.timeZone = lib.mkDefault "US/Pacific"; + # services.automatic-timezoned.enable = lib.mkDefault true; + # i18n.defaultLocale = "en_US.UTF-8"; + # i18n.extraLocaleSettings = { + # LC_CTYPE = "en_US.UTF-8"; + # LC_MESSAGES = "en_US.UTF-8"; + # LC_ALL = "en_US.UTF-8"; + # }; + + # systemd.extraConfig = '' + # DefaultTimeoutStopSec=15s + # ''; + + zramSwap = { + enable = true; + algorithm = "zstd"; + }; + + boot.loader.systemd-boot.enable = lib.mkDefault true; + boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; + boot.loader.timeout = lib.mkForce 1; + # boot.supportedFilesystems = ["ntfs" "btrfs"]; + hardware.enableAllFirmware = true; + hardware.bluetooth.enable = lib.mkDefault true; + # hardware.bluetooth.settings.General.Experimental = true; + + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; + + nix.settings = { + experimental-features = "nix-command flakes"; + auto-optimise-store = true; + # adding logged in users allows for passwordless root + # trusted-users = ["root"]; + system-features = [ + "benchmark" + "big-parallel" + "gccarch-znver3" + "gccarch-znver4" + "kvm" + "nixos-test" + ]; + }; + nixpkgs.config = {allowUnfree = true;}; + nix.nixPath = ["nixpkgs=${pkgs.path}"]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + system.stateVersion = lib.mkDefault "23.05"; } diff --git a/systems/NOmom.nix b/systems/NOmom.nix index f99c01b..b16ecd9 100644 --- a/systems/NOmom.nix +++ b/systems/NOmom.nix @@ -12,6 +12,18 @@ services.tailscale.useRoutingFeatures = "client"; + services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.desktopManager.plasma6.enable = true; + environment.plasma6.excludePackages = with pkgs; [ + kdePackages.elisa + kdePackages.konsole + kdePackages.gwenview + kdePackages.kate + kdePackages.xwaylandvideobridge + xterm + ]; + powerManagement.powertop.enable = true; services.fwupd.enable = true; services.fprintd.enable = true; @@ -19,8 +31,6 @@ services.usbmuxd.enable = true; services.usbmuxd.package = pkgs.usbmuxd2; - services.displayManager.sddm.wayland.enable = true; - # systemd.user.services.backlight = { # # description = ""; # ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight"; diff --git a/users/tao.nix b/users/tao.nix index 01439f6..c5889e9 100644 --- a/users/tao.nix +++ b/users/tao.nix @@ -1,168 +1,168 @@ { - inputs, - config, - pkgs, - lib, - ... + inputs, + config, + pkgs, + lib, + ... }: { - services.syncplay = { - enable = true; - motd = "we only watch kino here"; - }; - - users.users.tao.packages = with pkgs; [ - syncplay - # boxxy - calibre - # carapace - # cloud-hypervisor - # davinci-resolve - # fractal - # freerdp - # inputs.plasma-manager.packages.${pkgs.system}.default - # jellyfin-mpv-shim - # libsForQt5.kcharselect - # mendeley - # piper - # slack - # tectonic - # texlab - # thunderbird - # wkhtmltopdf - appimage-run - aspell - aspellDicts.en - bottles - # darktable - deluge - discord - freecad-wayland - gocryptfs - gurk-rs - jellyfin-media-player - # kdePackages.plasma-vault - keepassxc - # leetcode-cli - man-pages - man-pages-posix - miniserve - mousai - nix-output-monitor - nixos-anywhere - nufmt - nushell - nvd - obs-studio - oculante - onlyoffice-bin - pandoc - pipe-rename - prusa-slicer - qmk - qmk-udev-rules - qmk_hid - ripgrep-all - signal-desktop - slack - snapper - starship - syncthingtray - taskwarrior3 - tinymist - toastify - typst - usbutils - vial - wezterm - wl-clipboard-rs - yt-dlp - zathura - zellij - zoom-us - zoxide - ]; - programs.adb.enable = true; - programs.kdeconnect.enable = true; - environment.shells = with pkgs; [nushell]; - - # virtualisation.libvirtd.enable = true; - # virtualisation.libvirtd.qemu.swtpm.enable = true; - # virtualisation.spiceUSBRedirection.enable = true; - # programs.virt-manager.enable = true; - - # virtualisation.virtualbox.host = { - # enable = true; - # enableExtensionPack = true; - # }; - - # nixpkgs.overlays = [ - # (final: prev: { - # options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: { - # configOptions.FSTYPE = lib.mkOption { - # type = lib.types.enum ["btrfs" "bcachefs"]; - # }; - # }); - # }) - # ]; - - disabledModules = ["services/misc/snapper.nix"]; - imports = [../extras/snapper.nix]; - services.snapper.configs = { - home = { - SUBVOLUME = "/home"; - # FSTYPE = "bcachefs"; - FSTYPE = - if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) - then "bcachefs" - else "btrfs"; - ALLOW_USERS = ["tao"]; - TIMELINE_CREATE = true; - TIMELINE_CLEANUP = true; - TIMELINE_LIMIT_HOURLY = 5; - TIMELINE_LIMIT_DAILY = 7; + services.syncplay = { + enable = true; + motd = "we only watch kino here"; }; - }; - services.snapper.snapshotInterval = "*:0/5"; - hardware.keyboard.qmk.enable = true; - services.udev.extraRules = '' - KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" - ''; - # services.ratbagd.enable = true; + users.users.tao.packages = with pkgs; [ + syncplay + # boxxy + calibre + # carapace + # cloud-hypervisor + # davinci-resolve + # fractal + # freerdp + # inputs.plasma-manager.packages.${pkgs.system}.default + # jellyfin-mpv-shim + # libsForQt5.kcharselect + # mendeley + # piper + # slack + # tectonic + # texlab + # thunderbird + # wkhtmltopdf + appimage-run + aspell + aspellDicts.en + bottles + # darktable + deluge + discord + freecad-wayland + gocryptfs + gurk-rs + jellyfin-media-player + # kdePackages.plasma-vault + keepassxc + # leetcode-cli + man-pages + man-pages-posix + miniserve + mousai + nix-output-monitor + nixos-anywhere + nufmt + nushell + nvd + obs-studio + oculante + onlyoffice-bin + pandoc + pipe-rename + prusa-slicer + qmk + qmk-udev-rules + qmk_hid + ripgrep-all + signal-desktop + slack + snapper + starship + syncthingtray + taskwarrior3 + tinymist + toastify + typst + usbutils + vial + wezterm + wl-clipboard-rs + yt-dlp + zathura + zellij + zoom-us + zoxide + ]; + programs.adb.enable = true; + programs.kdeconnect.enable = true; + environment.shells = with pkgs; [nushell]; - boot.extraModulePackages = with config.boot.kernelPackages; [ - v4l2loopback - ]; - boot.extraModprobeConfig = '' - options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 - ''; + # virtualisation.libvirtd.enable = true; + # virtualisation.libvirtd.qemu.swtpm.enable = true; + # virtualisation.spiceUSBRedirection.enable = true; + # programs.virt-manager.enable = true; - fonts.packages = with pkgs; [ - # (nerdfonts.override {fonts = ["FiraCode"];}) - nerd-fonts.fira-code - noto-fonts-cjk-sans - noto-fonts-cjk-serif - noto-fonts-color-emoji - ibm-plex - cooper-hewitt - ]; + # virtualisation.virtualbox.host = { + # enable = true; + # enableExtensionPack = true; + # }; - documentation.enable = true; + # nixpkgs.overlays = [ + # (final: prev: { + # options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: { + # configOptions.FSTYPE = lib.mkOption { + # type = lib.types.enum ["btrfs" "bcachefs"]; + # }; + # }); + # }) + # ]; - # age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age; - users.users.tao = { - isNormalUser = true; - # hashedPasswordFile = config.age.secrets.password-tao.path; - extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"]; - shell = pkgs.nushell; - }; + disabledModules = ["services/misc/snapper.nix"]; + imports = [../extras/snapper.nix]; + services.snapper.configs = { + home = { + SUBVOLUME = "/home"; + # FSTYPE = "bcachefs"; + FSTYPE = + if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) + then "bcachefs" + else "btrfs"; + ALLOW_USERS = ["tao"]; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; + TIMELINE_LIMIT_HOURLY = 5; + TIMELINE_LIMIT_DAILY = 7; + }; + }; + services.snapper.snapshotInterval = "*:0/5"; - age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; - age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; - age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.verbose = true; - home-manager.backupFileExtension = ".hm-bak"; - home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;}; + hardware.keyboard.qmk.enable = true; + services.udev.extraRules = '' + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" + ''; + # services.ratbagd.enable = true; + + boot.extraModulePackages = with config.boot.kernelPackages; [ + v4l2loopback + ]; + boot.extraModprobeConfig = '' + options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 + ''; + + fonts.packages = with pkgs; [ + # (nerdfonts.override {fonts = ["FiraCode"];}) + nerd-fonts.fira-code + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-color-emoji + ibm-plex + cooper-hewitt + ]; + + documentation.enable = true; + + # age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age; + users.users.tao = { + isNormalUser = true; + # hashedPasswordFile = config.age.secrets.password-tao.path; + extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"]; + shell = pkgs.nushell; + }; + + age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; + age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; + age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.verbose = true; + home-manager.backupFileExtension = ".hm-bak"; + home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;}; }