1

Flake: Add nixpkgs-stable input, put the overlays in the correct place and add jetbrains.rider overlay

Jetbrains apps are currently broken on unstable because of a
jetbrains.jdk buildfailure
This commit is contained in:
2025-07-22 18:59:16 +02:00
parent 59075d1619
commit 1418e62598
5 changed files with 87 additions and 57 deletions

17
flake.lock generated
View File

@ -718,6 +718,22 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1753115646,
"narHash": "sha256-yLuz5cz5Z+sn8DRAfNkrd2Z1cV6DaYO9JMrEz4KZo/c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "92c2e04a475523e723c67ef872d8037379073681",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1752950548,
@ -889,6 +905,7 @@
"nix-alien": "nix-alien",
"nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable",
"nixvim": "nixvim",
"nps": "nps",
"nur": "nur",

View File

@ -12,6 +12,9 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hardware.url = "github:nixos/nixos-hardware";
# NOTE: Update this after May and November
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
# Home Manager
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
@ -52,7 +55,7 @@
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
hypr-dynamic-cursors.inputs.hyprland.follows = "hyprland";
hyprspace.url = "github:KZDKM/Hyprspace";
hyprspace.inputs.nixpkgs.follows = "nixpkgs";
# hyprspace.inputs.nixpkgs.follows = "nixpkgs";
hyprspace.inputs.hyprland.follows = "hyprland";
# NeoVim <3
@ -111,41 +114,24 @@
# firefox = prev.firefox.override { ... };
# myBrowser = final.firefox;
# }
overlays = [
overlays = let
# Maintain additional stable pkgs.
# This is supposed to provide a backup for packages in case they
# stop building on the unstable branch.
# It should otherwise not be mixed with this configuration,
# so don't even pass it to the modules.
pkgs-stable = import inputs.nixpkgs-stable {
inherit system;
config.allowUnfree = true;
config.allowUnfreePredicate = pkg: true;
};
in [
inputs.devshell.overlays.default
inputs.nur.overlays.default
# inputs.emacs-overlay.overlay
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
# can be done like this. Note that this creates an additional nixpkgs instance.
# https://github.com/NixOS/nixpkgs/issues/418451
# (final: prev: {
# unityhub_pinned_3_13 = import inputs.unityhub-pinned {
# config.allowUnfree = true;
# localSystem = {inherit (prev) system;};
# };
# })
# TODO: Remove this after 0.15.1 hit nixpkgs
(final: prev: {
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.15.1";
src = prev.fetchFromGitHub {
owner = "neovide";
repo = "neovide";
tag = finalAttrs.version;
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
};
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
cargoDeps = prev.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
});
})
# All my own overlays
(import ./overlays {inherit nixpkgs inputs;})
# All my own overlays (derivations + modifications)
(import ./overlays {inherit inputs nixpkgs pkgs-stable;})
];
};

View File

@ -91,8 +91,7 @@
# Add any extra libraries you want accessible to Rider here
];
# TODO: Broken, jetbrains.jdk doesn't build (see nixpkgs #425328)
unity-rider = pkgs.jetbrains.rider.overrideAttrs (attrs: {
rider-unity = pkgs.jetbrains.rider.overrideAttrs (attrs: {
postInstall =
''
# Wrap rider with extra tools and libraries
@ -115,21 +114,22 @@
});
in {
packages = with pkgs; [
# quartus-prime-lite # Intel FPGA design software
# Intel FPGA design software
# quartus-prime-lite
# Don't want heavy IDE's on the laptop
# jetbrains.clion
# jetbrains.rust-rover
# jetbrains.pycharm-professional
# jetbrains.idea-ultimate
# jetbrains.webstorm
# jetbrains.rider
# Unity Stuff
# TODO: Unity module
# unityhub # TODO: Wait for https://nixpk.gs/pr-tracker.html?pr=422785
# unity-rider
# dotnetCore
# mono
rider-unity
dotnetCore
mono
blender
godot_4
@ -144,19 +144,20 @@
file = lib.mkMerge [
{
# ".local/share/applications/jetbrains-rider.desktop".source = let
# desktopFile = pkgs.makeDesktopItem {
# name = "jetbrains-rider";
# desktopName = "Rider";
# exec = "\"${unity-rider}/bin/rider\"";
# icon = "rider";
# type = "Application";
# # Don't show desktop icon in search or run launcher
# extraConfig.NoDisplay = "true";
# };
# in "${desktopFile}/share/applications/jetbrains-rider.desktop";
".local/share/applications/jetbrains-rider.desktop".source = let
desktopFile = pkgs.makeDesktopItem {
name = "jetbrains-rider";
desktopName = "Rider";
exec = "\"${rider-unity}/bin/rider\"";
icon = "rider";
type = "Application";
# Don't show desktop icon in search or run launcher
extraConfig.NoDisplay = "true";
};
in "${desktopFile}/share/applications/jetbrains-rider.desktop";
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = ../../../config/mangohud/MangoHud.conf;
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source =
../../../config/mangohud/MangoHud.conf;
}
(lib.optionalAttrs (mylib.modules.contains config.home.packages pkgs.makemkv) {
".MakeMKV/settings.conf".source =

View File

@ -248,7 +248,7 @@
# rotate - rotate the cursor based on movement direction
# stretch - stretch the cursor shape based on direction and velocity
# none - do not change the cursors behaviour
mode = "tilt";
mode = "rotate";
# minimum angle difference in degrees after which the shape is changed
# smaller values are smoother, but more expensive for hw cursors

View File

@ -1,6 +1,7 @@
{
inputs,
nixpkgs,
pkgs-stable,
...
}: let
# Taken from https://github.com/Misterio77/nix-config/blob/main/overlay/default.nix
@ -11,14 +12,39 @@
pkgs = final;
};
modifications = final: prev: rec {
modifications = final: prev: {
# Only kept as an example, has nothing to do with current dconf-editor-wrapped derivation
# dconf-editor-wrapped = import ./dconf-editor.nix { inherit final prev; };
# Use dconf-editor.nix: { final, prev }: final.<package>.overrideAttrs (oldAttrs: { ... }) or sth similar
# Overriding specific packages from a different nixpkgs (e.g. a pull request)
# can be done like this. Note that this creates an additional nixpkgs instance.
# https://github.com/NixOS/nixpkgs/issues/418451
# unityhub_pinned_3_13 =
# (import inputs.unityhub-pinned {
# config.allowUnfree = true;
# localSystem = {inherit (prev) system;};
# }).unityhub;
# TODO: Remove this after 0.15.1 hits nixpkgs
neovide = prev.neovide.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.15.1";
src = prev.fetchFromGitHub {
owner = "neovide";
repo = "neovide";
tag = finalAttrs.version;
hash = "sha256-2iV3g6tcCkMF7sFG/GZDz3czPZNIDi6YLfrVzYO9jYI=";
};
cargoHash = "sha256-YlHAcUCRk6ROg5yXIumHfsiR/2TrsSzbuXz/IQK7sEo=";
cargoDeps = prev.rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname src version;
hash = finalAttrs.cargoHash;
};
});
# TODO: Remove this after jetbrains.jdk builds again (nixpkgs issue 425328)
jetbrains.rider = pkgs-stable.jetbrains.rider;
};
in
# TODO: I have absolutely no clue what happens here lol
# Basically we need some sort of list of all overlays that can be imported from the flake
# in the overlays = [ ... ] section of the pkgs = import nixpkgs { ... } configuration
# Somehow this library function turns additions/modifications into that
# Composes a list of overlays and returns a single overlay function that combines them.
nixpkgs.lib.composeManyExtensions [additions modifications]