Updated the Software recommendations article to talk about Invidious, Piped and FreeTube and make some corrections and addendums

master
Gianmarco Gargiulo 2024-02-27 14:37:10 +01:00
parent 457da339fe
commit 80d2b855a5
4 changed files with 233 additions and 13 deletions

View File

@ -2,7 +2,7 @@
title: "Software recommendations"
description: Stuff that I use or that I think you may like
date: 2023-11-15
lastMod: 2024-02-13
lastMod: 2024-02-27
tags: ["recommendations","software","free software"]
draft: false
thumbnail: /other/img/swrecommendations.svg
@ -109,7 +109,7 @@ I already mentioned this when talking about Linux Mint, it's their flagship [GTK
![The Trinity logo](../img/sw/tde.png)
This is a fork of the old KDE 3.5 desktop from the mid 2000's (kinda like how MATE is a hard fork of GNOME 2) and it keeps that delightfully Windows XP-like retro aesthetic. Despite its old codebase, it still works very well on modern systems, but especially on older ones, and has many features that are similar to or, sometimes, even better than modern KDE Plasma. The ultimate challenge would be to try running this as a daily driver and see how well it does with the right configurations (e.g. KDE Connect, proper themeing of modern GTK and Qt apps, etc.) I wish it had Wayland support, but due to the reliance on ancient libraries and the fact that the whole project is very small and underfunded, we'll probably not see this anytime soon.
This is a fork of the old KDE 3.5 desktop from the mid 2000's (kinda like how MATE is a hard fork of GNOME 2) and it keeps that delightfully Windows XP-like retro aesthetic. Despite its old codebase, it still works very well on modern systems, but especially on older ones, and has many features that are similar to or, sometimes, even better than modern KDE Plasma. The ultimate challenge would be to try running this as a daily driver and see how well it does with the right configurations (e.g. KDE Connect, proper themeing of modern GTK and Qt apps, etc.) I wish it had Wayland support, but due to the reliance on ancient libraries and the fact that the whole project is very small and underfunded, we'll probably not see this anytime soon. I recommend you check out [this useful article from CozyNet](https://www.cozynet.org/blogs/20240212_blog.html) exploring the basics of Trinity and how to fix some of its quirks.
[Website](https://www.trinitydesktop.org/)
@ -209,7 +209,7 @@ Basically YouTube without Shorts and other garbage. It has many of YouTube's lon
![The Pleroma logo](../img/sw/pleroma.png)
Microblogging like Mastodon, but with more of a retro-style UI with extra customizations and features. It's got themes with all kinds of parameters, emoji reactions, extra info pages to the admin's liking and also extra forks and frontends like [Akkoma](https://akkoma.social/), [glitch-lily](https://lily-is.land/infra/glitch-lily/) and [Soapbox](https://soapbox.pub/) which changes things up a bit. It's compatible with Fedilab, but there's also an app specifically made for it called [Husky](https://f-droid.org/en/packages/su.xash.husky/). I believe there are iOS clients out there.
Microblogging like Mastodon, but with more of a retro-style UI with extra customizations and features. It's got themes with all kinds of parameters, emoji reactions, extra info pages to the admin's liking and also extra forks and frontends like [Akkoma](https://akkoma.social/), [glitch-lily](https://lily-is.land/infra/glitch-lily/) and [Soapbox](https://soapbox.pub/) which change things up a bit. It's compatible with Fedilab, but there's also an app specifically made for it called [Husky](https://f-droid.org/en/packages/su.xash.husky/). I believe there are iOS clients out there.
[Website](https://pleroma.social/)
@ -283,7 +283,7 @@ Miss the good old days of TeamSpeak? I've got the thing for you: join a server a
![The Jitsi Meet logo](../img/sw/jitsi.webp)
The most used free (as in freedom) video conferencing software. Has pretty much all the features that stuff like Google Meet and Zoom have, minus the spying and AI training. The official server recently had to block users from making rooms behind a social login, which is annoying and a privacy threat, but they say they did it to combat spam and abuses, which is understandable. There are other Jitsi server out there anyways.
The most used free (as in freedom) video conferencing software. Has pretty much all the features that stuff like Google Meet and Zoom have, minus the spying and AI training. The official server recently had to block users from making rooms behind a social login, which is annoying and a privacy threat, but they say they did it to combat spam and abuses, which is understandable. There are other Jitsi servers out there anyways.
[Website](https://meet.jit.si/)
@ -336,18 +336,10 @@ If you need to quickly send a file to a friend of yours or to multiple devices a
![The uBlock Origin logo](../img/sw/ublock.svg)
This is a must among browser extensions, the absolute best ad and tracker blocker, don't use anything else. You cannot live on a browser without this nowadays (no wonder why LibreWolf comes with it preinstalled) and with extra filter lists it gets even stronger. If you're on a mobile browser that does not support extensions or if you'll stick to your beloved Chromium based browser that will make it harder for ad blockers to work thanks to Manifest v3, I feel pity for you.
This is a must among browser extensions, the absolute best ad and tracker blocker, don't use anything else. You cannot live on a browser without this nowadays (no wonder why LibreWolf comes with it preinstalled) and with extra filter lists it gets even stronger. It also has other special privacy features like the Annoyances lists to get rid of cookie consent banners by automatically declining them all. If you're on a mobile browser that does not support extensions or if you'll stick to your beloved Chromium based browser that will make it harder for ad blockers to work thanks to Manifest v3, I feel pity for you.
[Website](https://ublockorigin.com/)
### Consent-O-Matic (Firefox, Chromium, Safari)
![The Consent-O-Matic logo](../img/sw/consentomatic.png)
~~You don't have to deal with those annoying cookie notices and long lists of switches, this extension does the job for you. Europeans' best friend against privacy dark patterns.~~ Just found out uBlock can do what this extension does but better by enabling the "annoyances" filter lists in its settings.
[Website](https://consentomatic.au.dk/)
### ClearURLs (Firefox, Chromium)
![The ClearURLs logo](../img/sw/clearurls.svg)
@ -496,6 +488,30 @@ Every Linux user's favorite media player. Not as advanced as VLC, but for many p
[Website](https://mpv.io/)
### Invidious (Web)
![The Invidious logo](../img/sw/invidious.svg)
Probably the most well known private frontend site for YouTube, it basically lets you watch YouTube without YouTube. It is hosted on different instances, each with their own administrators, kinda like fediverse socials. It has its own account system with subscriptions, video downloads, audio only mode, etc. It's lightweight and minimal, perfect for old/weak computers or mobile devices.
[Website](https://invidious.io/)
### Piped (Web)
![The Piped logo](../img/sw/piped.svg)
Basically the same thing as Invidious, but with a slightly more polished UI and SponsorBlock integration. It's a bit buggier than Invidious honestly, but it's still worth a try.
[GitHub repo](https://github.com/TeamPiped/Piped/)
### FreeTube (Windows, macOS, Linux, Android)
![The FreeTube logo](../img/sw/freetube.png)
This is a very complete private YouTube application. You can manage subscriptions without needing any online account, import subscriptions from another app like NewPipe or from your YouTube account, have an offline watch history, make playlists, download videos, picture-in-picture, external player application support, multiple windows and even integration with the Invidious API so you don't have to ping YouTube's servers directly. Its Android version is unofficial, but it has basically all the same features as the desktop one.
[Website](https://freetubeapp.io/)
### NewPipe x SponsorBlock (Android)
![The NewPipe logo](../img/sw/newpipe.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="176.10472pt"
height="169.57919pt"
version="1.0"
viewBox="0 0 176.10472 169.57919"
id="svg3"
sodipodi:docname="invidious.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
inkscape:zoom="0.74121094"
inkscape:cx="116.02635"
inkscape:cy="105.2332"
inkscape:window-width="1366"
inkscape:window-height="706"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<g
id="g1"
transform="matrix(0.43690162,0,0,0.43690162,-23.999962,-29.708187)">
<path
d="m 247.17,455.95 c -19.792,-0.78921 -38.719,-4.2564 -57.154,-10.47 -60.968,-20.55 -108.68,-68.579 -127,-127.86 -7.8955,-25.538 -10.062,-53.943 -6.2586,-82.067 3.7105,-27.439 13.603,-53.515 29.342,-77.344 12.069,-18.273 29.138,-36.277 47.228,-49.816 36.891,-27.61 85.944,-42.49 132.38,-40.157 25.88,1.3001 49.939,6.765 73.106,16.606 8.1948,3.481 20.024,9.6845 27.696,14.525 14.15,8.9272 22.367,15.498 34.482,27.573 13.254,13.211 22.128,24.276 30.398,37.906 7.2081,11.879 14.099,27.15 18.229,40.397 1.5996,5.1305 4.442,16.456 5.6852,22.653 2.3908,11.917 2.6998,15.722 2.7049,33.312 0.006,18.515 -0.46256,24.413 -2.9166,36.758 -9.3274,46.92 -35.58,88.167 -74.872,117.64 -22.814,17.112 -50.027,29.535 -78.547,35.858 -16.714,3.7059 -35.421,5.2453 -54.498,4.4846 z m -35.1,-78.786 c -5.3e-4,-0.52647 -0.0741,-2.0564 -0.16311,-3.3999 l -0.16178,-2.4427 -4.7018,-0.26271 c -4.0477,-0.22614 -4.7968,-0.33363 -5.3847,-0.77253 -2.0235,-1.5108 -1.4679,-6.0695 2.2494,-18.457 0.8637,-2.8781 3.3371,-11.321 5.4966,-18.762 2.1594,-7.4409 5.2002,-17.836 6.7573,-23.101 1.5571,-5.2648 4.1948,-14.282 5.8615,-20.038 1.6667,-5.7562 3.6145,-12.4 4.3284,-14.764 0.71391,-2.3641 3.2583,-11.037 5.6542,-19.272 4.9475,-17.007 8.1626,-27.723 8.9438,-29.811 0.51852,-1.3858 0.54785,-1.4139 0.99761,-0.95317 0.25486,0.26106 3.8462,7.3667 7.9807,15.79 4.1345,8.4236 13.089,26.573 19.898,40.331 17.188,34.73 37.849,76.578 43.261,87.622 l 4.5356,9.257 11.359,-0.0895 c 6.2475,-0.0492 11.615,-0.19623 11.929,-0.32672 0.5614,-0.23385 0.54167,-0.2959 -1.3723,-4.3176 -1.068,-2.2442 -8.1436,-16.601 -15.724,-31.904 -48.687,-98.293 -61.22,-123.86 -67.889,-138.48 -4.7022,-10.309 -6.9031,-14.807 -7.7139,-15.762 -0.82931,-0.97742 -1.6319,-1.0638 -2.3704,-0.25525 -1.1993,1.313 -4.1046,10.063 -9.3869,28.27 -2.0569,7.0899 -6.5372,22.425 -9.9562,34.077 -6.6396,22.629 -8.5182,29.037 -14.33,48.883 -2.0354,6.9495 -4.7977,16.369 -6.1385,20.931 -1.3408,4.5628 -4.033,13.81 -5.9826,20.549 -4.304,14.877 -6.136,20.889 -7.3886,24.25 -2.1371,5.7334 -2.5723,6.3292 -4.9216,6.7384 -0.88855,0.15472 -2.4102,0.28196 -3.3815,0.28275 -2.1993,0.003 -3.5494,0.36339 -4.0558,1.0863 -0.42176,0.60215 -0.56421,4.8802 -0.18251,5.4812 0.20573,0.32388 2.4672,0.37414 23.34,0.51873 l 8.6151,0.0597 -7e-4,-0.95723 z m 36.751,-205.59 c 4.3282,-0.92335 8.4607,-4.943 9.4374,-9.1796 0.36569,-1.5862 0.32543,-4.9758 -0.077,-6.4799 -0.85108,-3.1813 -3.2688,-6.291 -6.039,-7.7675 -3.8111,-2.0313 -9.456,-2.0295 -13.272,0.005 -5.9828,3.1888 -8.1556,11.089 -4.7878,17.408 2.6995,5.0648 8.3611,7.3754 14.738,6.015 z"
fill="#f0f0f0"
stroke-width="0.025526"
id="path1" />
</g>
<g
transform="matrix(0.03053593,0,0,-0.03053593,-4.6731802,177.5929)"
id="g3">
<path
d="m 2787,4669 c -124,-65 -123,-255 3,-319 86,-44 196,-16 247,62 58,87 26,211 -67,258 -51,26 -132,26 -183,-1 z"
fill="#00b6f0"
stroke="#00b6f0"
stroke-width="4.25"
id="path2" />
<path
d="m 2882,4108 c -12,-16 -63,-166 -102,-303 -30,-104 -101,-350 -165,-565 -20,-69 -58,-199 -85,-290 -26,-91 -64,-221 -85,-290 -20,-69 -58,-199 -85,-290 -26,-91 -64,-221 -85,-290 -20,-69 -57,-195 -81,-280 -59,-207 -93,-299 -115,-310 -10,-6 -35,-10 -56,-10 -73,0 -84,-8 -81,-54 l 3,-41 228,-3 228,-2 -3,47 -3,48 -73,3 c -66,3 -74,5 -84,27 -13,28 0,104 37,225 13,41 47,156 75,255 28,99 66,230 85,290 18,61 56,191 85,290 28,99 66,230 85,290 18,61 56,191 85,290 85,297 123,419 131,429 5,5 17,-11 28,-35 10,-24 192,-393 403,-819 211,-426 447,-902 523,-1058 l 139,-282 h 168 c 92,0 168,4 168,8 0,4 -75,158 -166,342 -588,1183 -969,1958 -1033,2100 -29,63 -69,151 -89,195 -44,95 -58,110 -80,83 z"
fill="#575757"
id="path3" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="197.8541"
height="318.63754"
viewBox="0 0 197.8541 318.63754"
version="1.1"
id="svg10"
sodipodi:docname="piped.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview10"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.46851852"
inkscape:cx="77.905138"
inkscape:cy="251.85771"
inkscape:window-width="1366"
inkscape:window-height="706"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg10" />
<defs
id="defs10">
<linearGradient
id="grd1"
x1="138.28"
x2="522.48999"
y1="555.66498"
y2="480.98199"
gradientUnits="userSpaceOnUse">
<stop
offset=".16"
stop-color="#8b1010"
id="stop1" />
<stop
offset="1"
stop-color="#f84330"
id="stop2" />
</linearGradient>
<linearGradient
id="grd2"
x1="353.405"
x2="321.47501"
y1="835.89001"
y2="986.10999"
gradientUnits="userSpaceOnUse">
<stop
offset=".174"
stop-color="#493b32"
id="stop3" />
<stop
offset=".61"
stop-color="#dbccc4"
id="stop4" />
</linearGradient>
<linearGradient
id="grd3"
x1="300.21201"
x2="861.409"
y1="432.36499"
y2="323.27899"
gradientUnits="userSpaceOnUse">
<stop
offset=".16"
stop-color="#8b1010"
id="stop5" />
<stop
offset="1"
stop-color="#f84330"
id="stop6" />
</linearGradient>
<linearGradient
id="grd4"
x1="553.25201"
x2="504.21701"
y1="62.950001"
y2="372.54199"
gradientUnits="userSpaceOnUse">
<stop
offset=".174"
stop-color="#493b32"
id="stop7" />
<stop
offset=".61"
stop-color="#dbccc4"
id="stop8" />
</linearGradient>
<linearGradient
id="grd5"
x1="557.276"
x2="503.26001"
y1="360.48001"
y2="701.52002"
gradientUnits="userSpaceOnUse">
<stop
offset=".174"
stop-color="#493b32"
id="stop9" />
<stop
offset=".61"
stop-color="#dbccc4"
id="stop10" />
</linearGradient>
</defs>
<style
id="style10">.shp0{fill:url(#grd1)}.shp1{fill:url(#grd2)}.shp2{fill:url(#grd3)}.shp3{fill:url(#grd4)}.shp4{fill:url(#grd5)}</style>
<g
id="Logo original"
transform="matrix(0.38949236,0,0,0.38949236,-119.96365,-50.601219)">
<path
id="Vertical Pipe"
d="m 308.43,156.83 c 0,0 7.31,-5.48 20.3,-12.73 7.3,-3.14 16.4,-6.37 26.78,-9.27 10.92,-2.28 23.06,-3.99 35.59,-4.91 12.81,-0.07 25.78,0.74 37.97,2.35 12.13,2.47 23.31,5.59 32.73,8.91 18.15,8.52 29.59,15.65 29.59,15.65 0,0 0,11.71 0,32.22 0,10.25 0,22.7 0,36.98 0,14.28 0,30.39 0,47.97 0,17.57 0,36.61 0,56.75 0,10.07 0,20.42 0,30.99 0,10.57 0,21.37 0,32.36 0,10.98 0,22.15 0,33.46 0,11.3 0,22.75 0,34.28 0,11.53 0,23.16 0,34.83 0,11.67 0,23.39 0,35.11 0,11.71 0,23.43 0,35.1 0,11.67 0,23.3 0,34.83 0,11.54 0,22.98 0,34.29 0,11.3 0,22.47 0,33.45 0,10.99 0,21.79 0,32.36 0,10.58 0,20.92 0,30.99 0,20.14 0,39.18 0,56.75 0,17.58 0,33.69 0,47.97 0,14.28 0,26.73 0,36.98 0,20.51 0,32.23 0,32.23 0,0 -11.44,0 -28.59,0 -8.58,0 -18.58,0 -29.3,0 -10.72,0 -22.16,0 -33.59,0 -11.44,0 -22.87,0 -33.59,0 -10.72,0 -20.73,0 -29.3,0 -17.16,0 -28.59,0 -28.59,0 0,0 0,-11.72 0,-32.23 0,-10.25 0,-22.7 0,-36.98 0,-14.28 0,-30.39 0,-47.97 0,-17.57 0,-36.61 0,-56.75 0,-10.07 0,-20.41 0,-30.99 0,-10.57 0,-21.37 0,-32.36 0,-10.98 0,-22.15 0,-33.45 0,-11.31 0,-22.75 0,-34.29 0,-11.53 0,-23.16 0,-34.83 0,-11.67 0,-23.39 0,-35.1 0,-11.72 0,-23.44 0,-35.11 0,-11.67 0,-23.3 0,-34.83 0,-11.53 0,-22.98 0,-34.28 0,-11.31 0,-22.48 0,-33.46 0,-10.99 0,-21.79 0,-32.36 0,-10.57 0,-20.92 0,-30.99 0,-20.14 0,-39.18 0,-56.75 0,-17.58 0,-33.69 0,-47.97 0,-14.28 0,-26.73 0,-36.98 0,-20.51 0,-32.22 0,-32.22 z"
class="shp0"
style="fill:url(#grd1)" />
<path
id="Vertical Pipe Hole"
d="m 400,948 c -50.88,0 -92,-16.54 -92,-37 0,-20.46 41.12,-37 92,-37 50.88,0 92,16.54 92,37 0,20.46 -41.12,37 -92,37 z"
class="shp1"
style="fill:url(#grd2)" />
<path
id="Curved Pipe"
d="m 550.11,292.48 c 0,0 0,-9.64 -0.16,-22.25 -0.14,-5.67 -0.33,-11.9 -0.55,-18.27 -0.22,-6.23 -0.43,-12.92 -0.6,-19.85 -0.09,-7.4 -0.08,-15.47 0.04,-23.83 0.26,-9.3 0.65,-18.99 1.12,-28.18 1.38,-21.19 2.68,-37.67 2.68,-37.67 0,0 14.59,-1.21 39.24,-1.44 5.94,0.38 12.43,0.98 19.38,1.85 6.95,0.87 14.36,2.01 22.15,3.46 7.51,1.94 15.32,4.3 23.37,7.09 8.04,2.79 16.32,6.02 24.75,9.69 7.97,4.32 16.01,9.16 24.06,14.51 8.04,5.35 16.08,11.21 24.06,17.58 7.5,6.87 14.87,14.25 22.05,22.13 6.82,8.18 13.42,16.83 19.73,25.92 5.92,9.37 11.52,19.14 16.76,29.28 4.8,10.36 9.22,21.04 13.21,31.99 3.52,11.11 6.6,22.44 9.2,33.92 2.11,11.57 3.73,23.25 4.85,34.96 0.6,11.72 0.69,23.42 0.27,35.04 -0.95,11.55 -2.41,22.97 -4.38,34.18 -2.49,11.08 -5.48,21.91 -8.94,32.43 -3.98,10.31 -8.42,20.28 -13.28,29.86 -5.36,9.31 -11.11,18.21 -17.21,26.64 -6.57,8.13 -13.46,15.79 -20.6,22.94 -7.79,6.68 -15.77,12.85 -23.88,18.51 -8.1,5.66 -16.32,10.81 -24.58,15.45 -8.95,4.01 -17.84,7.57 -26.56,10.69 -8.74,3.12 -17.31,5.8 -25.64,8.06 -8.79,1.77 -17.22,3.22 -25.17,4.38 -7.96,1.17 -15.45,2.05 -22.36,2.68 -14.55,0.41 -26.2,0.46 -34.21,0.41 -8.01,-0.05 -12.38,-0.2 -12.38,-0.2 0,0 0.32,-9.63 0.73,-23.13 0.17,-6.44 0.35,-13.81 0.5,-21.61 0.11,-7.83 0.17,-16.33 0.17,-25.12 -0.08,-9.21 -0.24,-18.99 -0.48,-28.78 -0.34,-10.52 -0.76,-21.1 -1.2,-30.82 -1.17,-21.47 -2.17,-37.48 -2.17,-37.48 0,0 6.94,0.4 18.59,0.49 5.58,-0.22 12.15,-0.74 19.38,-1.64 6.91,-1.22 14.33,-2.95 21.95,-5.26 7.13,-2.71 14.29,-6.08 21.23,-10.09 3.23,-2.16 6.37,-4.49 9.4,-6.97 2.84,-2.58 5.57,-5.32 8.14,-8.19 2.37,-2.96 4.58,-6.05 6.6,-9.26 1.82,-3.28 3.44,-6.67 4.86,-10.15 1.2,-3.52 2.18,-7.13 2.94,-10.78 0.54,-3.69 0.85,-7.41 0.93,-11.15 -0.14,-3.75 -0.52,-7.5 -1.12,-11.23 -0.83,-3.71 -1.88,-7.39 -3.14,-11 -1.49,-3.58 -3.18,-7.09 -5.07,-10.51 -2.1,-3.36 -4.38,-6.62 -6.83,-9.75 -2.66,-3.07 -5.46,-6 -8.39,-8.8 -3.12,-2.71 -6.35,-5.27 -9.67,-7.68 -7.14,-4.54 -14.52,-8.46 -21.85,-11.72 -7.86,-2.91 -15.5,-5.24 -22.64,-7.01 -7.47,-1.49 -14.25,-2.54 -20.02,-3.24 -12.06,-0.89 -19.26,-1.08 -19.26,-1.08 z"
class="shp2"
style="fill:url(#grd3)" />
<path
id="Curved Pipe Upper Hole"
d="m 556.37,294 c -22.47,0 -40.64,-34.09 -40.64,-76.25 0,-42.17 18.17,-76.26 40.64,-76.26 22.47,0 40.64,34.09 40.64,76.26 0,42.16 -18.17,76.25 -40.64,76.25 z"
class="shp3"
style="fill:url(#grd4)" />
<path
id="Curved Pipe Bottom Hole"
d="m 557.9,615 c -22.47,0 -40.64,-37.55 -40.64,-84 0,-46.45 18.17,-84 40.64,-84 22.48,0 40.64,37.55 40.64,84 0,46.45 -18.16,84 -40.64,84 z"
class="shp4"
style="fill:url(#grd5)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB