It’s not exclusive to NixOS, but I’ve only packaged it for NixOS.

The UI looks like shit, but it allows showing all the configs in /etc/wireguard and toggling them on or off with wg-quick.

The biggest issue I had was with slint. I can’t make sense of it (yet).

This was written because after getting a windscribe subscription, I found out that the app doesn’t work on #NixOS and the pull request to add it 1) doesn’t work, 2) is being nitpicked to death.

  • vald@mbin.linuxnation.socialOP
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    Future goals for when I have time again (from easy to hard) :

    • filter configs by connection status
    • sort configs by name or connection status
    • kill-switch (supposedly easy to add via Post-Up, Post-Down?)
    • download VPN configs from other providers: windscribe, proton, airvpn, ivpn, etc.
  • BCsven@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    Serious question: is it easier to build your own than expand on what’s already developed?

    • vald@mbin.linuxnation.socialOP
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      No idea what that is. I’m on KDE if that means anything.

      The goal was to be able to easily use all wireguard configs downloaded from windscribe --> no “just open a command line and run sudo wg-quick up ...”. I don’t want to enter the root password every time. Other VPN clients don’t require that.

      Does your thing achieve it somehow? I wouldn’t mind looking at it if that’s the case.

      • BCsven@lemmy.ca
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        It’s built into GNOME network manager I believe. I’m not a programmer, so you’d have to dig into what package supports that GUI. But somebody has written that GUI to add Wireguard in the VPN section.

        • vald@mbin.linuxnation.socialOP
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          Yeah, that’s not what I’m looking for. Windscribe has 200+ VPN locations. I’d have to manually import every single one. Sure, probably would take less time than it took writing this, but if they update a few configs (or everything at once for some reason), I’d have to go through the hassle of removing the existing configs and updating each one manually again.

          If it had a batch importer or even just supported configs in /etc/wireguard (or a custom directory), that would also be great. But from what I understand, it’s a frontend for NetworkManager, which uses a different configuration format for connections .nmconnection and is terribly documented.

    • vald@mbin.linuxnation.socialOP
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      :D I had edited the post and added a picture. I guess that’s not federating well. Attached it to this comment. Hopefully it shows up.

      Screenshot of the Wireguard UI with a list of configuration and a preview of the config

        • vald@mbin.linuxnation.socialOP
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          I didn’t want any browser + Rust solution (bloated) --> no Tauri, no electron, no webkit, no QML (that’s also webkit, isn’t it?)

          Didn’t want immediate mode - just not convinced by it --> no egui and all that other stuff

          Wanted to click together a UI and not fight too much with C++ bindings --> GTK4 got rid of their WYSIWYG editor, Qt creator doesn’t do Rust AFAIK, and all Qt bindings seemed like a lot of work getting it to run

          Slint just seemed like the best thing I could get running under an hour, given those conditions.

          If you can think of something else that fits better given those criteria, I’d be happy to check it out.

          • CameronDev@programming.dev
            link
            fedilink
            arrow-up
            0
            ·
            5 days ago

            No suggestions, just curious about your rationale. I’ve used dioxus and egui a bit. Both have some fairly rough edges.

            • vald@mbin.linuxnation.socialOP
              link
              fedilink
              arrow-up
              0
              ·
              5 days ago

              I might have to rethink my stance on no browsers, because Dioxus looks very easy compared to slint. And it supports mobile, which might come in handy for other projects have I have in mind.

              You do say dioxus has fairly rough edges. Could you elaborate further? I was considering trying it out.

              • CameronDev@programming.dev
                link
                fedilink
                arrow-up
                0
                ·
                5 days ago

                Are you familiar with react? Its basically react, but rust.

                The rsx! macro is very clever, but it doesn’t format with cargo fmt, you have to use dx fmt separately. Your mileage may vary as to whether your LSP or IDE understands it.

                Hot reload was a bit more like a plain reload. Still incredibly useful, but most of the time it did a rebuild and restart.

                I was trying to make a button that repeatedly fired as long as the mouse was held down, but for some reason the mouse up event would get lost, and then the button was stuck on.

                The “native” desktop is basically a custom browser with the JS engine replaced with rust. Its not as heavy as a full browser, but its not light either. Haven’t tried the mobile versions, I suspect they are similar.

                If you know react, its not a bad way to transfer those skills. Worth a try IMO, I am still using it for my project, although I may rewrite and switch to egui if I can’t solve my repeating button issue.

                • vald@mbin.linuxnation.socialOP
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 days ago

                  Thank you for the response. I don’t know React, but I do know Vue and Angular. I’ve heard React is a bigger beast than both put together. That kind of holds me back.

                  If slint pisses me off enough, I’ll give Dioxus a shot. It’s next on my list. Good luck with your app. Hopefully the button issue can be resolved.