gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
<gchristensen> I think we'll need clarification on what the question is then :)
<leah2> imo a manager should not have "uninstall" as experimental feature :p
<leah2> maven is 2004...
<leah2> easy_install too
<leah2> php pear is from 1999
<gchristensen> good ol' pear.....
<supersandro2000> pear is so great that I have uninstalled it
<joepie91> the fact that you can uninstall it, places it above some other options...
j has joined #nixos-chat
j is now known as jess
supersandro2000 has quit [Disconnected by services]
supersandro2000 has joined #nixos-chat
<aaronjanse> Sadly so
<aaronjanse> Btw, is there a strong reason why there isn't a buildNodePackage thing that worked like buildRustPackage, with just a hash of dependencies? Right now it's a PITA to generate Nix code for node projects, and it sounds like an interesting problem for me to work on
<gchristensen> buildRustPackages and "mega hashes" like that are a bit of an antipattern
<gchristensen> I think my wifi access points are misconfigured, WiGLE is reporting them being picked up from 3,000 feet away
<gchristensen> also, WiGLE is too bizarre.
<aaronjanse> Huh, if it's an antipattern then I see why it wouldn't be in Nixpkgs. But would people be against me attempting to make the functionality available as a flake?
<gchristensen> I don't see why not :)
<aaronjanse> Awesome!
<aaronjanse> I most likely won't be able to do it (right now I'm distracted by Nix LSP stuff) but I might give it a shot next week
Synthetica has quit [Quit: Connection closed for inactivity]
patagonicus0 has joined #nixos-chat
patagonicus has quit [Ping timeout: 240 seconds]
patagonicus0 is now known as patagonicus
<gchristensen> https://www.youtube.com/watch?v=tltBHjmIUJ0 coffee people need to calm down
<aaronjanse> End product aside, I wanna casually cook food with a torch
<gchristensen> look up the searzall :)
rajivr has joined #nixos-chat
<infinisil> I'm realizing that I've worn down the desk under my mouse so much that I don't even need a mouse pad
<infinisil> It's super smooth around that part
<siraben> aaronjanse: what are you doing wrt. Nix LSP?
endformationage has quit [Quit: WeeChat 2.9]
<aaronjanse> siraben: I'm trying to figure out how hard it would be to properly provide autocomplete and hover-documentation for a NixOS options in a Nix LSP
<aaronjanse> If I do this, I'd probably make it flakes-only, or at least start that way
<aaronjanse> I can get docs for NixOS options by getting `nixosConfigurations."${hostname}".options`. I then need to figure out how to prove how a given attr set's values map to the final `nixosConfigurations."${hostname}".config`
<siraben> How come flakes only initially? Is it easier that way?
<supersandro2000> aaronjanse: you should consider not doing this
<aaronjanse> It might actually be harder, hmm
<supersandro2000> flakes are meh
<aaronjanse> Not doing it at all, or not making it flakes-only?
<supersandro2000> not doing it flakes only
<supersandro2000> you want to avoid using flakes rn tbh
<supersandro2000> more pain for nothing
<aaronjanse> Oh I use flakes for everything (nixops, nix profile, nixos)
<aaronjanse> But this project would be much easier if I could enforce something like "the configuration root is at configuration.nix, then other files are imported from that"
<aaronjanse> Or, I could have non-flakes support by having the LSP have an implicit in-memory flake calling the configuration.nix
<aaronjanse> supersandro2000: Why do you dislike flakes? I like that they clean up channels
<supersandro2000> commit things to test them
<supersandro2000> updating more lock files
<aaronjanse> Huh, you don't need to commit things to test them?
<supersandro2000> changing all commands with weird syntaxes
<supersandro2000> and using the comment character
<aaronjanse> You just need to have the files tracked by git. So if you have new files, you have to stage them. But git doesn't need to be aware of changes made to files that have been staged or committed in the past
<supersandro2000> changing nix-build output and breaking nom
<aaronjanse> *you need files tracked by git, but not the most recent changes
<supersandro2000> yeah. Why?
<supersandro2000> useless feature
<aaronjanse> I'm not sure
<aaronjanse> I like the idea of always pinning nixpkgs
<aaronjanse> And I think flakes makes that more convenient than manually updating a hash
<lovesegfault> Flakes just does too much other shit
<lovesegfault> the fact that it uses # infuriates me
<lovesegfault> it's such an obviously horrible idea to use #
<aaronjanse> Huh, does it cause issues in any shells?
<supersandro2000> not like we have at least 30 other characters to use which are not a common comment character
<lovesegfault> Well, it's hard to type, it means comment almost everywhere else, and it fudges up syntax highlighting often
<supersandro2000> and why on earth do I want to pin nixpkgs when developing?
<supersandro2000> niv does the same but in a convenient fassion
<aaronjanse> It lets you avoid needing to re-download nixpkgs constantly
<lovesegfault> I'm actually fine with nixpkgs being always pinned
<lovesegfault> if that's all flakes did I'd be fine
<supersandro2000> redownloading is not really a concern for me but it is nice if you don't need to do it
<supersandro2000> tbh just point the channel to my local nixpkgs repo and all problems solved
<aaronjanse> True, but I dislike when I stop working on a project for a few months, come back, and it's broken because I didn't pin my dependencies
<lovesegfault> Also flakes docs are meh
<aaronjanse> ^flake docs indeed suck
<aaronjanse> If there are any
<supersandro2000> aaronjanse: not sure that happens so often
<aaronjanse> I think there's just a NixOS wiki page?? wtf
<aaronjanse> supersandro2000: It happens to me constantly
<aaronjanse> More often than not
<supersandro2000> it just encourages to use some old pinning because it just works
<aaronjanse> Is that not okay?
<supersandro2000> I don't know what you are doing but that almost never happens to me
<aaronjanse> I'd prefer to always have a known-working pin
<aaronjanse> Instead of needing to bisect nixpkgs
<Ke> if you are bisecting, you already know, what worked
<supersandro2000> no, people being stuck on old stuff and making that even easier is not really something I think should be encouraged
<aaronjanse> A common time this happens is when OpenSSL updates, breaking deps. I don't need up-to-date security deps for experiments. Or when Rust compiler updates
<Ke> in general I would prefer logging to pinning
<Ke> but if the codebase is very sensitive, I can get pinning
<supersandro2000> well I don't use rust
<Ke> in general I think it's a bad default
<aaronjanse> Huh, wdym by pinning? Emil Karlson
<aaronjanse> *logging
<lovesegfault> Idk, I feel like pinning is a must for a shared project?
<aaronjanse> ^agreed
<lovesegfault> we pin nixpkgs at work
<lovesegfault> (with niv)
<aaronjanse> And it's what npm, cargo, etc do
<supersandro2000> if you have tools that pin the setuptools or wheel versions
<supersandro2000> and force you to download some old version
<Ke> aaronjanse: logging I mean you note what worked last, but don't just automatically stick to it
<aaronjanse> They don't force you to stay on old versions. Pins simply let you have a known working default
<Ke> when you have an issue, just revert temporarily
<aaronjanse> Then if you want to update the pin, it's super easy
<aaronjanse> You could even have super simple CI to update the pin and run tests
<Ke> aaronjanse: I am saying not updating by default is imo not sane, unless you are really deep in the sensitive code territory
<Ke> but then again there should be a good reason for it
<aaronjanse> Hmm I disagree regarding whether updating by default is best
<aaronjanse> Note that Nix currently has the worst of both worlds: not auto-updating and not recording used versions
<aaronjanse> *Nix <2.4
<Ke> hmm. like which way of using nix?
<aaronjanse> Using the <nixpkgs> channel
<Ke> recording functionality of different parts is indeed very non-trivial problem and left as an excercise for the readre
<Ke> recording functionality of different parts is indeed very non-trivial problem and left as an excercise for the reader
<Ke> I don't get though how does nixpkgs not auto-update?
<Ke> you mean you have to manually run nix-channel update?
<aaronjanse> Yeah. And the version you use is global
<aaronjanse> One person working on a project might be on an entirely different commit/release of nixpkgs compared to other people
<Ke> again this depends on the sensitivity of the project
<Ke> in general I consider sensitivity a bad thing
<aaronjanse> Also, Nixpkgs master breaks somewhat often. I assume by auto-updating you're referring to some release or nixos-unstable?
<aaronjanse> Would you clarify what you mean by "sensitivity"?
<Ke> obviously very complex code bases tend to pile up bad things
<Ke> sensitivity to changes in environment
<Ke> it means that maybe your libs are buggy, the way you use them are buggy, or they do not provide good api stability planning
<supersandro2000> master does not break that often tbh
<aaronjanse> Hmm. Redox used the Rust llvm! macro. Then Rust replaced that with a new macro. But I don't think the breakage is Redox's fault
<supersandro2000> if you are on unstable not much breaks for me at least
<Ke> or just that your codebase has too much code compared to maintainers doing the work
<aaronjanse> Or libraries that require a minor version of OpenSSL have broken
<lovesegfault> Heck, I run unstable-small and very rarely anything breaks
<Ke> aaronjanse: definitely Rust should have api stability planning for that, I understood that some parts don't because Rust maybe is not mature enough
<aaronjanse> supersandro2000: Did you not get hurt by fonts all breaking and Firefox wiping user data last year? Or by ghc bootstrapping breaking on aarch64?
<Ke> and I do love Rust, but I definitely am afraid this part of it
<Ke> just like with haskell I really dislike the part where there is no language outside of extensions
<lovesegfault> ghc is always broken on non-x86 anyway...
<aaronjanse> It hasn't always been
<Ke> like I'd love ai hello world level haskell, where you are not allowed to do fancy stuff at all
<Ke> s/ai/a/
<aaronjanse> Oh, or last year I had a lab for school, and patchelf started throwing errors. I had to bisect nixpkgs to find a version that worked with a GUI application I needed for school that evening
<Ke> well maybe also strict evaluation
<lovesegfault> AI hello world :P
<aaronjanse> Is your desire to run bleeding-edge motivated by something like security?
<Ke> aaronjanse: we have all been there, I kind of planned to have debian stable escape hatch for that
<lovesegfault> Nope, I just enjoy it
<aaronjanse> I think the vast majority of the world does not run their systems as bleeding-edge as Nixpkgs
<lovesegfault> idk man, plenty of people seem to run Arch
<lovesegfault> and a lot of people run Gentoo in unstable mode
<aaronjanse> Oh, or a few months ago I got hit by a systemd bug because Nix updated before everyone else. I lost a remote system during reboot and had to re-provision
<lovesegfault> Hm? Your remote systems don't have IPMI?
<Ke> in general nixos is unimaginably ambitious project that does things different from other distros, it just has a huge handicap and this is something that takes energy
<lovesegfault> Or a serial tty
<supersandro2000> aaronjanse: no, no and no
<aaronjanse> I didn't have access to either of those lovesegfault
<supersandro2000> kde is so broken that I just run Debian sid for a UI
<lovesegfault> I mean, if you don't have out-of-band management you shouldn't be deploying to a remote host at all IMHO
<lovesegfault> unless it's some life-or-death shit
<aaronjanse> I keep my system fairly up-to-date (~1 week), but I like the idea of always knowing a version of Nixpkgs that works and updating only when I have time to deal with breakage (e.g. before taking an exam)
<Ke> aaronjanse: but then you absolutely must test every part of it and it's not just feasible
<aaronjanse> Oh I barely test system updates
<Ke> silent background breakages happen even on debian stable
<aaronjanse> I just make sure "oh is my system usable? Yeah"
<Ke> but how would you know that one thing that you almost never use would work
<Ke> or how would you know, when it last worked?
<Ke> pin each package to a separate nixpkgs?
<aaronjanse> Yeah that's what I do
<aaronjanse> Each of my personal projects has a separate nixpkgs pin
<siraben> > It lets you avoid needing to re-download nixpkgs constantly
<siraben> aaronjanse but then it seems every project has a different pin
<{^_^}> undefined variable 'It' at (string):492:1
<siraben> I guess intentionally, but it's annoying sometimes when it makes no difference
<aaronjanse> What's wrong with that?
<siraben> I personally override by default with my pinned nixpkgs in my registry
<aaronjanse> Oh that works
<siraben> but if I want to work on a project with other people, yeah pinning makes sense
<aaronjanse> Yeah, even if you don't use the pin yourself
<aaronjanse> *but know that the pin works
<siraben> aaronjanse: Fortunately I didn't get affected by fonts breaking and Firefox wiping user data last year, I don't upgrade too often
<aaronjanse> I don't blame Nixpkgs btw. Breakage will happen when so much code is changing each day
<aaronjanse> And, for examples, the fonts issue was a breaking change upstream
<siraben> aaronjanse: (sorry going through the long log so not seeing recent messages) lol you have time to deal with breakage before taking exams?
<siraben> Emil Karlson: yeah, IME modern languages and tech stacks break so often people just pin everything, sigh
<lovesegfault> I got kind of lost, where did the debate move to?
<siraben> working with Flutter 2 be like
<aaronjanse> siraben: It was quite stressful https://discourse.nixos.org/t/all-fonts-suddenly-inaccessible/8994
<siraben> (still haven't updated my app to use Flutter 2 because of mass lib + language changes)
<aaronjanse> lovesegfault: The topic stayed on pinning
<lovesegfault> Ah
<lovesegfault> pinning good
<lovesegfault> QED.
<siraben> maybe an intensional store would help with the massive space usage
<aaronjanse> Yeah
<siraben> but for now, I override nixpkgs by default, then use the pin if it fails
<siraben> ¯\_(ツ)_/¯
<aaronjanse> Yeah that works
<aaronjanse> Btw a zfs compressed volume for /nix/store does wonders
<aaronjanse> Even after Nix deduplication, I get a ~1.6x compression ratio
<aaronjanse> But a lot of that may just be me using many versions of nixpkgs
<siraben> Oh yeah, I still need to move to ZFS >.<
<siraben> had no time last week with stats and analysis midterms, heh
<Ke> siraben: that's the logging solution I proposed
<aaronjanse> Btw Emil Karlson nix flakes changes `nix shell` to auto-download nixpkgs every single time you use it, unless you explicitly pin your system nixpkgs flake
<siraben> Emil Karlson: what's the logging solution?
<siraben> aaronjanse: i've always hated that
<siraben> good thing we have nix registry pin
<aaronjanse> Yeah
<Ke> log what worked, update by default
<aaronjanse> How do you tell Nix what worked and what broke things?
<siraben> i guess you'll need to have a comprehensive test suite as well, because often building is not necessarily enough
<aaronjanse> siraben: It's annoying at first, but I think it exists to encourage people to explicitly pin their system nixpkgs or accept that they're doing bleeding-edge
<Ke> again not implemented any more than mentioned here
<aaronjanse> You could have CI to update a Nix flake.lock
<aaronjanse> After running tests
<siraben> aaronjanse: Yeah, otherwise it gives the false impression of pinning
<aaronjanse> Well, today I learned that flakes are more controversial than I thought
<aaronjanse> So I'll make sure that non-flake nixos configs are supported by whatever LSP thing I'm working on
<siraben> I didn't get into it originally because the docs were confusing
<siraben> the CLI docs were what tipped me over
<aaronjanse> Yeah, there needs to be more online documentation
<lovesegfault> Damn, we're getting really close to 300k commits
<aaronjanse> We hit 200k late last year, right?
<lovesegfault> Yeah, I did a tweet the day of
* lovesegfault finds it
<aaronjanse> We have also already made a lot of progress towards 200k github issues/prs
<siraben> What repo on GitHub has more issues and PRs than us
<siraben> or are they private
<lovesegfault> aaronjanse: Nov 1 2019
<aaronjanse> Wow
<aaronjanse> *last last year, I forgot it's 2021
<siraben> lol
<aaronjanse> Today is December 117th, 2020 apparently
<aaronjanse> (Julia is magic)
<aaronjanse> $ julia -e 'using Dates; Date(2021, 3, 27) - Date(2020, 12, 1) |> display'
<aaronjanse> 116 days
<supersandro2000> ruby can also substract dates
<aaronjanse> Well so can most languages
* siraben sweats in Haskell
<aaronjanse> Ahahahaha
<siraben> I've never needed to do date stuff in Haskell hmm
<supersandro2000> which string is a date?
<aaronjanse> I use Julia as my system shell, so I didn't actually do the julia -e thing
<aaronjanse> siraben: C programmers - "Well I don't ever need to manipulate strings anyway, I don't know why you think it's a big deal"
<supersandro2000> aaronjanse: how do you do that?
<aaronjanse> How do I use Julia as my system shell?
<aaronjanse> users.defaultUserShell = pkgs.julia;
<aaronjanse> Although recently I packaged Julia with a REPL mode that understands both shell commands and Julia
<siraben> > diffDays (fromGregorian 2021 3 27) (fromGregorian 2020 12 1)
<siraben> 116
<{^_^}> undefined variable 'diffDays' at (string):492:1
<siraben> in haskell
<siraben> hehe
<aaronjanse> Nice
<aaronjanse> Oh btw lovesegfault I think I found housing next semester in Berkeley
<siraben> oh is your uni going in person
<aaronjanse> We'll see if my application is accepted. Berkeley decided this year to likely not consider roommates for on-campus housing, which is lovely. So I'm now looking for housing off-campus
<siraben> VU finally announced in person, yay
<aaronjanse> Yay!
<aaronjanse> That'll be great
<siraben> Ah we don't have off-campus until like 4th year haha because they want to emphasize on campus
<siraben> well exception this year because of covid
<aaronjanse> That's pretty cool
<aaronjanse> I wish I could be on-campus more
<siraben> yeah it's good though people like on campus
<aaronjanse> I almost went to a different uni because it had 3 years of on-campus housing and much better food
<aaronjanse> .... I still kinda wish I went for the better food but oh well
<aaronjanse> It's okay, I'm learning how to cook
<supersandro2000> aaronjanse: but that is slower, right?
<aaronjanse> What's slower?
<aaronjanse> If you're referring to Julia, it boots as fast as zsh
<siraben> nooo julia fails to build on macOS
<aaronjanse> Nooooooo
<siraben> `nix shell nixpkgs#julia -c julia -e 'using Dates; Date(2021, 3, 27) - Date(2020, 12, 1) |> display'` didn't work
<siraben> ld: library not found for -lgfortblas
<aaronjanse> :(
<aaronjanse> What does it say?
<siraben> > julia.meta.platforms
<{^_^}> [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
<aaronjanse> (also, why not `nix run`?)
<siraben> 🤔
<aaronjanse> Awww
<siraben> because I don't think you can pass args to nix run?
<aaronjanse> `nix run nixpkgs#julia -- -e 'using Dates; Date(2021, 3, 27) - Date(2020, 12, 1) |> display'`
<siraben> nvm you can yeah
<aaronjanse> This is my Julia shell thing
<siraben> what is it that easy to plot something in julia?
<aaronjanse> Yeah. Or `plot` instead of `lineplot` if you want something prettier
<aaronjanse> Note that you have to type `using Plots` or `using UnicodePlots`, but I have those in my startup.jl (the Julia version of a .bashrc)
<aaronjanse> I use `HypothesisTests` all the time to evaluate "is that thing I heard in the news abnormal?"
<siraben> hah, nice.
<siraben> looks like i'll need to fix the julia build on macos
<siraben> -lgfortblas
<aaronjanse> Ah got it
<aaronjanse> Btw siraben how is Nix support for macOS in general? I've heard great things about the M1
<siraben> I still sport a late 2014 13-inch MacBook Pro (dual core), so can't tell you much about the M1 experience, heh.
<siraben> But in general Nix support is great, except for user applications.
<siraben> I use homebrew to install various GUI apps. Maybe this summer I can look into how .app applications are packaged in Nix (there are some) and add more
<aaronjanse> Oh cool
<siraben> Like, for non-apps, I only have cocoapods installed via homebrew and I believe that is also packaged in Nix
<aaronjanse> Oh that's cool
<siraben> There needs to be more darwin maintainers though to fix some longstanding issues like updating the SDK
<aaronjanse> Yeah
<aaronjanse> Okay, I think I'm gonna sleep now
<aaronjanse> Goodnight all
<lovesegfault> I used Nix on macOS ~2y ago
<siraben> night!
<lovesegfault> it kind of sucked :/
<lovesegfault> well, as a normal OS pkg manager
<lovesegfault> you basically needed brew for most things
<lovesegfault> and then you could use Nix for nix projs
cole-h has quit [Ping timeout: 240 seconds]
<supersandro2000> aaronjanse: I mean what is the drawback if I just use it like bash?
<siraben> lovesegfault: it's better now I guess, I only started using Nix on macOS circa 1 year ago
<sterni> siraben: turns out env PATH="" is the way to go for compiler testing rather than nix-shell --pure
<siraben> sterni: ah, cool.
<sterni> siraben: I've pushed the last™ fix to your branch, you can review && rebase
<sterni> I think then we are good to go overall
<siraben> sterni: Thank you. I will take a look.
<sterni> since I don't think anybody is motivated rn to dig through the koka code and figure out potential cross issues
<siraben> DistroTube's position on the RMS drama: https://youtu.be/Uun2YhnUNGc
<siraben> sterni: yeah they still have a ways to go
<siraben> I'm glad it only took like 2 hours to figure out how to build
<sterni> hahaha
<sterni> yeah it was more than that when their path discovery was broken
<sterni> on a different note I _hate_ trying out new in development programming languages
<sterni> I was on a run last year and checked out a few
<sterni> and somehow lang devs just can't stop themselves changing the syntax or stdlib every few weeks
<sterni> everytime you are just sitting there figuring out what changed and why the documentation wasn't updated
<sterni> like a few days ago when I was testing the koka package I tried to compile some code I wrote back then
<sterni> string concatenation is now ++ instead of +
<siraben> well at least that matches Haskell
<siraben> sterni: you should see Rust code from 2011, it looks more like C++ than anything else haha
<sterni> I guess that's why I jumped on the bandwagon late
<siraben> e.g. it uses auto instead of var
Dotz0cat has quit [Ping timeout: 260 seconds]
Dotz0cat has joined #nixos-chat
cole-h has joined #nixos-chat
<aaronjanse> supersandro2000 what's the drawback if you just use what like bash?
<supersandro2000> aaronjanse: if I use julia instead of the bash shell
<supersandro2000> will normal commands be slower?
<aaronjanse> Nope
<supersandro2000> 🤔
<aaronjanse> Note that I've modified Julia's REPL (via my startup.jl) to recognize bash-like commands so I don't need to write them in Julia
<supersandro2000> are there other repls which can do that?
<aaronjanse> REPLs in other languages? I'm not sure
<supersandro2000> yeah
<aaronjanse> Yeah I have no idea
<aaronjanse> Check out Xonsh if you want shell + Python
<V> why would commands be slower
<supersandro2000> because it needs to guess if it is bash or not
<supersandro2000> or maybe it does weird stuff to detect the language inline
<supersandro2000> aaronjanse++
<{^_^}> aaronjanse's karma got increased to 1
<V> presumably it's just paren-less calling, that's just a minor syntax variation
<V> aaronjanse: that looks cool. I always like it when people use non-command languages as their default shell
<supersandro2000> mmmm
<supersandro2000> this is still probably not what I really want
<supersandro2000> I want to tell my shell to grep for a word when the word after a pipe is not a command
<supersandro2000> cat file | string
<supersandro2000> should be converted to cat file | rg string
<V> I mean all you need to do for that is override the command not found handler
<supersandro2000> 🤔 thats smart
<V> if ! isatty /dev/stdin; rg $argv; end
<V> or something
<supersandro2000> [[ -p /dev/stdout || ! -t 1 ]]
cole-h has quit [Ping timeout: 240 seconds]
<supersandro2000> ^ return true if the command is piped
<V> I use fish, so slightly different syntax (no double brackets) but should be functionally similar to implement
<supersandro2000> I could also rewrite it to do a comma or nix search
<supersandro2000> [[ or new test is just [ with sane quoting
<supersandro2000> if you are using bash you should use it all the time
<supersandro2000> otherwise you are just making your life harder than it needs to be
<V> I know, I used to use it ^^
<V> I use 90s software now, bash is so 80s
<supersandro2000> at least 80s software just works ™️
rajivr has quit [Quit: Connection closed for inactivity]
lunc has joined #nixos-chat
<siraben> 20s software always breaks
<ldlework> I have OS9 running in a window /o\
<samueldr> qemu or sheepshaver?
__monty__ has joined #nixos-chat
maxdevjs has joined #nixos-chat
<Mic92> my gf first pull request: https://github.com/NixOS/nixpkgs/pull/117904
<{^_^}> #117904 (by slekwati, 14 minutes ago, open): calibre: add cchardet library
<gchristensen> nice, Mic92 =)
<ldlework> samueldr: sheepshaver
<samueldr> any goal in particular?
<aaronjanse> supersandro2000 fair concern. All I do is check if the first word is in the $PATH :-)
<aaronjanse> Thanks V. If I wanted just a shell, I'd use fish. But since I wanted something with more programming features, I'd thought I'd use a language like Julia with a large ecosystem rather than a new shell language like Nushell
<aaronjanse> I used to do some hacky thing where I let fish parse stuff, but now I just parse everything in Julia and pipe them in Julia. It means that the functionality is currently limited, but at least what works is correct (so I don't have to work about unpleasant surprises)
<crazazy[m]> wait just went through chat logs
<crazazy[m]> can julia be used as a linux shell?
<__monty__> Most any language can in principle.
<crazazy[m]> yea but most of them are fairly inconvenient
<aaronjanse> Yep
<aaronjanse> Note that I've added a startup script to Julia to modify its REPL to accept bash commands
<aaronjanse> In addition to Julia code
<aaronjanse> It uses autocomplete from both fish (for shell) and Julia stdlib (for code)
<aaronjanse> nix run github:aaronjanse/pkgs#julish
<aaronjanse> Warning: long build time
<ar> aaronjanse: shell with programming features? that sounds a bit like xonsh
<aaronjanse> *nix run github:aaronjanse/dotfiles#julish
<aaronjanse> Yep! Xonsh is what inspired my project
<aaronjanse> Plus my desire to have solid autocomplete
<aaronjanse> (therefore completion from fish)
<__monty__> Fish's completion's so good.
<aaronjanse> Ikr
<aaronjanse> I also love that it's fuzzy
<supersandro2000> aaronjanse: that does not work for inbuilts
<supersandro2000> you can set bash to also be fuzzy and instant complete
<__monty__> Zsh and bash can get close but I haven't experienced anything quite as good as fish. I can't pinpoint why but there's something.
* aleph- runs with elvsh
<supersandro2000> __monty__: but is it worth it if everything breaks?
<__monty__> What breaks?
<supersandro2000> fish does not understand bash scripts
<__monty__> I haven't personally experienced anything breaking with the switch to fish. Must be lucky : )
<__monty__> Why don't your bash scripts have bash shebangs?
<aaronjanse> ^same question
<aaronjanse> Also, if you need to run a bash command, just type `bash` and use that REPL
<aaronjanse> Heck, my shell is Julia. If that doesn't break things, then Fish should be *fine*
<supersandro2000> __monty__: the only ones I am concerned about would be in my dotfiles
<supersandro2000> and I am sure they break
<supersandro2000> probably 1500+ lines of bashism that is just source will break
<aaronjanse> Sure, your .bashrc probably cannot be run directly by fish
<aaronjanse> I mostly like fish because it's much more usable without customization
<__monty__> A fairly heavy zsh user I know tried it out and then painstakingly translated their setup to fish because they liked it so much. So it's also pretty customizable if that's what floats your boat.
luxemboye has quit [Remote host closed the connection]
<supersandro2000> I doubt that default fish does anything my dotfiles are doing
luxemboye has joined #nixos-chat
<__monty__> That's why I pointed out the customizability.
<__monty__> Not sure how likely "nothing" is given bash doesn't have some sensible things enabled by default so they must be in your dotfiles ; )
<supersandro2000> thats only because in the evangelistic true linux spirit ™️ sensible defaults are not allowed because back in the 80s it was different
<gchristensen> haha yeah can't break someone's workflow (insert xcd)
<supersandro2000> no, not even that. It is not true POXIS
<supersandro2000> POSIX
<supersandro2000> "true" POSIX
<supersandro2000> well, anyway. Not switching shells. bash just works after you told it to be nice
<__monty__> I wish POSIX tar specified compression format detection.
<gchristensen> I tried fish once but something about it freaked me out
<__monty__> supersandro2000: You might like it if you tried though.
* __monty__ tries to mentally induce FOMO
<__monty__> gchristensen: What freaked you out? Fish predicting what you wanted to do?
<gchristensen> yeah I think I was unhappy that it didn't need me anymore
<supersandro2000> __monty__: yeah maybe.
<abathur> I don't interact with many CLI users on the reg and always end up a little surprised by how triggered people are by bash/shell
<gchristensen> oh yeah that is what it was
<gchristensen> I SSH to so many random servers that using fish locally was messing me up
<__monty__> Yeah, that's definitely a valid reason.
<supersandro2000> so it shows me the completion but how do I enter it?
<__monty__> It's why I stick to a pretty vanilla vim and I don't even ssh to many servers.
<__monty__> But heavily customizing bash is usually out of the window in such a scenario too.
<supersandro2000> vim can edit files on remote servers
<supersandro2000> and I wrote tab completion for that
<supersandro2000> also I don't like the fold down tab completion menus fish and zsh have
<supersandro2000> but the coloring on incomplete " is nice
<__monty__> supersandro2000: I usually use ^e to accept the completion.
<__monty__> You prefer completions on top?
<supersandro2000> I prefer tab smashing
<supersandro2000> and just type and tab again
<aaronjanse> (to clarify supersandro2000 I wasn't trying to convince you to try a new shell or anything. I was merely discussing fish because I think it's cool that it exists)
<supersandro2000> you can just go to the right to accept it
<supersandro2000> yeah just trying out things
<supersandro2000> zsh has no default break on / and if you do alt-backspace you delete the entire directory path
<__monty__> Yes, but right arrow is so much further away than ^e and ^f/^p etc all do what you'd expect.
<supersandro2000> and not just the last directory
<__monty__> Bash too.
<supersandro2000> not mine
<abathur> I feel like, if I had near-infinite amounts of time, there's some grade-A trolling opportunity in cultivating an earnest-bash-evangelist persona
<__monty__> Default bash seems to for me.
<supersandro2000> the best experience so far was in pure sh where you get a literal tab character when pressing tab
<__monty__> You might wanna introspect on your relationship with tab starting to sound a bit unhealthy : )
<supersandro2000> I think tab is fine with me
<supersandro2000> it could have hit worse
<__monty__> Be sure to build up some history if you want to really experience fish.
<joepie91> aaand then my search engine displayed the source \o/
<__monty__> Going through a day or two of usual use would be ideal.
<f0x> 'Unknown'?
<joepie91> f0x: database is still updating :P
<joepie91> that's the default when no source is listed
<f0x> ah
<supersandro2000> I have 28k lines in bash
<__monty__> That sounds... painful.
<aaronjanse> I'm currently at 20k lines zsh, 14k lines fish, 2k lines julia
<aaronjanse> Having a large history file size is super helpful
<supersandro2000> __monty__: why?
<supersandro2000> they are deduped and you don't really notice a slow down
<supersandro2000> I should probably strip very long ones
<aaronjanse> Plus it makes history search crazy helpful
<supersandro2000> most of the time
<supersandro2000> if fuzzy search just finds single letters in your history it is useless
<__monty__> Because I often have trouble getting single lines of bash correct.
<supersandro2000> wdym?
<supersandro2000> I use fzf for Ctrl+R
<aaronjanse> ^same here
<__monty__> Imagine not even needing fzf because your shell covers a large part of its use cases.
<aaronjanse> Does fish have fuzzy history search builtin?
<aaronjanse> I know elvish does
<__monty__> Don't think so.
<supersandro2000> zsh does not
<__monty__> Have fun checking out fish! Maybe you'll find something to add to those 28 kloc of config.
__monty__ has quit [Quit: leaving]
<supersandro2000> well I like some things of fish
<supersandro2000> but not the overall thing
<ldlework> samueldr: nostalgia
<samueldr> ah, I hoped you had some cool stuff to look at :)
<ldlework> samueldr: well I got all my old apps and stuff
<ldlework> Someday I'll figure out how to get the network driver working
<ldlework> samueldr: it just reminds me of the time when I was a little kid, putting a pillow over the dial up modem so I could sneak onto AOL to download warez
<samueldr> haha
<samueldr> never had the pleasure(?) to use macOS before X
<ldlework> definitely pleasure
<samueldr> (except the few times I tried doing stuff in basilisk and sheepshaver)
<ldlework> it was a great set of OSes
nf has quit [Quit: Fairfarren.]
<samueldr> I don't really have the time to, but I always wanted to explore how it works
<ldlework> i mean i never actually tried to use it as a development machine like I would these days
<ldlework> since I wasn't doing that as a kid
<ldlework> samueldr: i bet there's a sick retrospective somewhere
<ldlework> on youtube
<ldlework> you ever watch defunctland?
nf has joined #nixos-chat
<samueldr> nope
<ldlework> I remember recently watching an episode of The Computer Chronicles with Bill Atkinson showing off Hypercard. Love that stuff, dunno why really.
<samueldr> I was really interested in looking at how an OS that's not just a heap of files mostly laid bare actually works
<samueldr> how the OS is "just a file" (not really)
<samueldr> how the OS relies heavily on ROM!
<samueldr> that's just unthinkable those days
<gchristensen> new computers are such a bummer
<samueldr> hm?
<samueldr> follow-up on the topic of fun architectures or something else?
<gchristensen> I have a new computer I'm supposed to migrate to and I'm having the very hardest time working up to it :P
<samueldr> hah
cole-h has joined #nixos-chat
<gchristensen> especially since I've been using vscode and gnome, I don't get the same "niios-rebuild switch"-and-done thing
<cole-h> gchristensen: how does vscode work with wayland? Do we have ozone for it? Or using it through xwayland?
<gchristensen> no ozone but it works well, in particular with gnome
<gchristensen> gnome sets the DPI so it makes sense if I'm docked (on my big monitor) or not docked (on my laptop screen)
<ashkitten> is there any wayland compositor that supports hdr and ultrawide monitors?
<samueldr> what's special about ultrawide?
<samueldr> isn't it just... wider?
<ashkitten> usually you don't want every window stretched all the way across if you maximize or fullscreen it
<gchristensen> I switched to gnome for that reason ashkitten
<ashkitten> it supports hdr?
<gchristensen> no the wideness
<ashkitten> oh
<samueldr> ah, support in that sense
<samueldr> I was thinking about hardware support because HDR would
<ashkitten> does any compositor support hdr then?
<samueldr> too bad you can't easily mix and match pieces of different environments under wayland :<
<{^_^}> swaywm/sway#1666 (by ddevault, 3 years ago, open): Output mirroring and complex layout configurations