this post was submitted on 26 Jul 2025
247 points (98.4% liked)

Linux

8878 readers
440 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

This is very exciting. Here is the APK I downloaded. And the associated discussion.

It even already seems to support stylus input which is very exciting seeing as there has been talk of porting RNote to Android.

top 50 comments
sorted by: hot top controversial new old
[–] k0e3@lemmy.ca 32 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I can't read the discussion because some damn Canadian neko waifu thinks I'm a bot.

[–] possiblylinux127@lemmy.zip 22 points 2 weeks ago (3 children)

It does that for all clients

You just need to wait for the proof of work to complete

[–] sxan@midwest.social 10 points 2 weeks ago (7 children)

You just need to wait for the proof of work to complete

I will never find the irony in this anything other than pathetic.

The one legitimate grievance against Bitcoin and other POW cryptocurrencies - the wasteful burning of energy to do throw-away calculations simply to prove the work has been done... the environmental cost of distributed scale meaningless CPU cycle waste purely for the purpose of wasting CPU cycles, has been so eagerly grasped by people who are largely doing it to foil another energy wasteful infotech invention.

It really is astonishing.

[–] Jumuta@sh.itjust.works 12 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

either you have the service with anubis or you have no service at all

unlike pyramid coins, anubis serves a purpose

[–] sxan@midwest.social 7 points 2 weeks ago (3 children)

It still uses Proof-of-Work, in which the coal being burned is only to prove that you burned the coal.

[–] possiblylinux127@lemmy.zip 6 points 2 weeks ago (5 children)

Everything uses energy

Do you have any measurements on power usage? It seems very minor.

load more comments (5 replies)
load more comments (2 replies)
[–] possiblylinux127@lemmy.zip 6 points 2 weeks ago (11 children)

Do you have a better way? It is way more private than anything else I've seen.

From a energy usage perspective it also isn't bad. Spiking the CPU for a few seconds is minor especially compared to other tasks.

[–] jasory@programming.dev 2 points 2 weeks ago

The mersenneforums have users solve an obscure (to a non-mathematician) but relatively simple number theory problem.

load more comments (10 replies)
[–] Cethin@lemmy.zip 6 points 2 weeks ago (2 children)

The point is to make it too expensive for them, so they leave you alone (or, ideally, totally die but that's a long way off). They're making a choice to harvest data on your site. Make them choose not to. It saves energy in the long run.

load more comments (2 replies)
load more comments (4 replies)
[–] k0e3@lemmy.ca 8 points 2 weeks ago* (last edited 2 weeks ago)

I did but it told me I'm a bot :(

Edit: Yay, it worked.

[–] PumaStoleMyBluff@lemmy.world 7 points 2 weeks ago (1 children)

It actually doesn't do that for all clients, according to the docs

It'll let you straight through if your user agent doesn't contain "Mozilla"

[–] Linearity@infosec.pub 2 points 2 weeks ago (2 children)

Whaaaat? Why only look for Mozilla?

All normal web browsers have Mozilla in the name so it’s kinda weird to only do it for that. Both chrome safari and FF start with Mozilla 5.0

[–] LunaChocken@programming.dev 2 points 2 weeks ago

Because it's super common in web scrapers

[–] A_norny_mousse@feddit.org 23 points 2 weeks ago (3 children)

Doesn't KDE/Plasma (or Qt) have this for years?

[–] klangcola@reddthat.com 52 points 2 weeks ago

Yes, and a few KDE apps work great on Android.

But more FOSS is more better, so GTK on Android is great news for both Android users and GTK developers

[–] schnurrito@discuss.tchncs.de 11 points 2 weeks ago (4 children)

Yes, e.g. Krita has long been available for Android tablets.

darktable on Android would be awesome, I don't think there's currently any good FOSS raw development software for Android.

load more comments (4 replies)
[–] it_depends_man@lemmy.world 1 points 2 weeks ago

We could have a neat little internet comment war about personal opinions on Qt...

But it's the weekend and I'd rather not.

[–] artyom@piefed.social 18 points 2 weeks ago (1 children)
[–] subarctictundra@lemmy.world 47 points 2 weeks ago (2 children)

Quite a substantial step towards being able to use Linux apps on Android phones.

[–] artyom@piefed.social 10 points 2 weeks ago

Ohhhh I see

[–] someacnt@sh.itjust.works 3 points 2 weeks ago

Oh, are we getting Year of android desktop?!

[–] _cryptagion@quokk.au 10 points 2 weeks ago (1 children)

Somebody is gonna put Gnome on an Android, I can feel it.

[–] subarctictundra@lemmy.world 3 points 2 weeks ago (1 children)

Gnome for phones already kinda exists with Phosh. I guess that wouldn't be too hard to port

[–] _cryptagion@quokk.au 1 points 2 weeks ago

For touchscreens, Gnome is great, I dunno how well it would work, but I wouldn't be sad to see someone try to make an actual fully featured Android UI replacement out of it.

[–] dil@lemmy.zip 6 points 2 weeks ago

So gimp on android?

[–] Mwa@thelemmy.club 3 points 2 weeks ago

less gooo!!

[–] ExLisper@lemmy.curiana.net 2 points 2 weeks ago (3 children)

I tried using GTK with C, JavaScript and Rust and the experience was always terrible. The tools, the documentation... C is just sooooo old and GTK doesn't translate well to Rust. For me GTK is great for Window Manger level tools that need to be small, super fast and are fairly static (you don't add new features do settings app or clock widget that often). I definitely wouldn't do cross platform apps in it.

[–] illucidmind@programming.dev 11 points 2 weeks ago (1 children)

First, what do you mean by "C is just so old"? That seems like a language problem, not a GTK problem. Tbh, when it comes to documentation, you're likely better off with C as the official GTK docs targets the C API (https://docs.gtk.org/gtk4/).

Also, what do you mean by "it doesn't translate well to Rust"? Because, Rust, like other supported langs like Python, have bindings that are equally well-documented to an extent. I haven't used the Rust binding but I've used the Python binding extensively and there are references to all the APIs (https://lazka.github.io/pgi-docs/)—same with Rust (https://gtk-rs.org/gtk4-rs/).

Lastly, I can understand not using GTK for cross-platform apps, but not for the reasons you mentioned. While GTK's primary target is Linux, you can technically still make it cross-platform.

[–] ExLisper@lemmy.curiana.net 4 points 2 weeks ago (1 children)

By "C is so old" I mean it lacks a lot of features modern languages have. Proper linting, code formatting, dependency management, version management, virtual environments, modules. Yes, you can solve some of it with docker but it's terrible compared with Rust for example.

By "it doesn't translate well to Rust" I mean that GObject doesn't translate well to Rust structs so you end up with weird structures split into multiple modules and terrible code overhead. Compared with modern UI frameworks it's just not ergonomic to work with.

Yes, I know GTK supports multiple platforms but if I want to develop for desktop and mobile I had way better experience using Tauri+Leptos. It's not just about having some bindings and some docs for it. It's about how much effort does it take to set it up and figure out how to implement specific functionality. Good docs, good tools good compiler and readable code for the framework help a lot.

[–] illucidmind@programming.dev 7 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Your statement about C is still mostly wrong. First, linting isn't typically a built-in feature for many languages; you mostly depend on external tools or IDEs (for C/C++, CLion and VSCode with specific extensions solve this). A similar occurrence is seen in formatting, where, except for a few languages like Rust and Go (with officially maintained formatters), you still have to depend on external tools or IDEs. For dependency management, it is well-known that C/C++ lacks an official package manager, but there are well-tested third-party package managers such as conan (https://conan.io/) and vcpkg (https://vcpkg.io/). Another benefit is the project-local support in both package managers (although it is more robust in Conan), which effectively addresses both the version management and virtual environment issues you raised. You don't always need virtual environments anyway (Rust doesn't use one either).

I haven't used the Rust binding, so I don't have direct experience with this and may not fully understand the pain points. However, a glance at the docs shows the Rust binding and trait-based pattern still does the job effectively. I don't understand what you mean by "weird structures split into multiple modules", as you're just reusing built-in structs like you would use a class in the Python binding, for instance. So I don't see the problem.

Well, mobile support for GTK is currently experimental, so there's that.

[–] ExLisper@lemmy.curiana.net 2 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Of course linting and formatting is not part of the language. Of course you can install extensions in some IDE that will handle it. Conan looks great but I never saw a project using it and when I was asking C devs about dependency management no one mentioned it. I checked dozens of GTK projects looking for some decent template to copy and didn't find anything remotely "modern". All projects I see simply use meson/ninja, install deps on system level, don't provide any code formatting or linting guidelines. Most don't bother with any modules and just dump all source code into 100 files in src. And I'm talking about actively developed tools for Gnome, not some long forgotten ones. For me the big difference between languages like C and Rust is that every Rust project uses the same formatting, linting tools, uses modules and proper dependency management while most C projects don't. Because it's old. Because a lot of C devs learned programming when it wasn't a thing. Because a lot of C project started when those tools didn't exist. You can probably start a new C project in 'modern' way but when I was trying to do it there were no examples, no documentation and when I asked C devs I was told that "you just do it like always". In modern languages the default way is the "modern" way.

This is how you declare a new component in gtk-rs:

glib::wrapper! {
    pub struct MainMenu(ObjectSubclass<imp::MainMenu>)
        @extends gtk::PopoverMenu, gtk::Popover, gtk::Window, gtk::Widget,
        @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Native, gtk::ShortcutManager;
}

impl MainMenu {
    pub fn new() -> Self {
        Object::new(&[]).expect("Failed to create `MainMenu`.")
    }
}

#[glib::object_subclass]
impl ObjectSubclass for MainMenu {
    const NAME: &'static str = "MainMenu";
    type Type = super::MainMenu;
    type ParentType = gtk::PopoverMenu;

    fn class_init(klass: &mut Self::Class) {
        klass.bind_template();
    }

    fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {
        obj.init_template();
    }
}

This is how you declare a new component in Leptos:

#[component]
fn App() -> impl IntoView {

    view! {
   <div>test</div>
    }
}

That's what I mean by "it's not ergonomic".

[–] illucidmind@programming.dev 2 points 2 weeks ago

Well, for a modern approach to development in C, you may have to be creative and not rely on ready examples, but it's still doable. A lot of the C issues are at the "conventional" level and can be solved if you just do things a little bit differently (e.g. nothing stops you from modularising source/headers files even though C doesn’t enforce this at the language level).

I can understand the "ergonomics" you speak of in Rust but it's not very surprising in that aspect especially given that C faces same challenge (and is even more verbose). The GObject system seems to map well with languages that favour the OOP style (built-in classes, inheritance etc) like Python. So yeah, on that, I understand ;)

[–] subarctictundra@lemmy.world 5 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I definitely recommend using Vala for Gtk as it was tailor made for it. It's built on top of the object system that Gtk uses so the API fits in to the language flawlessly, unlike Rust. It even has its own website for browsing the Gnome APIs https://valadoc.org/

[–] ExLisper@lemmy.curiana.net 1 points 2 weeks ago (1 children)

I read about Vala but a language that compiles to C seemed icky to me. I don't know, maybe it solves all the issues that C has. Maybe I will give it a try one day.

[–] subarctictundra@lemmy.world 1 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I think the saving grace is that you never actually see the C (it's piped straight in to GCC), so it might as well not exist. C GObject code has a lot of boilerplate and I like to think that Vala is the programming language that GTK programmers are actually thinking in when they write their C. Vala is essentially a compression of the C code with less room for errors.

load more comments (1 replies)
[–] someacnt@sh.itjust.works 2 points 2 weeks ago (1 children)

Tangent, but why did you ex lisp?

[–] ExLisper@lemmy.curiana.net 2 points 2 weeks ago

I did some Lisp programming long time ago but I don't touch it anymore.

[–] kurumin@linux.community 1 points 1 week ago

Now Gnome will be used where they intended it

load more comments
view more: next ›