xd1le has quit [Read error: Connection reset by peer]
<infinisil>
Oh this is super neat. I've had this module for a while where I can give it a youtube playlist, and it automatically downloads and imports songs from it into my music library
<infinisil>
I've used this to add songs to a download playlist when I want it downloaded
xd1le has joined #nixos-chat
<infinisil>
However I just realized that I could use this as well for other playlists, with no modifications needed, since youtube-dl accepts multiple arguments!
<ashkitten>
i got all excited that rocm supports navi now, but due to llvm mismatches blender crashes with it :(
andi- has quit [Remote host closed the connection]
andi- has joined #nixos-chat
<worldofpeace>
aleph-: not sure if you're suggesting infinisil is a hairless cat, but I will admit once upon a github avatar I was convinced infinsil was actually an kawaii anime kitty. I was honestly shocked when that wasn't the case
<aleph->
colemickens: Self host?
<aleph->
colemickens: Go with a vps at prgmr.com, a domain and the nixOS mailserver module or mail in a box?
<aleph->
My mail never gets rejected off their ip range
<aleph->
worldofpeace: Heheh
<colemickens>
aleph-: I did once upon a time. I still feel like I hear horror stories
<colemickens>
but I guess I only hear the bad ones, and nixos could mitigate a lot of the awfulness that I remember that was manual config tweaking at setup-time
<aleph->
Works fine for me.
<aleph->
Admittedly I do mail in a box currently.
<aleph->
Might change to nixOS mail server perhaps
<aleph->
It's the one debian machine I still admin.
<colemickens>
Hm, ok, nice, I'll look at this. Thanks for the suggestion :)
<aterius>
colemickens: I use and am happy with mailbox.org
<aterius>
I know a lot of people love fastmail, but it's a bit pricey
waleee-cl has quit [Quit: Connection closed for inactivity]
<samueldr>
:< that fontconfig issue from the other day is now coming back for a second meal, by breaking 20.03 channel apps on 20.09 it looks like
<eyJhb>
I have been wanting to move my.. Somewhat broken website to something Nix
<V>
I wrote an ad-hoc HTML templating system and static site generator in Nix.
<V>
My entire website (currently unpublished) is sitting in my server's Nix expression in my personal monorepo :p
<eyJhb>
However still need to find a way to have custom code blocks in markdown, that will be passed to another program and overwrite the codeblock with a link
<eyJhb>
I have considered doing the same for now. Shouldn't be that hard I guess
<V>
it's not
<V>
Nix lends itself nicely to writing little DSLs like that
<V>
not as nice as, say, Ruby, or a Lisp
<V>
but it's up there
<eyJhb>
I would say, it seems nicer when you want to use it as a build system
<eyJhb>
But there might be a extremely nice way to do it in Ruby/Lisp that I do not know of. I have never picked up those langs
<eyJhb>
The most Ruby I have ever done was when I did some Gitlab MRs
xd1le has quit [Read error: Connection reset by peer]
xd1le has joined #nixos-chat
parsley936 has joined #nixos-chat
cole-h has quit [Quit: Goodbye]
Jackneill has quit [Read error: Connection reset by peer]
buckley310 has quit [Quit: Connection closed for inactivity]
xd1le has quit [Read error: Connection reset by peer]
xd1le has joined #nixos-chat
bbigras has quit [Quit: killed]
balsoft has quit [Quit: killed]
vaibhavsagar has quit [Quit: killed]
philipp[m] has quit [Quit: killed]
JJJollyjim has quit [Quit: killed]
leons has quit [Quit: killed]
rycee has quit [Quit: killed]
kraem has quit [Quit: killed]
worldofpeace has quit [Quit: killed]
puzzlewolf has quit [Quit: killed]
crazazy[m] has quit [Quit: killed]
leonardp has quit [Quit: killed]
arcnmx has quit [Quit: killed]
aaronjanse has quit [Quit: killed]
Irenes[m] has quit [Quit: killed]
aanderse has quit [Quit: killed]
nocent has quit [Quit: killed]
thefloweringash has quit [Quit: killed]
danielrf[m] has quit [Quit: killed]
colemickens has quit [Quit: killed]
noneucat has quit [Quit: killed]
tilcreator has quit [Quit: killed]
emily has quit [Quit: killed]
alaskacanyon[m] has quit [Quit: killed]
aterius has quit [Quit: killed]
CRTified[m] has quit [Quit: killed]
<eyJhb>
That is pretty dark Matrix, killing off people
<energizer>
that particular image has color and z/depth mapped to the same column ("temperature") so it's not using as many independent dimensions as it could
JJJollyjim has joined #nixos-chat
JJJollyjim has quit [Remote host closed the connection]
<ar>
energizer: i have, but i'm working now; will check in ~4.5 hours
noneucat has joined #nixos-chat
<tilpner>
"error: cannot compare a list with a list"
<tilpner>
Haven't seen this one before, possibly from attempting to use lists as genericClosure keys
<tilpner>
(CompareValues::operator() has a default for types not in [ int float string path ])
<gchristensen>
(why use systemPackages when my terminal could be pre-baked with its tools?)
<eyJhb>
gchristensen: not many guis you have
<gchristensen>
yeah
<gchristensen>
I was annoyed dmenu was listing CLI programs :P
<eyJhb>
`did-graham-commit-his-repos` WELL! Did he?! :p
<gchristensen>
as a rule: no
<eyJhb>
But reading your config, yet again makes me want to work even more with Nix/NixOS. It is so nice and you have a lot of possibility to do things you normally cannot do easily
<eyJhb>
I think I have a ton of uncomitted stuff as well
<adisbladis>
gchristensen: Hmm, does bwrap somehow support xdg-desktop-portal?
<adisbladis>
I think any browser is not all that useful without it
<gchristensen>
I dunno, what is that?
<adisbladis>
gchristensen: New-ish standards to granularly access things outside of a sandbox
<gchristensen>
neat
<gchristensen>
hey that sounds familiar
<adisbladis>
Let's say you want to upload a file, you'll use the portals api to pick a file outside of the sandbox and the fd is passed into the sandbox
<gchristensen>
nice!
<adisbladis>
gchristensen: Also, the storepaths function could be made static?
<adisbladis>
I mean, it's a good start already :)
<gchristensen>
yeah definitely, this is a script in my ~
<adisbladis>
Hm, what happens if you nixos-rebuild and your paths in /run/opengl-driver/lib/dri changes?
<gchristensen>
hah, good question
<adisbladis>
Actually.. It should be fine for an already running application.
<adisbladis>
They're already in memory
<adisbladis>
But I don't know, maybe it's a good idea to make a copy rather than a bind mount
* adisbladis
<- speculating wildly :)
<eyJhb>
Basically the reason I create a chroot in /nix/store, with a config stored in the store as well, which will change on rebuld/changes, so that it wouldn't be a problem. I guess :p
<V>
<gchristensen> I was annoyed dmenu was listing CLI programs :P ← then use a launcher that looks for .desktop files? :p
<gchristensen>
V: I'll rephrase: I was annoyed the gui launcher *could* run CLI programs :P
<gchristensen>
my curse is being constantly annoyed at software being able to do too much
<V>
this is rather neat, though. this is a thing to allow launching programs indirectly instead of a program calling xdg-open which calls firefox, IIUC?
<gchristensen>
yea
<V>
which use-cases does this have? just anything where a program would launch another program?
<gchristensen>
well, no, sorry, this is still using xdg-open. program -> xdg-open -> guiduck -> dbus -> guiduck -> firefox
<V>
and I absolutely feel you
<V>
sandboxing things obsessively is one of the things I do >.>
<V>
this does feel rather like the portals, though
<gchristensen>
yeah seems cool
<V>
as in, they're dbus-activated (IIRC) and allow for indirect actions, with the possibility of permission systems being implemented & actions being denied, etc
<gchristensen>
V: really I don't want to write sandboxes, but write an LSM
<V>
linux security module?
<gchristensen>
yea
<adisbladis>
Why did I look into portals..
<adisbladis>
Now I want a non-gnome/kde implementation :P
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-chat
<adisbladis>
eyJhb: But Wechat for example is pretty horrid... They spy on users & censors even private conversations. People have been arrested for expressing dissent in PMs.
<adisbladis>
TikTok is censoring anti CCP sentiments
<gchristensen>
truth
<adisbladis>
I don't know what the right call is. But I think there is a point where we can no longer let authoritarian regimes use free speech as a weapon.
<NinjaTrappeur>
Hey hey, I have a question: how are we (nixos) secureboot-compliant? I realized secureboot is enabled on my system and I can boot NixOS just fine. Is it done through systemd-boot? Something else?
<gchristensen>
we aren't, NinjaTrappeur
<NinjaTrappeur>
(I unsuccessfully grepped nixpkgs :/)
<NinjaTrappeur>
I guess it's a UEFI bug on my motherboard :/
<gchristensen>
maybe "other os" turns it off
<etu>
NinjaTrappeur: "how uncommon"
<etu>
UEFI would never have bugs j/k
<eyJhb>
Unrelated/somewhat related, I had how these apps that should prevent the spreading of covid-19/stop the chains are not opensource, but the somehow expect me/want to force me to install it to enter different places
<NinjaTrappeur>
etu :)
<NinjaTrappeur>
gchristensen: looks like you're right!
<eyJhb>
ldlework: etu , adisbladis and talyz uses exvm.. Which is a emacs vm :p
<ldlework>
Yeah, I tried it..
<ldlework>
I think you mean exwm though
<ldlework>
Emacs is single threaded which can create problems as a WM
<ldlework>
It's a great idea, but it just doesn't work for me.
<neeasade>
the only solution is to use EAF so you can use one emacs instance dedicated to doing the WM stuff and another for everything else
<neeasade>
but the real real solution is to use the comfiest window manager that exists
<neeasade>
bspwm
<eyJhb>
Ohh sorry... Said it to myself, and window -> vindue in Danish, so it looked correct :p
<eyJhb>
ldlework: do you just have a emacs dropdown window?
<ldlework>
I like QTile, because its very easy for me to write some Python to customize anything and invent new widgets and stuff.
<ldlework>
eyJhb: yeah I have a few quake dropdowns.
<ldlework>
I have one for ranger/zsh, and two for running nixos and home-manager switches
<neeasade>
qtile does seem comfy as well, any will do with some investment ofc
<neeasade>
I use emacs as my dmenu/rofi type of thing currently
<ldlework>
yeah you basically pick the wm based on what language you wanna customize it with
<ldlework>
i use rofi as my rofi thing
<neeasade>
rofi is good at being a rofi type of thing
<ldlework>
haha
<neeasade>
mostly because you can start typing right away
<ldlework>
it's API is kind of bonkers though
<ldlework>
neeasade: have you seen my recursive screen capture thing
<neeasade>
I only use rofi-as-dmenu (as in, only select a thing from list) so didn't touch the api much -- but was still a PITA to get it to do what I like
<ldlework>
because it's the only OS where I know that once I get it working, it'll keep working
<neeasade>
ldlework: that is a good feeling, for sure
<pie_>
there needs to be some tool that makes ld_preload scriptable
lopsided98 has quit [Ping timeout: 244 seconds]
lopsided98 has joined #nixos-chat
cole-h has joined #nixos-chat
<gchristensen>
it is 17c out and bright sun. so perfect
<pie_>
\o/
MichaelRaskin has joined #nixos-chat
<gchristensen>
"I set this up to run as a daily timed systemd service at noon (very easy on NixOS, which every Linux user should be using unless they hate themselves)"
<drakonis>
the same one that wrote a post on home-manager
<aleph->
Oh hey
<aleph->
More backups
<aleph->
In every channel I go :p
<MichaelRaskin>
Meh. My nightlies are managed by remind
<abathur>
I have a twice-daily *nudge* during ~active hours that requires a password to actually run
<MichaelRaskin>
(remind is remind the software, it runs nightly backup automatically)
<pie_>
no matter how hard i look (barring looking at the source) udev doesnt seem to have a way of being accessed programmatically other than editing config files
<pie_>
does anyone know about anything
<pie_>
well, really i just want to change the runtime state without editing the files
<MichaelRaskin>
It seems to have udemadm for simple changes, and some netlink stuff apparently?
<pie_>
i looked at the udevadm man page but i dont see anything that really looks like what i want
<pie_>
not that i have much of an idea how to use udevadm (or udev)
<pie_>
i tried to look for examples of udevadm control --property but i couldnt find anything
<{^_^}>
systemd/systemd#17098 (by deliciouslytyped, 1 minute ago, open): Is it possible to change udev rules programmatically without modifying files on disk?
<abathur>
There are a few reasons I don't fully automate, but the biggest is paranoia (I suppose I can't be the one to judge whether it is reasonable) about a single incident compromising both my system and backups if I give the system automagic unattended access to a backup store
<pie_>
welllll
<pie_>
restic has a daemon that limits the ops you can do so you can make it write-only for example
<MichaelRaskin>
I think they use some netlink to kernel and some netlink to clients
<MichaelRaskin>
I probably would not need udev running constantly, but X.org seems to want the latter functionality
<MichaelRaskin>
Changing rules with no trace on disk my be hard, though
<abathur>
pie_: sure, but it's increased complexity and takes some restic features off the table
<__monty__>
Talking backup features?
<__monty__>
*softwares
<abathur>
__monty__: more general, and not much talk; I guess just like ~schedule/degree-of-automation :)
<pie_>
MichaelRaskin: really my use case is changing device permissions without a system rebuild :I
<pie_>
but now im just annoyed that this doesnt seem to be possible
<MichaelRaskin>
Just chmod them, dunno
<pie_>
doesnt work
<pie_>
that was the first thing i tried but whatever arduino is doing when flashing, its causing the device to be remade
<MichaelRaskin>
Ah, yeah, that makes sense
<pie_>
so i could put chmod on an infinite loop and run into a race condition
<MichaelRaskin>
(some kind of mode switch for the USB connection which looks like endpoint being replaced)
<pie_>
or try to instument the process with ptrace or however it is tat one does these things (which would be an interesting project
<pie_>
i did try to run it with sudo and i think that worked, its been two weeks
<pie_>
but then something else broke in the flashing process
<pie_>
xD
<MichaelRaskin>
Why do you want to avoid system rebuild? Presumably, if you set options for Arduino, you won't switch the board _type_ daily?
<pie_>
im lazy mostly
<pie_>
i need to clean up my system rebuild stuff
<pie_>
its custom and kind of a mess
<pie_>
its actally pretty easy right nw though so i should just do it
<pie_>
oh and i havent learned how to write udev rules yet but i could probably just copy someting off stackoverflow
<pie_>
though i would probably have to learn how they work anyway _if_ udev had a live mod interface
<MichaelRaskin>
Indeed
rajivr has quit [Quit: Connection closed for inactivity]
xd1le has quit [Remote host closed the connection]
neeasade has quit [Remote host closed the connection]
iqubic has joined #nixos-chat
ixxie has joined #nixos-chat
<pie_>
i wonder if i should somehow prohibit large files on my main backed up filesystem
<pie_>
or have restic warn on large files or something
<pie_>
though if i back up a large file into a snapshot restic doesnt seem to have functionality yet for removing things from a snapshot
<abathur>
hmm
<abathur>
I don't do *quite* this thing, but I have like, eh, a sort of system-loss/migration-readiness routine where I use a pattern to flag stuff like new application-state directories for me to manually review; I save a list of include or exclude paths, created from a find command, run the find command again during the routine and dump the result to a tmpfile, use comm to knock out the known-good/bad
<abathur>
paths, and then yell at me if there are any unexpected
<pie_>
you wanna write a script for that or something?
<abathur>
:P
<pie_>
with an fzf frontend or something
<abathur>
I do have some sort of vague goodwill-for-mankind intent to eventually release something based on it, but it's got a lot of very idiomatic stuff in it, and I have copious ALLCAPS notes to myself to avoid sinking gobs of time into generalizing/abstracting it
<infinisil>
pie_: What if you prevent snapshots when their diff to the last one is bigger than (X * time since last snapshot) plus a bit of fluctuation
<infinisil>
So X would be the data rate of filesystem changes
<infinisil>
E.g. you expect all 5 minute snapshots to only add about 1 MB each, if there's one that's over say 2MB you don't take a snapshot and ask the user what to do
<infinisil>
Show the `zfs diff` to the user and have options "Increase per-snapshot limit", "Delete a file in the diff", "ignore for now"
<infinisil>
This then still allows big files, but only if they're slowly growing over time
<pie_>
doesnt sound terrible
<pie_>
and then restic the staged snapshots
<pie_>
ironically the reason im not just using snapshots already is because you cant rewrite snapshots to remove old large files for example
<pie_>
and neither does restic support that yet
<pie_>
hm but if i had separate datasets with large files separated...
* infinisil
takes a look at restic
<pie_>
its kind of solid
<pie_>
id say its pretty solid but apparently it has some open prs for when things get big 'xD
<pie_>
they actually have a threat model document
<pie_>
restic is written in go though :P :/
<pie_>
(there are at least several good things written in goÖ
<abathur>
I like being able to split out different backup slices, and I'd like to do more
<eyJhb>
pie_: HEY! Take that back and love Go!
<eyJhb>
:p
<pie_>
something something if you dont like go i can show you the door and you can go
ixxie has quit [Remote host closed the connection]
<aleph->
pie_: Yeah my big issue with restic is that I have to main my own fork with PRs merged in due to the maintainer being too busy to review
<aleph->
Was using it for roughly a year at work with 50-100TB of data
<__monty__>
aleph-: Did it hold up well? Any other solutions you tried? Borg maybe?
parsley936 has quit [Remote host closed the connection]
parsley936 has joined #nixos-chat
<aleph->
__monty__: Pretty well. Just needed daily prunings on hosts
<__monty__>
Interesting.
__monty__ has quit [Quit: leaving]
<infinisil>
abathur: How do you mean that?
<infinisil>
What does "splitting out different backup slices" mean?
<ottidmes>
how common are viruses really these days, I only experienced a few years ago on Windows, but nowadays its mostly malware on Windows and social engineering (ransomware). Never had either on Arch Linux or NixOS (that I am aware)
<energizer>
linux malware is extremely common
<drakonis>
oh?
<ottidmes>
in a way, you want to install X, please install these 100 deps first :P
<ottidmes>
energizer: or did you mean something else?
parsley936 has quit [Remote host closed the connection]
<abathur>
infinisil at the moment on macOS I take three separate backups; a broad-ish one of my projects directory (but still much more narrow than a full-system backup), and two very narrow backups of a subset of the state for Safari and Terminal
<infinisil>
abathur: Ah so I guess different sets of directories should be backed up differently
<abathur>
taking small slices to get the latter two saves me from backing up a lot of application files/state that I don't care about, and taking them in a separate state from my projects directory means I can use different pruning policies, different exclude policies that might make sense locally but not globally, etc.
<abathur>
*in a separate slice from my projects
<abathur>
infinisil: and when I say I'd like to do more, I mainly mean I'd like to figure out how to take individual project-level backups because at current it's not really cross-system portable
<infinisil>
abathur: I'm asking because I'm collecting ideas for my own backup tool
<abathur>
nod
<infinisil>
And that kind of thing conflicts with the base idea of using zfs snapshots :P
<abathur>
yeah, I don't know
<infinisil>
Well unless one uses a new zfs dataset for every project or so
<abathur>
in the short-run snapshots make sense to me and I wish APFS made it easier to work with its snapshots
<infinisil>
Hm, what if the snapshot tool had a small helper for saying "Create a new dataset from this directory", which would create the dataset, and move the existing directory into it
<abathur>
but my general focus is on just trying to get what I need to bootstrap a clean system quickly
<infinisil>
Oh, maybe also functionality for saying "Any directory in this root dir should be put into its own dataset". Before the tool would take a snapshot, it would first apply this policy
<abathur>
I'm also not sure, having not lived with ZFS yet, if it would change my mind
<infinisil>
Yeah I'm just talking to myself at this point :P
<infinisil>
In general I guess ZFS is really bad for precise snapshots. E.g. you probably don't want to back up build products of all projects. But with ZFS snapshots you can't really avoid that
<abathur>
if it doesn't cause you space issues, I think it's nice to have trivial recovery from strange short-run stuff
<infinisil>
Oh yeah snapshots are great for this
<infinisil>
And if these are only stored for like a couple hours, you could take them every minute or so without problems
<abathur>
I'm sort of optimizing for off-device backups of data that I'd be crushed to lose while also avoiding paying several dollars a month to back up tens of gigs of application files that Google and Apple will kindly give me fresh copies of in the event of an emergency
<abathur>
nod
<abathur>
apfs does have snapshots, and I have been playing with them while working on the big sur installer, but I'm a little annoyed by the ergonomics around them atm
<infinisil>
abathur: An idea I've had is to 5Conly do metadata backups for things you could recover from online. So things like filenames and file sizes. E.g. this could be used for my big series collection to just not lose them all and not know what you lost
<abathur>
it seems frustratingly-close-to-possible to do a erase your darlings sort of thing on macOS
<abathur>
infinisil heh! yeah, I've been feeling around in the dark for something with my git repos; my routine now saves a .git_status in every git repo it finds, and it appends a .git_status.diff every time
<infinisil>
Interesting :o
<abathur>
I can't swear I know exactly my point yet, but mainly fumbling towards figuring out a way to not back-up clean synced repos
<infinisil>
abathur: I've just been thinking: `git init --separate-git-dir` could be used to store the git directory with all its committed objects in some backed-up location
<infinisil>
While the git working directory won't be backed up (or maybe, only its metadata is backed up)
<abathur>
oh, I remember part of it
<abathur>
I had an issue where I restored and found out my backups were ignoring some files that were in the git repo
<abathur>
so keeping a status and accumulating a diff of it is also me fumbling towards a way to know if there's an unexpected gap between the git diff/status after restore
<abathur>
I'm sure I have notes on that somewhere around here... :]
<infinisil>
I seee
<abathur>
at some point I imagine having something kinda like project cold-storage in my backups
<infinisil>
I mean for that only the git objects are needed really
<abathur>
and some little declarative way, when I'm bootstrapping a system, to declare what gets pulled and restored
<infinisil>
Assuming you don't want to back up uncommitted stuff
<abathur>
plus some little imperative commands for quality-of-life stuff like mothballing/restoring a project
<abathur>
not quite sure what your emphasis is. I typically do want uncommitted *work*, but maybe not build artifacts and such? the backups are my safety net in case I decide to give my laptop a coffee bath or something
<infinisil>
I have a potentially stupid idea: Set GIT_OBJECT_DIRECTORY globally, such that *all* git repositories store their objects in the same object hierarchy