ClamAV Frontend in Godot - eviltoast

This might be good. Hope you enjoy what I made.

cross-posted from: https://lemmy.world/post/16356895

I hope this software is useful to those who feel they need it.

Available on codeberg: https://codeberg.org/MarshReaper/GuardianSecurityCenter/releases/latest

This is a client that makes use of the ClamAV packages available in most repositories. It is made to replace ClamTK and check that box for people wanting to use Linux.

Some features are still in development, so not for production use just yet. But, you can run a quick scan and update signatures which is basic enough for most users.

I saw a video DistroTube posted and it made me a bit confused. It was about the Kasperky being offered on Linux. If you have seen the comments you would understand.

Anyways, this had me remember people I know ask me about anti viruses on Linux. I tried ClamTK, but it is very unintuitive and has a somewhat broken workflow.

I hopped on Godot and searched for an image of a popular antivirus software. I then made the software using the pretty layout that many people are used to.

I learned some things about Godot and I hope others will too with this project. Enjoy!

Also, if anyone could help me find the best way to distribute this software that would be great! (flatpak? repos? it requires administrative privileges)

  • NaoPb
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    7 months ago

    At first it looked to me like someone tried to make Windows Security Center in Linux.

    But this might be usefull actually. I’ve actually been looking for an antivirus with a graphical interface on linux since Eset dropped support for their linux version of NOD32.

    • Thomrade@lemmy.world
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      7 months ago

      There’s a lot of naysayers, who insist that game engines like Godot shouldn’t be used for drawing application UI as they tend to defender the entire application every frame, rather than just the parts that get dirty. They’re not wrong in that it’s not the most efficient way to do it, but it still works and is fit for purpose in a lot of cases. I put together a Godot based android app in about a week with very little Godot UI experience. That to me is far more important than absolute efficiency.

      Actually it appears this has been addressed:

      The last important thing you need to know is that you’ll want to turn on Low Processor Mode in the project settings. This makes it so that the screen only refreshes if something changes, as opposed to the default behavior where it would refresh every frame (which is typical for games).

      https://popcar.bearblog.dev/using-godot-for-gui-app-development/#technical-notes-you-should-know

      • AProfessional@lemmy.world
        link
        fedilink
        English
        arrow-up
        7
        arrow-down
        1
        ·
        edit-2
        7 months ago

        It really doesn’t scale up. On a 144hz monitor, having 20 applications open like that. It’s a lot of rendering for literally no purpose. A traditional toolkit may render zero things for long periods of time.

        • Thomrade@lemmy.world
          link
          fedilink
          arrow-up
          6
          ·
          7 months ago

          You are absolutely right, I did just discover that Godot 4.2+ supports a new mode called “low processor mode” that prevents redrawing unless something changes. I’ve edited my original comment to mention it. I have tried it out yet myself. That at least would prevend a very heavy amount of redrawing across 20+ apps as from your example.

          • AProfessional@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            7 months ago

            Neat! I wish there was more documentation and comparisons using that. I’d expect more mature UI focused solutions still are significantly more efficient.

            • Thomrade@lemmy.world
              link
              fedilink
              arrow-up
              3
              ·
              7 months ago

              Oh they would for sure. Having worked with a few of them they are really aggressive about what will render and when. Usually, only the control that changes is rerendered. With Godot even in low process mode Id imagine it is going to rerender the entire application window when anything changes. I’d have to do some tests. I know from research before there are other optimisations you can make in code to low memory and processor usage.

        • Thomrade@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          7 months ago

          It does, as is typical of all game engines but there is now a new mode you can enable called “low processor mode” to prevent redrawing unless something changes. I’ve edited my original comment to mention it.

      • Valmond@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        7 months ago

        Redrawing a painting app every frame, isn’t that just nitpicking optimisation from year 2000?

        • Thomrade@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          7 months ago

          Not necessarily, as pointed out in another comment, if you had 5, 10 or even more apps open at once, and ALL of them were redrawing entirely every frame there might be some significant impact. In the naive case where you’re build a small app to do one thing, Godot works great as is, once you understand this limitation. I also just learned of a new feature "low processor mode that explicitly prevents full redrawing unless something changes, Ive edited my original comment to mention it.

          • Valmond@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            6 months ago

            Well that’s not how it works?

            I mean you play 8 games, have photoshop and 3DStudio open at the same time?

            Modern GPUs can handle a lot, 10 programs painting the whole screen is easy peasy, but again, when do you have 10 softs open at the same time??

            I’m quite confused why this could be a problem outside some artificial setup :-)

            • Thomrade@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              6 months ago

              I don’t think its that unlikely, depending on the workflow. For example when I’m working on a game in Godot I have Godot itself, aseprite for texture editing, trenchbroom for level editing, audacity for sound editing, a 3d modeling tool, a code editor, messaging app, music player, that’s 8 already and not counting the browser!

              • Valmond@lemmy.world
                link
                fedilink
                arrow-up
                2
                ·
                6 months ago

                Yeah but except the 3D modeling & Godot the rest isn’t using a quarter of half of 10% of the VRAM or the GPU (probably way less).

                I mean I had 3dStudio, Photoshop & the multiplayer 3D game + server I was working on open without a hassle (plus browser, audacity, …) on a standard E8400 Core in 2010.

                A full HD screen is like 2M pixels, you can write that 100 times at 60hz with a 6600GT.

                It’s just a non issue, or I’m missing something here.

                • Thomrade@lemmy.world
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  6 months ago

                  I think you might think I’m arguing against Godot for app UI. I’m not in fact I’m totally in favour of it! What I’m originally saying is that people who are against it, argue it’d because its inefficient compared to regular UI toolkits. To deny that would be a lie, because yes, it is. But that doesn’t mean you don’t use it. You just understand the trade offs your making, and you try to minimise those tradeoffs with optimisations. If every app ignored optimisations for efficiency, wed be in a much worse situation. All those apps run smoothly in tandem because devs have made the optimisations. Its good practice to try and do the samez if you use Godot for app UI.

    • MarshReaper@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 months ago

      I do not find it very useful to myself as we all know that “common sense is the best antivirus”, but I was a bit upset how run down the front end applications for it have been.

  • MarshReaper@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    6 months ago

    I am having thoughts that I wonder if others may agree with. What if with the use of this tool on most linux newbie systems, the background processes of clamav scanning causes slowdown on their computers causing doubt in their try of Linux?

        • MarshReaper@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          7 months ago

          I am not too sure about Godot UI tools in relation to python GTK UI tools. Godot may provide an easier environment to create software applications. I hope we see more of this use! I also hope there are no issues with security or concerns I should be aware of.

    • MarshReaper@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 months ago

      “ClamAV is a free and open-source antivirus software and a cross-platform antivirus toolkit. Its primary purpose is to detect various kinds of malicious software, i.e. viruses, worms, trojans, rootkits, and many other forms of possible threats to your system.”

      As ClamAV only offers a command line interface to its features, I elected to make a pretty UI to give less technical end users an easy way to manage this antivirus backend.