diff --git a/flake.lock b/flake.lock index b9dea90..6ad0025 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1748487945, - "narHash": "sha256-e9zc/rHdoH9i+sFFhhQiKoF6IuD+T2rB/nUyPaO7CCg=", + "lastModified": 1748665073, + "narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=", "owner": "nix-community", "repo": "home-manager", - "rev": "0d13ea58d565d3c1c1468ddae1f623316dc395d9", + "rev": "282e1e029cb6ab4811114fc85110613d72771dea", "type": "github" }, "original": { @@ -47,11 +47,11 @@ ] }, "locked": { - "lastModified": 1748397391, - "narHash": "sha256-g2quQIkkDOHFMipUOBs7+D3xr490slZp9qiamOkPzO4=", + "lastModified": 1748656608, + "narHash": "sha256-VU+8/kZ57Y7XTmgMBpybGMxO/elvUn/4yMndZji2pY8=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "39bae253dc201cfe03ee53bd90ed813f89afa9cd", + "rev": "b585487bb87faec1c7a09aada7cfe77dd7b3c5fe", "type": "github" }, "original": { @@ -62,11 +62,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748302896, - "narHash": "sha256-ixMT0a8mM091vSswlTORZj93WQAJsRNmEvqLL+qwTFM=", + "lastModified": 1748437600, + "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7848cd8c982f7740edf76ddb3b43d234cb80fc4d", + "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", "type": "github" }, "original": { @@ -102,11 +102,11 @@ "rpcs3_latest": { "flake": false, "locked": { - "lastModified": 1748477272, - "narHash": "sha256-PTjLS+vIo/K+Eggib4u6LzAidTFiHNh2ALAE3bpylA4=", + "lastModified": 1748720164, + "narHash": "sha256-MaQWMp4V92c1mszgqvrbcbAOaqhZLqj75i8950PwNLI=", "owner": "RPCS3", "repo": "rpcs3", - "rev": "a9df046f21d11b4e7758401bed47d2cad402c294", + "rev": "c437fe9ff052f69c3d151a98e22cd77d3d9e013e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1a5522c..4ed16de 100644 --- a/flake.nix +++ b/flake.nix @@ -24,10 +24,12 @@ ... } @ inputs: let system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + customFontPkgs = import "${self}/pkgs/fonts" {inherit pkgs;}; customPkgs = import "${self}/pkgs" { - pkgs = nixpkgs.legacyPackages.${system}; + inherit pkgs; lib = nixpkgs.lib; - inherit rpcs3_latest; + inherit rpcs3_latest customFontPkgs; }; in { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { @@ -47,6 +49,8 @@ pugixml SDL3 rpcs3_latest + clear-sans + binary-font ; }) ]; diff --git a/home-manager/cobray.nix b/home-manager/cobray.nix index f103373..526bd8c 100644 --- a/home-manager/cobray.nix +++ b/home-manager/cobray.nix @@ -16,6 +16,8 @@ ./modules/zellij.nix ./modules/ffmpeg.nix ./modules/emulators.nix + ./modules/discord.nix + ./modules/brave.nix ]; home.username = "cobray"; @@ -28,7 +30,6 @@ home.packages = with pkgs; [ coreutils gnused - gnugrep findutils yazi htop diff --git a/home-manager/modules/brave.nix b/home-manager/modules/brave.nix new file mode 100644 index 0000000..aa1685d --- /dev/null +++ b/home-manager/modules/brave.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + programs.brave = { + enable = true; + package = pkgs.brave; + }; +} diff --git a/home-manager/modules/discord.nix b/home-manager/modules/discord.nix new file mode 100644 index 0000000..31509c7 --- /dev/null +++ b/home-manager/modules/discord.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + discord + vesktop + ]; +} diff --git a/home-manager/modules/emulators.nix b/home-manager/modules/emulators.nix index 83fad93..7f3f4c6 100644 --- a/home-manager/modules/emulators.nix +++ b/home-manager/modules/emulators.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { home.packages = with pkgs; [ mgba desmume @@ -9,7 +6,7 @@ pcsx2 ryujinx mupen64plus - dolphin-emu + dolphin-emu # might remove. causes a long time to build retroarch mednafen joycond diff --git a/home-manager/modules/fish.nix b/home-manager/modules/fish.nix index e93b3ee..e12f091 100644 --- a/home-manager/modules/fish.nix +++ b/home-manager/modules/fish.nix @@ -1,14 +1,10 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { home.packages = with pkgs; [ fish-rust - starship fzf bat eza fd - ripgrep + ugrep ]; } diff --git a/home-manager/modules/lazygit.nix b/home-manager/modules/lazygit.nix index e11459f..fe8fada 100644 --- a/home-manager/modules/lazygit.nix +++ b/home-manager/modules/lazygit.nix @@ -1,15 +1,16 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { home.packages = with pkgs; [ lazygit + git + git-lfs + gitAndTools.gh + gitAndTools.diff-so-fancy ]; programs.git = { enable = true; includes = [ - { path = "./.secrets/.git-config"; } + {path = "./.secrets/.git-config";} ]; extraConfig = { credential.helper = "store --file ./.secrets/.git-credentials"; diff --git a/home-manager/modules/nvim.nix b/home-manager/modules/nvim.nix index 70fbc83..b833912 100644 --- a/home-manager/modules/nvim.nix +++ b/home-manager/modules/nvim.nix @@ -6,18 +6,39 @@ home.packages = with pkgs; [ neovim gnugrep - fd - fzf - nodejs - gcc git luajit luaPackages.luarocks + gopls + haskell-language-server + jdt-language-server + clang-tools + vscode-langservers-extracted + marksman nil - lua-language-server + taplo + yaml-language-server + sqls + alejandra + stylua + shfmt + yamlfmt + luaPackages.luacheck + yamllint + hadolint + shellcheck + cppcheck + rubocop + phpPackages.php-codesniffer + phpPackages.phpstan + checkstyle + tflint + sqlfluff + tree-sitter + luajitPackages.jsregexp + jq curl unzip - alejandra ]; home.sessionVariables = { diff --git a/home-manager/modules/picom.nix b/home-manager/modules/picom.nix index 09c58fc..3141430 100644 --- a/home-manager/modules/picom.nix +++ b/home-manager/modules/picom.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { home.packages = with pkgs; [ picom ]; diff --git a/home-manager/modules/polybar.nix b/home-manager/modules/polybar.nix index b97de47..4303435 100644 --- a/home-manager/modules/polybar.nix +++ b/home-manager/modules/polybar.nix @@ -1,6 +1,3 @@ -{ - pkgs, - ... -}: { +{pkgs, ...}: { home.packages = pkgs.polybar.all; } diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 8703537..12f3f6c 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -5,7 +5,7 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - ./local-packages.nix + ./system-packages.nix ../modules/default.nix ]; diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix deleted file mode 100644 index 99d35bf..0000000 --- a/hosts/local-packages.nix +++ /dev/null @@ -1,153 +0,0 @@ -# TODO: cleanout and repopulate individual packages better -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - brave # TODO: make a module to save browser stuff - vesktop - discord - obs-studio - spotify - flameshot - mpv - linuxHeaders - appimage-run - freetype.dev - zed-editor - pixman - udiskie - maim - git - git-lfs - gitAndTools.gh - gitAndTools.diff-so-fancy - lazygit - lazydocker - mercurial - nodejs - nodePackages.pnpm - nodePackages.typescript - yarn - bun - deno - obsidian - go - go-tools - gopls - rustc - rustup - cargo-edit - cargo-watch - cargo-outdated - cargo-audit - rust-analyzer - python3Packages.debugpy - gcc - stdenv.cc.cc.lib - gnumake - cmake - ninja - binutils - gdb - pkg-config - autoconf - automake - libtool - nasm - elixir - swift - zig - dbus.dev - pkg-config - ghc - cacert - cabal-install - stack - haskell-language-server - jdk17 - maven - gradle - visualvm - jdt-language-server - clang-tools - vscode-langservers-extracted - nodePackages.eslint - lua-language-server - marksman - nil - ruff - taplo - yaml-language-server - alejandra - nodePackages.prettier - stylua - shfmt - nodePackages.sql-formatter - yamlfmt - luaPackages.luacheck - nodePackages.markdownlint-cli - nodePackages.stylelint - nodePackages.htmlhint - yamllint - nodePackages.jsonlint - hadolint - shellcheck - cppcheck - rubocop - phpPackages.php-codesniffer - phpPackages.phpstan - checkstyle - tflint - sqlfluff - wget - curl - tree - mesa - libglvnd - socat - gnused - gawk - nmap - psmisc - ugrep - unzip - starship - htop - btop - nvtopPackages.full - fd - fzf - jq - bash - xorg.xdpyinfo - slop - dunst - pulseaudio - yt-dlp # might remove for source built version - httpie - wrk - cloudflared - hashcat - nix-prefetch-git - openssl - openssl.dev - libxml2 - zlib - zlib.dev - postgresql - sqlite - redis - sqls - tree-sitter - luajitPackages.jsregexp - tailscale - cachix - portaudio - xorg.libX11 - xorg.libXtst - xorg.libXi - xorg.xorgproto - texlive.combined.scheme-full - imagemagick - poppler_utils - ghostscript - ]; -} diff --git a/hosts/system-packages.nix b/hosts/system-packages.nix new file mode 100644 index 0000000..8e0423f --- /dev/null +++ b/hosts/system-packages.nix @@ -0,0 +1,80 @@ +# TODO: cleanout and repopulate individual packages better +{pkgs, ...}: { + environment.systemPackages = with pkgs; [ + obs-studio + spotify + flameshot + mpv + linuxHeaders + appimage-run + freetype.dev + zed-editor + pixman + udiskie + maim + mercurial + obsidian + go + go-tools + gopls + gcc + gnumake + cmake + ninja + binutils + gdb + pkg-config + autoconf + automake + libtool + nasm + elixir + swift + zig + dbus.dev + pkg-config + ghc + cacert + cabal-install + stack + jdk17 + maven + gradle + visualvm + wget + curl + tree + mesa + libglvnd + socat + gawk + nmap + psmisc + unzip + fd + jq + bash + slop + yt-dlp # might remove for source built version + httpie + wrk + cloudflared + hashcat + nix-prefetch-git + openssl + openssl.dev + libxml2 + zlib + zlib.dev + postgresql + sqlite + redis + sqls + luajitPackages.jsregexp + cachix + texlive.combined.scheme-full + imagemagick + poppler_utils + ghostscript + ]; +} diff --git a/modules/cups.nix b/modules/cups.nix new file mode 100644 index 0000000..4f0e98f --- /dev/null +++ b/modules/cups.nix @@ -0,0 +1,6 @@ +{pkgs, ...}: { + services.printing = { + enable = true; + drivers = with pkgs; [cups-filters]; + }; +} diff --git a/modules/default.nix b/modules/default.nix index 225a19f..9d5d29d 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -6,7 +6,6 @@ ./docker.nix ./env.nix ./fonts.nix - ./i3-xfce.nix ./net.nix ./nixos.nix ./nvidia.nix @@ -18,16 +17,14 @@ ./tailscale.nix ./udiskie.nix ./ld.nix + ./rust.nix + ./x11.nix + ./i3-xfce.nix + ./ollama.nix + ./cups.nix ]; - services.ollama = { - enable = true; - acceleration = "cuda"; - loadModels = []; - }; - - # Enable CUPS to print documents. - services.printing.enable = true; + npm.enable = true; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. diff --git a/modules/docker.nix b/modules/docker.nix index 0313ced..0ae6cf9 100644 --- a/modules/docker.nix +++ b/modules/docker.nix @@ -8,5 +8,6 @@ environment.systemPackages = with pkgs; [ docker docker-compose + lazydocker ]; } diff --git a/modules/fonts.nix b/modules/fonts.nix index f1ce123..df66d53 100644 --- a/modules/fonts.nix +++ b/modules/fonts.nix @@ -1,17 +1,4 @@ -{pkgs, ...}: let - clear-sans = pkgs.stdenv.mkDerivation { - name = "clear-sans"; - src = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/resir014/Clear-Sans-Webfont/97eec13/fonts/TTF/ClearSans-Regular.ttf"; - sha256 = "0vzhy3l056gj5vkcs1kglr4mr0546fq093v78i4ri8xni7w1m0dv"; - }; - dontUnpack = true; - installPhase = '' - mkdir -p $out/share/fonts/truetype - cp $src $out/share/fonts/truetype/ClearSans-Regular.ttf - ''; - }; -in { +{pkgs, ...}: { fonts = { packages = with pkgs; [ noto-fonts @@ -19,26 +6,12 @@ in { noto-fonts-cjk-serif noto-fonts-emoji nerd-fonts._0xproto - nerd-fonts.fira-code - nerd-fonts.jetbrains-mono - nerd-fonts.hack - nerd-fonts.noto - nerd-fonts.symbols-only + nerd-fonts-noto + nerd-fonts-symbols-only ipafont kochi-substitute clear-sans - (stdenv.mkDerivation { - name = "binary-clock-font"; - src = fetchurl { - url = "https://github.com/jamessouth/polybar-binary-clock-fonts/raw/master/BinaryClockBoldMono.ttf"; - sha256 = "0vxy23zr8r8faa5s7vy5bf8z2q7my39ghmd9ilk7aww9wqsrsjqx"; - }; - dontUnpack = true; - installPhase = '' - mkdir -p $out/share/fonts/truetype - cp $src $out/share/fonts/truetype/BinaryClockBoldMono.ttf - ''; - }) + binary-font ]; fontconfig = { enable = true; diff --git a/modules/home-manager.nix b/modules/home-manager.nix deleted file mode 100644 index 3390c40..0000000 --- a/modules/home-manager.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ inputs, pkgs, lib, rpcs3_latest, ... }: { - imports = [ - inputs.home-manager.nixosModules.home-manager - ]; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - users.cobray = import ../home-manager/cobray.nix { - inherit pkgs lib rpcs3_latest; - }; - }; -} diff --git a/modules/npm.nix b/modules/npm.nix index ee70a4e..50e0a9b 100644 --- a/modules/npm.nix +++ b/modules/npm.nix @@ -3,12 +3,14 @@ pkgs, lib, ... -}: let - npmGlobalDir = "~/.npm-global"; +}: +# TODO:bandaid fix for now +let + npmGlobalDir = "/home/cobray/.npm-global"; npmConf = pkgs.writeText "npmrc" '' prefix=${npmGlobalDir} - cache=~/.npm - init-module=~/.npm-init.js + cache=/home/cobray/.npm + init-module=/home/cobray/.npm-init.js ''; in { options.npm = { @@ -19,6 +21,18 @@ in { nodejs_22 nodePackages.npm electron + yarn + bun + deno + nodePackages.eslint + nodePackages.prettier + nodePackages.sql-formatter + nodePackages.markdownlint-cli + nodePackages.stylelint + nodePackages.htmlhint + nodePackages.jsonlint + nodePackages.pnpm + nodePackages.typescript ]; environment.variables = { PATH = [ diff --git a/modules/ollama.nix b/modules/ollama.nix new file mode 100644 index 0000000..5260ac6 --- /dev/null +++ b/modules/ollama.nix @@ -0,0 +1,7 @@ +{ + services.ollama = { + enable = true; + acceleration = "cuda"; + loadModels = []; + }; +} diff --git a/modules/python.nix b/modules/python.nix index b33a726..5961ec6 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -17,9 +17,11 @@ wheel jupyterlab datasets + debugpy ])) isort uv python311 + ruff ]; } diff --git a/modules/rust.nix b/modules/rust.nix new file mode 100644 index 0000000..af2c845 --- /dev/null +++ b/modules/rust.nix @@ -0,0 +1,31 @@ +{ + config, + pkgs, + lib, + ... +}: { + options.rust = { + enable = lib.mkEnableOption "System Rust Environment"; + }; + + config = lib.mkIf config.rust.enable { + environment.systemPackages = with pkgs; [ + rustc + rustup + cargo-edit + cargo-watch + cargo-outdated + cargo-audit + rust-analyzer + clippy + minijinja-cli + ]; + + environment.variables = { + PATH = [ + "${pkgs.rustc}/bin" + "${pkgs.cargo}/bin" + ]; + }; + }; +} diff --git a/modules/user.nix b/modules/user.nix index f38161b..c14f135 100644 --- a/modules/user.nix +++ b/modules/user.nix @@ -6,7 +6,7 @@ in { isNormalUser = true; description = "Mon Aie"; extraGroups = ["networkmanager" "wheel" "docker" "video"]; - shell = fish-rust; + shell = pkgs.bash; }; security.sudo = { diff --git a/modules/x11.nix b/modules/x11.nix new file mode 100644 index 0000000..a9da349 --- /dev/null +++ b/modules/x11.nix @@ -0,0 +1,12 @@ +# For xorgsisters only +{pkgs, ...}: { + environment.systemPackages = with pkgs; [ + xorg.xdpyinfo + slop + xorg.libX11 + xorg.libXtst + xorg.libXi + xorg.xorgproto + xclip + ]; +} diff --git a/pkgs/binary-font/default.nix b/pkgs/binary-font/default.nix new file mode 100644 index 0000000..9297b33 --- /dev/null +++ b/pkgs/binary-font/default.nix @@ -0,0 +1,26 @@ +{ + pkgs, + lib, + ... +}: { + binary-clock-font = pkgs.stden.mkDerivation { + pname = "binary-clock-font"; + version = "1.0.0"; + src = pkgs.fetchurl { + url = "https://github.com/jamessouth/polybar-binary-clock-fonts/raw/master/BinaryClockBoldMono.ttf"; + sha256 = "0vxy23zr8r8faa5s7vy5bf8z2q7my39ghmd9ilk7aww9wqsrsjqx"; + }; + dontUnpack = true; + installPhase = '' + mkdir -p $out/share/fonts/truetype + cp $src $out/share/fonts/truetype/BinaryClockBoldMono.ttf + ''; + meta = with lib; { + description = "A monospaced bold font for binary clocks"; + homepage = "https://github.com/jamessouth/polybar-binary-clock-fonts"; + license = licenses.ofl; + platforms = platforms.all; + maintainers = with maintainers; [cobray]; + }; + }; +} diff --git a/pkgs/clear-sans/default.nix b/pkgs/clear-sans/default.nix new file mode 100644 index 0000000..35f1fa5 --- /dev/null +++ b/pkgs/clear-sans/default.nix @@ -0,0 +1,26 @@ +{ + pkgs, + lib, + ... +}: { + clear-sans = pkgs.stdenv.mkDerivation { + pname = "clear-sans"; + version = "1.0"; + src = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/resir014/Clear-Sans-Webfont/97eec13/fonts/TTF/ClearSans-Regular.ttf"; + sha256 = "0vzhy3l056gj5vkcs1kglr4mr0546fq093v78i4ri8xni7w1m0dv"; + }; + dontUnpack = true; + installPhase = '' + mkdir -p $out/share/fonts/truetype + cp $src $out/share/fonts/truetype/ClearSans-Regular.ttf + ''; + meta = with lib; { + description = "Clear Sans font"; + homepage = "https://github.com/intel/clear-sans"; + license = licenses.apache; + maintainers = [cobray]; + platforms = platforms.all; + }; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index bc04500..56a6243 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -2,6 +2,7 @@ pkgs, lib, rpcs3_latest, + customFontPkgs, }: let rpcs3Pkgs = pkgs.callPackage ./rpcs3 { inherit lib rpcs3_latest; @@ -9,4 +10,5 @@ in { inherit (rpcs3Pkgs) pugixml SDL3 rpcs3 rpcs3_latest; fish-rust = pkgs.callPackage ./fish-rust {}; + inherit (customFontPkgs) clear-sans binary-font; }