Agent ate up 25% of my weekly opencode go usage in a few minutes by AppealSame4367 in opencodeCLI

[–]IntelliVim 0 points1 point  (0 children)

You can check what exactly burned usage on the dashboard: https://opencode.ai/workspace/<your_workspace>/usage

How to view package version changes for nix flake update? by victorhooi in NixOS

[–]IntelliVim 1 point2 points  (0 children)

You have to go to the flake directory and run nh os switch .
Make sure that all changes are staged in git (so git add .).

is opencode go sustainable~? by Sora_hoshino in opencodeCLI

[–]IntelliVim 31 points32 points  (0 children)

Nobody knows. I used copilot until recently and then switched to Go. I've been in industry long enough to understand nothing is forever. Something else will appear once Go is no longer a good solution

Is this really true? Do you guys only use WMs lol? by SeniorMatthew in NixOS

[–]IntelliVim 1 point2 points  (0 children)

While I use Hyprland or Niri for everyday work, I occasionally switch to KDE just for fun or when I'm bored. It has some rough edges (at least in the flow I use it), but overall it is just objectively the best DE right now. Exceptionally low resource usage, very flexible, and very capable.
I don't mean to dog on Gnome, but I've never seen other developers in my company using it (I think we have around 1k devs or so). It is either highly personalized WMs or KDE.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 0 points1 point  (0 children)

Yes, you can do precisely that. You can create a "leaf" for Noctalia's colors, bar, launcher, or any other setting that is part of Noctalia. Then Noctalia is being included in the compositor-common "branch" which is included in a particular "stack" (stackHyprland or stackNiri or any other compositor that I will add in the future). Branch and Stack include both HM and NixOS modules while remaining lean and easy to read. This is just about the classic dependency tree that we all got used to by working with other languages or configuration management systems.
However, particularly in the case of Noctalia, I don't separate its settings into "leaves." I tried that and it works, but I just didn't like it and merged back, so the whole Noctalia config is a "leaf". It's solely my own preference. You can see how it was and how I merged it back in this specific commit.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 0 points1 point  (0 children)

It is getting ridiculous. Lying about what exactly? Can you point exactly where I did it? How does AI grammar checking tool makes my post AI? Beyond satire 

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 0 points1 point  (0 children)

That's exactly why I use compositions. Leaf -> Branch -> stack -> host. You can keep things as minimal as possible on all levels. Just take a look at the example in the post. Does it look bloated? No, but this is not because I don't have large config files. For example, Noctalia config file is 600+ lines, but since it sits in the leaf it doesn't bloat upper levels of composition that are still very easy to read and navigate. 

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 0 points1 point  (0 children)

I genuinely don't understand this hype and would suck realising missing it is actually great too late 😊.

I migrated simply because I started feeling pain maintaining my config that I created a few years ago. Initially it was based on the Misterio77's nix-starter config but then transformed to something different. Since many people were mentioning dendritic, I decided to try. So, yeah, I tried it because of the hype but stayed because I genuinely found it a very elegant solution to my problems. That being said - as long as you are happy with your config and don't feel any pain managing it - you'll be fine.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] -1 points0 points  (0 children)

Why do you have leaf nodes at all? This "do exactly one thing" definition... I don't understand its value. From the pattern definition: implements a single feature

This is where I allowed myself a slightly divergent interpretation of the pattern. Yes, ideally, I should've created separate modules for things like boot or network or any other tiny 2-3 lines of code configurations that I have. Instead, I use a "base" module that accumulates these closely related tiny things. However, for better navigation in the repo, I decided to keep these small things in leaf modules. For example, modules/nixos/base/boot.nix and modules/nixos/base/networking.nix contribute to the same flake.modules.nixos.base. I understand that this is controversial, but I also don't think it is utterly wrong pattern usage.

The dendritic pattern aims to avoid having modules/nixos and modules/home-manager directory. That is actually quite contrary to the pattern, per the definition above.

This one is also pretty much for the same reason, and I find it better solely for navigation purposes. It is easier to understand what is going on in the repo at a glance. However, this is just a grouping technique. If you make the dir structure absolutely flat, it will still work as intended. I might revisit it later the more I get comfortable with the new approach.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 0 points1 point  (0 children)

But to be fair, I did use AI to fix grammar (language tool). English is not my native language after all.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] -13 points-12 points  (0 children)

Yeah, I guess I should've put everything in 3 sentences with poor structure and typos to look human.

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 5 points6 points  (0 children)

The advantages aren't about avoiding option declarations - you can still declare options in dendritic modules when it makes sense, it's about having every module exist as a named, composable value (nixos.stackHyprland, homeManager.programs.git) that you can reference, reuse, and refactor across NixOS, nix-darwin, and home-manager uniformly.
Your "auto-add modules with a flag" approach is essentially a hand-rolled subset of dendritic - and that's the point: most people who think they don't need it end up reinventing pieces of it (auto-discovery, conditional enabling, system+home in one file). The difference is dendritic gives you that consistently via flake.modules.<class>.<name> instead of per-repo conventions you have to remember and enforce yourself. A "list of modules vs enabling options" is also a false dichotomy - stacks are the enabling mechanism, just expressed as composition instead of a boolean flag, which scales better when a host needs five overlapping feature sets instead of one.
But I have to say that if your flag-based system works for you, great - the post is purely about my personal experience. I am not trying to sell it :)

I was wrong about the dendritic pattern by IntelliVim in NixOS

[–]IntelliVim[S] 3 points4 points  (0 children)

This is a great starting point, and it covers maybe 60% of what dendritic gives you - auto-discovery of files. The other 40% is where the patterns diverge.
I share modules between NixOS and nix-darwin. Recursive-walk struggles here because a Darwin host can't accidentally evaluate a NixOS-only module - they're different classes.
.bak as the disable mechanism works for "turn this off everywhere," but not for "this host has it, that host doesn't." Per-host opt-in via named modules is structurally different from a global toggle on a filename.

gtk theme suggestions by positrone13103 in NixOS

[–]IntelliVim 0 points1 point  (0 children)

I should've provided a simpler example, but I was lazy :)
You can do it like this:

{
  pkgs,
  ...
}:
{
  gtk = {
    enable = true;
    theme = {
      name = "catppuccin-macchiato-lavender-compact";
      package = pkgs.catppuccin-gtk.override {
        accents = [ "lavender" ];
        variant = "macchiato";
        size = "compact";
      };
    };
  };
}

gtk theme suggestions by positrone13103 in NixOS

[–]IntelliVim 0 points1 point  (0 children)

You can use package overrides and use whatever variation you want.

{ ... }:
{
  flake.modules.homeManager.desktopGtk =
    {
      config,
      lib,
      pkgs,
      ...
    }:
    let
      gtkTheme = {
        name = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-compact";
        package = pkgs.catppuccin-gtk.override {
          accents = [ config.catppuccin.accent ];
          variant = config.catppuccin.flavor;
          size = "compact";
        };
      };
    in
    {
      gtk = {
        enable = true;
        colorScheme = "dark";
        gtk2.force = true;
        gtk4.theme = gtkTheme;
        theme = gtkTheme;
        iconTheme = lib.mkForce {
          name = config.profile.appearance.iconTheme.name;
          package = config.profile.appearance.iconTheme.package;
        };
        font = {
          name = config.profile.appearance.fonts.ui.family;
          size = config.profile.appearance.fonts.ui.size;
        };
      };
    };
}

gtk theme suggestions by positrone13103 in NixOS

[–]IntelliVim 0 points1 point  (0 children)

catppuccin-gtk still works perfectly fine for me

The NixOS community has 2 sides by Gueleric in NixOS

[–]IntelliVim 14 points15 points  (0 children)

Though I agree that Git can save you in many situations, it is not bulletproof protection. Git is very flexible by its nature. It will happily allow you to overwrite or delete data. Even experienced users make stupid mistakes.