-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature request: nixGL integration #3968
Comments
I posted an implementation I've been using to wrap programs with nixGL, which i think could be general enough to be provided as a utility on |
a good first step would be to have nixGL in nixpkgs |
Thank you for your contribution! I marked this issue as stale due to inactivity. Please be considerate of people watching this issue and receiving notifications before commenting 'I have this issue too'. We welcome additional information that will help resolve this issue. Please read the relevant sections below before commenting. If you are the original author of the issue
If you are not the original author of the issue
Memorandum on closing issuesDon't be afraid to manually close an issue, even if it holds valuable information. Closed issues stay in the system for people to search, read, cross-reference, or even reopen – nothing is lost! Closing obsolete issues is an important way to help maintainers focus their time and effort. |
hold on a moment stale-bot! |
I've accomplished the |
Can you create a PR @izelnakri ? |
Maybe something that would be good to have under the |
Thank you for your contribution! I marked this issue as stale due to inactivity. Please be considerate of people watching this issue and receiving notifications before commenting 'I have this issue too'. We welcome additional information that will help resolve this issue. Please read the relevant sections below before commenting. If you are the original author of the issue
If you are not the original author of the issue
Memorandum on closing issuesDon't be afraid to manually close an issue, even if it holds valuable information. Closed issues stay in the system for people to search, read, cross-reference, or even reopen – nothing is lost! Closing obsolete issues is an important way to help maintainers focus their time and effort. |
This still needs solving. |
would love to see this implemented in home manager itself |
Thank you for your contribution! I marked this issue as stale due to inactivity. Please be considerate of people watching this issue and receiving notifications before commenting 'I have this issue too'. We welcome additional information that will help resolve this issue. Please read the relevant sections below before commenting. If you are the original author of the issue
If you are not the original author of the issue
Memorandum on closing issuesDon't be afraid to manually close an issue, even if it holds valuable information. Closed issues stay in the system for people to search, read, cross-reference, or even reopen – nothing is lost! Closing obsolete issues is an important way to help maintainers focus their time and effort. |
Still a valid issue |
For those following, I created a PR. You can test it by amending your { config, pkgs, ...}:
let
michaelCtsHm = builtins.fetchTarball "https://github.com/michaelCTS/home-manager/archive/refs/heads/feat/add-nixgl-workaround.zip";
nixGlModule = "${michaelCtsHm}/modules/misc/nixgl.nix";
in
{
imports = [ nixGlModule ];
workarounds.nixgl.packages = with pkgs; [
# A package of your choice here. alacritty is just an example
{ pkg = alacritty; }
];
} See the the nixgl module source (either in the nix store or the PR itself) for the objects to pass to With that, you should be able to open the package in your desktop environment. I tested it in openbox, but it should work with KDE, Gnome and others as well. |
@michaelCTS just tried this and ran into an issue. If I have |
@michaelCTS thank you for creating that PR! you've inspired me to finally put together my own utilizing the wrapper I posted near the top of this issue. I hope there are no hard feelings for waiting until you posted yours 😅 I am not immune to Cunningham's Law, but ultimately I hope the implementation that gets merged is the one that works best for everyone. @joefiorini if you want you can give #5355 a try. All you should need to do is set the |
@Smona I don't mind. It'll be up to the maintainers to decide which solution they prefer. It's just about time this issue is resolved. Whichever solution is chosen doesn't matter to me. It can always be iterated upon later and IMO there shouldn't be a focus on perfection, otherwise people will keep talking and never do anything. I modified my PR to make the wrapper available as well. We have different approaches of wrapping the package, so I think that will be the major difference. The one you use from stackoverflow does double the disk-space usage of the package IINM whereas what I used from the nixos wiki simply links to the existing package and writes one new bin. |
@michaelCTS (see edit below) I only have strong opinions about the API for HM users (which is harder to iterate on), not the specific wrapper used. I originally tried using Feel free to rip any other ideas from that PR, glad it could be of some help! In particular, I think these ideas are worth consideration:
Thanks again for pushing this forward! EDIT: I looked into it again and the wrapper in my PR does actually symlink the non-
So there is no disk usage downside to that wrapper. |
Your right @Smona! I didn't see the I'll close my PR in favor of yours. You'll probably be a more active maintainer. Hopefully it can be merged quickly. Cheers |
@michaelCTS I agree that In the interest of getting the initial implementation merged I might hold off on further refactoring on that branch if the current strategy looks good to maintainers, but changing the linking strategy is absolutely something we can iterate on in the future without breaking changes :) |
For anyone who wants to test #5355, I couldn't find an extensive way to do this, and I wanted to use Kitty, so this is what I did. I am using home-manager with flakes. I am new to all of this, so it might be obvious to many of the ones reading this, but it was not obvious to me. You can see the working sample at my dotfiles repo: I added NixGL to my input on nixGL = {
url = "github:nix-community/nixGL/310f8e49a149e4c9ea52f1adf70cdc768ec53f8a";
inputs.nixpkgs.follows = "nixpkgs";
}; In I added @Smona's patch to my imports: imports = [
(builtins.fetchurl {
url = "https://raw.githubusercontent.com/Smona/home-manager/nixgl-compat/modules/misc/nixgl.nix";
sha256 = "74f9fb98f22581eaca2e3c518a0a3d6198249fb1490ab4a08f33ec47827e85db";
})
]; I added an alias for nixGL, like so: let
nixGLIntel = inputs.nixGL.packages."${pkgs.system}".nixGLIntel;
#... I installed it by adding And I added the option: nixGL.prefix = "${nixGLIntel}/bin/nixGLIntel"; This changed my
I hope this helps someone. @Smona I hope your PR is merged soon so I can remove the customizations. Thanks for that! |
@giggio thank you so much for this little tutorial, everything works as expected! |
Somehow @giggio's approach gives me this error
any ideas? Edit: Alright fixed it by obtaining the new sha256 sum by doing (its Now I get :
Ok thats what I get for trying something different and trying Edit 2: Now I have the same problem @joefiorini mentioned with having colliding packages when Edit 3: |
Thank you all for the great work! I have been following the various threads, patches and so on, but now I am a bit lost how to get rid of those since, as far as I read, home-manager supports nixGL natively. Where can I find a doc page with up to date info? |
As always, you can run the |
@Smona @giggio Hi, I have always used @Smona 's
{
description = "Home Manager configuration of yasuaki";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nixGL.url = "github:guibou/nixGL";
};
outputs = { nixpkgs, home-manager, nixGL, ...}: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
overlays = [
nixGL.overlay
];
config.allowUnfree = true;
config.permittedInsecurePackages = [
];
};
in
{
homeConfigurations."yasuaki" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [
./home.nix
({ ... }: {
nixGL.prefix = "${pkgs.lib.getExe pkgs.nixgl.nixGLIntel}";
})
];
};
};
}
{ config, pkgs, lib, ... }:
{
imports = [
(builtins.fetchurl {
url = "https://raw.githubusercontent.com/Smona/home-manager/nixgl-compat/modules/misc/nixgl.nix";
sha256 = "01dkfr9wq3ib5hlyq9zq662mp0jl42fw3f6gd2qgdf8l8ia78j7i";
})
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "yasuaki";
home.homeDirectory = "/home/yasuaki";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages =
let
cui-apps = (with pkgs; [
fd
ripgrep
elan
]);
cui-apps-stable = (with pkgs; [
]);
gui-apps = (with pkgs; [
evince
bitwarden
]);
in
cui-apps ++
lib.lists.forEach gui-apps config.lib.nixGL.wrap;
} |
It’s now working property. I just needed to name the flake input
I put a shortened version of my {
description = "Home Manager configuration of yasuaki";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nixgl.url = "github:nix-community/nixGL";
nixgl.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { nixpkgs, home-manager, nixgl, ...}: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in
{
homeConfigurations."yasuaki" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
./home.nix
];
extraSpecialArgs = {
inherit nixgl;
};
};
};
} |
I'm trying to use this implementation but im getting the following error, anyone know why? I'm using Pop!_OS 22.04 error:
… while evaluating a branch condition
at /nix/store/ly4s3hw35dd1c2vsd694y2715pc1d2c1-source/lib/lists.nix:125:9:
124| fold' = n:
125| if n == len
| ^
126| then nul
… while calling the 'length' builtin
at /nix/store/ly4s3hw35dd1c2vsd694y2715pc1d2c1-source/lib/lists.nix:123:13:
122| let
123| len = length list;
| ^
124| fold' = n:
… while evaluating the error message for definitions for `nixGL', which is an option that does not exist
… while evaluating a definition from `<unknown-file>'
… while evaluating an attribute `packages`
… while evaluating an attribute `aarch64-darwin`
… while evaluating an attribute `default`
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: a 'aarch64-darwin' with features {} is required to build '/nix/store/z634b6kr64a0d7k9gxlhnmcmbd36gfzb-impure-nvidia-version-file.drv', but I am a 'x86_64-linux' with features {benchmark, big-parallel, kvm, nixos-test, uid-range} flake.nix: {
description = "My flake config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager/release-24.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nixGL = {
url = "github:nix-community/nixGL";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
nixpkgs-unstable,
home-manager,
nixGL,
...
} @ inputs: let
inherit (self) outputs;
hostname = "nixos";
system = "x86_64-linux";
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
nixosConfigurations = {
${hostname} = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [./nixos/configuration.nix];
};
};
homeConfigurations = {
"luisb" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit inputs;
inherit outputs;
isNixOS = false;
inherit pkgs-unstable;
inherit nixGL;
};
modules = [
./home-manager/home.nix
];
};
};
};
} home.nix: {
inputs,
lib,
config,
pkgs,
nixGL,
ixNixOS,
...
}:
{
targets.genericLinux.enable = true;
nixGL.packages = nixGL.packages;
imports = [
./zsh.nix
./neovim.nix
./devtools.nix
./programming-languages.nix
# ./gnome/gnome.nix
./gnome/pop-os.nix
./utils.nix
./git.nix
./ssh.nix
./cli.nix
./fonts.nix
];
home = {
username = "luisb";
homeDirectory = "/home/luisb";
sessionVariables = {
EDITOR = "nvim";
BROWSER = "firefox";
TERMINAL = "wezterm";
};
};
programs.home-manager.enable = true;
programs.git.enable = true;
programs.zsh.enable = true;
home.stateVersion = "23.05";
} |
@luiseduardobatista As the error message says:
You are still on HM 24.05, which does not yet have this. You need 24.11. |
@exzombie It worked, thanks for the help |
is this the correct way to wrap program ? I still have this error when run kitty
|
@vuthanhtung2412 it looks like your OS has a version of OpenGL that's too old for the version of kitty you're trying to use. You can check this with You could try adding a backwards-compat nixpkgs input (e.g. 24.05) and using that just for kitty, or updating opengl / ubuntu to a compatible version. |
@Smona Thank you a lot for looking into this for me. I tried what you have suggest but it didn't work
I have also modified my
Some more information that you might find it helpful
|
I've been coding for more than 20 years, but have only recently found Nix and even more recently started having a crack at home-manager. So I regard myself as a nix and home-manager n00b and consequently am far too shy to suggest updates to the official HM documentation to provide more detailed examples of how using the new built-in NixGL wrapping features of HM. Up until yesterday I was happily using @Smona 's excellent NixGL wrapping technique with my HM configuration. But I have since taken the leap and switched to the built-in NixGL wrapping features of HM. I did a lot of searching to see if I could find other people posting examples of HM configs claimed to be working with the new built-in NixGL wrapping technique, but couldn't find any. But somehow I managed to get it working. For reasons I explained earlier, I don't feel I have a strong enough grasp of flakes and HM to suggest improvements to official docs or add official examples, but I thought it might be helpful to others if I posted my flake.nix and home.nix here to give others clues/guidance/hints. Note: If any of you nix/flake/home-manager experts notice any stupid/wrong/inefficient/redundant content in these files, I apologise in advance. Any advice greatly appreciated. But it does work for me! Here you go. Some irrelevant lines have been removed for brevity. As you can see it's still a work-in-progress (e.g. I don't use HM for configuration management yet, just for installing packages). And, of course, you'll need to change
# Note: Based on the work of
# https://github.com/giggio/dotfiles/tree/main/home-manager
# ...and various other sources
#
{
description = "Home Manager configuration for myusername on non-NixOS Linux";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/release-24.11";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nixgl = {
url = "github:nix-community/nixGL";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
home-manager,
nixgl,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
mkHomeManagerConfiguration = { extraSpecialArgs, ... }: home-manager.lib.homeManagerConfiguration ({
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit inputs;
inherit nixgl;
} // extraSpecialArgs;
});
in
{
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
homeConfigurations =
let
setup = {
wsl = false;
basicSetup = false;
isNixOS = false;
isVirtualBox = false;
};
in
{
# available profiles: myusername, myusername_wsl, myusername_virtualbox_nixos, myusername_nixos, myusername_basic, myusername_wsl_basic, myusername_virtualbox_basic, myusername_virtualbox_nixos_basic, myusername_nixos_basic
myusername = mkHomeManagerConfiguration {
extraSpecialArgs = { inherit setup; };
};
myusername_wsl = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { wsl = true; };
};
};
myusername_virtualbox_nixos = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { isVirtualBox = true; isNixOS = true; };
};
};
myusername_nixos = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { isNixOS = true; };
};
};
myusername_basic = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { basicSetup = true; };
};
};
myusername_wsl_basic = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { wsl = true; basicSetup = true; };
};
};
myusername_virtualbox_basic = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { isVirtualBox = true; basicSetup = true; };
};
};
myusername_virtualbox_nixos_basic = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { isVirtualBox = true; isNixOS = true; basicSetup = true; };
};
};
myusername_nixos_basic = mkHomeManagerConfiguration {
extraSpecialArgs = {
setup = setup // { isNixOS = true; basicSetup = true; };
};
};
};
};
}
# Note: Based on the work of
# https://github.com/giggio/dotfiles/tree/main/home-manager
# ...and various other sources
#
{ config, pkgs, lib, inputs, setup, nixgl, ... }:
let
# Nothing here
in
rec {
nixGL.packages = nixgl.packages;
nixGL.defaultWrapper = "mesa";
#nixGL.offloadWrapper = "nvidiaPrime";
nixGL.installScripts = [ "mesa" ];
nixpkgs = {
config = {
allowUnfreePredicate = pkg: builtins.elem (lib.strings.getName pkg) [
"code"
"discord"
"gh-copilot"
"vscode"
];
permittedInsecurePackages = [ # todo: remove. This is because of element-desktop. See: https://github.com/NixOS/nixpkgs/pull/334638#issuecomment-2289025802
"jitsi-meet-1.0.8043"
];
};
};
home = {
username = "myusername";
homeDirectory = "/home/" + home.username;
stateVersion = "24.11"; # Check if there are state version changes before changing this field: https://nix-community.github.io/home-manager/release-notes.xhtml
#preferXdgDirectories = true;
packages =
let
basic_pkgs = (with pkgs; [
# common basic packages
age
atuin
bat
blesh
cowsay
fx
fzf
] ++ (if setup.wsl then [
# wsl basic packages
wslu
] else [
# non wsl basic packages
htop
] ++ (with gnomeExtensions; [
# Removed
## gsconnect # todo: not running, see: https://github.com/NixOS/nixpkgs/issues/173301
#blur-my-shell
#burn-my-windows
#caffeine
])
) ++ (if setup.isNixOS then [
# NixOS basic packages
] else [
# non NixOS basic packages
]));
non_basic_pkgs = lib.lists.optionals (!setup.basicSetup) (with pkgs; [
# common non basic packages
devbox
epiphany
evince
pdfarranger
signal-desktop
syncthing
sysz
virt-manager
virt-viewer
] ++ (if setup.wsl then [
# wsl non basic packages
] else [
# non wsl non basic packages
whatsapp-for-linux
#kdePackages.kdenlive
#glaxnimate
]) ++ (if setup.isNixOS then [
# NixOS non basic packages
#vscode-fhs
#microsoft-edge
# protonup-qt # to use with steam
] else [
# non NixOS non basic packages
(config.lib.nixGL.wrap marble)
(config.lib.nixGL.wrap mpv)
(config.lib.nixGL.wrap kdePackages.okular)
(config.lib.nixGL.wrap vlc)
]));
all_packages = basic_pkgs ++ non_basic_pkgs;
in
all_packages;
# TODO: Move session management to home-manager
#sessionPath = [
# "$HOME/.local/bin"
# "$XDG_DATA_HOME/npm/bin"
# "$HOME/.krew/bin"
#];
#sessionVariables = {
# # this goes into ~/.nix-profile/etc/profile.d/hm-session-vars.sh, which is
# # loaded by .profile, and so only reloads if we logout and log back in
# LC_ALL = "en_US.UTF-8";
# TMP = "/tmp";
# TEMP = "/tmp";
# EDITOR = "vim";
# XDG_DATA_HOME = "\${XDG_DATA_HOME:-$HOME/.local/share}";
# XDG_STATE_HOME = "\${XDG_STATE_HOME:-$HOME/.local/state}";
# XDG_CACHE_HOME = "\${XDG_CACHE_HOME:-$HOME/.cache}";
# NPM_CONFIG_PREFIX = "\${NPM_CONFIG_PREFIX:-$HOME/.local/share/npm}";
# BASIC_SETUP = "\${BASIC_SETUP:-false}";
#};
# TODO: Move config file management to home-manager
#file = {
# ".cargo/.keep".text = "";
# ".local/bin/dotnet-uninstall".source = ./bin/dotnet-uninstall;
# ".local/bin/hm".source = ./bin/hm;
# ".hushlogin".text = "";
# ".XCompose".text =
# ''
# <dead_acute> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
# <dead_acute> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
# '';
# ".tmux.conf".text =
# ''
# set -g default-terminal "screen-256color"
# set-option -g default-shell /bin/bash
# set -g history-limit 10000
# source "$HOME/.nix-profile/share/tmux/powerline.conf"
# set -g status-bg colour233
# set-option -g status-position top
# set -g mouse
# # Smart pane switching with awareness of vim splits
# bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|vim?)(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"
# bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|vim?)(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
# bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|vim?)(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"
# bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|vim?)(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"
# # bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|vim?)(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
# '';
# ".w3m/config".text =
# ''
# inline_img_protocol 4
# auto_image TRUE
# '';
# ".inputrc".text = "set bell-style none";
# ".vimrc".text = "source ~/.vim/.vimrc";
#};
};
programs = {
home-manager = {
# Let Home Manager install and manage itself.
enable = true;
};
# Removed by jwc
#bash = {
# (lots of lines deleted to save space)
};
fonts.fontconfig.enable = !setup.wsl;
# Added by JWC
#targets.genericLinux.enable = true;
targets.genericLinux.enable = !setup.wsl || setup.isNixOS;
# Added by JWC
xdg.mime.enable = false;
} |
@level323 Thank you a lot for sharing you set up 💯 . I made the following changes
and it now works like a champ 🎉
I think there must be something wrong with nixGL.defaultWrapper "nvidia" option |
Sigh I had a complete flake example in the documentation of the NixGL module at some point, but I decided not to include it because it seemed more appropriate to instead extend the other section of the documentation where flakes are discussed. Which would be a separate pull request that I then didn't make. I see now that it was a mistake. The way the NixGL input is passed trough Would one of you people be willing to extend the existing example in the HM documentation and open a pull request? It seems like a good way to get your feet wet contributing to HM 😉 |
If |
@exzombie Thank you for the explanation ✋. My Intel chip must have an integrated GPU 😅 |
Thankyou for all you've done on this aspect of HM and all you no doubt continue to do!
I wish this was the only part I still don't understand about flakes! I continue to learn.
I feel hopelessly out of my depth. There's still many parts in my own flake.nix, where I still don't clearly understand what's going on. I pieced it together from other sources and used my coding experience to make educated guesses about what was probably needed, and finally got a working version after many iterations. For example, beyond the fact that it pulls in home.nix, I have very little idea about what is actually going on in the |
Hello team
The app is still working fine in both case. However, it display the following errors which may indicate that it is not properly GPU accelerated:
I tried removing GPUCache,GrShaderCache,ShaderCache like this comment but it still not working.
more info about my system
libGL problem references |
Same issue here, is there a known fix? |
I think it is a problem of chromium based app itself. For me it still run on the iGPU (mesa) so i give up on the nvidia set up already. It is kind of a deep rabbit hole |
When I try it on x86_64-linux, I get
|
Description
NixOS/nixpkgs#9415 which tracks the problem of libGL in nix on non NixOS systems has been open for about 8 years now. Luckily, nixGL exists which provides a wrapper around programs that require openGL (games, gpu accelerated terminals, browsers, etc.).
It would be great if there were an option to wrap all GUI applications or user-specified applications with
nixGL
. I'm assuming there's a generic way and bepoke method per application. Care should be taken for the desktop entries to call withnixGL
workarounds.opengl.packages
Is given a list of package names (or maybe packages themselves) that it has to wrap
lib.wrapWithLibGL
It could be a wrapper that takes a package and spits out another which is called by libGL.
The text was updated successfully, but these errors were encountered: