gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
Peetz0r has joined #nixos-chat
<gchristensen> anyone have a public sway config using swayidle/swaylock that I can borrow? :)
<colemickens> That does what?
<gchristensen> turns out the man page has the example I was looking for :)
<gchristensen> how is sway so good!
<colemickens> Very -chat question: How stupid would it be to show up in Europe in the summer without any plans other than a Eurail pass?
<colemickens> It seems like 5-6 years ago, one could travel and book hostels 1-2 days in advance, and be okay. Is that still the case, or do I need to hunker down and actually book trains/hostels nwo?
<colemickens> s/nwo/now/g
<gchristensen> that is just about how I did all my travel
<gchristensen> I'd decide I was done in one place and book the next the night before. sometimes I paid the price, but if I booked a few days in advance it would be reasonable
<colemickens> gchristensen: What's the motivation behind it running as a unit?
<colemickens> oops, just now opened the pdf ;)
<gchristensen> lol, swayidle seems to think `sh` is inside gnused
<gchristensen> colemickens: so that it passes -c /etc/sway/config automatically, and integrates with graphical-session.target
<gchristensen> exec systemctl --user import-environment WAYLAND_DISPLAY SWAYSOCK <- pro tip for your sway config
<colemickens> gchristensen: how do you (plan to) do this with nixos? Are you orchestrating user units with dotfiles/home-manager ?
<gchristensen> I just do it with systemd.user.services
drakonis has joined #nixos-chat
drakonis_ has joined #nixos-chat
drakonis has quit [Quit: WeeChat 2.4]
endformationage has quit [Ping timeout: 258 seconds]
<colemickens> have you done anything to fix your cursor in gtk3 apps? (might only be obvious if you're scaling somewhere)
<colemickens> my pointer is microscopic, even on my external unscaled display, it's a bit comical
Myhlamaeus has quit [Quit: WeeChat 2.2]
<sphalerite> colemickens: only gtk3?
<sphalerite> gchristensen: you were talking about kernel build times a while back, weren't you?
<sphalerite> gchristensen: because I wrote something the other day that helps analyse them. It's really hacky, but works well
waleee has joined #nixos-chat
jtojnar has quit [Quit: jtojnar]
<Taneb> gchristensen: coworker's (jokingly) asking if GrahamCOfBorg will be at the office hours too
LnL7 has joined #nixos-chat
__monty__ has joined #nixos-chat
<eyJhb> I die a little inside everytime I do "nix-channel --update" and rebuild... Virtualbox, why do you do this to me!
<eyJhb> Can I pin that package somehow?
<__monty__> Sure you can.
<etu> eyJhb: Well, it's probably not virtualbox updates that make it rebuild
<__monty__> ,pinning
<etu> It's more likely that your kernel changed or something
<etu> so the modules need to rebuild
<makefu> eyJhb: virtualbox builds a kernel module which needs to fit the current kernel unfortunately
<makefu> when you have Oracle extensions enabled then there will be no binary cached build for you due to unfree nature
<makefu> (i have the same issue)
jasongrossman has joined #nixos-chat
<makefu> unfortunately in the current stable channel virtualbox guest extensions do not build ... https://hydra.nixos.org/eval/1515858?filter=virtualbox&compare=1515816&full=
<sphalerite> eyJhb: you can disable the extension pack?
<makefu> also the kernel module does not build right now
<makefu> so your only choice right now is to revert or to fix the issue :(
<joepie91> virtualbox rebuilds are a pain
<makefu> okay not every kernel build for virtualbox is broken *it is something*
<__monty__> Scenario: I'd like to find out the most recent mtime in a directory tree. Is there a more efficient way than stat'ing each and every file/dir recursively and then finding the max?
<joepie91> __monty__: not that I know of, but I don't have a comprehensive knowledge of syscalls
<joepie91> the last few times I needed to do weird stuff with file/dir attributes, I ended up at "okay, just use stat many times" every time
<__monty__> Yeah, though it seems like stat'ing the /nix/store recursively is ill-advised : /
<__monty__> Guess I'll go with an approximation.
<joepie91> __monty__: stat'ing the /nix/store seems pointless? given the forcibly-set-to-0 times
<joepie91> (for build reproducibility)
<__monty__> Ah, but I can't take such knowledge into account.
<__monty__> /nix/store is just a convenient example of a huge directory tree.
<__monty__> I suspect doing these calls asynchronously or in parallel might speed it up a lot. Assuming directory contents are usually fairly localized on disk the elevator algorithm or whatever could probably optimize lots of these calls fairly easily.
<joepie91> __monty__: may want to look at whatever it is that rsync does :P
<joepie91> because it is fast, for lots of small files
<__monty__> I have no idea in what part of the codebase to look for this though.
<__monty__> Maybe a simple depth or breadth first change would already speed things up.
<gchristensen> Taneb: haha
<joepie91> __monty__: some high-level architectural stuff: https://rsync.samba.org/how-rsync-works.html
<__monty__> The filelist section sounds relevant but I can't find more detail. I'll take a look at the thesis.
<__monty__> Hmm, that doesn't talk about how to generate the filelist either.
jasongrossman has quit [Ping timeout: 250 seconds]
<andi-> yay, it compiled \o/ Hacking on a little C wrapper library for libnixstore.. Hopefully this will evolve into a rust crate to at least use some of the nix features without having to reimplement everything :)
<sphalerite> __monty__: you can use statx to retrieve only the mtime instead of stat which retrieves all the fields. Not sure if it'll make a significant difference though.
<gchristensen> nice, andi-!
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 250 seconds]
<__monty__> Heh, people believing advertising is representative of real life.
<gchristensen> nicely done
<gchristensen> (no woman I've ever known expects a dress to fit in person like it does online)
<simpson> For some folks, this is Lucky 10000; if one doesn't see the fashion industry early in life, one might think that it's not all about substance, style, and appearance.
<gchristensen> anyone use thunderbolt with the security options turned on requiring a key exchange?
<gchristensen> https://github.com/grahamc/nixos-config/commit/8f0e7304c70c5a2441c641b5491dc713a8dde420 I wrote up a little service using udev to auto-authorize previously recognized devices
jasongrossman has joined #nixos-chat
waleee has quit [Quit: WeeChat 2.4]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 240 seconds]
Jackneill has quit [Quit: Leaving]
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 276 seconds]
endformationage has joined #nixos-chat
jackdk has quit [Remote host closed the connection]
noonien has joined #nixos-chat
Synthetica has joined #nixos-chat
__monty__ has quit [Quit: leaving]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 264 seconds]
cransom has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 250 seconds]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 258 seconds]
drakonis_ has quit [Ping timeout: 258 seconds]
drakonis has joined #nixos-chat
pie___ has joined #nixos-chat
pie_ has quit [Read error: Connection reset by peer]
Myhlamaeus has joined #nixos-chat
<pie___> infinisil, we could try your tag based ontology stuff with my winepackages
<monsieurp> hello, I'm a total noob wrt writing nix expressions (packages, right?), I've been trying to put one together but to no avail, can somebody help? (is it the right channel btw?)
<gchristensen> #nixos is a better place to ask for help :)
<monsieurp> thanks gchristensen
<joepie91> satisfying: when you write a generic abstraction/design/spec, and you run into a weird usecase later on that you didn't expect and it *exactly* fits into your generic design, proving it to be generic enough
<pie___> joepie91, :D
<pie___> definitely
<pie___> once i had a case where i wanted to restrict something but couldnt and ended up using a hack later in the more generic method to do something xD
<pie___> thats a bit scary but it worked lol (i still need to go back and do it better IMO)
<joepie91> lol
<joepie91> pie___: in my case it was in designing my JS streams implementation
<pie___> id probably try to look at how haskell does it :p
<joepie91> it's built around promises, and I'm using the error (throw/catch) channel to communicate not just thrown errors, but also special 'markers' that need to bypass transform stream processing, such as EndOfStream and Aborted
<pie___> or try to anyway
<joepie91> (without requiring machinery in said transform streams to accommodate this, and without hampering their ability to intercept such markers)
<joepie91> with a bunch of rules on which streams are responsible for processing what, such that unhandled errors of any kind always result in a pipeline abort
<joepie91> and now I ended up needing some way for specific stream implementations to communicate metadata downstream, and well, as it turns out, it fits perfectly into that!
<joepie91> just have the stream shit its metadata marker onto the throw/catch channel, and if the receiving party exists in the pipeline then it intercepts that marker
<joepie91> if it does not, then that is an unhandled marker, which should behave exactly the same - abort the entire pipeline
<joepie91> and that... Just Works
<joepie91> lol
<joepie91> the specific usecase for this is a weird edgecase, when implementing a task queue using streams
<joepie91> where a queue can temporarily run out of values, and be refilled later from another point in the stream, and just throwing out EndOfStream markers would interact poorly with parallelization
<pie___> uhuh, well good job in any case \o/
<joepie91> so now the queue stream just consists of two streams, one at the start that produces values and one at the end that tracks processing completion, and the former sends a 'temporarily out of values' marker to the latter
<joepie91> difficult to explain how it all pieces together in text
<joepie91> I'll link the code when it's done :P
<pie___> a diagram might be better idk :p
<pie___> (concurrency is scary)
<joepie91> it's a very specific kind of concurrency
<joepie91> not computational
<pie___> on the topic of concurrency, still waiting on wine to build...
<pie___> guess ill try to grab some food
<gchristensen> wine is tough
<joepie91> the parallelization bit works anyway: https://gist.github.com/joepie91/3c03d05c0c2bb088ee6b662448feff8d
<gchristensen> even with -j9000 it still takes a few years to get a nice finish on it
<pie___> heh
<gchristensen> and is never binary reproducible
<pie___> gchristensen, so what happens if youre trying to pass -j but its just not getting it :p
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-chat
__monty__ has joined #nixos-chat
drakonis has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 264 seconds]
drakonis1 has joined #nixos-chat
__monty__ has quit [Quit: leaving]
<monsieurp> first PR in
<gchristensen> alright!
<monsieurp> it's an easy one
pie___ has quit [Ping timeout: 258 seconds]
pie_ has joined #nixos-chat
<pie_> joepie91, ugh, winetricks doesnt behave well in the sandbox and idk why
<sphalerite> network access, I'd guess.
<pie_> nah, it doesnt seem to be that kind of problem but im just generally confused now..
<pie_> hm...inspecting th eenvironment with cntr suggests it should be fine but the end result is still bad...
<pie_> looks like i somehow deadlocked garbage collections
<pie_> s/s//
<pie_> "waiting for the big garbage collector lock... "
jasongrossman has quit [Read error: Connection reset by peer]
jasongrossman has joined #nixos-chat