From e854d2515d24e3713e110573abf46ee32452ca1e Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Mon, 24 Mar 2025 21:26:15 -0600 Subject: [PATCH 01/19] hotfix --- hosts/local-packages.nix | 2 + modules/python.nix | 74 +++++++++++++++---------- pkgs/default.nix | 42 +++++++++++--- pkgs/python-opencv-headless/default.nix | 2 +- pkgs/python-pymatting/default.nix | 1 - pkgs/python-rembg/default.nix | 1 - 6 files changed, 82 insertions(+), 40 deletions(-) diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 7d89de7..22b691f 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -29,6 +29,7 @@ in { ffmpeg gnused gdb + libstdcxx5 stdenv.cc.cc.lib nix-prefetch-git binutils @@ -58,6 +59,7 @@ in { bash customPkgs.fish-rust go + ollama sqls deno redis diff --git a/modules/python.nix b/modules/python.nix index d34d709..25d2c5e 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -2,48 +2,66 @@ let customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; }; + pipConf = pkgs.writeText "pip.conf" '' + [global] + no-cache-dir = false + [install] + ignore-installed = false + [packages] + numpy = "<2.0.0" + ''; + pythonEnv = pkgs.python311.buildEnv.override { + extraLibs = [ + customPkgs.python-pymatting + customPkgs.python-opencv-headless + customPkgs.python-rembg + customPkgs.pythonPackages.numpy # This should be numpy 1.x + pkgs.python311Packages.i3ipc + pkgs.python311Packages.pandas + pkgs.python311Packages.matplotlib + pkgs.python311Packages.scipy + pkgs.python311Packages.requests + pkgs.python311Packages.pip + pkgs.python311Packages.virtualenv + pkgs.python311Packages.ipython + pkgs.python311Packages.six + pkgs.python311Packages.psutil + pkgs.python311Packages.pynvml + pkgs.python311Packages.pyqtgraph + pkgs.python311Packages.pyqt6 + pkgs.python311Packages.cppcheck + pkgs.python311Packages.click + pkgs.python311Packages.typer + pkgs.python311Packages.rich + pkgs.python311Packages.pyyaml + pkgs.python311Packages.pytz + pkgs.python311Packages.pillow + ]; + }; in { options.python = { enable = lib.mkEnableOption "System Python Environment"; }; config = lib.mkIf config.python.enable { environment.systemPackages = with pkgs; [ - (python311.withPackages (pyPkgs: with pyPkgs; [ - numpy - python-pymatting - python-opencv-headless - python-rembg - i3ipc - pandas - matplotlib - scipy - requests - pip - virtualenv - ipython - six - psutil - pynvml - pyqtgraph - pyqt6 - click - typer - rich - pyyaml - pytz - pillow - ])) + pythonEnv python3Packages.pip black ruff uv + stdenv.cc.cc.lib ]; + # Environment variables environment.variables = { PIP_PREFIX = "$HOME/.local"; + PIP_CONFIG_FILE = "${pipConf}"; # Force pip to use our config PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages"; }; - environment.shellAliases = { - python = "python3.11"; - }; + system.userActivationScripts.removeNumpy2 = '' + if [ -d "$HOME/.local/lib/python3.11/site-packages/numpy" ]; then + echo "Removing NumPy from user packages to prevent conflicts..." + rm -rf "$HOME/.local/lib/python3.11/site-packages/numpy"* + fi + ''; }; } diff --git a/pkgs/default.nix b/pkgs/default.nix index aed9492..4442009 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,13 +1,32 @@ -{ - pkgs ? import {}, - lib ? pkgs.lib, -}: { +{ pkgs ? import {}, lib ? pkgs.lib }: + +let + numpy-1 = pkgs.python311Packages.numpy.overridePythonAttrs (oldAttrs: rec { + version = "1.26.4"; + src = pkgs.fetchPypi { + pname = "numpy"; + inherit version; + sha256 = "0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia"; + }; + meta.priority = -1; + }); + + customPackages = pkgs.python311Packages.override { + overrides = self: super: { + numpy = numpy-1; + }; + }; + +in { + fish-rust = pkgs.callPackage ./fish-rust {}; + python-pymatting = pkgs.callPackage ./python-pymatting { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = pkgs.python311Packages; + python311Packages = customPackages; }; + python-opencv-headless = pkgs.callPackage ./python-opencv-headless { inherit lib; fetchPypi = pkgs.fetchPypi; @@ -15,16 +34,20 @@ pkg-config = pkgs.pkg-config; stdenv = pkgs.stdenv; makeWrapper = pkgs.makeWrapper; - python311Packages = pkgs.python311Packages; + python311Packages = customPackages; }; + python-rembg = pkgs.callPackage ./python-rembg { inherit lib; fetchPypi = pkgs.fetchPypi; + python311Packages = customPackages; + python-pymatting = pkgs.callPackage ./python-pymatting { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = pkgs.python311Packages; + python311Packages = customPackages; }; + python-opencv-headless = pkgs.callPackage ./python-opencv-headless { inherit lib; fetchPypi = pkgs.fetchPypi; @@ -32,10 +55,11 @@ pkg-config = pkgs.pkg-config; stdenv = pkgs.stdenv; makeWrapper = pkgs.makeWrapper; - python311Packages = pkgs.python311Packages; + python311Packages = customPackages; }; - python311Packages = pkgs.python311Packages; }; + + pythonPackages = customPackages; vivid-icons = pkgs.callPackage ./vivid-icons { inherit lib; stdenv = pkgs.stdenv; diff --git a/pkgs/python-opencv-headless/default.nix b/pkgs/python-opencv-headless/default.nix index 3bc9fdf..babc7da 100644 --- a/pkgs/python-opencv-headless/default.nix +++ b/pkgs/python-opencv-headless/default.nix @@ -31,8 +31,8 @@ python311Packages.buildPythonPackage rec { ]; propagatedBuildInputs = with python311Packages; [ - numpy setuptools + numpy ]; dontUseCmakeConfigure = true; diff --git a/pkgs/python-pymatting/default.nix b/pkgs/python-pymatting/default.nix index 14f282d..fa4b814 100644 --- a/pkgs/python-pymatting/default.nix +++ b/pkgs/python-pymatting/default.nix @@ -19,7 +19,6 @@ python311Packages.buildPythonPackage rec { ]; propagatedBuildInputs = with python311Packages; [ - numpy scipy pillow numba diff --git a/pkgs/python-rembg/default.nix b/pkgs/python-rembg/default.nix index 2a51257..030a6d1 100644 --- a/pkgs/python-rembg/default.nix +++ b/pkgs/python-rembg/default.nix @@ -17,7 +17,6 @@ python311Packages.buildPythonPackage rec { setuptools ]; propagatedBuildInputs = with python311Packages; [ - numpy onnxruntime pillow pooch From 90d8370b825c940ad44615a4153c40cc4260b4e4 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 00:47:30 -0600 Subject: [PATCH 02/19] cleanup --- home-manager/cobray.nix | 2 -- home-manager/modules/dunst.nix | 2 -- home-manager/modules/fish.nix | 2 -- home-manager/modules/ghostty.nix | 2 -- home-manager/modules/lazygit.nix | 2 -- home-manager/modules/nvim.nix | 5 ++- home-manager/modules/picom.nix | 2 -- home-manager/modules/polybar.nix | 2 -- home-manager/modules/rofi.nix | 2 -- home-manager/modules/starship.nix | 2 -- home-manager/modules/zellij.nix | 2 -- hosts/configuration.nix | 4 --- hosts/local-packages.nix | 24 +++++++++------ modules/audio.nix | 2 -- modules/bluetooth.nix | 2 -- modules/boot.nix | 2 -- modules/default.nix | 2 -- modules/docker.nix | 2 -- modules/env.nix | 1 - modules/fonts.nix | 2 -- modules/home-manager.nix | 3 -- modules/i3-xfce.nix | 1 - modules/net.nix | 2 -- modules/nixos.nix | 3 -- modules/nvidia.nix | 1 - modules/python.nix | 9 +++--- modules/steam.nix | 4 --- modules/timezone.nix | 3 -- modules/user.nix | 2 -- pkgs/default.nix | 9 +++--- pkgs/python-opencv-headless/default.nix | 14 ++++----- pkgs/python-pymatting/default.nix | 2 +- pkgs/python-rembg/default.nix | 10 +++--- pkgs/tokyo-night/default.nix | 41 ------------------------- 34 files changed, 39 insertions(+), 131 deletions(-) delete mode 100644 pkgs/tokyo-night/default.nix diff --git a/home-manager/cobray.nix b/home-manager/cobray.nix index 02189a3..f416e5b 100644 --- a/home-manager/cobray.nix +++ b/home-manager/cobray.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { imports = [ diff --git a/home-manager/modules/dunst.nix b/home-manager/modules/dunst.nix index df6dd53..765bad9 100644 --- a/home-manager/modules/dunst.nix +++ b/home-manager/modules/dunst.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/fish.nix b/home-manager/modules/fish.nix index 9673e14..e93b3ee 100644 --- a/home-manager/modules/fish.nix +++ b/home-manager/modules/fish.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/ghostty.nix b/home-manager/modules/ghostty.nix index f6bfb42..af2ccdc 100644 --- a/home-manager/modules/ghostty.nix +++ b/home-manager/modules/ghostty.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/lazygit.nix b/home-manager/modules/lazygit.nix index b35c895..df3baf7 100644 --- a/home-manager/modules/lazygit.nix +++ b/home-manager/modules/lazygit.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/nvim.nix b/home-manager/modules/nvim.nix index 5a0004e..70fbc83 100644 --- a/home-manager/modules/nvim.nix +++ b/home-manager/modules/nvim.nix @@ -1,5 +1,8 @@ -{ config, pkgs, lib, ... }: { + config, + pkgs, + ... +}: { home.packages = with pkgs; [ neovim gnugrep diff --git a/home-manager/modules/picom.nix b/home-manager/modules/picom.nix index cd0ea0f..09c58fc 100644 --- a/home-manager/modules/picom.nix +++ b/home-manager/modules/picom.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/polybar.nix b/home-manager/modules/polybar.nix index 6e49875..cae7d9a 100644 --- a/home-manager/modules/polybar.nix +++ b/home-manager/modules/polybar.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/rofi.nix b/home-manager/modules/rofi.nix index 511832f..b64defc 100644 --- a/home-manager/modules/rofi.nix +++ b/home-manager/modules/rofi.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/starship.nix b/home-manager/modules/starship.nix index 1e60569..5528de8 100644 --- a/home-manager/modules/starship.nix +++ b/home-manager/modules/starship.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/home-manager/modules/zellij.nix b/home-manager/modules/zellij.nix index a668691..25a434d 100644 --- a/home-manager/modules/zellij.nix +++ b/home-manager/modules/zellij.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { home.packages = with pkgs; [ diff --git a/hosts/configuration.nix b/hosts/configuration.nix index 194087a..a0aad19 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -2,10 +2,6 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running 'nixos-help'). { - config, - pkgs, - lib, - inputs, ... }: { imports = [ diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 22b691f..1ad0be1 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -1,21 +1,24 @@ -{ config, pkgs, lib, ... }: -let - customPkgs = import ../pkgs { inherit pkgs lib; }; +{ + pkgs, + lib, + ... +}: let + customPkgs = import ../pkgs {inherit pkgs lib;}; in { imports = [ ../modules/python.nix ]; python.enable = true; environment.systemPackages = with pkgs; [ - (python311.withPackages (pyPkgs: with pyPkgs; [ - requests - pip - virtualenv - ipython - ])) + (python311.withPackages (pyPkgs: + with pyPkgs; [ + requests + pip + virtualenv + ipython + ])) python3Packages.pip black - ruff brave # TODO: make a module to save browser stuff vesktop git @@ -43,6 +46,7 @@ in { gawk obs-studio lazygit + lazydocker jdk17 bun maven diff --git a/modules/audio.nix b/modules/audio.nix index 2ca23c8..5a2ffff 100644 --- a/modules/audio.nix +++ b/modules/audio.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { security.rtkit.enable = true; diff --git a/modules/bluetooth.nix b/modules/bluetooth.nix index e704bde..be4d765 100644 --- a/modules/bluetooth.nix +++ b/modules/bluetooth.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { hardware.bluetooth = { diff --git a/modules/boot.nix b/modules/boot.nix index d313ed0..7ee7d23 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { # Bootloader diff --git a/modules/default.nix b/modules/default.nix index c0fda17..a8d190f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { imports = [ diff --git a/modules/docker.nix b/modules/docker.nix index 76407d8..4a14735 100644 --- a/modules/docker.nix +++ b/modules/docker.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { virtualisation.docker = { diff --git a/modules/env.nix b/modules/env.nix index ef6077b..9836023 100644 --- a/modules/env.nix +++ b/modules/env.nix @@ -1,5 +1,4 @@ { - config, pkgs, lib, ... diff --git a/modules/fonts.nix b/modules/fonts.nix index 2ce9a49..1237375 100644 --- a/modules/fonts.nix +++ b/modules/fonts.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: let clear-sans = pkgs.stdenv.mkDerivation { diff --git a/modules/home-manager.nix b/modules/home-manager.nix index 1e08aff..f33d71a 100644 --- a/modules/home-manager.nix +++ b/modules/home-manager.nix @@ -1,7 +1,4 @@ { - config, - pkgs, - lib, inputs, ... }: { diff --git a/modules/i3-xfce.nix b/modules/i3-xfce.nix index 78450c9..7f88ec8 100644 --- a/modules/i3-xfce.nix +++ b/modules/i3-xfce.nix @@ -1,5 +1,4 @@ { - config, pkgs, lib, ... diff --git a/modules/net.nix b/modules/net.nix index bb2230f..963181f 100644 --- a/modules/net.nix +++ b/modules/net.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { environment.systemPackages = with pkgs; [ diff --git a/modules/nixos.nix b/modules/nixos.nix index b2bc73e..5f6c83a 100644 --- a/modules/nixos.nix +++ b/modules/nixos.nix @@ -1,7 +1,4 @@ { - config, - pkgs, - lib, ... }: { nixpkgs.config.allowUnfree = true; diff --git a/modules/nvidia.nix b/modules/nvidia.nix index 27234b6..714e011 100644 --- a/modules/nvidia.nix +++ b/modules/nvidia.nix @@ -1,7 +1,6 @@ { config, pkgs, - lib, ... }: { services.xserver.videoDrivers = ["nvidia"]; diff --git a/modules/python.nix b/modules/python.nix index 25d2c5e..0986487 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -1,5 +1,4 @@ { config, pkgs, lib, ... }: - let customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; }; pipConf = pkgs.writeText "pip.conf" '' @@ -29,13 +28,14 @@ let pkgs.python311Packages.pynvml pkgs.python311Packages.pyqtgraph pkgs.python311Packages.pyqt6 - pkgs.python311Packages.cppcheck pkgs.python311Packages.click pkgs.python311Packages.typer pkgs.python311Packages.rich pkgs.python311Packages.pyyaml pkgs.python311Packages.pytz pkgs.python311Packages.pillow + pkgs.python311Packages.jedi + pkgs.python311Packages.libcst ]; }; in { @@ -47,14 +47,13 @@ in { pythonEnv python3Packages.pip black - ruff + isort uv stdenv.cc.cc.lib ]; - # Environment variables environment.variables = { PIP_PREFIX = "$HOME/.local"; - PIP_CONFIG_FILE = "${pipConf}"; # Force pip to use our config + PIP_CONFIG_FILE = "${pipConf}"; PYTHONPATH = "$HOME/.local/lib/python3.11/site-packages"; }; system.userActivationScripts.removeNumpy2 = '' diff --git a/modules/steam.nix b/modules/steam.nix index 89d21b5..e0172f6 100644 --- a/modules/steam.nix +++ b/modules/steam.nix @@ -1,9 +1,5 @@ { - config, pkgs, - lib, - inputs, - system, ... }: { programs.steam = { diff --git a/modules/timezone.nix b/modules/timezone.nix index cb9f39e..9e5451d 100644 --- a/modules/timezone.nix +++ b/modules/timezone.nix @@ -1,7 +1,4 @@ { - config, - pkgs, - lib, ... }: { time.timeZone = "America/Edmonton"; diff --git a/modules/user.nix b/modules/user.nix index 66928eb..a5f871d 100644 --- a/modules/user.nix +++ b/modules/user.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: let fish-rust = pkgs.callPackage ../pkgs/fish-rust {}; diff --git a/pkgs/default.nix b/pkgs/default.nix index 4442009..06f554e 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,6 +1,7 @@ -{ pkgs ? import {}, lib ? pkgs.lib }: - -let +{ + pkgs ? import {}, + lib ? pkgs.lib, +}: let numpy-1 = pkgs.python311Packages.numpy.overridePythonAttrs (oldAttrs: rec { version = "1.26.4"; src = pkgs.fetchPypi { @@ -16,9 +17,7 @@ let numpy = numpy-1; }; }; - in { - fish-rust = pkgs.callPackage ./fish-rust {}; python-pymatting = pkgs.callPackage ./python-pymatting { diff --git a/pkgs/python-opencv-headless/default.nix b/pkgs/python-opencv-headless/default.nix index babc7da..a542c4d 100644 --- a/pkgs/python-opencv-headless/default.nix +++ b/pkgs/python-opencv-headless/default.nix @@ -1,10 +1,10 @@ -{ lib -, python311Packages -, fetchPypi -, stdenv -, makeWrapper -, cmake -, pkg-config +{ lib, +python311Packages, +fetchPypi, +stdenv, +makeWrapper, +cmake, +pkg-config }: python311Packages.buildPythonPackage rec { diff --git a/pkgs/python-pymatting/default.nix b/pkgs/python-pymatting/default.nix index fa4b814..889cce7 100644 --- a/pkgs/python-pymatting/default.nix +++ b/pkgs/python-pymatting/default.nix @@ -34,6 +34,6 @@ python311Packages.buildPythonPackage rec { homepage = "https://github.com/pymatting/pymatting"; license = licenses.mit; platforms = platforms.all; - maintainers = with maintainers; [ "Cobray" ]; + maintainers = with maintainers; ["Cobray"]; }; } diff --git a/pkgs/python-rembg/default.nix b/pkgs/python-rembg/default.nix index 030a6d1..6a7e5e3 100644 --- a/pkgs/python-rembg/default.nix +++ b/pkgs/python-rembg/default.nix @@ -1,8 +1,8 @@ -{ lib -, python311Packages -, fetchPypi -, python-pymatting -, python-opencv-headless +{ lib, +python311Packages, +fetchPypi, +python-pymatting, +python-opencv-headless }: python311Packages.buildPythonPackage rec { pname = "rembg"; diff --git a/pkgs/tokyo-night/default.nix b/pkgs/tokyo-night/default.nix deleted file mode 100644 index 2278384..0000000 --- a/pkgs/tokyo-night/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - gtk-engine-murrine, - gnome-themes-extra, - bash, - sassc, -}: -stdenv.mkDerivation { - pname = "tokyo-night-gtk"; - version = "main"; - - src = fetchFromGitHub { - owner = "Fausto-Korpsvart"; - repo = "Tokyonight-GTK-Theme"; - rev = "4dc45d60bf35f50ebd9ee41f16ab63783f80dd64"; - sha256 = "0c7sp9n2pc70yy9msmbmcyhqbr63v1ssnsxk6vg10zwwc3wl19h0"; - }; - - nativeBuildInputs = [bash sassc]; - buildInputs = [gtk-engine-murrine gnome-themes-extra]; - propagatedUserEnvPkgs = [gtk-engine-murrine]; - - buildPhase = '' - bash ./install.sh --dest $out/share/themes -n Tokyonight - bash ./install.sh --dest $out/share/themes -n Tokyonight --tweaks storm - bash ./install.sh --dest $out/share/themes -n Tokyonight --tweaks storm black - bash ./install.sh --dest $out/share/themes -n Tokyonight --tweaks storm black outline - ''; - - installPhase = ""; - - meta = with lib; { - description = "Tokyo Night GTK Theme"; - homepage = "https://github.com/Fausto-Korpsvart/Tokyonight-GTK-Theme"; - license = licenses.gpl3; - platforms = platforms.all; - maintainers = ["Cobray"]; - }; -} From d9746c34ae4255290b6a4b381db1a3a36e2a011f Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 10:45:39 -0600 Subject: [PATCH 03/19] cleanup --- hosts/local-packages.nix | 13 ++------- modules/python.nix | 59 ++++++++++++++++++++++------------------ 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 1ad0be1..602e58b 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -8,16 +8,10 @@ in { imports = [ ../modules/python.nix ]; + python.enable = true; + environment.systemPackages = with pkgs; [ - (python311.withPackages (pyPkgs: - with pyPkgs; [ - requests - pip - virtualenv - ipython - ])) - python3Packages.pip black brave # TODO: make a module to save browser stuff vesktop @@ -103,7 +97,4 @@ in { nodePackages.pnpm zlib.dev ]; - environment.shellAliases = { - python = "python3.11"; - }; } diff --git a/modules/python.nix b/modules/python.nix index 0986487..bae03de 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -1,6 +1,11 @@ -{ config, pkgs, lib, ... }: -let - customPkgs = pkgs.callPackage ../pkgs { inherit pkgs lib; }; +{ + config, + pkgs, + lib, + ... +}: let + customPkgs = pkgs.callPackage ../pkgs {inherit pkgs lib;}; + py = pkgs.python311Packages; pipConf = pkgs.writeText "pip.conf" '' [global] no-cache-dir = false @@ -10,32 +15,34 @@ let numpy = "<2.0.0" ''; pythonEnv = pkgs.python311.buildEnv.override { - extraLibs = [ + extraLibs = with py; [ customPkgs.python-pymatting customPkgs.python-opencv-headless customPkgs.python-rembg - customPkgs.pythonPackages.numpy # This should be numpy 1.x - pkgs.python311Packages.i3ipc - pkgs.python311Packages.pandas - pkgs.python311Packages.matplotlib - pkgs.python311Packages.scipy - pkgs.python311Packages.requests - pkgs.python311Packages.pip - pkgs.python311Packages.virtualenv - pkgs.python311Packages.ipython - pkgs.python311Packages.six - pkgs.python311Packages.psutil - pkgs.python311Packages.pynvml - pkgs.python311Packages.pyqtgraph - pkgs.python311Packages.pyqt6 - pkgs.python311Packages.click - pkgs.python311Packages.typer - pkgs.python311Packages.rich - pkgs.python311Packages.pyyaml - pkgs.python311Packages.pytz - pkgs.python311Packages.pillow - pkgs.python311Packages.jedi - pkgs.python311Packages.libcst + customPkgs.pythonPackages.numpy # should force the monkeypatch'd numpy + i3ipc + pandas + matplotlib + scipy + requests + pip + virtualenv + ipython + six + psutil + pynvml + pyqtgraph + pyqt6 + click + typer + rich + pyyaml + pytz + pillow + jedi + libcst + ruff + ruff-lsp ]; }; in { From 945140014b9c140176aa47f823118c5e561979ca Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 10:47:44 -0600 Subject: [PATCH 04/19] auto format --- pkgs/python-opencv-headless/default.nix | 20 ++++++------ pkgs/python-rembg/default.nix | 43 +++++++++++++------------ 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/pkgs/python-opencv-headless/default.nix b/pkgs/python-opencv-headless/default.nix index a542c4d..d32abf8 100644 --- a/pkgs/python-opencv-headless/default.nix +++ b/pkgs/python-opencv-headless/default.nix @@ -1,12 +1,12 @@ -{ lib, -python311Packages, -fetchPypi, -stdenv, -makeWrapper, -cmake, -pkg-config +{ + lib, + python311Packages, + fetchPypi, + stdenv, + makeWrapper, + cmake, + pkg-config, }: - python311Packages.buildPythonPackage rec { pname = "opencv-python-headless"; version = "4.11.0.86"; @@ -39,7 +39,7 @@ python311Packages.buildPythonPackage rec { doCheck = false; - pythonImportsCheck = [ "cv2" ]; + pythonImportsCheck = ["cv2"]; postFixup = '' wrapPythonProgramsIn "$out/lib/python3.11/site-packages" "${stdenv.cc.cc.lib}" @@ -50,6 +50,6 @@ python311Packages.buildPythonPackage rec { homepage = "https://github.com/opencv/opencv-python"; license = licenses.mit; platforms = platforms.linux; - maintainers = with maintainers; [ "Cobray" ]; + maintainers = with maintainers; ["Cobray"]; }; } diff --git a/pkgs/python-rembg/default.nix b/pkgs/python-rembg/default.nix index 6a7e5e3..0a2d792 100644 --- a/pkgs/python-rembg/default.nix +++ b/pkgs/python-rembg/default.nix @@ -1,8 +1,9 @@ -{ lib, -python311Packages, -fetchPypi, -python-pymatting, -python-opencv-headless +{ + lib, + python311Packages, + fetchPypi, + python-pymatting, + python-opencv-headless, }: python311Packages.buildPythonPackage rec { pname = "rembg"; @@ -16,20 +17,22 @@ python311Packages.buildPythonPackage rec { poetry-core setuptools ]; - propagatedBuildInputs = with python311Packages; [ - onnxruntime - pillow - pooch - scikit-image - scipy - tqdm - aiohttp - pytorch-bin - ] ++ [ - python-opencv-headless - python-pymatting - ]; - pythonRemoveDeps = [ "opencv-python-headless" ]; + propagatedBuildInputs = with python311Packages; + [ + onnxruntime + pillow + pooch + scikit-image + scipy + tqdm + aiohttp + pytorch-bin + ] + ++ [ + python-opencv-headless + python-pymatting + ]; + pythonRemoveDeps = ["opencv-python-headless"]; dontPrecompilePages = true; doInstallCheck = false; doCheck = false; @@ -38,6 +41,6 @@ python311Packages.buildPythonPackage rec { homepage = "https://github.com/danielgatis/rembg"; license = licenses.mit; platforms = platforms.all; - maintainers = with maintainers; [ "Cobray" ]; + maintainers = with maintainers; ["Cobray"]; }; } From a068b3c11aa97a4737a80ec807ef3bc1f6a5e5cc Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 13:13:16 -0600 Subject: [PATCH 05/19] cleanup --- hosts/local-packages.nix | 2 +- modules/python.nix | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 602e58b..26b7092 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -12,7 +12,6 @@ in { python.enable = true; environment.systemPackages = with pkgs; [ - black brave # TODO: make a module to save browser stuff vesktop git @@ -96,5 +95,6 @@ in { wrk nodePackages.pnpm zlib.dev + udiskie ]; } diff --git a/modules/python.nix b/modules/python.nix index bae03de..7ffd366 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -33,16 +33,10 @@ pynvml pyqtgraph pyqt6 - click - typer - rich pyyaml - pytz pillow jedi libcst - ruff - ruff-lsp ]; }; in { @@ -53,7 +47,6 @@ in { environment.systemPackages = with pkgs; [ pythonEnv python3Packages.pip - black isort uv stdenv.cc.cc.lib From 835e79ffcfc43a0d02b9867f6e742af955689000 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 13:48:04 -0600 Subject: [PATCH 06/19] bump --- modules/i3-xfce.nix | 18 ++++---- pkgs/vivid-icons/default.nix | 83 ++++++++++++++++++++++-------------- 2 files changed, 61 insertions(+), 40 deletions(-) diff --git a/modules/i3-xfce.nix b/modules/i3-xfce.nix index 7f88ec8..6f8a169 100644 --- a/modules/i3-xfce.nix +++ b/modules/i3-xfce.nix @@ -33,7 +33,7 @@ in { export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS" ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" || echo "Failed to set GTK theme" > /tmp/theme-debug.log - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Icons-Dark" || ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark" || echo "Failed to set icon theme" > /tmp/theme-debug.log + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" || ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark" || echo "Failed to set icon theme" > /tmp/theme-debug.log ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" || echo "Failed to set cursor theme" > /tmp/theme-debug.log ''; }; @@ -55,7 +55,7 @@ in { }; iconTheme = { package = customPkgs.vivid-icons; - name = "Vivid-Icons-Dark"; + name = "Vivid-Magna-Glassy-Dark-Icons"; }; cursorTheme = { package = pkgs.capitaine-cursors; @@ -83,7 +83,7 @@ in { environment.etc = { "gtk-2.0/gtkrc".text = '' gtk-theme-name="Tokyonight-Dark" - gtk-icon-theme-name="Vivid-Icons-Dark" + gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" gtk-font-name="Clear Sans 10" gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 @@ -92,25 +92,25 @@ in { [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name=Vivid-Icons-Dark + gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name=capitaine-cursors + gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 ''; "gtk-4.0/settings.ini".text = '' [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name=Vivid-Icons-Dark + gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name=capitaine-cursors + gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 ''; }; environment.variables = { GTK_THEME = "Tokyonight-Dark"; - ICON_THEME = "Vivid-Icons-Dark"; + ICON_THEME = "Vivid-Magna-Glassy-Dark-Icons"; XCURSOR_THEME = "capitaine-cursors"; XCURSOR_SIZE = "24"; }; @@ -148,7 +148,7 @@ in { programs.dconf.profiles.user.databases = [{ settings = { "org/gnome/desktop/interface" = { - icon-theme = "Vivid-Icons-Dark"; + icon-theme = "Vivid-Magna-Glassy-Dark-Icons"; gtk-theme = "Tokyonight-Dark"; cursor-theme = "capitaine-cursors"; }; diff --git a/pkgs/vivid-icons/default.nix b/pkgs/vivid-icons/default.nix index a1393d0..f54d530 100644 --- a/pkgs/vivid-icons/default.nix +++ b/pkgs/vivid-icons/default.nix @@ -2,9 +2,8 @@ lib, stdenv, fetchFromGitHub, - hicolor-icon-theme, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "vivid-icons"; version = "unstable-${builtins.substring 0 7 "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"}"; src = fetchFromGitHub { @@ -13,42 +12,64 @@ stdenv.mkDerivation rec { rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"; sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U="; }; - buildInputs = [hicolor-icon-theme]; + buildInputs = [ ]; installPhase = '' - mkdir -p $out/share/icons - for dir in Vivid-Icons-*; do - if [ -d "$dir" ]; then - theme_name=$(basename "$dir") - dest_dir="$out/share/icons/$theme_name" - cp -r "$dir" "$dest_dir" - echo "[Icon Theme]" > "$dest_dir/index.theme" - echo "Name=$theme_name" >> "$dest_dir/index.theme" - echo "Comment=$theme_name icons" >> "$dest_dir/index.theme" - echo "Inherits=hicolor" >> "$dest_dir/index.theme" - directories="" - for size_dir in "$dest_dir"/*; do - if [ -d "$size_dir" ]; then - size=$(basename "$size_dir") - if [[ "$size" =~ ^[0-9]+x[0-9]+$ ]]; then - directories="$directories''${directories:+,}$size" - echo "[$size]" >> "$dest_dir/index.theme" - echo "Size=''${size%%x*}" >> "$dest_dir/index.theme" - echo "Context=Actions" >> "$dest_dir/index.theme" - echo "Type=Fixed" >> "$dest_dir/index.theme" - fi + echo "Source contents at root:" + ls -la . + mkdir -p $out/share/icons + cd "Vivid Icons Themes" + echo "Contents of Vivid Icons Themes:" + ls -la . + for dir in Vivid-Dark-Icons Vivid-Glassy-Dark-Icons Vivid-Magna-Glassy-Dark-Icons; do + if [ -d "$dir" ]; then + echo "Processing: $dir" + theme_name="$dir" + dest_dir="$out/share/icons/$theme_name" + mkdir -p "$dest_dir" + find "$dir" -type d -regex ".*/[0-9]+" | while read -r size_dir; do + size=$(basename "$size_dir") + category=$(basename "$(dirname "$size_dir")") + target_dir="$dest_dir/''${size}x''${size}/$category" + mkdir -p "$target_dir" + cp -rv "$size_dir"/* "$target_dir/" + done + echo "[Icon Theme]" > "$dest_dir/index.theme" + echo "Name=$theme_name" >> "$dest_dir/index.theme" + echo "Comment=$theme_name icons" >> "$dest_dir/index.theme" + directories="" + for size_dir in "$dest_dir"/*; do + if [ -d "$size_dir" ]; then + size=$(basename "$size_dir") # e.g., "22x22" + if [[ "$size" =~ ^[0-9]+x[0-9]+$ ]]; then + directories="$directories''${directories:+,}$size" + echo "[$size]" >> "$dest_dir/index.theme" + echo "Size=''${size%%x*}" >> "$dest_dir/index.theme" + echo "Context=Actions" >> "$dest_dir/index.theme" + echo "Type=Fixed" >> "$dest_dir/index.theme" fi - done - echo "Directories=$directories" >> "$dest_dir/index.theme" + fi + done + if [ -z "$directories" ]; then + echo "No size dirs found for $theme_name, adding fallback" + directories="scalable" + echo "[scalable]" >> "$dest_dir/index.theme" + echo "Size=48" >> "$dest_dir/index.theme" + echo "Context=Actions" >> "$dest_dir/index.theme" + echo "Type=Scalable" >> "$dest_dir/index.theme" fi - done - echo "Installed themes:" - ls -la $out/share/icons/ - ''; + echo "Directories=$directories" >> "$dest_dir/index.theme" + else + echo "Warning: $dir not found in Vivid Icons Themes" + fi + done + echo "Installed themes:" + ls -la $out/share/icons/ +''; meta = with lib; { description = "Vivid Icons Theme"; homepage = "https://github.com/L4ki/Vivid-Plasma-Themes"; license = licenses.gpl3; platforms = platforms.all; - maintainers = with maintainers; ["Cobray"]; + maintainers = with maintainers; [ "Cobray" ]; }; } From 00aac8fd293dd2b8299c42a99e251e0d27d4b36e Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 13:51:41 -0600 Subject: [PATCH 07/19] whoops --- hosts/local-packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 26b7092..0075528 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -25,7 +25,6 @@ in { ffmpeg gnused gdb - libstdcxx5 stdenv.cc.cc.lib nix-prefetch-git binutils From e844794e8a75e900e8e3c1dfcbf1c31167af6992 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 13:57:05 -0600 Subject: [PATCH 08/19] should be good --- modules/python.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/python.nix b/modules/python.nix index 7ffd366..3972d26 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -25,7 +25,6 @@ matplotlib scipy requests - pip virtualenv ipython six @@ -37,6 +36,7 @@ pillow jedi libcst + pip ]; }; in { @@ -46,7 +46,6 @@ in { config = lib.mkIf config.python.enable { environment.systemPackages = with pkgs; [ pythonEnv - python3Packages.pip isort uv stdenv.cc.cc.lib From 8378ba87c8dce3e8554beb7757f8348a00a37a15 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Fri, 28 Mar 2025 14:37:37 -0600 Subject: [PATCH 09/19] should build the icon theme --- modules/i3-xfce.nix | 34 ++++++--- pkgs/vivid-icons/default.nix | 133 ++++++++++++++++++++--------------- 2 files changed, 103 insertions(+), 64 deletions(-) diff --git a/modules/i3-xfce.nix b/modules/i3-xfce.nix index 6f8a169..68591fe 100644 --- a/modules/i3-xfce.nix +++ b/modules/i3-xfce.nix @@ -25,16 +25,24 @@ in { dunst polybar i3-auto-layout + xsettingsd ]; extraSessionCommands = '' ${pkgs.feh}/bin/feh --randomize --bg-fill ~/wallpapers/* 2>/dev/null || ${pkgs.feh}/bin/feh --bg-fill ${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nineish-dark-gray.png & export GSETTINGS_SCHEMA_DIR="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas" - export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS" + export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:$XDG_DATA_DIRS" - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" || echo "Failed to set GTK theme" > /tmp/theme-debug.log - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" || ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark" || echo "Failed to set icon theme" > /tmp/theme-debug.log - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" || echo "Failed to set cursor theme" > /tmp/theme-debug.log + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" + mkdir -p $HOME/.config + cat > $HOME/.config/xsettingsd << EOF +Net/ThemeName "Tokyonight-Dark" +Net/IconThemeName "Vivid-Magna-Glassy-Dark-Icons" +Gtk/CursorThemeName "capitaine-cursors" +EOF + ${pkgs.xsettingsd}/bin/xsettingsd & ''; }; @@ -92,18 +100,18 @@ in { [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" + gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name="capitaine-cursors" + gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-size=24 ''; "gtk-4.0/settings.ini".text = '' [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" + gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name="capitaine-cursors" + gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-size=24 ''; }; @@ -131,14 +139,22 @@ in { capitaine-cursors tokyonight-gtk-theme nix-prefetch-git + hicolor-icon-theme + adwaita-icon-theme + xsettingsd ] ++ (with customPkgs; [ vivid-icons ]); + environment.pathsToLink = [ + "/share/icons" + "/share/pixmaps" + ]; + services.xserver.desktopManager.session = [{ name = "xfce+i3"; start = '' - export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS" + export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS" ${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch & ${pkgs.i3-gaps}/bin/i3 ''; diff --git a/pkgs/vivid-icons/default.nix b/pkgs/vivid-icons/default.nix index f54d530..ad9f9a4 100644 --- a/pkgs/vivid-icons/default.nix +++ b/pkgs/vivid-icons/default.nix @@ -2,6 +2,8 @@ lib, stdenv, fetchFromGitHub, + hicolor-icon-theme, + candy-icons, }: stdenv.mkDerivation { pname = "vivid-icons"; @@ -12,64 +14,85 @@ stdenv.mkDerivation { rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"; sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U="; }; - buildInputs = [ ]; + propagatedBuildInputs = [ hicolor-icon-theme candy-icons ]; + dontBuild = true; + dontFixup = true; + dontUpdateIconCache = true; installPhase = '' - echo "Source contents at root:" - ls -la . - mkdir -p $out/share/icons - cd "Vivid Icons Themes" - echo "Contents of Vivid Icons Themes:" - ls -la . - for dir in Vivid-Dark-Icons Vivid-Glassy-Dark-Icons Vivid-Magna-Glassy-Dark-Icons; do - if [ -d "$dir" ]; then - echo "Processing: $dir" - theme_name="$dir" - dest_dir="$out/share/icons/$theme_name" - mkdir -p "$dest_dir" - find "$dir" -type d -regex ".*/[0-9]+" | while read -r size_dir; do - size=$(basename "$size_dir") - category=$(basename "$(dirname "$size_dir")") - target_dir="$dest_dir/''${size}x''${size}/$category" - mkdir -p "$target_dir" - cp -rv "$size_dir"/* "$target_dir/" - done - echo "[Icon Theme]" > "$dest_dir/index.theme" - echo "Name=$theme_name" >> "$dest_dir/index.theme" - echo "Comment=$theme_name icons" >> "$dest_dir/index.theme" - directories="" - for size_dir in "$dest_dir"/*; do - if [ -d "$size_dir" ]; then - size=$(basename "$size_dir") # e.g., "22x22" - if [[ "$size" =~ ^[0-9]+x[0-9]+$ ]]; then - directories="$directories''${directories:+,}$size" - echo "[$size]" >> "$dest_dir/index.theme" - echo "Size=''${size%%x*}" >> "$dest_dir/index.theme" - echo "Context=Actions" >> "$dest_dir/index.theme" - echo "Type=Fixed" >> "$dest_dir/index.theme" - fi - fi - done - if [ -z "$directories" ]; then - echo "No size dirs found for $theme_name, adding fallback" - directories="scalable" - echo "[scalable]" >> "$dest_dir/index.theme" - echo "Size=48" >> "$dest_dir/index.theme" - echo "Context=Actions" >> "$dest_dir/index.theme" - echo "Type=Scalable" >> "$dest_dir/index.theme" + mkdir -p $out/share/icons + cd "Vivid Icons Themes" + for dir in Vivid-Dark-Icons Vivid-Glassy-Dark-Icons Vivid-Magna-Glassy-Dark-Icons; do + if [ -d "$dir" ]; then + dest_dir="$out/share/icons/$dir" + mkdir -p "$dest_dir" + cp -r "$dir"/* "$dest_dir/" || true + mkdir -p "$dest_dir/actions/16" "$dest_dir/actions/22" "$dest_dir/actions/24" "$dest_dir/actions/32" + mkdir -p "$dest_dir/status/16" "$dest_dir/status/22" "$dest_dir/status/24" "$dest_dir/status/32" + essential_icons=( + "help-about" "window-close" "gtk-apply" "go-previous" "go-next" "process-stop" + "list-add" "list-remove" "edit-cut" "edit-copy" "edit-paste" "document-new" + "document-open" "document-save" "document-save-as" "folder-new" "folder" + "edit-delete" "edit-find" "edit-redo" "edit-undo" "view-refresh" "system-run" + "dialog-ok" "dialog-cancel" "dialog-close" "dialog-error" "image-missing" + ) + for size in 16 22 24 32; do + mkdir -p "$dest_dir/actions/$size" + mkdir -p "$dest_dir/status/$size" + for icon in ''${essential_icons[@]}; do + if [ ! -f "$dest_dir/actions/$size/$icon.svg" ] && [ ! -f "$dest_dir/actions/$size/$icon.png" ]; then + for candy_size in $size 16 22 24 32 48 64; do + for ext in svg png; do + for category in actions status apps; do + if [ -f "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" ]; then + ln -sf "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" "$dest_dir/actions/$size/$icon.$ext" + break 3 + fi + done + done + done + fi + if [ ! -f "$dest_dir/status/$size/$icon.svg" ] && [ ! -f "$dest_dir/status/$size/$icon.png" ]; then + for candy_size in $size 16 22 24 32 48 64; do + for ext in svg png; do + for category in status actions apps; do + if [ -f "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" ]; then + ln -sf "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" "$dest_dir/status/$size/$icon.$ext" + break 3 + fi + done + done + done + fi + done + done + if [ -f "$dest_dir/index.theme" ]; then + if grep -q "^Inherits=" "$dest_dir/index.theme"; then + sed -i 's/^Inherits=.*/Inherits=candy-icons,hicolor/' "$dest_dir/index.theme" + else + echo "Inherits=candy-icons,hicolor" >> "$dest_dir/index.theme" + fi + if grep -q "^Name=" "$dest_dir/index.theme"; then + sed -i 's/^Name=.*/Name=Vivid-Magna-Glassy-Dark-Icons/' "$dest_dir/index.theme" + else + echo "Name=Vivid-Magna-Glassy-Dark-Icons" >> "$dest_dir/index.theme" + fi +else + cat > "$dest_dir/index.theme" << EOF +[Icon Theme] +Name=Vivid-Magna-Glassy-Dark-Icons +Comment=$dir Icon Theme +Inherits=candy-icons,hicolor +EOF +fi + touch "$dest_dir/.icon-theme.cache" fi - echo "Directories=$directories" >> "$dest_dir/index.theme" - else - echo "Warning: $dir not found in Vivid Icons Themes" - fi - done - echo "Installed themes:" - ls -la $out/share/icons/ -''; - meta = with lib; { + done + ''; + meta = { description = "Vivid Icons Theme"; homepage = "https://github.com/L4ki/Vivid-Plasma-Themes"; - license = licenses.gpl3; - platforms = platforms.all; - maintainers = with maintainers; [ "Cobray" ]; + license = lib.licenses.gpl3; + platforms = lib.platforms.all; + maintainers = [ "Cobray" ]; }; } From e9704ec96686a130f869b09200eafbd1c45d4b6a Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sat, 29 Mar 2025 03:55:16 -0600 Subject: [PATCH 10/19] removed --- pkgs/default.nix | 5 -- pkgs/vivid-icons/default.nix | 98 ------------------------------------ 2 files changed, 103 deletions(-) delete mode 100644 pkgs/vivid-icons/default.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 06f554e..a95682c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -59,9 +59,4 @@ in { }; pythonPackages = customPackages; - vivid-icons = pkgs.callPackage ./vivid-icons { - inherit lib; - stdenv = pkgs.stdenv; - fetchFromGitHub = pkgs.fetchFromGitHub; - }; } diff --git a/pkgs/vivid-icons/default.nix b/pkgs/vivid-icons/default.nix deleted file mode 100644 index ad9f9a4..0000000 --- a/pkgs/vivid-icons/default.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - hicolor-icon-theme, - candy-icons, -}: -stdenv.mkDerivation { - pname = "vivid-icons"; - version = "unstable-${builtins.substring 0 7 "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"}"; - src = fetchFromGitHub { - owner = "L4ki"; - repo = "Vivid-Plasma-Themes"; - rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"; - sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U="; - }; - propagatedBuildInputs = [ hicolor-icon-theme candy-icons ]; - dontBuild = true; - dontFixup = true; - dontUpdateIconCache = true; - installPhase = '' - mkdir -p $out/share/icons - cd "Vivid Icons Themes" - for dir in Vivid-Dark-Icons Vivid-Glassy-Dark-Icons Vivid-Magna-Glassy-Dark-Icons; do - if [ -d "$dir" ]; then - dest_dir="$out/share/icons/$dir" - mkdir -p "$dest_dir" - cp -r "$dir"/* "$dest_dir/" || true - mkdir -p "$dest_dir/actions/16" "$dest_dir/actions/22" "$dest_dir/actions/24" "$dest_dir/actions/32" - mkdir -p "$dest_dir/status/16" "$dest_dir/status/22" "$dest_dir/status/24" "$dest_dir/status/32" - essential_icons=( - "help-about" "window-close" "gtk-apply" "go-previous" "go-next" "process-stop" - "list-add" "list-remove" "edit-cut" "edit-copy" "edit-paste" "document-new" - "document-open" "document-save" "document-save-as" "folder-new" "folder" - "edit-delete" "edit-find" "edit-redo" "edit-undo" "view-refresh" "system-run" - "dialog-ok" "dialog-cancel" "dialog-close" "dialog-error" "image-missing" - ) - for size in 16 22 24 32; do - mkdir -p "$dest_dir/actions/$size" - mkdir -p "$dest_dir/status/$size" - for icon in ''${essential_icons[@]}; do - if [ ! -f "$dest_dir/actions/$size/$icon.svg" ] && [ ! -f "$dest_dir/actions/$size/$icon.png" ]; then - for candy_size in $size 16 22 24 32 48 64; do - for ext in svg png; do - for category in actions status apps; do - if [ -f "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" ]; then - ln -sf "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" "$dest_dir/actions/$size/$icon.$ext" - break 3 - fi - done - done - done - fi - if [ ! -f "$dest_dir/status/$size/$icon.svg" ] && [ ! -f "$dest_dir/status/$size/$icon.png" ]; then - for candy_size in $size 16 22 24 32 48 64; do - for ext in svg png; do - for category in status actions apps; do - if [ -f "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" ]; then - ln -sf "${candy-icons}/share/icons/candy-icons/$candy_size/$category/$icon.$ext" "$dest_dir/status/$size/$icon.$ext" - break 3 - fi - done - done - done - fi - done - done - if [ -f "$dest_dir/index.theme" ]; then - if grep -q "^Inherits=" "$dest_dir/index.theme"; then - sed -i 's/^Inherits=.*/Inherits=candy-icons,hicolor/' "$dest_dir/index.theme" - else - echo "Inherits=candy-icons,hicolor" >> "$dest_dir/index.theme" - fi - if grep -q "^Name=" "$dest_dir/index.theme"; then - sed -i 's/^Name=.*/Name=Vivid-Magna-Glassy-Dark-Icons/' "$dest_dir/index.theme" - else - echo "Name=Vivid-Magna-Glassy-Dark-Icons" >> "$dest_dir/index.theme" - fi -else - cat > "$dest_dir/index.theme" << EOF -[Icon Theme] -Name=Vivid-Magna-Glassy-Dark-Icons -Comment=$dir Icon Theme -Inherits=candy-icons,hicolor -EOF -fi - touch "$dest_dir/.icon-theme.cache" - fi - done - ''; - meta = { - description = "Vivid Icons Theme"; - homepage = "https://github.com/L4ki/Vivid-Plasma-Themes"; - license = lib.licenses.gpl3; - platforms = lib.platforms.all; - maintainers = [ "Cobray" ]; - }; -} From 8fb3dcb0134028e907536850336dd7276b3ca756 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sat, 29 Mar 2025 03:55:22 -0600 Subject: [PATCH 11/19] moved --- modules/net.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/net.nix b/modules/net.nix index 963181f..3cc67f0 100644 --- a/modules/net.nix +++ b/modules/net.nix @@ -4,6 +4,7 @@ }: { environment.systemPackages = with pkgs; [ networkmanager_dmenu + networkmanagerapplet ]; networking.firewall.allowedTCPPorts = [ 57621 ]; From 026d09a1892c1989c773f965d21fe95252af57a4 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sat, 29 Mar 2025 04:53:04 -0600 Subject: [PATCH 12/19] revisions to i3 --- home-manager/modules/polybar.nix | 10 ++- modules/i3-xfce.nix | 141 ++++++++++++++++++------------- 2 files changed, 93 insertions(+), 58 deletions(-) diff --git a/home-manager/modules/polybar.nix b/home-manager/modules/polybar.nix index cae7d9a..22007c0 100644 --- a/home-manager/modules/polybar.nix +++ b/home-manager/modules/polybar.nix @@ -3,6 +3,14 @@ ... }: { home.packages = with pkgs; [ - polybar + (polybar.override { + alsaSupport = false; + curlSupport = true; + i3Support = true; + mpdSupport = true; + pulseSupport = true; + nlSupport = true; + iwSupport = true; + }) ]; } diff --git a/modules/i3-xfce.nix b/modules/i3-xfce.nix index 68591fe..f6b40f9 100644 --- a/modules/i3-xfce.nix +++ b/modules/i3-xfce.nix @@ -1,9 +1,26 @@ { pkgs, - lib, ... }: let - customPkgs = import ../pkgs {inherit pkgs lib;}; + wallpapers = [ + "${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png" + "${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/backgrounds/gnome/gnome-dark.png" + "${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png" + ]; + + randomWallpaper = pkgs.writeShellScript "wallpaper.sh" '' + #!${pkgs.runtimeShell} + set -e + BG_DIR="/var/lib/lightdm-background" + BG_LINK="$BG_DIR/current-wallpaper.png" + mkdir -p "$BG_DIR" + WALLPAPERS=( ${builtins.concatStringsSep " " (map (w: "\"${w}\"") wallpapers)} ) + COUNT=''${#WALLPAPERS[@]} + if [[ "$COUNT" -eq 0 ]]; then exit 1; fi + RAND=$(shuf -i 0-$(($COUNT - 1)) -n 1) + SELECT=''${WALLPAPERS[$RAND]} + ln -sf "$SELECT" "$BG_LINK" + ''; in { services.xserver.enable = true; services.xserver.xkb = { @@ -28,20 +45,16 @@ in { xsettingsd ]; extraSessionCommands = '' - ${pkgs.feh}/bin/feh --randomize --bg-fill ~/wallpapers/* 2>/dev/null || ${pkgs.feh}/bin/feh --bg-fill ${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nineish-dark-gray.png & - export GSETTINGS_SCHEMA_DIR="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas" - export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:$XDG_DATA_DIRS" - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" - ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "candy-icons" ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" - mkdir -p $HOME/.config cat > $HOME/.config/xsettingsd << EOF -Net/ThemeName "Tokyonight-Dark" -Net/IconThemeName "Vivid-Magna-Glassy-Dark-Icons" -Gtk/CursorThemeName "capitaine-cursors" -EOF + Net/ThemeName "Tokyonight-Dark" + Net/IconThemeName "candy-icons" + Gtk/CursorThemeName "capitaine-cursors" + EOF + killall xsettingsd || true ${pkgs.xsettingsd}/bin/xsettingsd & ''; }; @@ -54,7 +67,7 @@ EOF services.xserver.displayManager.lightdm = { enable = true; - background = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"; + background = "/var/lib/lightdm-background/current-wallpaper.png"; greeters.gtk = { enable = true; theme = { @@ -62,8 +75,8 @@ EOF name = "Tokyonight-Dark"; }; iconTheme = { - package = customPkgs.vivid-icons; - name = "Vivid-Magna-Glassy-Dark-Icons"; + package = pkgs.candy-icons; + name = "candy-icons"; }; cursorTheme = { package = pkgs.capitaine-cursors; @@ -71,12 +84,36 @@ EOF }; extraConfig = '' [greeter] + greeting = Welcome back, Traveller font-name=Clear Sans 10 cursor-theme-name=capitaine-cursors + icon-theme-name=candy-icons ''; }; }; + systemd.tmpfiles.rules = [ + "d /var/lib/lightdm-background 0755 lightdm lightdm - -" + "L+ /var/lib/lightdm-background/current-wallpaper.png - - - - ${builtins.elemAt wallpapers 0}" + ]; + + systemd.services.random-wallpaper = { + description = "Update wallpaper to a random image"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${randomWallpaper}"; + User = "root"; + }; + }; + systemd.timers.random-wallpaper = { + description = "Daily wallpaper refresh for LightDM"; + wantedBy = ["timers.target"]; + timerConfig = { + OnCalendar = "daily"; + Persistent = true; + }; + }; + services.displayManager.defaultSession = "xfce+i3"; services.displayManager.autoLogin = { enable = true; @@ -85,13 +122,13 @@ EOF qt = { enable = true; - platformTheme = "gtk2"; + platformTheme = "qt5ct"; }; environment.etc = { "gtk-2.0/gtkrc".text = '' gtk-theme-name="Tokyonight-Dark" - gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" + gtk-icon-theme-name="candy-icons" gtk-font-name="Clear Sans 10" gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 @@ -100,74 +137,64 @@ EOF [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons - gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name=capitaine-cursors + gtk-icon-theme-name="candy-icons" + gtk-font-name="Clear Sans 10" + gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 ''; "gtk-4.0/settings.ini".text = '' [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons - gtk-font-name=Clear Sans 10 - gtk-cursor-theme-name=capitaine-cursors + gtk-icon-theme-name="candy-icons" + gtk-font-name="Clear Sans 10" + gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 ''; }; - environment.variables = { - GTK_THEME = "Tokyonight-Dark"; - ICON_THEME = "Vivid-Magna-Glassy-Dark-Icons"; - XCURSOR_THEME = "capitaine-cursors"; - XCURSOR_SIZE = "24"; - }; - environment.systemPackages = with pkgs; [ arandr - nitrogen xclip lxappearance - gnome-themes-extra gsettings-desktop-schemas adwaita-qt - arc-theme - arc-icon-theme - papirus-icon-theme - numix-icon-theme-circle candy-icons capitaine-cursors tokyonight-gtk-theme - nix-prefetch-git + xsettingsd hicolor-icon-theme adwaita-icon-theme - xsettingsd - ] ++ (with customPkgs; [ - vivid-icons - ]); + breeze-icons + gnome-themes-extra + ]; environment.pathsToLink = [ "/share/icons" "/share/pixmaps" ]; - services.xserver.desktopManager.session = [{ - name = "xfce+i3"; - start = '' - export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS" - ${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch & - ${pkgs.i3-gaps}/bin/i3 - ''; - }]; + services.xserver.desktopManager.session = [ + { + name = "xfce+i3"; + start = '' + export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${pkgs.candy-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS" + ${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch & + ${pkgs.i3-gaps}/bin/i3 + ''; + } + ]; programs.dconf.enable = true; - programs.dconf.profiles.user.databases = [{ - settings = { - "org/gnome/desktop/interface" = { - icon-theme = "Vivid-Magna-Glassy-Dark-Icons"; - gtk-theme = "Tokyonight-Dark"; - cursor-theme = "capitaine-cursors"; + programs.dconf.profiles.user.databases = [ + { + settings = { + "org/gnome/desktop/interface" = { + icon-theme = "candy-icons"; + gtk-theme = "Tokyonight-Dark"; + cursor-theme = "capitaine-cursors"; + }; }; - }; - }]; + } + ]; } From 8ed99daa2496399c89ff914e30d1388d9e0fa057 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 03:33:32 -0600 Subject: [PATCH 13/19] updates --- flake.lock | 24 +++++----- home-manager/modules/lazygit.nix | 10 +++++ home-manager/modules/polybar.nix | 12 +---- hosts/local-packages.nix | 44 ++++++++++++++++--- modules/audio.nix | 6 +-- pkgs/default.nix | 40 ++++++++--------- pkgs/python-nginx-language-server/default.nix | 37 ++++++++++++++++ 7 files changed, 117 insertions(+), 56 deletions(-) create mode 100644 pkgs/python-nginx-language-server/default.nix diff --git a/flake.lock b/flake.lock index e79f8d6..e1cd970 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1742670145, - "narHash": "sha256-xQ2F9f+ICAGBp/nNv3ddD2U4ZvzuLOci0u/5lyMXPvk=", + "lastModified": 1743295846, + "narHash": "sha256-hKKz07d4RV9gzxzE5Qu3RQWX8a7XpzRrP5timoxoGRQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "63e77d09a133ac641a0c204e7cfb0c97e133706d", + "rev": "717030011980e9eb31eb8ce011261dd532bce92c", "type": "github" }, "original": { @@ -44,11 +44,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1742607855, - "narHash": "sha256-lUF/tpSON29qNIqhECX/Ue4qVmI3FOvMaW4iUnK49C4=", + "lastModified": 1743299372, + "narHash": "sha256-vFuxkHPd+Xpi5Bx1VCyZwYl/BbF83C+KmlbPBNVJvNU=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "9818734e2117dac703767585d48b805fad3e7a5e", + "rev": "2ab0a37308559926bddb0009dfcf16a2a5b34e2b", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1741865919, - "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=", + "lastModified": 1743076231, + "narHash": "sha256-yQugdVfi316qUfqzN8JMaA2vixl+45GxNm4oUfXlbgw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a", + "rev": "6c5963357f3c1c840201eda129a99d455074db04", "type": "github" }, "original": { @@ -90,11 +90,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742512142, - "narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=", + "lastModified": 1743231893, + "narHash": "sha256-tpJsHMUPEhEnzySoQxx7+kA+KUtgWqvlcUBqROYNNt0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7105ae3957700a9646cc4b766f5815b23ed0c682", + "rev": "c570c1f5304493cafe133b8d843c7c1c4a10d3a6", "type": "github" }, "original": { diff --git a/home-manager/modules/lazygit.nix b/home-manager/modules/lazygit.nix index df3baf7..e11459f 100644 --- a/home-manager/modules/lazygit.nix +++ b/home-manager/modules/lazygit.nix @@ -5,4 +5,14 @@ home.packages = with pkgs; [ lazygit ]; + + programs.git = { + enable = true; + includes = [ + { path = "./.secrets/.git-config"; } + ]; + extraConfig = { + credential.helper = "store --file ./.secrets/.git-credentials"; + }; + }; } diff --git a/home-manager/modules/polybar.nix b/home-manager/modules/polybar.nix index 22007c0..b97de47 100644 --- a/home-manager/modules/polybar.nix +++ b/home-manager/modules/polybar.nix @@ -2,15 +2,5 @@ pkgs, ... }: { - home.packages = with pkgs; [ - (polybar.override { - alsaSupport = false; - curlSupport = true; - i3Support = true; - mpdSupport = true; - pulseSupport = true; - nlSupport = true; - iwSupport = true; - }) - ]; + home.packages = pkgs.polybar.all; } diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 0075528..1ec5fba 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -5,12 +5,6 @@ }: let customPkgs = import ../pkgs {inherit pkgs lib;}; in { - imports = [ - ../modules/python.nix - ]; - - python.enable = true; - environment.systemPackages = with pkgs; [ brave # TODO: make a module to save browser stuff vesktop @@ -48,7 +42,6 @@ in { htop btop nvtopPackages.full - ripgrep fd fzf jq @@ -95,5 +88,42 @@ in { nodePackages.pnpm zlib.dev udiskie + + rust-analyzer + clang-tools + vscode-langservers-extracted + nodePackages.eslint + gopls + 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 + go-tools + rubocop + phpPackages.php-codesniffer + phpPackages.phpstan + checkstyle + tflint + sqlfluff + rustc + python3Packages.debugpy + customPkgs.python-ngx-lsp ]; } diff --git a/modules/audio.nix b/modules/audio.nix index 5a2ffff..e1451fe 100644 --- a/modules/audio.nix +++ b/modules/audio.nix @@ -10,13 +10,11 @@ pulse.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; - - # 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; }; environment.systemPackages = with pkgs; [ cava + pulseaudio + ffmpeg ]; } diff --git a/pkgs/default.nix b/pkgs/default.nix index a95682c..e89c270 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -9,42 +9,34 @@ inherit version; sha256 = "0410j6jfz1yzm5s0v0yrc1j0q6ih4322357and7arr0jxnlsn0ia"; }; - meta.priority = -1; }); - customPackages = pkgs.python311Packages.override { + customPydantic = pkgs.python311Packages.override { overrides = self: super: { numpy = numpy-1; + pydantic = super.pydantic.overridePythonAttrs (oldAttrs: rec { + version = "1.10.18"; + src = pkgs.fetchPypi { + pname = "pydantic"; + inherit version; + sha256 = "uuvf8ZB9HZahOcJRNqm7fRfhGPEzp2ou87hF6DHjQDo="; + }; + nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ self.setuptools ]; + }); }; }; in { fish-rust = pkgs.callPackage ./fish-rust {}; - python-pymatting = pkgs.callPackage ./python-pymatting { - inherit lib; - fetchPypi = pkgs.fetchPypi; - python311Packages = customPackages; - }; - - python-opencv-headless = pkgs.callPackage ./python-opencv-headless { - inherit lib; - fetchPypi = pkgs.fetchPypi; - cmake = pkgs.cmake; - pkg-config = pkgs.pkg-config; - stdenv = pkgs.stdenv; - makeWrapper = pkgs.makeWrapper; - python311Packages = customPackages; - }; - python-rembg = pkgs.callPackage ./python-rembg { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = customPackages; + python311Packages = numpy-1; python-pymatting = pkgs.callPackage ./python-pymatting { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = customPackages; + python311Packages = numpy-1; }; python-opencv-headless = pkgs.callPackage ./python-opencv-headless { @@ -54,9 +46,13 @@ in { pkg-config = pkgs.pkg-config; stdenv = pkgs.stdenv; makeWrapper = pkgs.makeWrapper; - python311Packages = customPackages; + python311Packages = numpy-1; }; }; - pythonPackages = customPackages; + python-ngx-lsp = pkgs.callPackage ./python-nginx-language-server { + inherit lib; + fetchFromGitHub = pkgs.fetchFromGitHub; + python311Packages = customPydantic; + }; } diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix new file mode 100644 index 0000000..03c2b2f --- /dev/null +++ b/pkgs/python-nginx-language-server/default.nix @@ -0,0 +1,37 @@ +{ lib, python311Packages, fetchFromGitHub }: + +let + customPydantic = python311Packages.pydantic.overridePythonAttrs (oldAttrs: { + doCheck = false; + }); +in +python311Packages.buildPythonPackage rec { + pname = "nginx-language-server"; + version = "0.8.0"; + format = "pyproject"; + src = fetchFromGitHub { + owner = "pappasam"; + repo = "nginx-language-server"; + rev = "v${version}"; + sha256 = "AXWrNt4f3jkAbidE1goDgFicu4sSBv08f/Igyh2bRII="; + }; + nativeBuildInputs = with python311Packages; [ + setuptools + poetry-core + ]; + propagatedBuildInputs = with python311Packages; [ + pygls + customPydantic + crossplane + lsprotocol + ]; + pythonImportsCheck = [ "nginx_language_server" ]; + doCheck = false; + meta = with lib; { + description = "A language server for nginx"; + homepage = "https://github.com/pappasam/nginx-language-server"; + license = licenses.gpl3Only; + platforms = platforms.all; + maintainers = with maintainers; [ "Cobray" ]; + }; +} From c95c2af3d5f8a487325f347f6bab5c554fa3d8cd Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 03:47:35 -0600 Subject: [PATCH 14/19] should fix python now --- modules/python.nix | 2 +- pkgs/default.nix | 15 --------------- pkgs/python-nginx-language-server/default.nix | 6 +----- 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/modules/python.nix b/modules/python.nix index 3972d26..6738909 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -19,7 +19,7 @@ customPkgs.python-pymatting customPkgs.python-opencv-headless customPkgs.python-rembg - customPkgs.pythonPackages.numpy # should force the monkeypatch'd numpy + customPkgs.pythonPackages.numpy-1 # should force the monkeypatch'd numpy i3ipc pandas matplotlib diff --git a/pkgs/default.nix b/pkgs/default.nix index e89c270..3eac833 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -11,20 +11,6 @@ }; }); - customPydantic = pkgs.python311Packages.override { - overrides = self: super: { - numpy = numpy-1; - pydantic = super.pydantic.overridePythonAttrs (oldAttrs: rec { - version = "1.10.18"; - src = pkgs.fetchPypi { - pname = "pydantic"; - inherit version; - sha256 = "uuvf8ZB9HZahOcJRNqm7fRfhGPEzp2ou87hF6DHjQDo="; - }; - nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [ self.setuptools ]; - }); - }; - }; in { fish-rust = pkgs.callPackage ./fish-rust {}; @@ -53,6 +39,5 @@ in { python-ngx-lsp = pkgs.callPackage ./python-nginx-language-server { inherit lib; fetchFromGitHub = pkgs.fetchFromGitHub; - python311Packages = customPydantic; }; } diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix index 03c2b2f..db1916c 100644 --- a/pkgs/python-nginx-language-server/default.nix +++ b/pkgs/python-nginx-language-server/default.nix @@ -1,10 +1,5 @@ { lib, python311Packages, fetchFromGitHub }: -let - customPydantic = python311Packages.pydantic.overridePythonAttrs (oldAttrs: { - doCheck = false; - }); -in python311Packages.buildPythonPackage rec { pname = "nginx-language-server"; version = "0.8.0"; @@ -23,6 +18,7 @@ python311Packages.buildPythonPackage rec { pygls customPydantic crossplane + pydantic lsprotocol ]; pythonImportsCheck = [ "nginx_language_server" ]; From 4dde1f09d0491cd201b5d842b4ff2cd587227224 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 03:49:49 -0600 Subject: [PATCH 15/19] whoops --- pkgs/python-nginx-language-server/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix index db1916c..67ff087 100644 --- a/pkgs/python-nginx-language-server/default.nix +++ b/pkgs/python-nginx-language-server/default.nix @@ -16,7 +16,6 @@ python311Packages.buildPythonPackage rec { ]; propagatedBuildInputs = with python311Packages; [ pygls - customPydantic crossplane pydantic lsprotocol From eec11cfdbea15611287a8c6232501833e0b3b083 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 03:53:04 -0600 Subject: [PATCH 16/19] revision --- pkgs/python-nginx-language-server/default.nix | 78 +++++++++++-------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix index 67ff087..adb84a1 100644 --- a/pkgs/python-nginx-language-server/default.nix +++ b/pkgs/python-nginx-language-server/default.nix @@ -1,32 +1,46 @@ -{ lib, python311Packages, fetchFromGitHub }: - -python311Packages.buildPythonPackage rec { - pname = "nginx-language-server"; - version = "0.8.0"; - format = "pyproject"; - src = fetchFromGitHub { - owner = "pappasam"; - repo = "nginx-language-server"; - rev = "v${version}"; - sha256 = "AXWrNt4f3jkAbidE1goDgFicu4sSBv08f/Igyh2bRII="; - }; - nativeBuildInputs = with python311Packages; [ - setuptools - poetry-core - ]; - propagatedBuildInputs = with python311Packages; [ - pygls - crossplane - pydantic - lsprotocol - ]; - pythonImportsCheck = [ "nginx_language_server" ]; - doCheck = false; - meta = with lib; { - description = "A language server for nginx"; - homepage = "https://github.com/pappasam/nginx-language-server"; - license = licenses.gpl3Only; - platforms = platforms.all; - maintainers = with maintainers; [ "Cobray" ]; - }; -} +{ + lib, + python311Packages, + fetchFromGitHub, +}: let + cusPydantic = python311Packages.pydantic.overridePythonAttrs (oldAttrs: rec { + version = "1.10.18"; + src = fetchFromGitHub { + owner = "pydantic"; + repo = "pydantic"; + rev = "v${version}"; + sha256 = "PiYl6hcpzJoKF/rssCunF6xuCHLWfgZUQxD2wkAbLH4="; + }; + doCheck = false; + }); +in + python311Packages.buildPythonPackage rec { + pname = "nginx-language-server"; + version = "0.8.0"; + format = "pyproject"; + src = fetchFromGitHub { + owner = "pappasam"; + repo = "nginx-language-server"; + rev = "v${version}"; + sha256 = "AXWrNt4f3jkAbidE1goDgFicu4sSBv08f/Igyh2bRII="; + }; + nativeBuildInputs = with python311Packages; [ + setuptools + poetry-core + ]; + propagatedBuildInputs = with python311Packages; [ + pygls + cusPydantic + crossplane + lsprotocol + ]; + pythonImportsCheck = ["nginx_language_server"]; + doCheck = false; + meta = with lib; { + description = "A language server for nginx"; + homepage = "https://github.com/pappasam/nginx-language-server"; + license = licenses.gpl3Only; + platforms = platforms.all; + maintainers = with maintainers; ["Cobray"]; + }; + } From f6030d36067ba70fe693450a0083db9aad1ee22a Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 03:55:15 -0600 Subject: [PATCH 17/19] corrected hash --- pkgs/python-nginx-language-server/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix index adb84a1..df3c019 100644 --- a/pkgs/python-nginx-language-server/default.nix +++ b/pkgs/python-nginx-language-server/default.nix @@ -9,7 +9,7 @@ owner = "pydantic"; repo = "pydantic"; rev = "v${version}"; - sha256 = "PiYl6hcpzJoKF/rssCunF6xuCHLWfgZUQxD2wkAbLH4="; + sha256 = "17v4y4l7bq8716y0vxv817n68k8rlc2sfa86a1jiala04s1jsmr0"; }; doCheck = false; }); From 7dc29b09c74e4cdafaf357cdce813dd7a69d4da6 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 04:06:19 -0600 Subject: [PATCH 18/19] should work --- modules/python.nix | 2 +- pkgs/default.nix | 17 ++++++++++++----- pkgs/python-nginx-language-server/default.nix | 18 +++++++++++------- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/modules/python.nix b/modules/python.nix index 6738909..3972d26 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -19,7 +19,7 @@ customPkgs.python-pymatting customPkgs.python-opencv-headless customPkgs.python-rembg - customPkgs.pythonPackages.numpy-1 # should force the monkeypatch'd numpy + customPkgs.pythonPackages.numpy # should force the monkeypatch'd numpy i3ipc pandas matplotlib diff --git a/pkgs/default.nix b/pkgs/default.nix index 3eac833..7686ee7 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -11,20 +11,26 @@ }; }); + customPython = pkgs.python311.override { + packageOverrides = self: super: { + numpy = numpy-1; + }; + }; + customPythonPackages = customPython.pkgs; in { + inherit numpy-1 customPythonPackages; + fish-rust = pkgs.callPackage ./fish-rust {}; python-rembg = pkgs.callPackage ./python-rembg { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = numpy-1; - + python311Packages = customPythonPackages; python-pymatting = pkgs.callPackage ./python-pymatting { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = numpy-1; + python311Packages = customPythonPackages; }; - python-opencv-headless = pkgs.callPackage ./python-opencv-headless { inherit lib; fetchPypi = pkgs.fetchPypi; @@ -32,12 +38,13 @@ in { pkg-config = pkgs.pkg-config; stdenv = pkgs.stdenv; makeWrapper = pkgs.makeWrapper; - python311Packages = numpy-1; + python311Packages = customPythonPackages; }; }; python-ngx-lsp = pkgs.callPackage ./python-nginx-language-server { inherit lib; fetchFromGitHub = pkgs.fetchFromGitHub; + python311Packages = customPythonPackages; }; } diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix index df3c019..b025a03 100644 --- a/pkgs/python-nginx-language-server/default.nix +++ b/pkgs/python-nginx-language-server/default.nix @@ -2,17 +2,21 @@ lib, python311Packages, fetchFromGitHub, + pkgs, }: let - cusPydantic = python311Packages.pydantic.overridePythonAttrs (oldAttrs: rec { + cusPydantic = python311Packages.buildPythonPackage { + pname = "pydantic"; version = "1.10.18"; - src = fetchFromGitHub { - owner = "pydantic"; - repo = "pydantic"; - rev = "v${version}"; - sha256 = "17v4y4l7bq8716y0vxv817n68k8rlc2sfa86a1jiala04s1jsmr0"; + format = "wheel"; + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/py3/p/pydantic/pydantic-1.10.18-py3-none-any.whl"; + sha256 = "10iaggdy69wk6qkagqcnlsqchrsidvqhgh68r5p78lpw3yw8k886"; }; doCheck = false; - }); + propagatedBuildInputs = with python311Packages; [ + typing-extensions + ]; + }; in python311Packages.buildPythonPackage rec { pname = "nginx-language-server"; From 62ad32fa114c028f1cf7600d10638a9c26f910fe Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sun, 30 Mar 2025 04:16:36 -0600 Subject: [PATCH 19/19] should be good fr --- hosts/local-packages.nix | 7 ++++++- modules/python.nix | 5 ++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 1ec5fba..a3a929c 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -5,6 +5,12 @@ }: let customPkgs = import ../pkgs {inherit pkgs lib;}; in { + imports = [ + ../modules/python.nix + ]; + + python.enable = true; + environment.systemPackages = with pkgs; [ brave # TODO: make a module to save browser stuff vesktop @@ -88,7 +94,6 @@ in { nodePackages.pnpm zlib.dev udiskie - rust-analyzer clang-tools vscode-langservers-extracted diff --git a/modules/python.nix b/modules/python.nix index 3972d26..c471da8 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -16,10 +16,8 @@ ''; pythonEnv = pkgs.python311.buildEnv.override { extraLibs = with py; [ - customPkgs.python-pymatting - customPkgs.python-opencv-headless customPkgs.python-rembg - customPkgs.pythonPackages.numpy # should force the monkeypatch'd numpy + numpy i3ipc pandas matplotlib @@ -49,6 +47,7 @@ in { isort uv stdenv.cc.cc.lib + python311 ]; environment.variables = { PIP_PREFIX = "$HOME/.local";