icon themes and symbolic links

Hello Friends,

I am working on creating some custom icons for Papirus icon theme. I do not like the xterm icon. Actually, most of the terminal/shell icons are a greater than sign followed by an underscore, which is not very helpful in terminal identification by image. Anyway, i made an xterm icon in svg format. I used the X org logo and a greater than sign. Nothing special but it looks better than the Papirus icon in my opinion.

I noticed that my svg, which is 420x420 pixels is a smaller file size than the 48x48 pixel Papirus icon :oops: I have no idea why he Papirus icon is over 1kb larger. I wanted to replace the Papirus icons, then i noticed that the xterm icon is a symbolic link to a utilities-terminal svg file. I see that each icon size contains an svg and symbolic links to these svg images. Is this really true or am i missing something? svg images are scalable, so shouldn't we be using one svg and changing the size? why does Papirus have various sizes, then symbolic links to those sizes?

I am confused. How should i replace these images with my custom image using only one (scalable) svg? can i specify the size in a symbolic link or do i really have to use the same svg with different width and height attributes, thus breaking the scalable part of svg?

Please advise if you know how this works.
 

Attachments

  • papirus-sizes.jpg
    papirus-sizes.jpg
    26.2 KB · Views: 446
  • xtermcomparison.png
    xtermcomparison.png
    21.9 KB · Views: 451
I have tried <use> and <image> and it would work except that modern systems are blocking external sources for security purposes. So we really have to include the same svg with different size specifications in icon size specific directories. Insane! Sometimes Big Tech just doesn't make sense. Simply prevent script in svg and the problem is solved. I'm irritated.

Anyway, i post my svg code for other (FreeBSD users) to implement. I changed the icon a bit and it is now larger in size (1.93kb) but still smaller than the Papirus icon.

Thanks for reading. Topic closed unless someone finds a way to use one svg for each size.

Code:
<svg viewBox="0 0 420 420" xmlns="http://www.w3.org/2000/svg">
<!-- XTerm icon created for FreeBSD by johnjohn (forums.FreeBSD.org) -->
    <defs>
        <linearGradient id="GRADIENTCOLOR1" x1="209" x2="209" y1="-5" y2="424" gradientUnits="userSpaceOnUse">
            <stop stop-color="#101010" offset="0%"/>
            <stop stop-color="#000000" offset="100%"/>
        </linearGradient>
        <filter x="258" y="128" id="SHADOW2" width="146" height="165" filterUnits="userSpaceOnUse">
            <feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="3"/>
            <feFlood flood-opacity="1" flood-color="#ffffff" result="flood"/>
            <feComposite in="flood" in2="blur" result="colorBlur" operator="in"/>
            <feComposite in="SourceGraphic" in2="colorBlur" operator="over"/>
        </filter>
        <linearGradient id="xlogo" x1="90" x2="90" y1="95" y2="325" gradientUnits="userSpaceOnUse">
            <stop stop-color="#fff866" offset="0%"/>
            <stop stop-color="#f16422" offset="100%"/>
        </linearGradient>
    </defs>
    <g id="xtig">
    <path d="m 17.71 419.02c -9.23 0 -16.72 -7.49 -16.72 -16.72l 0 -384.56c 0 -9.23 7.49 -16.72 16.72 -16.72l 384.56 0c 9.23 0 16.72 7.49 16.72 16.72l 0 384.56c 0 9.23 -7.49 16.72 -16.72 16.72l -384.56 0 z" fill="url(#GRADIENTCOLOR1)" fill-opacity="0.9" fill-rule="evenodd"/>
    <path d="m 270.31 140.62l 0 22.14 90.67 51.1 -90.67 45.21 0 21.43 120.97 -61.7 0 -9.18 -120.97 -69 z" stroke="#ffffff" stroke-width="2" fill="#ffffff" fill-opacity="0.75" fill-rule="evenodd" filter="url(#SHADOW2)"/>
    <path d="m 31.26 319.35l 0.24 0.98 21.17 0 101 -130.33 -69 -89.5 -56.33 0 85.33 111.67 -82.41 107.18 z" stroke="#000000" stroke-width="2" fill="url(#xlogo)" fill-rule="evenodd"/>
    <path d="m 254.65 101.3l -0.52 -1.13 -20.79 0 -101.33 131 69.33 88.83 56.33 0 -85 -110.17 81.98 -108.54 z" stroke="#000000" stroke-width="2" fill="url(#xlogo)" fill-rule="evenodd"/>
    </g>
</svg>
 

Attachments

  • xterm-svg-icon.png
    xterm-svg-icon.png
    9.3 KB · Views: 436
I'm still working on new icons for my gui setup and i made a new version of the XTerm icon. I want to post it here for other FreeBSD users that may have interest in using this icon as well. Notice: this new version has some svg effects applied to it, which raises the file size to around 4.5kb. I don't mind because i like the look of this new hi-res version. I used a mask to create a 3d bladed look to the X org logo and i've added a shadow. Have a nice day :)

Code:
<svg viewBox="0 0 420 420" xmlns="http://www.w3.org/2000/svg">
<!-- default size: width="420px" height="420px" -->
<!-- XTerm icon created for FreeBSD by johnjohn of forums.FreeBSD.org -->
  <defs>
      <linearGradient id="iconbg" x1="209" x2="209" y1="-5" y2="424" gradientUnits="userSpaceOnUse">
          <stop stop-color="#19191a" offset="0%"/>
          <stop stop-color="#000000" offset="100%"/>
      </linearGradient>
      <linearGradient id="gtg" x1="163" x2="493" y1="210" y2="210" gradientUnits="userSpaceOnUse">
          <stop stop-color="#000000" offset="0%"/>
          <stop stop-color="#ffffff" offset="100%"/>
      </linearGradient>
      <mask id="gtmask">
          <rect x="163" y="36" fill="url(#gtg)" width="330" height="349"/>
      </mask>
      <filter x="255" y="129" id="gtf" width="147" height="164" filterUnits="userSpaceOnUse">
          <feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="3"/>
          <feFlood flood-opacity="1" flood-color="#ffffff" result="flood"/>
          <feComposite in="flood" in2="blur" result="colorBlur" operator="in"/>
          <feComposite in="SourceGraphic" in2="colorBlur" operator="over"/>
      </filter>
      <linearGradient id="xlg" x1="88" x2="88" y1="95" y2="325" gradientUnits="userSpaceOnUse">
          <stop stop-color="#fff866" offset="0%"/>
          <stop stop-color="#f16422" offset="100%"/>
      </linearGradient>
      <filter x="20" y="94" id="xls" width="148" height="243" filterUnits="userSpaceOnUse">
          <feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="2"/>
          <feOffset dx="10" dy="10" in="blur" result="offsetBlur"/>
          <feFlood flood-opacity="1" flood-color="#000000" result="flood"/>
          <feComposite in="flood" in2="offsetBlur" result="colorBlur" operator="in"/>
          <feComposite in="SourceGraphic" in2="colorBlur" operator="over"/>
      </filter>
      <linearGradient id="xrg" x1="199" x2="199" y1="94" y2="326" gradientUnits="userSpaceOnUse">
          <stop stop-color="#fff866" offset="0%"/>
          <stop stop-color="#f16422" offset="100%"/>
      </linearGradient>
      <filter x="129" y="93" id="xrs" width="150" height="244" filterUnits="userSpaceOnUse">
          <feGaussianBlur in="SourceAlpha" result="blur" stdDeviation="2"/>
          <feOffset dx="10" dy="10" in="blur" result="offsetBlur"/>
          <feFlood flood-opacity="1" flood-color="#000000" result="flood"/>
          <feComposite in="flood" in2="offsetBlur" result="colorBlur" operator="in"/>
          <feComposite in="SourceGraphic" in2="colorBlur" operator="over"/>
      </filter>
      <linearGradient id="xlzg" x1="20" x2="164" y1="210" y2="210" gradientUnits="userSpaceOnUse">
          <stop stop-color="#000000" offset="0%"/>
          <stop stop-color="#ffffff" offset="100%"/>
      </linearGradient>
      <mask id="xlzm">
          <rect x="20" y="94" fill="url(#xlzg)" width="144" height="232"/>
      </mask>
      <linearGradient id="xrzg" x1="130" x2="271" y1="210" y2="210" gradientUnits="userSpaceOnUse">
          <stop stop-color="#ffffff" offset="0%"/>
          <stop stop-color="#000000" offset="100%"/>
      </linearGradient>
      <mask id="xrzm">
          <rect x="130" y="94" fill="url(#xrzg)" width="141" height="232"/>
      </mask>
  </defs>
  <path d="m 17.71 419.02c -9.23 0 -16.72 -7.49 -16.72 -16.72l 0 -384.56c 0 -9.23 7.49 -16.72 16.72 -16.72l 384.56 0c 9.23 0 16.72 7.49 16.72 16.72l 0 384.56c 0 9.23 -7.49 16.72 -16.72 16.72l -384.56 0 z" fill="url(#iconbg)" fill-opacity="0.9" fill-rule="evenodd"/>
  <g filter="url(#gtf)">
      <path d="m 269.7 141.43l 0.09 18.23 88.83 54.83 -90.18 48.12 -0.94 17.9 121.78 -60.48 -0.87 -10.23 -118.71 -68.36 z" fill="#ffffff" fill-opacity="0.75" fill-rule="evenodd" mask="url(#gtmask)"/>
  </g>
  <path d="m 29.26 319.35l 0.24 0.98 21.17 0 101 -130.33 -71 -89.5 -54.33 0 87.42 108.75 -84.49 110.1 z" fill="url(#xlg)" fill-rule="evenodd" filter="url(#xls)"/>
  <path d="m 260 101l -0.38 -1.13 -20.13 0 -103.92 133.88 70.75 87.25 56.33 0 -86.83 -106.83 84.17 -113.17 z" fill="url(#xrg)" fill-rule="evenodd" filter="url(#xrs)"/>
  <path d="m 113.5 209.38l -85.17 111.46 22.67 0.04 8.76 -3.39 98.91 -127.48 -69 -86.5 -7.83 -3.33 -55.83 0 87.5 109.21 z" fill="#f99b17" fill-opacity="0.95" fill-rule="evenodd" mask="url(#xlzm)"/>
  <path d="m 262.4 108.3l -2.4 -8.3 -20.4 0 -104.02 133.5 71.02 87.3 56.09 0.08 3.18 -7.07 -82.04 -99.47 78.57 -106.03 z" fill="#f99b17" fill-opacity="0.95" fill-rule="evenodd" mask="url(#xrzm)"/>
</svg>
 

Attachments

  • xterm.png
    xterm.png
    60.2 KB · Views: 318
Back
Top