I think your github readme is really missing a picture/screenshot to quickly understand what is the experience like. I.e. if your app is mainly about adding the chrome (as in the surrounding UI pixels) around the TUI, then it would be good to show what is the chrome like.
Nah, I think it’s pretty clear. It would look like a terminal emulator. Just like how Electron looks like a bunch of browser widgets - because it’s literally a single-web-app browser.
I think there are 3 major points that made Linux much more viable option in the last 2-3 years.
1) Somehow both GNOME and KDE got much better in the last 2 years. It's very smooth and polished experience that I now prefer to both MacOS and Windows. I only need to install 1 or 2 extensions and it's good to go for me.
2) AI! It's orders of magnitudes easier to fix any Linux issue now compared to 3 years ago. The issues that would take a whole afternoon of fighting are now just a couple back-and-forths with the LLM like ChatGPT or Gemini.
3) Valve and SteamOS. The large and mostly successful push by Valve to make Linux be the platform for gaming has cleared many Linux issues and hurdles on the way. I think this will have ripple effects in the industry. My prediction is that thanks to Valve and SteamOS we will see a viable, widely used Linux based phone in the next 3 years.
The point isn't "run the Linux kernel on a phone", the point is "run an non-big-tech OS that respects the user's privacy and choices". See also Google's recent announcement regarding locking down Android app installation to "protect users"
I think this is an underrated comment. On (2) you're totally right. Fixing issues is so much easier now I can interrogate an LLM for the right changes to make. It's not for everyone, but it makes my life a lot less stressful.
Linux has been able to serve most non-gaming use cases for over a decade now (source: I've been running the OS longer than that). The one thing it used to not be able to do was play games ... and now it does that.
The happy path has improved a lot. When Linux is working it's reasonably usable. But once something breaks it breaks HARD and recovery is still miserable.
For reference I've been using Linux since Red Hat 5.2 circa 2000. I cut my teeth debugging problems without internet access. I ran an LTSP lab at my high school. I remember the hell that was XF86Config (I was there, Gandalf, I was there 3000 years ago).
....and like the previous commenter I run Windows on my personal machines because I want to spend my free time using them, not debugging them.
The only app non technical users use anymore is a web browser. And since Linux has the same web browsers, non techies don't care. Also, it isn't spying on them or putting ads on their desktop, or breaking the mic randomly like Windows does. Big differences to most people.
I dunno, I thought about this before switching to Linux, when I gave my wife a Linux box I had sitting around in a pinch during the pandemic laptop shortage—a lot of people these days just need a browser, and there’s not really much to go wrong with that. If something does go wrong you can just nuke the whole thing and start over pretty easily.
I’ve certainly run into some odd situations on my desktop Linux machine over the past 6 years since I started using it full time, but I think most of them were related to the nature of how I use the machine more than inherent instability. I think I’ve spent many more hours of my life unwinding piles of malware and bloat from non-technical folks’ Windows machines than debugging this one.
My parents used Linux as their home computer for three years, regularly updating it and doing basic document writing with open office, as well as all of their banking etc
They don’t know what Linux is, and know nothing about tech, they just know that we had a 30 minute lesson on “here’s Firefox, this icon means you need to install updates, here’s how you print”.
I don't get this. People would put up with absolute nonsense on Windows. But when it comes to Linux, they want to experiment, mess around with the configs, copy/paste random commands from internet and basically turn into l33t haxers and then stuff breaks, its Linux's fault. Like how? Install Fedora, don't add any extra repos, don't install anything not in the Software Center and let us see how many times your system breaks.
I have been using Linux since 2000s as well. I do remember the rpm hell, dealing with x config issues etc. It is NOT the same experience now a days. I don't have the time or inclination to mess around so I use Fedora + KDE and that basically stays out of my way. I don't rice my desktop or do any hacking around beyond basic automation and I have had zero instances of the system just breaking.
* I wanted to update a Raspberry Pi from Ubuntu LTS 22 to LTS 24. Turns out this is basically impossible. Ubuntu themselves tell you not to do it and their recommended solution is to wipe the system and try again. I ignored them and tried to do it anyway and my Pi ended up refusing to boot. Great.
* I needed to update a Raspberry Pi to change the list of WiFi networks it knew about. Except apparently there are two different networking stacks for Linux with different config files and I edited the wrong one.
* I built a new TrueNAS server. Turns out that you absolutely cannot configure the networking from the GUI. There's a section there, sure, but every time it refuses to save the information until you "test the changes" and that fails to reconnect every single time. You have to locally plug a monitor into the machine, boot it, and log in with a keyboard to get to the config there.
* Not strictly a bug, but I installed Debian in WSL and it doesn't include `man` by default. So I get a command line and no help for it. Brilliant.
* How do I get that? With cargo, so sudo apt install cargo
* `cargo binstall --strategies crate-meta-data jj-cli` -> `error: no such command: `binstall``
* `cargo install binstall` -> `error: cannot install package `cargo-binstall 1.17.7`, it requires rustc 1.79.0 or newer, while the currently active rustc version is 1.75.0`
* `sudo apt install rustc` -> `rustc is already the newest version (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04).`
Apparently the guidance is to manage your rust versions with a tool other than apt that you install with `curl ... | sh` because no one ever learns anything about security
Yeah like... on Windows that's the exact same steps you would need to take if you insisted on using binstall? You might have slightly different steps for installing rustup for Windows (e.g. you need to install Visual Studio).
Though honestly IMO this is more of a failure on the jj devs to not provide something that can be installed straight using apt, I guess (looking at https://docs.jj-vcs.dev/latest/install-and-setup/#linux). For Arch for example you just install it from the official repos.
> * I wanted to update a Raspberry Pi from Ubuntu LTS 22 to LTS 24. Turns out this is basically impossible. Ubuntu themselves tell you not to do it and their recommended solution is to wipe the system and try again. I ignored them and tried to do it anyway and my Pi ended up refusing to boot. Great.
"Ubuntu themselves tell you not to do it" - you do see it right? Let us see how you forgive Windows for breaking things by ignoring Microsoft's advice and blame them anyway when it breaks.
> * I needed to update a Raspberry Pi to change the list of WiFi networks it knew about. Except apparently there are two different networking stacks for Linux with different config files and I edited the wrong one.
Why? Why not connect it to the network you want so that it just connects to that going forward?
> * I built a new TrueNAS server. Turns out that you absolutely cannot configure the networking from the GUI. There's a section there, sure, but every time it refuses to save the information until you "test the changes" and that fails to reconnect every single time. You have to locally plug a monitor into the machine, boot it, and log in with a keyboard to get to the config there.
And TrueNAS's shortcomings are somehow Linux's fault just like every Windows thirdparty software issue is Windows' fault?
> * I want to install jj
* Its docs say to use cargo-binstall
Installation¶
Download pre-built binaries for a release¶
There are pre-built binaries of the last released version of jj for Windows, Mac, or Linux (the "musl" version should work on all distributions).
Cargo Binstall¶
If you use cargo-binstall, ....
You could have just used the pre-built binaries as per their advice. But if you didn't, you should have atleast bothered to click on that cargo-binstall link to see that it is an add-on which has its own instructions - it is not bundled with cargo by default. Unlike you, I did follow the steps and was able to install jj without issues:
$ > curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
+ set -o pipefail
+ set -o pipefail
+ case "${BINSTALL_VERSION:-}" in
++ mktemp -d
+ cd /tmp/tmp.8IdPJtQBlE
+ '[' -z '' ']'
...
+ case ":$PATH:" in
+ '[' -n '' ']'
$ > cargo binstall --strategies crate-meta-data jj-cli
INFO the current QuickInstall statistics endpoint url="https://cargo-quickinstall-stats-server.fly.dev/record-install"
Binstall would like to collect install statistics for the QuickInstall project
to help inform which packages should be included in its index in the future.
If you agree, please type 'yes'. If you disagree, telemetry will not be sent.
...
INFO resolve: Resolving package: 'jj-cli'
WARN resolve: When resolving jj-cli bin fake-bisector is not found. But since it requires features test-fakes, this bin is ignored.
WARN resolve: When resolving jj-cli bin fake-diff-editor is not found. But since it requires features test-fakes, this bin is ignored.
WARN resolve: When resolving jj-cli bin fake-echo is not found. But since it requires features test-fakes, this bin is ignored.
WARN resolve: When resolving jj-cli bin fake-editor is not found. But since it requires features test-fakes, this bin is ignored.
WARN resolve: When resolving jj-cli bin fake-formatter is not found. But since it requires features test-fakes, this bin is ignored.
WARN The package jj-cli v0.39.0 (x86_64-unknown-linux-musl) has been downloaded from github.com
INFO This will install the following binaries:
INFO - jj => /home/xxxxx/.cargo/bin/jj
Do you wish to continue? [yes]/no yes
INFO Installing binaries...
INFO Done in 7.549505679s
$ > jj version
jj 0.39.0-d9689cd9b51b4139d2842fcf6c30f65f4eed8cd1
$ >
Again, a) this is third party b) just because you don't know how to follow the instructions, doesn't make the OS bad. Hell it doesn't even make cargo-binstall or jj look bad. By now, you should see that years of experience != knowing how to use things.
Having said all that, none of this stuff you mentioned even remotely resembled an average user's workflow who just uses his computer for listening to music and browsing the internet with some occasional document editing thrown in. Despite its warts and shortcomings, Linux does a much better job today than it used to.
> Why? Why not connect [the Raspberry Pi] to the network you want so that it just connects to that going forward?
I'm not the guy who wrote that, but I had the same use-case myself. (Except that I happened to choose the correct networking stack so I didn't have a problem). I wanted to set up a Raspberry Pi in my parents' house that would run Tailscale so I could use it as an exit node. (With my parents' full knowledge and permission). I wanted to pre-configure it with their WiFi password so that when I showed up for Christmas, I didn't have to spend any time configuring the device, just plug it in and go have dinner. (Then they changed ISPs, got a new router with a new WiFi password, and I had to ask them to plug it into the wired network so I could connect to it remotely and change the WiFi password again, so I had to do that work twice. But thankfully, I didn't have to walk them through the steps, just say "Hey, please plug it into the router with an Ethernet cable until you get an email from me telling you I've reconfigured the WiFi".)
> "Ubuntu themselves tell you not to do it" - you do see it right? Let us see how you forgive Windows for breaking things by ignoring Microsoft's advice and blame them anyway when it breaks.
Not giving a supported upgrade path between version N and N+1 of your operating system is unacceptable, user hostile, and not something a home user could deal with. "Install from scratch, wipe all your files, and set everything up again" is not OK. You can upgrade Windows from 1.0 through 11 without Microsoft saying "nah, this is impossible": https://www.youtube.com/watch?v=cwXX5FQEl88
"the binaries" are a tarball whose instructions refer back to the previous document, whose "Install > Linux" section starts "from source" and says "go obtain Rust > 1.88", so all of the previous problems still apply.
> "the binaries" are a tarball whose instructions refer back to the previous document, whose "Install > Linux" section starts "from source" and says "go obtain Rust > 1.88", so all of the previous problems still apply.
Again with the assertions without checking things. This is the path of "the binaries":
From your link, at the very top: "See
the installation instructions to get started".
Not "figure out how to extract a tarball, find somewhere unspecified on your path to put things blah blah" but "to get started go read this doc whose first step is to install rust, which your package manager isn't capable of".
This is a fairly standard Linux experience, not one reserved for developer tools.
On Windows, if you're not going through an app store you get an EXE or MSI installer that you double click and it does everything else necessary. Every time.
And this is why Linux desktop remains a ~1% marketshare OS, despite all of the vocal complaints about the corporate enshittification of Windows. Countless people say they're going to switch out of frustration, and then quickly meet reality and understand how good they actually have it with Windows when they try Linux, not at all helped by encountering the snobby community who will deride anyone for not knowing everything they know. The Linux ecosystem very much assumes you already have the knowledge of having always used Linux. For somebody who just started using it, "following the install instructions at the top of the page" is a perfectly reasonable thing to be doing. It is not the user's fault if those instructions are bad and you could totally get it working more easily if only you already knew what you were doing.
I note you also dropped the line of argument about the OS updating, where you were chiding them, saying they did need to follow instructions in that case. Of course, the instructions in that case are indefensible - you cannot seriously suggest an OS is production-ready for the real world if the instructions are "this cannot be updated. Seriously, don't even try.".
There are more details that make me believe that linux as mobile OS is more feasible in near future. Apart from the Valve&SteamOS push, the one notable phenomenon that I see happening is retrogaming. In retrogaming handhelds ecosystem there are now many devices with form factor close to phones (they often literally use screens from older iPhones, etc) that are running on Linux or in some cases provide option to easily switch between Android and Linux. For example on Anbernic RG35XX using Garlic OS there's a toggle in the UI to switch between Android and Linux. Similarly Retroid Pocket 5 allows switching in the bootloader menu.
As a separate point, it seems quite feasible to run Android apps in VM on Linux based phone and make the experience fairly seamless. Something like what Waydroid provides.
> As a separate point, it seems quite feasible to run Android apps in VM on Linux based phone and make the experience fairly seamless.
But why?
The premise of Waydroid seems to be to bring Android apps you want to your Linux desktop. But why would you want the phone in your pocket to run Desktop Linux so that you could then run Android apps on your Desktop Linux mobile phone instead of just running Android on your phone?
What desktop Linux features do you want on your phone that would justify this complexity?
I want to use pre existing apps from the Android ecosystem, but I want the system to let me install and change anything I want. It looks like android is going to heavily restrict installing apps that are not on play store and there are now ~5 apps that I use that don't exist on Play store, but only on Obtanium or Zapstore.
My hope is that installation of the Android apps on Linux phone could be made seamless.
It seems like an Android fork that supports the stores you want would be a lot simpler.
I’m sure Google would deny Google Play Services to any popular fork that didn’t follow their rules. But they would do the same to any Linux desktop or whatever that didn’t follow their rules, too, if it became popular.
There are multiple apps that I know and want to use that are no longer available on Play Store, but only via Zapstore, Obtanium or similar. I'm just hoping that these changes don't affect solutions like GrapheneOS or that we will soon get linux based phone that's good...
(some) people are starting to understand why cash is so important. It's the neutrality that it provides. The fact that it can't be programmatically limited or censored and you can't be excluded from the economy. Cash is inclusive.
Obviously cash becomes much harder to "use" online and in apps...
Activists and human rights lawyers are constantly getting their bank accounts closed or denied, even UN human rights council members, members of the ICC, journalists, pro-palestine activists or people in the BDS movement, it happens ALL the time now in europe, people have no idea how bad that has become, nobody in mass media is ever reporting on it.
I got personally de-banked from one bank and I'm nobody. I had other options, so it was only a minor issue, but I can't imagine what it's like for people when they run out of alternatives.
I'm not surprised - the Zionist lobby has basically criminalized all opposition to it.
Trump's "anti-DEI" geniuses ensured that any censure of Israel and its crimes would lead to the total destruction of one's life in the US (Gleen Greenwald talks about this on Tucker).
Given how this is going, I'd not be surprised if anti-semitism comes roaring back by the end of the decade.
> Given how this is going, I'd not be surprised if anti-semitism comes roaring back by the end of the decade.
This is a huge issue yeah, so many jewish organizations that used to be fighting antisemitism are now more concerned with fighting anti-zionism, calling everybody who doesn't lick Israel's boot an antisemite. This will blow up in all their faces so hard.
reply