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/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..e11459f 100644 --- a/home-manager/modules/lazygit.nix +++ b/home-manager/modules/lazygit.nix @@ -1,10 +1,18 @@ { - config, pkgs, - lib, ... }: { 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/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..b97de47 100644 --- a/home-manager/modules/polybar.nix +++ b/home-manager/modules/polybar.nix @@ -1,10 +1,6 @@ { - config, pkgs, - lib, ... }: { - home.packages = with pkgs; [ - polybar - ]; + home.packages = pkgs.polybar.all; } 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 7d89de7..a3a929c 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -1,21 +1,17 @@ -{ 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 - ])) - python3Packages.pip - black - ruff brave # TODO: make a module to save browser stuff vesktop git @@ -42,6 +38,7 @@ in { gawk obs-studio lazygit + lazydocker jdk17 bun maven @@ -51,13 +48,13 @@ in { htop btop nvtopPackages.full - ripgrep fd fzf jq bash customPkgs.fish-rust go + ollama sqls deno redis @@ -96,8 +93,42 @@ in { wrk 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 ]; - environment.shellAliases = { - python = "python3.11"; - }; } diff --git a/modules/audio.nix b/modules/audio.nix index 2ca23c8..e1451fe 100644 --- a/modules/audio.nix +++ b/modules/audio.nix @@ -1,7 +1,5 @@ { - config, pkgs, - lib, ... }: { security.rtkit.enable = true; @@ -12,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/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..f6b40f9 100644 --- a/modules/i3-xfce.nix +++ b/modules/i3-xfce.nix @@ -1,10 +1,26 @@ { - config, 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 = { @@ -26,16 +42,20 @@ 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" - - ${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 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 "candy-icons" + ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" + cat > $HOME/.config/xsettingsd << EOF + Net/ThemeName "Tokyonight-Dark" + Net/IconThemeName "candy-icons" + Gtk/CursorThemeName "capitaine-cursors" + EOF + killall xsettingsd || true + ${pkgs.xsettingsd}/bin/xsettingsd & ''; }; @@ -47,7 +67,7 @@ in { 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 = { @@ -55,8 +75,8 @@ in { name = "Tokyonight-Dark"; }; iconTheme = { - package = customPkgs.vivid-icons; - name = "Vivid-Icons-Dark"; + package = pkgs.candy-icons; + name = "candy-icons"; }; cursorTheme = { package = pkgs.capitaine-cursors; @@ -64,12 +84,36 @@ in { }; 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; @@ -78,13 +122,13 @@ in { qt = { enable = true; - platformTheme = "gtk2"; + platformTheme = "qt5ct"; }; environment.etc = { "gtk-2.0/gtkrc".text = '' gtk-theme-name="Tokyonight-Dark" - gtk-icon-theme-name="Vivid-Icons-Dark" + gtk-icon-theme-name="candy-icons" gtk-font-name="Clear Sans 10" gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-size=24 @@ -93,66 +137,64 @@ in { [Settings] gtk-application-prefer-dark-theme=1 gtk-theme-name=Tokyonight-Dark - gtk-icon-theme-name=Vivid-Icons-Dark - 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-Icons-Dark - 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-Icons-Dark"; - 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 - ] ++ (with customPkgs; [ - vivid-icons - ]); + xsettingsd + hicolor-icon-theme + adwaita-icon-theme + breeze-icons + gnome-themes-extra + ]; - services.xserver.desktopManager.session = [{ - name = "xfce+i3"; - start = '' - export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:$XDG_DATA_DIRS" - ${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch & - ${pkgs.i3-gaps}/bin/i3 - ''; - }]; + environment.pathsToLink = [ + "/share/icons" + "/share/pixmaps" + ]; + + 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-Icons-Dark"; - 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"; + }; }; - }; - }]; + } + ]; } diff --git a/modules/net.nix b/modules/net.nix index bb2230f..3cc67f0 100644 --- a/modules/net.nix +++ b/modules/net.nix @@ -1,11 +1,10 @@ { - config, pkgs, - lib, ... }: { environment.systemPackages = with pkgs; [ networkmanager_dmenu + networkmanagerapplet ]; networking.firewall.allowedTCPPorts = [ 57621 ]; 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 d34d709..c471da8 100644 --- a/modules/python.nix +++ b/modules/python.nix @@ -1,49 +1,64 @@ -{ 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 + [install] + ignore-installed = false + [packages] + numpy = "<2.0.0" + ''; + pythonEnv = pkgs.python311.buildEnv.override { + extraLibs = with py; [ + customPkgs.python-rembg + numpy + i3ipc + pandas + matplotlib + scipy + requests + virtualenv + ipython + six + psutil + pynvml + pyqtgraph + pyqt6 + pyyaml + pillow + jedi + libcst + pip + ]; + }; 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 - ])) - python3Packages.pip - black - ruff + pythonEnv + isort uv + stdenv.cc.cc.lib + python311 ]; environment.variables = { PIP_PREFIX = "$HOME/.local"; + PIP_CONFIG_FILE = "${pipConf}"; 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/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 aed9492..7686ee7 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,29 +1,35 @@ { 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"; + }; + }); + + 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-pymatting = pkgs.callPackage ./python-pymatting { - inherit lib; - fetchPypi = pkgs.fetchPypi; - python311Packages = pkgs.python311Packages; - }; - 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 = pkgs.python311Packages; - }; + python-rembg = pkgs.callPackage ./python-rembg { inherit lib; fetchPypi = pkgs.fetchPypi; + python311Packages = customPythonPackages; python-pymatting = pkgs.callPackage ./python-pymatting { inherit lib; fetchPypi = pkgs.fetchPypi; - python311Packages = pkgs.python311Packages; + python311Packages = customPythonPackages; }; python-opencv-headless = pkgs.callPackage ./python-opencv-headless { inherit lib; @@ -32,13 +38,13 @@ pkg-config = pkgs.pkg-config; stdenv = pkgs.stdenv; makeWrapper = pkgs.makeWrapper; - python311Packages = pkgs.python311Packages; + python311Packages = customPythonPackages; }; - python311Packages = pkgs.python311Packages; }; - vivid-icons = pkgs.callPackage ./vivid-icons { + + python-ngx-lsp = pkgs.callPackage ./python-nginx-language-server { inherit lib; - stdenv = pkgs.stdenv; fetchFromGitHub = pkgs.fetchFromGitHub; + python311Packages = customPythonPackages; }; } diff --git a/pkgs/python-nginx-language-server/default.nix b/pkgs/python-nginx-language-server/default.nix new file mode 100644 index 0000000..b025a03 --- /dev/null +++ b/pkgs/python-nginx-language-server/default.nix @@ -0,0 +1,50 @@ +{ + lib, + python311Packages, + fetchFromGitHub, + pkgs, +}: let + cusPydantic = python311Packages.buildPythonPackage { + pname = "pydantic"; + version = "1.10.18"; + 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"; + 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"]; + }; + } diff --git a/pkgs/python-opencv-headless/default.nix b/pkgs/python-opencv-headless/default.nix index 3bc9fdf..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"; @@ -31,15 +31,15 @@ python311Packages.buildPythonPackage rec { ]; propagatedBuildInputs = with python311Packages; [ - numpy setuptools + numpy ]; dontUseCmakeConfigure = true; 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-pymatting/default.nix b/pkgs/python-pymatting/default.nix index 14f282d..889cce7 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 @@ -35,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 2a51257..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,21 +17,22 @@ python311Packages.buildPythonPackage rec { poetry-core setuptools ]; - propagatedBuildInputs = with python311Packages; [ - numpy - 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; @@ -39,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"]; }; } 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"]; - }; -} diff --git a/pkgs/vivid-icons/default.nix b/pkgs/vivid-icons/default.nix deleted file mode 100644 index a1393d0..0000000 --- a/pkgs/vivid-icons/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - hicolor-icon-theme, -}: -stdenv.mkDerivation rec { - pname = "vivid-icons"; - version = "unstable-${builtins.substring 0 7 "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"}"; - src = fetchFromGitHub { - owner = "L4ki"; - repo = "Vivid-Plasma-Themes"; - rev = "fe8b8f1bdd3784dc838c125bb9e1b2d713f40e67"; - sha256 = "UlZkxeWb2n5TexaQymeyEqAjKwDfonTXO2OYjICHl+U="; - }; - buildInputs = [hicolor-icon-theme]; - 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 - fi - done - echo "Directories=$directories" >> "$dest_dir/index.theme" - 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"]; - }; -}