29
submitted 11 months ago* (last edited 11 months ago) by ruffsl@programming.dev to c/nix@programming.dev

This is a quick and painless tutorial on how to install and configure NixOS from Scratch. It involves starting off with Home manager and Flakes before even rebuilding your system.

I thought the example using builtins.mapAttrs with create_symlink for xdg.configFile was cleverly simple.

16

cross-posted from: https://programming.dev/post/36875851

As a developer I often need to run code I cannot trust, especially dependencies from NodeJS and Python projects, on my dev machine. In order to protect my system from potentially malicious code, I built NixWrap, an adhoc sandboxing tool for NixOS.

NixWrap wraps bubblewrap (oh dear), running it with convenient defaults and offering easy to use command line flags to toggle custom options. An invocation to NixWrap is typically way shorter than the bubblewrap equivalent.

E.g. npm install can be wrapped with wrap -n npm install to gain network access and write access to the current working directory.

16
submitted 1 year ago* (last edited 1 year ago) by ruffsl@programming.dev to c/nix@programming.dev

As a developer I often need to run code I cannot trust, especially dependencies from NodeJS and Python projects, on my dev machine. In order to protect my system from potentially malicious code, I built NixWrap, an adhoc sandboxing tool for NixOS.

NixWrap wraps bubblewrap (oh dear), running it with convenient defaults and offering easy to use command line flags to toggle custom options. An invocation to NixWrap is typically way shorter than the bubblewrap equivalent.

E.g. npm install can be wrapped with wrap -n npm install to gain network access and write access to the current working directory.

10

Any suggested changes since this was published a year prior?

9
10

Any notable advance in this regard as compared to when the original article was published in 2015?

16
submitted 1 year ago* (last edited 1 year ago) by ruffsl@programming.dev to c/nix@programming.dev
40

cross-posted from: https://programming.dev/post/36703523

It does not require root, user namespaces support or disabling SELinux, but it relies on proot and other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

6

cross-posted from: https://programming.dev/post/36703523

It does not require root, user namespaces support or disabling SELinux, but it relies on proot and other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

23

cross-posted from: https://programming.dev/post/36703523

It does not require root, user namespaces support or disabling SELinux, but it relies on proot and other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

4

cross-posted from: https://programming.dev/post/36703523

It does not require root, user namespaces support or disabling SELinux, but it relies on proot and other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

30

It does not require root, user namespaces support or disabling SELinux, but it relies on proot and other hacks instead. It uses a fork of Termux-the-terminal-emulator app, but has no relation to Termux-the-distro.

[-] ruffsl@programming.dev 5 points 1 year ago

What are we doing here? This isn’t even an argument.

Correct, this isn't an argument, or at least I'm not trying to argue.
All I wanted to learn what exact properties you though makes for a better desktop OS.

I'm in agreement that NixOS isn't the best for mainstream desktop user base, but like any decent inquiry or survey, if I just preemptively bias someone's responses with my own observations on NixOS defecenties, then there wouldn't be as much of a case to before ask what they think other Linux Distro do better in the first place.

Not everyone who strikes up a convo online for a debate, and not all (but quite a few) who ask questions are trolls.

[-] ruffsl@programming.dev 5 points 1 year ago

Yeah, I didn't hear much about the project over this summer.

Switched from Gnome to Plasma a little after Unity expired, as I couldn't keep up with the churn of Gnome plugins, and hoping Cosmic could balance customizability with stability. KDE has been great with adding HDR support and Wayland features, though as a Rust lang fan, I'm still curious what Cosmic will bring to the table in terms of plugin API and tooling.

[-] ruffsl@programming.dev 5 points 1 year ago

As a prior proponent of graphical programming interfaces, I've been thinking there'd be a good use case for a GUI based control panel for NixOS, something that could transcompile standard user selected options down to a nix config that could be abstract of the way from most users, like any sort of game save file.

Given all options and packages in nixpkgs are already machine readable and indexed, supplying a GUI based tool to procedurally generate nix codes doesn't at first seem initially daunting, but given the past discussions around this idea perhaps proves it to be on the contrary:

Although SnowflakeOS in particular looks promising:

SnowflakeOS Simple, Immutable, Reproducible SnowflakeOS is a NixOS based Linux distribution focused on beginner friendliness and ease of use.

https://snowflakeos.org/

[-] ruffsl@programming.dev 5 points 1 year ago

nix-ld has been really helpful. I wish there were some automated tools where you could feed at the binary, or a directory of binaries, and it would just return all of the nix package names you should add include with nix-ld.

Also if there were some additional flags to filter out redundant packages because of overlapping recursive dependencies or suggest a decent scope of meta package to start with for desktop environments, that'd be handy.

[-] ruffsl@programming.dev 5 points 2 years ago

Still kind of sad that the transflective display technology demoed in the $100 laptop project from a decade or so ago never took off.

https://youtu.be/CGRtyxEpoGg?si=50jL24kRA22-X_Bo&t=1470

[-] ruffsl@programming.dev 5 points 2 years ago

If you already have a similarly sized tablet, you could just buy a dummy HDMI plug, a few dollars, to add a second virtual desktop and then simply cast that screen to the mobile device.

There are pretty nice Android tablets now with 2.5k 120 hz HDR OLD screens. You can just connect it directly to the computer via USB, enable USB network tethering, then use something like the Moonlight client app with Sunshine screen casting server. With the wired connection, and a high bit rate such as 150 Mbps, you can get single digit millisecond latency and hardly tell the difference from an native HDMI display.

Tablets like those might be on the high end, but at least you'd have nice secondary display that's a bit more multifunctional. Or just go with a cheaper LCD based tablet or old iPad, if color accuracy, refresh rate, or resolution isn't a priority.

[-] ruffsl@programming.dev 5 points 3 years ago

I'm surprised there isn't a community on this intense for this language already.
I'd suggest those who interested to make a post over on !community_request@programming.dev .

[-] ruffsl@programming.dev 5 points 3 years ago

I think if the local and remote instances are federated - for posts submitted to remote communities that have subscribers from the local instance - posts to the local instance can be annotated with cross-posted to: links, whenever the local instance is aware of other federated posts that have a matching URL in other OP posts.

A single OP can manually cross post to other communities using the cross-post button next to the title of a post, although that will auto populate the body text of the new post with quoted text from the original, as well as an embedded hyperlink to the original.

So coss-posts can be both auto detected by Lemmy, or manually created by OP(s).

[-] ruffsl@programming.dev 5 points 3 years ago* (last edited 3 years ago)

Seems like votes are public, thus auditable for instance of origin, vote manipulation and brigading:

Although, support for more capable polling features would still be preferable.

[-] ruffsl@programming.dev 5 points 3 years ago

This also ties well into @canpolat@programming.dev 's recent post yesterday, about validating or verifying emails. Check this timestamp and yesterday's post:

[-] ruffsl@programming.dev 5 points 3 years ago

Regardless, I still feel like each instance really needs a !main equivalent, a default space for general submissions where posts can be cross posted to or from more specialized communities, providing exposure to a wider audience, while also letting link aggregators do what they do best by allowing users to rank what they think is relevant for the particular community, or general to the instance at large in this case.

Instead of naming this kind of community explicitly as !main, I like how !programming has been used for this instance instead, giving it a familiar title that reflects the instance that is it's namesake, while still encouraging this catch-all like community to remain in scope. For example, !meta would be unsuitable for this given it is already reserved for self reflection of the instance, much like Meta Stack Exchange.

[-] ruffsl@programming.dev 5 points 3 years ago

Looks like their back up and running using UI: 0.18.0-rc.6 BE: 0.18.0.

I apologize for the stability issues everyone.
People found an exploit and are using it to DDOS several lemmy instances.
https://lemmy.ml/comment/909960

Relevant ticket for patch fix:

view more: ‹ prev next ›

ruffsl

0 post score
0 comment score
joined 3 years ago
MODERATOR OF