<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="115744" data-post-id="115744">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Even moving a window is not generic though. The growing standard display on linux is now Wayland, Wayland does not have a concept of a simple 2d drawing screen. There are even wayland plugins that render programs as floating windows in a 3d landscape that you walk around in either via an FPS style controls on screen or via a VR setup. Not letting the window manager control these things will absolutely break in quite a number of times.</p>
</blockquote>
</aside>
<p>Yup, but you made a small mistake. As we are talking about <code>KDE/Plasma</code>, <code>Gnome</code>, <code>Windows XP</code> etc. we are not talking directly about <code>X</code> window system and therefore also not about <code>Wayland</code>. I’m sure that there are such 3D interfaces (always want to try this one which looks like a game), but … “I would talk” with <code>kwin_wayland</code> instead of <code>waylnad</code> libraries directly. I know that window manager topic is big, but I really don’t want to follow hardest way - I want to do as much as possible for things that are worth. Even if there is no <code>CSS</code> parser library it could be useful for other.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>How do you scrape all such things though? A lot of then are not just simple hotkey mappings and so forth but are entire running scripts that dynamically respond to various changing conditions.</p>
</blockquote>
</aside>
<p>For this I need research. I know that <code>Plasma</code> have lots of easy to scrape config files. If something is not possible in specified <code>OS</code> then I would handle <code>{:error, :not_supported}</code> or something like that. Well … if you are using <code>Plasma</code> everyday you could quickly forgot that other window managers are not so awesome. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>That would only read static global shortcuts. On my computer I have a huge number of dynamic shortcuts via scripts (simple bash scripts) that do different things at different times with different commands.</p>
</blockquote>
</aside>
<p>Sorry, I don’t get what (shell?) commands have to GUI apps and their shortcuts. Of course I would support global as default with option to override them. For example I could let you select <code>oxygen</code> theme and choose icons from other theme or even change a single color. All would be handled by settings viewport defined in library and final app would need only to save settings on its own and read them when initializing viewport.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>DBUS is introspectable and self-documenting (mostly), you can just introspect into it.</p>
</blockquote>
</aside>
<p>Yup, I know! I don’t remember, but there was even an app for list all <code>DBus</code> applications and it’s calls. For example I could show and hide <code>yakuake</code> and added it to <code>Plasma</code> config file to call it on pressing <code>&lt;Super&gt;</code> key. That’s really good way. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Heh, a user program definitely doesn’t have access to do that except within their own scope.</p>
</blockquote>
</aside>
<p>Well there is an <code>Plasma</code> app so it’s possible. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"> Anyway as you said app could store its shortcuts as in its own scope. I would even want to store my own as <code>DBus</code> calls. That would be definitely awesome!</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>And if those are dynamic based on non-static conditions?</p>
</blockquote>
</aside>
<p>For sure in details everything is bigger. Generally I want to take all supported event types and try to scrape each checking if it’s supported.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>This means writing full language interpreters for <em>so</em> many different formats while handling native binaries, javascript, and python at the very very least, just for KDE alone, on Windows there is a great deal, etc… etc…</p>
</blockquote>
</aside>
<p>For sure I’m not expert, but in <code>Linux</code> I saw everything easy to find (like config files, icons etc.). Comparing to <code>Windows</code> where icons can be in <code>dll</code> files (if I remember correctly) it looks much easier.</p>
<p>I don’t want to write any interpreter. At very least I would use current OS interpreters to handling special cases in future. For now I’m interested only in generic things. I don’t want to reproduce something which conflicts or overcomplicates whole implementation.</p>
<p>Again I want to draw everything which looks like themes. It does not need to be exactly equal if it’s really so hard. Just look at <code>Plasma</code> settings window. What it allows to configure/change. I just want to for example expand color scheme from <code>Plasma</code> settings, so app (and its dependencies) could draw components based on them. Of course there goes more than colors - I’m just giving colors to now write everything. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Huh? Autostart entries are on a specific path, very easy to access, although windows has quite a variety of non-registry based autostart areas as well.</p>
</blockquote>
</aside>
<p>Yeah and require from everyone to remember them or implement app with proper autostart support for every case. It’s definitely overcomplicated, hard to remember and use. It’s just like comparing <code>Firefox</code> config page and <code>Chrome</code> flags page. For sure <code>Chrome</code> have less options, but it’s mainly because of project assumptions and descriptions for flags.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Quite a number are on Wayland now with a fallback to X if your GPU doesn’t support 3d-accel. Wayland is even default for most KDE distributions I’ve seen lately. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Default does not mean that everything is ok:</p>
<blockquote>
<p>Wayland Support in Plasma</p>
<p>Wayland support in the KDE Plasma Workspaces is in a tech-preview state. The workspaces have been developed for X11 and much functionality relies on X11. To be able to make proper use of Wayland these bits have to be rewritten.</p>
<p>The most complex task is to implement Wayland support in KWin, KDE Plasma’s Compositor and Window Manager. Since 5.4 KWin is able to manage Wayland clients and this allows to start a Plasma session on Wayland.<br>
(…)<br>
This page was last modified on 13 January 2019, at 22:08. Content is available under <a href="https://community.kde.org/KDE_Community_Wiki:Copyrights" rel="noopener nofollow ugc">Creative Commons License SA 4.0</a> unless otherwise noted.</p>
<p>Source: <a href="https://community.kde.org/KWin/Wayland" class="inline-onebox" rel="noopener nofollow ugc">KWin/Wayland - KDE Community Wiki</a></p>
</blockquote>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>That is because a <em>LOT</em> of exceptionally poorly made programs tested the windows version by grabbing the string and seeing if it starts with “Windows 9*” instead of using the <em>actual</em> interfaces for testing the windows version number. Again, Windows did the right thing here, a lot of programmers didn’t.</p>
</blockquote>
</aside>
<p>Oh, I could remember it wrong. I though that version checking happens in OS library.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>QT doesn’t give any benefit? Other than that it has already abstracted the OS UI native calls or that it gives you an OGL context that you can draw into or that you can override the drawing and theme anything differently or that you could just put a tab bar at the top and init the window with the NO_TITLEBAR flag or anything of the huge amount of other things? What does scenic gain over it?</p>
</blockquote>
</aside>
<p>Yeah, but that means again drawing and handling custom window borders, movable part of <code>QTabBar</code>, window controls (minimize, maximize, close) etc. Nothing changes here (unlike in <code>GTK+</code> when you simply had <code>GtkHeaderBar</code>). I would need to fetch anyway lots of information as you noted about writing custom titlebar. I just said that if we have here and here same thing (scrape, draw and handle) then there is no benefit with using one over another <strong>in this specified part</strong> (not at all). <code>Qt</code>  have some native calls, but it’s definitely not best for <code>Elixir</code> as <code>scenic</code> is better option than <code>:wx</code>.</p>
<p>Writing huge <code>NIF</code> for full <code>Qt</code> support or writing drawing part in <code>scenic</code> - in both cases it’s a lot of work, but I could be wrong … btw. is it not possible to have “something in middle” like <code>scenic</code> which uses native calls like <code>Qt</code>?</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Yeah it does that by just turning off the titlebar management, like you can do in Qt or wxWidgets or whatever else. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Yup, the difference here is that you do not need to write so much code. I would like to see so simple solution in <code>scenic</code> as well.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>In general tabs on a titlebar doesn’t save space unless an app already has tabs. For me it doesn’t save space even in programs ‘with’ tabs like chrome/firefox/whatever as I still have a tab bar above that for combining multiple different programs into a single window. In addition you, say in windows or whatever, still have the taskbar on whatever edge of the screen you want that is already a set of ‘tab-like’ things that can merge windows of a program or not optionally among other things that the user can already position as they want.</p>
</blockquote>
</aside>
<p>Even if you have extra tabs above then instead of: <code>1 vs 2</code> you have <code>2 vs 3</code> bars. At any case <code>Firefox</code> part reduces in 33% or 50% (depends how many bars you have).</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>No clue what you are referencing here either, they don’t do anything of the sort, my window manager does, and I know its my window manager doing it because I get the 3D window manager effect of it when it snaps, which is absolutely <em>not</em> something that the program itself can do at 60fps.</p>
</blockquote>
</aside>
<p>Yup, most probably handling it is too more. When I started thinking about it firstly I though more about app window and not everything around it. I probably go too far with this part. It’s just because I’m used to have everything so easily configurable in <code>Plasma</code> which is just “waiting for me”. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Then call into the native interfaces, without it the interfaces will be broken for many user functions.</p>
</blockquote>
</aside>
<p>ok, so we have collision here</p>
<ol>
<li>Go with native interfaces</li>
<li>Go with something like <code>NO_TITLEBAR</code> flag in <code>Qt</code><br>
Or maybe it could be combined? Sorry I could get lost here.</li>
</ol>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Except plasma doesn’t just reorder. Even right now my Close button is a dark X in a gray circle that fades in to red when I hover over it over about 150ms while the X changes shape to be more bold over that same 150ms, or the maximize button is kind of a big up caret looking thing that fades in to blue when hovered and when clicked the window scales with a slight quick bounce to full screen while the maximize button kind of ‘folds’ down into 2 carets that then attach at their ends forming a diamond, etc… for all the rest of the buttons as well (minimize, shading, pinning, etc…). These are controlled and managed by compiled ‘scripts’, it’s not a little file that you can just scrape. How would you manage to replicate this without calling the native interfaces?</p>
</blockquote>
</aside>
<p>ok, I see … so it’s just not possible to apply theme from other OS / window manager, because instead of button states (or animated images) we have scripts everywhere, right? It looks like overcomplicated for me. Is that because everything is on old <code>X</code> server?<br>
Maybe I’m wrong, but personally if I would design such button I would think about animated <code>SVG</code> file which is simply generated based on colors (again and more) from theme file. I’m not sure why there are so many scripts. I probably assumed too much and I though that it works actually a bit easier.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Leave that to the native interfaces then, they shouldn’t have to implement that. That is what things like the KDE Framework are for (KDE Framework is an extra set of components and utilities on top of Qt, since KDE is built on Qt, and KDE Framework programs can be compiled for anything from windows to mac to iPhones/Android to much more).</p>
</blockquote>
</aside>
<p>That would be ok if there would be API like <code>GtkHeaderBar</code>, so I would just do not need to think about other things. Unfortunately I read that it’s considered as a bad practice for <code>KDE</code> developers and therefore they did not implemented that feature.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>How would that happen? If such a texture does not exist as a file on the filesystem but is another framebuffer entirely with its own dynamic content, how would you do that?</p>
</blockquote>
</aside>
<p>oh, please no! I saw already scripts with binary content and it looked so weird. Don’t tell me that there is so much staff like that. <img src="https://forum.elixirforum.com/images/emoji/apple/frowning.png?v=15" title=":frowning:" class="emoji" alt=":frowning:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="31" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Then can’t get the theme information from the window manager then.</p>
</blockquote>
</aside>
<p>ok, honestly it’s just terrible<br>
You want to add simple <code>Windows XP</code> theme, but you need tons of weird staff like interpreters. I don’t like how it’s solved. I don’t though that there is so much mess.</p>
<p>I think that you descried well why it’s so hard to scrape all information. For sure I don’t plan to finish with scraping. I would just limit it to not take too much time for it. If something is scripted then I would simply reject it. I would definitely scrape some system colors, textures etc and allow to draw “similar” themes (i.e. allow app to have good color scheme like app background).</p>
<p>As <a class="mention" href="/u/massimo" rel="nofollow">@massimo</a> linked image I would most likely to create my own standard i.e. my custom window icons. As <a class="mention" href="/u/overminddl1" rel="nofollow">@OvermindDL1</a> said I would use system calls as much as possible (especially I would like to add <code>DBus</code> support). Maybe later I would add few extra features which are pretty easy to implement (I don’t want to overcomplicate problem and make it working after few years). Honestly I did not planned to do something like that, but I see that I don’t have a big choice. I plan to have buttons in animated <code>SVG</code> format which would be generated based on color scheme (like button background color).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115744" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-115744" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115744"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #31"></div>
  </section>
</div>
    <div class="postbit" id="115756" data-post-id="115756">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Yup, but you made a small mistake. As we are talking about <code>KDE/Plasma</code> , <code>Gnome</code> , <code>Windows XP</code> etc. we are not talking directly about <code>X</code> window system and therefore also not about <code>Wayland</code></p>
</blockquote>
</aside>
<p>Except those ‘leak’ into the window manager as they have different feature sets, and KDE does change its capabilities depending on the underlying rendering engine (X, Wayland, or Windows for as much as it is supported).  And you really don’t want to talk to the wayland libraries directly, those are not designed for ‘program’ use as they are very low level and kind of horrid (and X’s is even worse!).  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I know that <code>Plasma</code> have lots of easy to scrape config files.</p>
</blockquote>
</aside>
<p>Except none of those define the overall themeing of the system, just general settings and defaults and so forth.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Sorry, I don’t get what (shell?) commands have to GUI apps and their shortcuts. Of course I would support global as default with option to override them. For example I could let you select <code>oxygen</code> theme and choose icons from other theme or even change a single color. All would be handled by settings viewport defined in library and final app would need only to save settings on its own and read them when initializing viewport.</p>
</blockquote>
</aside>
<p>As in when I hit certain ‘shortcuts’ they instead get redirected to a set of scripts that I’ve made over the years that do different things depending on the program that is focused, where the mouse is, the time of day, etc… etc…  It would be impossible for a program to emulate that as the keyhook for it happens even well before it hits the GUI at all, and I use a <em>LOT</em> of these scripts, apparently 27 I just ssh’d home and checked.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>For example I could let you select <code>oxygen</code> theme and choose icons from other theme or even change a single color.</p>
</blockquote>
</aside>
<p>So… a single program would be themed like oxygen instead of the custom theme I have running on my system?  That would be highly irritating, and the dark/bright would be super jarring…  o.O</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Yup, I know! I don’t remember, but there was even an app for list all <code>DBus</code> applications and it’s calls. For example I could show and hide <code>yakuake</code> and added it to <code>Plasma</code> config file to call it on pressing <code>&lt;Super&gt;</code> key. That’s really good way. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>I really quite like DBus too, it’s a bit crufty sure but it is really functional.  ^.^</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>For sure in details everything is bigger. Generally I want to take all supported event types and try to scrape each checking if it’s supported.</p>
</blockquote>
</aside>
<p>But how would you scrape what binaries do?</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>For sure I’m not expert, but in <code>Linux</code> I saw everything easy to find (like config files, icons etc.).</p>
</blockquote>
</aside>
<p>Heh, actually this is one area where windows is a lot more simple and easy in.  Window’s icons can be in the resource section of PE files (like DLL’s or other executables) and those are super easy to extract.  Compare to linux where a given ‘icon’ might be an ico, or a png, or an svg, or a <em>program</em> that outputs and animates it in real-time.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I don’t want to write any interpreter. At very least I would use current OS interpreters to handling special cases in future. For now I’m interested only in generic things. I don’t want to reproduce something which conflicts or overcomplicates whole implementation.</p>
</blockquote>
</aside>
<p>Hence should just use the native calls, let the OS handle all the drawing.  ^.^</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Again I want to draw everything which looks like themes. It does not need to be exactly equal if it’s really so hard. Just look at <code>Plasma</code> settings window. What it allows to configure/change. I just want to for example expand color scheme from <code>Plasma</code> settings, so app (and its dependencies) could draw components based on them. Of course there goes more than colors - I’m just giving colors to now write everything. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>That settings interface is a <strong>super</strong> simplified version of the themeing system in KDE.  Themes can not only adjust colors but entirely change how things are rendered altogether.  Just looking at that settings screen is entirely useless in some themes because they do <em>so</em> much in code (like the one I use).</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Default does not mean that everything is ok:</p>
</blockquote>
</aside>
<p>Though wayland is required for most of the newer features, and the development on the X backend has stopped entirely except for critical security patches.  The X backend can’t even accelerate the new systems anymore.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Oh, I could remember it wrong. I though that version checking happens in OS library.</p>
</blockquote>
</aside>
<p>It’s <em>supposed</em> to, programs are supposed to call the proper winapi’s for it, just a lot didn’t and instead just tested a string prefix for whatever stupid reason.  &gt;.&lt;</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>(unlike in <code>GTK+</code> when you simply had <code>GtkHeaderBar</code> )</p>
</blockquote>
</aside>
<p>Which doesn’t work here anyway so that’s not a useful example.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Writing huge <code>NIF</code> for full <code>Qt</code> support or writing drawing part in <code>scenic</code> - in both cases it’s a lot of work, but I could be wrong … btw. is it not possible to have “something in middle” like <code>scenic</code> which uses native calls like <code>Qt</code> ?</p>
</blockquote>
</aside>
<p>That seems rather useless at that point then.  Qt <em>already</em> can give you an OpenGL context with a <em>HUGE</em> host of commands for it (plus you can drop down to the base OGL calls themselves), so wrapping Qt with Scenic is quite useless as Qt already has all the functionality of scenic and a <em>great</em> deal more, so you’d be losing capabilities compared to just using Qt.  Using the native calls across OS’s is a rather amazingly difficult task.  Look through Qt’s compatibility layers for each system types and how it tests what to use and all, it’s a bit of a horror, just because there is no better way to do it.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Yup, the difference here is that you do not need to write so much code. I would like to see so simple solution in <code>scenic</code> as well.</p>
</blockquote>
</aside>
<p>In Qt you can put up a window in 1 line of C++ code, and you can have it host a QtQuick2 interface in it with another like 2 lines.  Qt is crazy simple compared to any other API I’ve used.  Even staying constrained to QtQuick2 and a binding layer to define your own components for it a Qt interface for elixir would be incredibly powerful, and that’s all before you get into any of the bigger things.  Though I’d do it as a Port instead of a Nif.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Even if you have extra tabs above then instead of: <code>1 vs 2</code> you have <code>2 vs 3</code> bars. At any case <code>Firefox</code> part reduces in 33% or 50% (depends how many bars you have).</p>
</blockquote>
</aside>
<p>Exactly, I hate programs having toolbars up top.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Go with something like <code>NO_TITLEBAR</code> flag in <code>Qt</code></p>
</blockquote>
</aside>
<p>That’s still a native interface, just letting you handle the drawing, you can even pass the messages back up, and the user can still override you to force a titlebar anyway (as I do system-wide).</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>ok, I see … so it’s just not possible to apply theme from other OS / window manager, because instead of button states (or animated images) we have scripts everywhere, right? It looks like overcomplicated for me. Is that because everything is on old <code>X</code> server?</p>
</blockquote>
</aside>
<p>Nah, X doesn’t have anything to do with this, rather it’s just the theme engines built up.  Windows has some replacement theme engines (windowblinds was a popular one, unsure if it still exists) that are pure machine code in their capabilities, KDE’s theming system is actually built on a combination of QtQuick and additional scripting language interactions, etc…</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Maybe I’m wrong, but personally if I would design such button I would think about animated <code>SVG</code> file which is simply generated based on colors (again and more) from theme file. I’m not sure why there are so many scripts. I probably assumed too much and I though that it works actually a bit easier.</p>
</blockquote>
</aside>
<p>How would you animate it?  Would you use javascript?  So you’d need a javascript interpreter then.</p>
<p>That’s how they work, like KDE Plasma builds in Javascript (V8 I think), Python, and binary file execution for it, and more can be added by other plugins.  It is for maximum configureability by the user as it is the Users computer, not an applications computer.</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>That would be ok if there would be API like <code>GtkHeaderBar</code> , so I would just do not need to think about other things. Unfortunately I read that it’s considered as a bad practice for <code>KDE</code> developers and therefore they did not implemented that feature.</p>
</blockquote>
</aside>
<p>I looked up this GtkHeaderBar, it appears to specifically be designed for tool child windows and/or simple popups, it is not for tabbed interfaces of any sort nor was it designed to mimic being native at all (it specifically appears that it is designed to <em>not</em> be native looking, which that would bug the heck out of me…).</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>oh, please no! I saw already scripts with binary content and it looked so weird. Don’t tell me that there is so much staff like that. <img src="https://forum.elixirforum.com/images/emoji/apple/frowning.png?v=15" title=":frowning:" class="emoji" alt=":frowning:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Lol!  Actually that’s how both Plasma5 and Windows 10 both work, they both have full support for framebuffers as textures, that is how Windows 7+ does the transparent blurry moving clouds animation in the chrome for example.  ^.^</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>You want to add simple <code>Windows XP</code> theme, but you need tons of weird staff like interpreters. I don’t like how it’s solved. I don’t though that there is so much mess.</p>
</blockquote>
</aside>
<p>GUI ecosystems are the very definition of “A Mess”, they always have been, and they only get so <em>so</em> much worse as time goes on.  Trying to mimic them is not a possible task anymore, even wxWidgets tried that a long time ago before it finally gave it to just making the native controls be the defaults in 2.7 or whatever it was (the last one before 3.0).</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I think that you descried well why it’s so hard to scrape all information. For sure I don’t plan to finish with scraping. I would just limit it to not take too much time for it. If something is scripted then I would simply reject it. I would definitely scrape some system colors, textures etc and allow to draw “similar” themes (i.e. allow app to have good color scheme like app background).</p>
</blockquote>
</aside>
<p>So on many modern systems you’d get no information then.  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="32" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I plan to have buttons in animated <code>SVG</code> format which would be generated based on color scheme (like button background color).</p>
</blockquote>
</aside>
<p>What kind of animated SVG though, javascript?  Something else?  How would you have it able to support dynamic interactions?</p>
<p>Honestly I’d say if a desktop app is wanted and wxWidgets is too…low level and crashy for your use, then elixir could use a really good Qt or KDEF wrapper library as a Port…  ^.^</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115756" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-115756" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115756"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #32"></div>
  </section>
</div>
    <div class="postbit" id="115764" data-post-id="115764">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>So… a single program would be themed like oxygen instead of the custom theme I have running on my system? That would be highly irritating, and the dark/bright would be super jarring… o.O</p>
</blockquote>
</aside>
<p>Well … I definitely prefer to have <code>oxygen</code> theme rather than “this” what <code>Windows 10</code> offers. It hurts my eyes way too much. I can’t work with this half dark and half white apps. Unfortunately <code>KDE</code> apps are in tech-preview version now.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Which doesn’t work here anyway so that’s not a useful example. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Wait, why it’s not working? I have it working every time even in <code>Plasma</code>.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>How would you animate it? Would you use javascript? So you’d need a javascript interpreter then.</p>
</blockquote>
</aside>
<p>Why you want to put everywhere <code>JavaScript</code>? Like it’s a solution for everything … I don’t get why rendering animated image requires other language.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>That’s how they work, like KDE Plasma builds in Javascript (V8 I think), Python, and binary file execution for it, and more can be added by other plugins. It is for maximum configureability by the user as it is the Users computer, not an applications computer.</p>
</blockquote>
</aside>
<p>So it’s impossible to write configurable software in <code>Elixir</code>? Is rendering of images so hard that it’s easier to require few extra language interpreters?</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I looked up this GtkHeaderBar, it appears to specifically be designed for tool child windows and/or simple popups, it is not for tabbed interfaces of any sort nor was it designed to mimic being native at all (it specifically appears that it is designed to <em>not</em> be native looking, which that would bug the heck out of me…).</p>
</blockquote>
</aside>
<p>ok, hello from another universe <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"><br>
When <code>nautilus</code> has been changed to popup window?</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/5/5c514b1cd553e7e677ca26928830038af3d05182.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/5c514b1cd553e7e677ca26928830038af3d05182" title="nautilus-gtk-header-bar-in-ubuntu.jpg" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/5/5c514b1cd553e7e677ca26928830038af3d05182_2_690x402.jpeg" width="690" height="402" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/5/5c514b1cd553e7e677ca26928830038af3d05182_2_690x402.jpeg, https://forum.elixirforum.com/uploads/default/original/2X/5/5c514b1cd553e7e677ca26928830038af3d05182.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/5/5c514b1cd553e7e677ca26928830038af3d05182.jpeg 2x" data-dominant-color="DECCCC"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">nautilus-gtk-header-bar-in-ubuntu.jpg</span><span class="informations">750×437 36.9 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>Lots of <code>GTK+</code> based apps are using it …</p>
<p>Also just take a look at this image. Just animation for change order of buttons and <code>+</code> button for new “tab” button. I don’t see why it’s bad to think that tabbar would not look good there.</p>
<p>Finally I’m completely lost what do you call <code>native look</code>. <code>GtkHeaderBar</code> is just using <code>GTK+</code> themes and its drawn by <code>GTK+</code> engine, right? <code>Nautilus</code> is great example of what I would like to have - I would only add <code>Plasma</code> like settings window (of course related to how app is looking) to change theme. It’s all I would like to have.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>GUI ecosystems are the very definition of “A Mess”, they always have been, and they only get so <em>so</em> much worse as time goes on. Trying to mimic them is not a possible task anymore, even wxWidgets tried that a long time ago before it finally gave it to just making the native controls be the defaults in 2.7 or whatever it was (the last one before 3.0).</p>
</blockquote>
</aside>
<p>I see …</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="33" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Honestly I’d say if a desktop app is wanted and wxWidgets is too…low level and crashy for your use, then elixir could use a really good Qt or KDEF wrapper library as a Port… ^.^</p>
</blockquote>
</aside>
<p>I prefer to create my own standard then and work like <code>scenic</code> is working already. I would just add an option to make app more look like native by scraping for example color schemes which should not be a big problem.</p>
<p>If you said that <code>GUI</code> libraries are overcomplicated then best way is to write new one. I really don’t want to fight with 4+ languages (<code>Elixir</code>, <code>C/C++</code>, <code>JavaScript</code> and <code>Python</code> as you said) to create one button. Way easier is to write everything from scratch on our own configurable, but simple rules - without a magic. It’s like I’m not saying that <code>Qt</code> is bad as same as <code>Rails</code>, but magic is magic and I don’t want to fight with overcomplicated solutions.</p>
<p>It could create extra costs, but at least we would have more job offers and it would be done right without overcomplicating so simple things.</p>
<p>If you ask how others could scrape my themes then answer is simple. At start of course it would not be a priority, but later I could consider exporting theme. For example I could save <code>*.bert</code> files (in binary erlang term format). I don’t remember much of animated SVG, but we could simply return our animated <code>SVG</code> template which could be themed and rendered as other wish.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115764" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-115764" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115764"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #33"></div>
  </section>
</div>
    <div class="postbit" id="115766" data-post-id="115766">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Well … I definitely prefer to have <code>oxygen</code> theme rather than “this” what <code>Windows 10</code> offers. It hurts my eyes way too much. I can’t work with this half dark and half white apps.</p>
</blockquote>
</aside>
<p>Lol, is it still that bad on Win10?  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Wait, why it’s not working? I have it working every time even in <code>Plasma</code> .</p>
</blockquote>
</aside>
<p>I force titlebars on all primary windows, otherwise I can’t get my application-tabs working.  ^.^</p>
<p>Speaking of, you can actually tell KDE that you will work with its tabs directly and then it will just cleanly integrate them all.  A few browsers here (not firefox/chrome) do that.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Why you want to put everywhere <code>JavaScript</code> ? Like it’s a solution for everything … I don’t get why rendering animated image requires other language.</p>
</blockquote>
</aside>
<p>SVG’s are not an animated format, and javascript is the most common method of animating them by far other than simple CSS transforms (which also requires a CSS rendering engine then too).  SMIL is the closest that you’d get but its extremely limited.</p>
<p>apng or so would be better in general, but those aren’t in heavy (or barely light) use.  <img src="https://forum.elixirforum.com/images/emoji/apple/frowning.png?v=15" title=":frowning:" class="emoji" alt=":frowning:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>So it’s impossible to write configurable software in <code>Elixir</code> ? Is rendering of images so hard that it’s easier to require few extra language interpreters?</p>
</blockquote>
</aside>
<p>You have to parse the information ‘somehow’ if you want wanting to grab the pre-existing theme information for a users desktop, and if their theme is in, say, javascript, well that’s what you need to run then.</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>When <code>nautilus</code> has been changed to popup window?</p>
</blockquote>
</aside>
<p>That’s not a nautilus thing, that’s an ubuntu thing, I’m not even remotely a fan of its interface.  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Lots of <code>GTK+</code> based apps are using it …</p>
</blockquote>
</aside>
<p>I don’t think that’s the apps themselves, rather that’s the theme of the window manager being used, specifically Ubuntu’s (I’ve seen that exact one on Ubuntu’s anyway).</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Finally I’m completely lost what do you call  <code>native look</code> .  <code>GtkHeaderBar</code>  is just using  <code>GTK+</code> themes and its drawn by  <code>GTK+</code>  engine, right?  <code>Nautilus</code>  is great example of what I would like to have - I would only add  <code>Plasma</code>  like settings window (of course related to how app is looking) to change theme. It’s all I would like to have.</p>
</blockquote>
</aside>
<p>Well GTK is not native on my system.  GTK apps look very poor and quite frankly I abhore them (I don’t even think I use any anymore…).  So no, GTK is not even remotely native here.  ^.^</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>If you said that <code>GUI</code> libraries are overcomplicated then best way is to write new one.</p>
</blockquote>
</aside>
<p>I think there’s a related XKCD comic about this.  ^.^</p>
<p>Heh, but still, that is what wxWidgets was for, and then Qt was for, and there’s been others and those are the only two ‘mostly’ successful ones, Qt far more so than wxWidgets.</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I really don’t want to fight with 4+ languages ( <code>Elixir</code> , <code>C/C++</code> , <code>JavaScript</code> and <code>Python</code> as you said) to create one button.</p>
</blockquote>
</aside>
<p>Oh it could potentially be a <em>LOT</em> more than that, that’s just a baseline example.</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Way easier is to write everything from scratch on our own configurable, but simple rules - without a magic.</p>
</blockquote>
</aside>
<p>That seems like significantly the harder path overall.  The easy path would be to just use the native calls themselves for the given winow manager.</p>
<aside class="quote no-group" data-username="Eiji" data-post="34" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>It’s like I’m not saying that <code>Qt</code> is bad as same as <code>Rails</code> , but magic is magic and I don’t want to fight with overcomplicated solutions.</p>
</blockquote>
</aside>
<p>Qt is quite the opposite of magic, it is dreadfully direct, far too much so in many cases (though necessary because of underlying GUI system differences).  The only thing that’s hard to trace at times is it’s pubsub (signals/slots) system because you can link anything to anything (though that’s pretty common in GUI systems).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115766" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-115766" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115766"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #34"></div>
  </section>
</div>
    <div class="postbit" id="115772" data-post-id="115772">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I force titlebars on all primary windows, otherwise I can’t get my application-tabs working. ^.^</p>
</blockquote>
</aside>
<p>I never get why people are grouping different apps. I like tabs in <code>Dolphin</code>, but I never feel a need to mix multiple apps. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>SVG’s are not an animated format, and javascript is the most common method of animating them by far other than simple CSS transforms (which also requires a CSS rendering engine then too). SMIL is the closest that you’d get but its extremely limited.</p>
</blockquote>
</aside>
<p>Are you <strong>100%</strong> sure? Look at this one:</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://upload.wikimedia.org/wikipedia/commons/b/b9/SVG_animation_using_SMIL.svg">
  <header class="source">

      <a href="https://upload.wikimedia.org/wikipedia/commons/b/b9/SVG_animation_using_SMIL.svg" target="_blank" rel="noopener nofollow ugc">upload.wikimedia.org</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://upload.wikimedia.org/wikipedia/commons/b/b9/SVG_animation_using_SMIL.svg" target="_blank" rel="noopener nofollow ugc">SVG animation using SMIL</a></h3>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>You probably never read about SMIL:<br>
<a href="https://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language#SMIL_players" class="onebox" target="_blank" rel="noopener nofollow ugc">https://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language#SMIL_players</a></p><aside class="onebox wikipedia" data-onebox-src="https://en.wikipedia.org/wiki/SVG_animation#SVG_animation_using_SMIL">
  <header class="source">

      <a href="https://en.wikipedia.org/wiki/SVG_animation#SVG_animation_using_SMIL" target="_blank" rel="noopener nofollow ugc">en.wikipedia.org</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://en.wikipedia.org/wiki/SVG_animation#SVG_animation_using_SMIL" target="_blank" rel="noopener nofollow ugc">SVG animation | SVG animation using SMIL</a></h3>

<p>Though the example above works, it is not the optimal implementation; the animation is limited to 50 frames per second (FPS). Using requestAnimationFrame provides better performance and can reach 60 FPS: The following are the animation attributes which identify the target attribute for the given target element whose value changes over time.
attributeName = "&lt;attributeName&gt;" specifies the name of the target attribute. An XMLNS prefix may be used to indicate the XML namespace for the attribute. The...</p>

  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>It’s 100% <code>XML</code> to parse and draw. Exactly <strong>0</strong> <code>CSS</code> and <code>JavaScript</code> code.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>You have to parse the information ‘somehow’ if you want wanting to grab the pre-existing theme information for a users desktop, and if their theme is in, say, javascript, well that’s what you need to run then.</p>
</blockquote>
</aside>
<p>I said that I don’t want to go so deep. If there are config files or maybe libraries which returns raw values (like: <code>[255, 255, 255]</code>) then I could consider using them. I know that at least <code>Plasma</code> have lots of configuration written pretty easy. Generally lots of (most? or even all?) <code>Plasma</code> configuration (I mean settings which is enough for me) is written in config files and <code>DBus</code> calls (to control apps). Including even <code>CSS</code> parsing from <code>GTK+</code> themes is everything I would like to. I definitely don’t want to touch script <strong>except</strong> markup languages like <code>XML</code> (for example: <code>SVG</code> images).</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>That’s not a nautilus thing, that’s an ubuntu thing, I’m not even remotely a fan of its interface. ^.^;</p>
</blockquote>
</aside>
<p>Lol, no - as far as I know <code>Nautilus</code> is using <code>GtkHeaderBar</code>. <code>Ubuntu</code> have something to read menus from apps and add them to system bar, but I’m talking now only about custom titlebar.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I don’t think that’s the apps themselves, rather that’s the theme of the window manager being used, specifically Ubuntu’s (I’ve seen that exact one on Ubuntu’s anyway).</p>
</blockquote>
</aside>
<p>You really did not get it. It’s not about <code>Ubuntu</code> - it’s in <code>GTK+</code> documentation:</p><aside class="onebox allowlistedgeneric" data-onebox-src="https://docs.gtk.org/gtk3/">
  <header class="source">

      <a href="https://docs.gtk.org/gtk3/" target="_blank" rel="noopener nofollow ugc">docs.gtk.org</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://docs.gtk.org/gtk3/" target="_blank" rel="noopener nofollow ugc">Gtk-3.0</a></h3>

  <p>Reference for Gtk-3.0</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
<p>
You can put any class instance which extends <code>GtkWidget</code> (if I remember correctly how it worked). I mean that you can put there any widget from <code>GTK+</code> documentaion that you want. Maybe there is even way to draw your own widgets. I have used it lots of years ago, but remember how big potential it had. As said I just wanted to see there <code>tabbar</code> from <code>GtkNotebook</code> + some ways to personalize it a bit more (changing theme, order of buttons etc).</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Well GTK is not native on my system. GTK apps look very poor and quite frankly I abhore them (I don’t even think I use any anymore…). So no, GTK is not even remotely native here. ^.^</p>
</blockquote>
</aside>
<p>It’s native, because it’s written in <code>GTK+</code> engine. I don’t get how much more you require for having <code>native</code> look. It’s one of standard <code>GTK+</code> theme. Of course unless you would set special theme (like <code>oxygen-gtk</code>) then <code>GTK+</code> apps would not look like <code>Qt</code> apps, but same goes in 2nd way too.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I think there’s a related XKCD comic about this. ^.^</p>
</blockquote>
</aside>
<p>yup, that’s right</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Oh it could potentially be a <em>LOT</em> more than that, that’s just a baseline example.</p>
</blockquote>
</aside>
<p>Don’t scary me, please. It’s why I don’t want to touch it at all. Better is to work on your own drawer without weird scripts in 50 languages and limitations which have no sense.</p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>That seems like significantly the harder path overall. The easy path would be to just use the native calls themselves for the given winow manager.</p>
</blockquote>
</aside>
<p>Yeah, and handle all of that edge-cases, 50 languages etc. I’m sure window manager would get it, but after that I would not have more options to personalize than on <code>Windows</code>, so sorry it’s not for me. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="OvermindDL1" data-post="35" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Qt is quite the opposite of magic</p>
</blockquote>
</aside>
<p>Any overcomplicating is magic in my dictionary. <img src="https://forum.elixirforum.com/uploads/default/original/2X/2/20c9c52366de24191270f0b11311379ce60ac82d.gif?v=15" title=":077:" class="emoji emoji-custom" alt=":077:" loading="lazy" width="20" height="20"></p>
<p>I can’t accept anything with some much complicated structure. I don’t want to compile not only <code>Qt</code>, but also few languages just for settings window with support for multiple themes. Of course I understand that I don’t need <code>JavaScript</code> for every basic component, but look that I’m not typical <code>Chrome</code> user I want to have more and more. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"> For <code>Elixir</code> developers it would be easier to stick with <code>OpenGL</code> and <code>Elixir</code> instead of as you said so many languages.</p>
<p>I like configurable things, but not when their are overcomplicated. I’m not satisfied if any of my work is not enough configurable or it’s too complicated. Even if it requires to rewrite something I want to make everything as easy as possible. For sure as said I will not rewrite window manager behaviour, because as you described it’s also too complicated. I don’t believe that <code>Elixir</code> would be good to write window manager from scratch, but who knows … maybe something in future … <img src="https://forum.elixirforum.com/uploads/default/original/2X/2/20c9c52366de24191270f0b11311379ce60ac82d.gif?v=15" title=":077:" class="emoji emoji-custom" alt=":077:" loading="lazy" width="20" height="20"></p>
<p>Summary:</p>
<ol>
<li>
<p>After discussion/research I would design and place some job offers for new UI library (without requirement to <code>GTK+</code> or <code>Qt</code>).</p>
</li>
<li>
<p><code>scenic</code> is designed for <code>nerves</code> devices, so most probably I would need to create its fork for desktop apps</p>
</li>
<li>
<p>I would write some helpful libraries (with <code>NIF</code>s) to support other desktop features like system notifications and tray icon.</p>
</li>
<li>
<p>Unfortunately window managers are overcomplicated, so I’m not going to reproduce their behaviour for all OS - I would just call supported by current window manager features.</p>
</li>
<li>
<p>I can imagine writing few extra behaviours which are easy to implement like <code>&lt;Alt&gt;</code> + mouse should be as events would go to our window (i.e. I would not simulate window manager events with transparent window or other hacks).</p>
</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115772" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-115772" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115772"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #35"></div>
  </section>
</div>
    <div class="postbit" id="115782" data-post-id="115782">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I never get why people are grouping different apps. I like tabs in <code>Dolphin</code> , but I never feel a need to mix multiple apps. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>No one else I know uses them either but I quite like them.  It sucks that a theme has to be built with them in mind or they don’t work, that’s actually the big reason I use a custom theme.  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>You probably never read about SMIL:</p>
</blockquote>
</aside>
<p>Yeah that’s SMIL as referenced in my post, not just SVG.  It only works with prebaked animations using a set of commands to manipulate the nodes.  Last I recall (it’s been a while though) it was not capable to create/remove SVG nodes so you could only manipulate.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I said that I don’t want to go so deep. If there are config files or maybe libraries which returns raw values (like: <code>[255, 255, 255]</code> ) then I could consider using them. I know that at least <code>Plasma</code> have lots of configuration written pretty easy. Generally lots of (most? or even all?) <code>Plasma</code> configuration (I mean settings which is enough for me) is written in config files and <code>DBus</code> calls (to control apps). Including even <code>CSS</code> parsing from <code>GTK+</code> themes is everything I would like to. I definitely don’t want to touch script <strong>except</strong> markup languages like <code>XML</code> (for example: <code>SVG</code> images).</p>
</blockquote>
</aside>
<p>So yeah, wouldn’t be able to parse the theme I use then for example.  A button doesn’t have just a single color as one of many examples, rather it’s a gradient that reacts to the mouse position (not just hover state but precise position) and more.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Lol, no - as far as I know <code>Nautilus</code> is using <code>GtkHeaderBar</code> . <code>Ubuntu</code> have something to read menus from apps and add them to system bar, but I’m talking now only about custom titlebar.</p>
</blockquote>
</aside>
<p>Ubuntu by default removes the titlebar of supported applications to make a combined menubar/titlebar/more thing instead.  I’ve found it makes it hard to click on things without accidentally clicking on something that’s active.</p>
<aside class="quote no-group quote-modified" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>You really did not get it. It’s not about <code>Ubuntu</code> - it’s in <code>GTK+</code> documentation:<br>
<a href="https://developer.gnome.org/gtk3/stable/GtkHeaderBar.html#gtk-header-bar-set-custom-title" class="inline-onebox" rel="noopener nofollow ugc">Gtk – 3.0</a><br>
You can put any class instance which extends <code>GtkWidget</code> (if I remember correctly how it worked). I mean that you can put there any widget from <code>GTK+</code> documentaion that you want. Maybe there is even way to draw your own widgets. I have used it lots of years ago, but remember how big potential it had. As said I just wanted to see there <code>tabbar</code> from <code>GtkNotebook</code> + some ways to personalize it a bit more (changing theme, order of buttons etc).</p>
</blockquote>
</aside>
<p>Ubuntu ‘uses’ GTK as it’s rendering engine, like how KDE uses Qt as its rendering engine.  Putting things at the top of the window with a hidden titlebar is not a hard thing to do, and that’s what that widget wraps.  Not a hard thing but definitely not very fitting into other interfaces.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>It’s native, because it’s written in <code>GTK+</code> engine</p>
</blockquote>
</aside>
<p>Native to Ubuntu sure, but not native to a different system like Qt or Motif or Windows or so.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I don’t get how much more you require for having <code>native</code> look. It’s one of standard <code>GTK+</code> theme. Of course unless you would set special theme (like <code>oxygen-gtk</code> ) then <code>GTK+</code> apps would not look like <code>Qt</code> apps, but same goes in 2nd way too.</p>
</blockquote>
</aside>
<p>Precisely!  It won’t mesh with other rendering systems.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"><br>
Where if the native calls are used then it does.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Don’t scary me, please. It’s why I don’t want to touch it at all. Better is to work on your own drawer without weird scripts in 50 languages and limitations which have no sense.</p>
</blockquote>
</aside>
<p>Heh, different distributions and OS’s do lots and lots of different things.  ^.^;</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Yeah, and handle all of that edge-cases, 50 languages etc. I’m sure window manager would get it, but after that I would not have more options to personalize than on <code>Windows</code> , so sorry it’s not for me. <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>On windows yep, but using the native calls on each respective system gets it native looking regardless, native being “Like the rest of the applications”.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Any overcomplicating is magic in my dictionary. <img src="https://forum.elixirforum.com/uploads/default/original/2X/2/20c9c52366de24191270f0b11311379ce60ac82d.gif?v=15" title=":077:" class="emoji emoji-custom" alt=":077:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Qt makes it simple and clear then, if a bit wordy at times, it is soooo blissful compared to older styles, and that includes wxWidgets (which is <em>very</em> Win32’ish in its API on all systems, blegh).</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>For <code>Elixir</code> developers it would be easier to stick with <code>OpenGL</code> and <code>Elixir</code> instead of as you said so many languages.</p>
</blockquote>
</aside>
<p>I don’t think Elixir is actually capable enough to act as a theme backend actually, hmm… could be an interesting test…  The issue is it has to respond <em>fast</em>, like way blazing <em>fast</em> to render commands.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I would design and place some job offers for new UI library</p>
</blockquote>
</aside>
<p>Just don’t expect it to fit into the usual desktop systems is the big thing.  ^.^;<br>
Which is perfectly fine for things like games, which have a very game-specific UI anyway.</p>
<aside class="quote no-group" data-username="Eiji" data-post="36" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>I can imagine writing few extra behaviours which are easy to implement like <code>&lt;Alt&gt;</code> + mouse should be as events would go to our window (i.e. I would not simulate window manager events with transparent window or other hacks).</p>
</blockquote>
</aside>
<p>And what would that do on systems where the user expects alt+mouse to do something entirely different?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115782" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-115782" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115782"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #36"></div>
  </section>
</div>
    <div class="postbit" id="115786" data-post-id="115786">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="37" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>And what would that do on systems where the user expects alt+mouse to do something entirely different?</p>
</blockquote>
</aside>
<p>Simply checks if it’s reserved already <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115786" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-115786" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115786"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #37"></div>
  </section>
</div>
    <div class="postbit" id="115887" data-post-id="115887">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="38" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Simply checks if it’s reserved already <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Hmm, how would it do that?  I’m not sure I can think of a way to check my bindings on my system as that’s kernel level interfaces (it’s handled by the keyboard driver that gives updates out to a privileged listening program) without higher level access that I <em>definitely</em> wouldn’t want to give a usermode program (since then it could listen it to <em>all</em> my input system-wide).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115887" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-115887" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115887"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #38"></div>
  </section>
</div>
    <div class="postbit" id="115890" data-post-id="115890">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Eiji" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Eiji/120/36743_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Eiji
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="39" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>Hmm, how would it do that? I’m not sure I can think of a way to check my bindings on my system as that’s kernel level interfaces (it’s handled by the keyboard driver that gives updates out to a privileged listening program) without higher level access that I <em>definitely</em> wouldn’t want to give a usermode program (since then it could listen it to <em>all</em> my input system-wide).</p>
</blockquote>
</aside>
<p>There are lots of apps which manages local and global shortcuts. I don’t think it’s so much hard. I would just need to take a look at some open source projects …</p>
<p>For sure I don’t want to do anything new. I just want to create from scratch something based on what I have seen already and was not enough configurable for me. It’s not like that I suddenly decide let’s get that no matter which way, but I just saw that specified thing is used by some apps already.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115890" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-115890" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115890"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #39"></div>
  </section>
</div>
    <div class="postbit" id="115909" data-post-id="115909">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="40" data-topic="19983">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>There are lots of apps which manages local and global shortcuts. I don’t think it’s so much hard. I would just need to take a look at some open source projects …</p>
</blockquote>
</aside>
<p>Only in specific contexts, like looking at local/global shortcuts managed by a specific interface, like kwin for example, but they don’t see ones of the contexts that they don’t know about.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115909" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-about-crowdfunding-for-scenic-based-libraries-projects/19983/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-115909" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115909"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #40"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/19983/load_more?page=5">Load more posts (4 remaining)</a>
</div></template></turbo-stream>