From c9804239d30e81705945ee6f5a12572b150b04d6 Mon Sep 17 00:00:00 2001 From: Tao Tien <29749622+taotien@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:50:43 -0700 Subject: [PATCH] refactoring --- extras/cosmic.nix | 4 +- extras/dev.nix | 17 +++-- extras/gaming.nix | 43 ------------ flake.lock | 30 ++++----- systems/BASED.nix | 125 ++++++++++++++++------------------ systems/NOcomputer.nix | 149 +++++++++++++++++++++++++---------------- systems/NOlaptop.nix | 57 ++++++++-------- users/pi.nix | 33 --------- users/tao.nix | 22 ++---- users/tao/wezterm.lua | 2 +- 10 files changed, 214 insertions(+), 268 deletions(-) delete mode 100644 users/pi.nix diff --git a/extras/cosmic.nix b/extras/cosmic.nix index c61c5ab..b6a3113 100644 --- a/extras/cosmic.nix +++ b/extras/cosmic.nix @@ -1,5 +1,5 @@ {...}: { services.xserver.displayManager.sddm.enable = true; - services.xserver.displayManager.cosmic-greeter.enable = false; - services.xserver.desktopManager.cosmic.enable = true; + services.displayManager.cosmic-greeter.enable = false; + services.desktopManager.cosmic.enable = true; } diff --git a/extras/dev.nix b/extras/dev.nix index 687e9b4..22d5127 100644 --- a/extras/dev.nix +++ b/extras/dev.nix @@ -7,6 +7,7 @@ lua-language-server # freecad # vulkan-loader + # gh # etcher hyperfine jq @@ -58,10 +59,18 @@ trunk ]; - # programs.nix-ld.enable = true; - # programs.nix-ld.libraries = with pkgs; [ - # xorg.libX11 - # ]; + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + libxkbcommon + libGL + + wayland.dev + + xorg.libX11 + xorg.libXrandr + xorg.libXi + xorg.libX11 + ]; services.udev.extraRules = '' SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb" diff --git a/extras/gaming.nix b/extras/gaming.nix index 8eee03f..3a1f390 100644 --- a/extras/gaming.nix +++ b/extras/gaming.nix @@ -35,47 +35,4 @@ value = -20; } ]; - - # services.pipewire.enable = false; - services.pipewire.extraConfig = { - pipewire."99-low-latency" = { - context.properties = { - default.allowed-rates = [44100 48000 96000]; - default.clock.rate = 192000; - default.clock.quantum = 32; - default.clock.min-quantum = 32; - default.clock.max-quantum = 32; - }; - context.modules = [ - { - name = "libpipewire-module-rt"; - args = { - nice.level = -12; - rt.prio = 89; - rt.time.soft = 200000; - rt.time.hard = 200000; - }; - flags = ["ifexists nofail"]; - } - ]; - }; - pipewire-pulse."99-low-latency" = { - context.modules = [ - { - name = "libpipewire-module-protocol-pulse"; - args = { - pulse.min.req = "32/192000"; - pulse.default.req = "32/192000"; - pulse.max.req = "32/192000"; - pulse.min.quantum = "32/192000"; - pulse.max.quantum = "32/192000"; - }; - } - ]; - stream.properties = { - node.latency = "32/192000"; - resample.quality = 1; - }; - }; - }; } diff --git a/flake.lock b/flake.lock index f76e6b2..a51fc61 100644 --- a/flake.lock +++ b/flake.lock @@ -125,11 +125,11 @@ ] }, "locked": { - "lastModified": 1710532761, - "narHash": "sha256-SUXGZNrXX05YA9G6EmgupxhOr3swI1gcxLUeDMUhrEY=", + "lastModified": 1710796387, + "narHash": "sha256-ve/vpbby+4LPJrlNGqGyuzZMLL7zHUZhvvKu1StsaC8=", "owner": "nix-community", "repo": "home-manager", - "rev": "206f457fffdb9a73596a4cb2211a471bd305243d", + "rev": "baf7659448ffa6ab6870dba1ca681a4868c3068a", "type": "github" }, "original": { @@ -147,11 +147,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1710599573, - "narHash": "sha256-daQQ5pRa3IGxvrsYYe952cr3BaOogApw1Dib9ddP7XM=", + "lastModified": 1710795014, + "narHash": "sha256-QTJ6dDQjTwh+/6tihGSKyG0mly3EpTVu/RcOwRGpOIY=", "owner": "martinvonz", "repo": "jj", - "rev": "d832b4488c015bb65f505fca536263f43152ec56", + "rev": "f865c1bc5d96f609d2919d559de045dda8256c7c", "type": "github" }, "original": { @@ -193,11 +193,11 @@ ] }, "locked": { - "lastModified": 1710635256, - "narHash": "sha256-PkTcVAejIyTm+H9M4XBJIzAxB+ZT5yjEqxqI4t0HNMw=", + "lastModified": 1710795169, + "narHash": "sha256-1aQiqYWl97BP9Lgvfw/jNWTZuUO9l5t7M23NhSo0mkY=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "5465fccc892d748971dfac94e28a965f4b86c256", + "rev": "8681e30a946d2d34141f3a28c8817af217b24241", "type": "github" }, "original": { @@ -208,11 +208,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1710622004, - "narHash": "sha256-6zR642tXcZzzk3C8BHxlCrR0yh8z8zMXLiuXpWDIpX0=", + "lastModified": 1710783728, + "narHash": "sha256-eIsfu3c9JUBgm3cURSKTXLEI9Dlk1azo+MWKZVqrmkc=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "968952f950a59dee9ed1e8799dda38c6dfa1bad3", + "rev": "1e679b9a9970780cd5d4dfe755a74a8f96d33388", "type": "github" }, "original": { @@ -272,11 +272,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1710451336, - "narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=", + "lastModified": 1710631334, + "narHash": "sha256-rL5LSYd85kplL5othxK5lmAtjyMOBg390sGBTb3LRMM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d691274a972b3165335d261cc4671335f5c67de9", + "rev": "c75037bbf9093a2acb617804ee46320d6d1fea5a", "type": "github" }, "original": { diff --git a/systems/BASED.nix b/systems/BASED.nix index 11e1d12..917f311 100644 --- a/systems/BASED.nix +++ b/systems/BASED.nix @@ -6,7 +6,7 @@ ... }: { environment.systemPackages = with pkgs; [ - # xorg.xkill + # macchina bat bottom cifs-utils @@ -14,64 +14,22 @@ exfatprogs git inputs.helix.packages.${pkgs.system}.default - # libthai localsend - # macchina - neofetch mesa + neofetch ouch + pueue ripgrep rustdesk screen skim tree wezterm - # wget - # yt-dlp - # zellij - pueue + wget zstd ]; programs.partition-manager.enable = lib.mkDefault true; - services.tailscale.enable = true; - services.tailscale.package = pkgs.tailscale; - services.resolved.enable = true; - - services.openssh.enable = true; - services.flatpak.enable = lib.mkDefault true; - services.printing.enable = lib.mkDefault true; - - services.smartd.enable = true; - services.btrfs.autoScrub.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"; - }; - - hardware.enableAllFirmware = true; - hardware.bluetooth.enable = lib.mkDefault true; - - boot.loader.systemd-boot.enable = lib.mkDefault true; - boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; - boot.loader.timeout = 1; - boot.supportedFilesystems = ["ntfs"]; - - networking.networkmanager.enable = true; - - # TODO check why this??? - # networking.firewall.enable = true; - services.xserver.enable = lib.mkDefault true; services.xserver.xkb.layout = "us"; systemd.services.display-manager.restartIfChanged = false; @@ -83,6 +41,20 @@ gwenview ]; + services.openssh.enable = true; + # services.flatpak.enable = lib.mkDefault true; + services.printing.enable = lib.mkDefault true; + + networking.networkmanager.enable = true; + services.tailscale.enable = true; + services.tailscale.package = pkgs.tailscale; + services.resolved.enable = true; + networking.interfaces.tailscale0.useDHCP = false; + + services.smartd.enable = true; + services.btrfs.autoScrub.enable = lib.mkDefault true; + + hardware.pulseaudio.enable = lib.mkDefault false; security.rtkit.enable = true; services.pipewire = { enable = lib.mkDefault true; @@ -91,7 +63,6 @@ pulse.enable = true; wireplumber.enable = lib.mkDefault true; }; - hardware.pulseaudio.enable = lib.mkDefault false; security.sudo-rs.enable = true; # security.sudo-rs.extraRules = [{ @@ -101,25 +72,6 @@ # groups = [ "wheel" ]; # }]; - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - trusted-users = ["root" "@wheel"]; - }; - nixpkgs.config = {allowUnfree = true;}; - - systemd.extraConfig = '' - DefaultTimeoutStopSec=15s - ''; - - time.timeZone = "US/Pacific"; - i18n.defaultLocale = "en_US.utf8"; - i18n.supportedLocales = ["all"]; - i18n.extraLocaleSettings = { - LC_CTYPE = "en_US.UTF-8"; - LC_MESSAGES = "en_US.UTF-8"; - LC_ALL = "en_US.UTF-8"; - }; i18n.inputMethod = { enabled = "fcitx5"; fcitx5.addons = with pkgs; [ @@ -129,8 +81,49 @@ ]; }; + 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 = "US/Pacific"; + services.automatic-timezoned.enable = lib.mkDefault true; + i18n.defaultLocale = "en_US.utf8"; + i18n.supportedLocales = ["all"]; + i18n.extraLocaleSettings = { + LC_CTYPE = "en_US.UTF-8"; + LC_MESSAGES = "en_US.UTF-8"; + LC_ALL = "en_US.UTF-8"; + }; + + boot.loader.systemd-boot.enable = lib.mkDefault true; + boot.loader.efi.canTouchEfiVariables = lib.mkDefault true; + boot.loader.timeout = 1; + boot.supportedFilesystems = ["ntfs"]; + systemd.extraConfig = '' + DefaultTimeoutStopSec=15s + ''; + + hardware.enableAllFirmware = true; + hardware.bluetooth.enable = lib.mkDefault true; + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; + nix.settings = { + experimental-features = "nix-command flakes"; + auto-optimise-store = true; + trusted-users = ["root" "@wheel"]; + }; + nixpkgs.config = {allowUnfree = true;}; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; system.stateVersion = lib.mkDefault "23.05"; } diff --git a/systems/NOcomputer.nix b/systems/NOcomputer.nix index e3585ed..cbc71e2 100644 --- a/systems/NOcomputer.nix +++ b/systems/NOcomputer.nix @@ -1,15 +1,9 @@ {pkgs, ...}: { - # THE FINALS audio borked - services.pipewire.enable = false; - hardware.pulseaudio.enable = true; - hardware.pulseaudio.support32Bit = true; - environment.systemPackages = with pkgs; [ # egl-wayland # gpt4all-chat # nvidia-vaapi-driver # foldingathome - # mesa gwe openrgb snapper @@ -19,6 +13,52 @@ boot.kernel.sysctl."net.ipv4.ip_forward" = "1"; boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = "1"; + # THE FINALS audio borked + services.pipewire.enable = false; + hardware.pulseaudio.enable = true; + hardware.pulseaudio.support32Bit = true; + services.pipewire.extraConfig = { + pipewire."99-low-latency" = { + context.properties = { + default.allowed-rates = [44100 48000 96000]; + default.clock.rate = 192000; + default.clock.quantum = 32; + default.clock.min-quantum = 32; + default.clock.max-quantum = 32; + }; + context.modules = [ + { + name = "libpipewire-module-rt"; + args = { + nice.level = -12; + rt.prio = 89; + rt.time.soft = 200000; + rt.time.hard = 200000; + }; + flags = ["ifexists nofail"]; + } + ]; + }; + pipewire-pulse."99-low-latency" = { + context.modules = [ + { + name = "libpipewire-module-protocol-pulse"; + args = { + pulse.min.req = "32/192000"; + pulse.default.req = "32/192000"; + pulse.max.req = "32/192000"; + pulse.min.quantum = "32/192000"; + pulse.max.quantum = "32/192000"; + }; + } + ]; + stream.properties = { + node.latency = "32/192000"; + resample.quality = 1; + }; + }; + }; + # services.foldingathome = { # enable = true; # team = 223518; @@ -26,14 +66,54 @@ # extraArgs = ["--passkey=76ba03d55acf116776ba03d55acf1167"]; # }; - environment.sessionVariables = { - # wayland chromium workaround - NIXOS_OZONE_WL = "1"; + # environment.sessionVariables = { + # # wayland chromium workaround + # NIXOS_OZONE_WL = "1"; - # firefox nvidia-vaapi-driver - # MOZ_DISABLE_RDD_SANDBOX = "1"; - # LIBVA_DRIVER_NAME = "nvidia"; + # # firefox nvidia-vaapi-driver + # # MOZ_DISABLE_RDD_SANDBOX = "1"; + # # LIBVA_DRIVER_NAME = "nvidia"; + # }; + + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; }; + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + # options: production, beta, vulkan_beta, latest + # package = pkgs.linuxPackages_latest.nvidiaPackages.latest; + package = pkgs.linuxPackages_zen.nvidiaPackages.latest; + # open = true; + }; + # enable core and mem freq sliders for nvidia + services.xserver.deviceSection = '' + Option "Coolbits" "8" + ''; + systemd.services.nvpl = { + description = "Increase GPU power limit to 400w"; + script = "/run/current-system/sw/bin/nvidia-smi -pl=400"; + wantedBy = ["multi-user.target"]; + }; + + services.udev.packages = [pkgs.openrgb]; + services.udev.extraRules = '' + KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666" + ''; + + services.snapper.configs = { + home = { + SUBVOLUME = "/home"; + ALLOW_USERS = ["tao"]; + TIMELINE_CREATE = true; + TIMELINE_CLEANUP = true; + TIMELINE_LIMIT_HOURLY = "5"; + TIMELINE_LIMIT_DAILY = "7"; + }; + }; + services.snapper.snapshotInterval = "*:0/5"; fileSystems."/home" = { device = "/dev/disk/by-uuid/eb9fcce2-e9f3-438a-b5ce-8f72f32f0e09"; @@ -71,18 +151,6 @@ }; swapDevices = [{device = "/dev/disk/by-uuid/ca0ed3d7-8758-4ac7-b016-8b4cd9608ded";}]; - services.snapper.configs = { - home = { - SUBVOLUME = "/home"; - ALLOW_USERS = ["tao"]; - TIMELINE_CREATE = true; - TIMELINE_CLEANUP = true; - TIMELINE_LIMIT_HOURLY = "5"; - TIMELINE_LIMIT_DAILY = "7"; - }; - }; - services.snapper.snapshotInterval = "*:0/5"; - # boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_zen; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; @@ -91,41 +159,8 @@ # boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ]; # boot.blacklistedKernelModules = with config.boot.kernelPackages; [ k10temp ]; - hardware.opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = true; - # options: production, beta, vulkan_beta, latest - # package = pkgs.linuxPackages_latest.nvidiaPackages.latest; - package = pkgs.linuxPackages_zen.nvidiaPackages.latest; - # open = true; - }; - # enable core and mem freq sliders for nvidia - services.xserver.deviceSection = '' - Option "Coolbits" "8" - ''; - systemd.services.nvpl = { - description = "Increase GPU power limit to 400w"; - script = "/run/current-system/sw/bin/nvidia-smi -pl=400"; - wantedBy = ["multi-user.target"]; - }; - - services.udev.packages = [pkgs.openrgb]; - services.udev.extraRules = '' - KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a3c5", MODE="0666" - ''; - # windows can suck my ass time.hardwareClockInLocalTime = true; - # services.xserver.displayManager = { - # autoLogin.enable = true; - # autoLogin.user = "tao"; - # }; - networking.hostName = "NOcomputer"; } diff --git a/systems/NOlaptop.nix b/systems/NOlaptop.nix index 0662e82..3c32a1f 100644 --- a/systems/NOlaptop.nix +++ b/systems/NOlaptop.nix @@ -7,6 +7,33 @@ fw-ectool ]; + powerManagement.powertop.enable = true; + services.fwupd.enable = true; + services.fprintd.enable = true; + hardware.sensor.iio.enable = true; + + services.xserver.displayManager.defaultSession = "plasma"; + services.xserver.displayManager.sddm.wayland.enable = true; + + # systemd.user.services.backlight = { + # # description = ""; + # ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight"; + # Restart = "on-failure"; + # wantedBy = [ "default.target" ]; + # }; + # hardware.sane = { + # enable = true; + # extraBackends = [ pkgs.epkowa ]; + # }; + + services.udev.extraRules = '' + # Ethernet expansion card + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20" + + ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness" + ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness" + ''; + fileSystems."/home" = { device = "/dev/disk/by-uuid/e4244a97-9b48-49f0-8093-782163045020"; fsType = "btrfs"; @@ -22,38 +49,8 @@ fsType = "btrfs"; options = ["subvol=nixos" "noatime" "compress-force=zstd:3" "discard=async"]; }; - swapDevices = [{device = "/dev/disk/by-uuid/ca55d0ea-c0db-44c5-af3a-e38eec803929";}]; - # services.fstrim.enable = true; - services.fprintd.enable = true; - services.fwupd.enable = true; - powerManagement.powertop.enable = true; - hardware.sensor.iio.enable = true; - - # systemd.user.services.backlight = { - # # description = ""; - # ExecStart = "${pkgs.prescurve}/bin/prescurve_backlight"; - # Restart = "on-failure"; - # wantedBy = [ "default.target" ]; - # }; - - services.xserver.displayManager.defaultSession = "plasma"; - services.xserver.displayManager.sddm.wayland.enable = true; - - # hardware.sane = { - # enable = true; - # extraBackends = [ pkgs.epkowa ]; - # }; - - services.udev.extraRules = '' - # Ethernet expansion card - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20" - - ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness" - ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness" - ''; - boot.kernelPackages = pkgs.linuxPackages_latest; boot.initrd.availableKernelModules = [ "nvme" diff --git a/users/pi.nix b/users/pi.nix deleted file mode 100644 index 03dece6..0000000 --- a/users/pi.nix +++ /dev/null @@ -1,33 +0,0 @@ -{pkgs, ...}: { - users.users.tao.packages = with pkgs; [ - libsForQt5.kdeconnect-kde - ]; - # programs.nushell.enable = true; - # environment.shells = with pkgs; [ nushell ]; - - # services.expressvpn.enable = true; - - # services.syncthing = { - # enable = true; - # user = "tao"; - # dataDir = "/home/tao/Sync"; - # configDir = "/home/tao/.config/syncthing"; - # }; - - fonts.fonts = with pkgs; [ - (nerdfonts.override {fonts = ["FiraCode"];}) - noto-fonts-cjk - noto-fonts-emoji - ]; - - users.users.tao = { - isNormalUser = true; - extraGroups = ["wheel" "dialout"]; - # shell = pkgs.nushell; - }; - - # i18n.inputMethod = { - # enabled = "fcitx5"; - # fcitx5.addons = with pkgs; [ fcitx5-mozc fcitx5-chewing fcitx5-chinese-addons fcitx5-rime ]; - # }; -} diff --git a/users/tao.nix b/users/tao.nix index 35728f3..0f1cb0f 100644 --- a/users/tao.nix +++ b/users/tao.nix @@ -5,25 +5,16 @@ ... }: { users.users.tao.packages = with pkgs; [ - ffmpeg - firefox - yt-dlp - # birdtray - # cider # enchant - # expressvpn # fractal - # gh # joshuto # libftdi # libusb # mendeley # nuspell # ocs-url - # oculante - # ollama + oculante # onefetch - # partition-manager # slack # tectonic # texlab @@ -39,12 +30,8 @@ calibre darktable deluge - discord - # (discord.override { - # withOpenASAR = true; - # withVencord = true; - # }) - # vesktop + ffmpeg + firefox jellyfin-media-player jellyfin-mpv-shim keepassxc @@ -74,12 +61,13 @@ typst-lsp virt-manager wezterm + yt-dlp zathura zoom-us zoxide + discord ]; # programs.adb.enable = true; - # programs.mosh.enable = true; environment.shells = with pkgs; [nushell]; # virt diff --git a/users/tao/wezterm.lua b/users/tao/wezterm.lua index 14f28a4..c05878d 100644 --- a/users/tao/wezterm.lua +++ b/users/tao/wezterm.lua @@ -2,7 +2,7 @@ local wezterm = require 'wezterm'; local config = { font = wezterm.font 'FiraCode Nerd Font', color_scheme = 'Dracula', - warn_about_missing_glyphs = true, + warn_about_missing_glyphs = false, check_for_updates = false, hide_tab_bar_if_only_one_tab = true, }