strange shaddow

Processing https://commons.wikimedia.org/wiki/File:Fishing_reel-sm.svg
Fishing_reelsm5p5csoSC.svg.txt

lib
pic

rsvg

resvg

If you look closely the shaddow behind 8 looks strage in resvg
Copyright
source: https://commons.wikimedia.org/wiki/File:Fishing_reel-sm.svg
author: Original photo: Jan Tik. Vectorized version: Chabacano
license: https://creativecommons.org/licenses/by-sa/3.0/

Yes, this is some weird blur artifacts.
The minimal SVG:
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
    <filter id="filter1">
        <feGaussianBlur stdDeviation=".67353111"/>
    </filter>
    <rect x="20" y="20" width="160" height="160" fill="#191919" filter="url(#filter1)"/>
</svg>

Seems to be fixed now.

Sorry I don't even see the difference now any more (between librsvg and rendersvg), don't know what I reported. Thanks for closing.


Typo + syntax highlighting

Did I bug out the bot or does it take a while until it recognizes me from the beginning that I've already signed the CLA? :p

Hmm, this is weird, you are marked as having signed the CLA in our internal tool

Hopefully it'll stop bugging you in a few minutes...


matrix-synapse: 1.57.0 -> 1.58.0

Description of changes
A new version of synapse has been released

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[x] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Closes #169534.
See also #171359

Result of nixpkgs-review pr 171390 run on x86_64-linux 1

1 package blacklisted:

nixos-install-tools

3 packages built:

matrix-synapse
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
matrix-synapse-plugins.matrix-synapse-shared-secret-auth


Update VecNormalize normalization

Description

Decouples normalization from mean/stddev tracking functionality.
Exposes reward and observation normalization for use outside of .step() and reset().
Add get_original_rews() function which returns the most recent unnormalized rewards.
reset() now updates statistics for observations in addition to normalizing.
Motivation and Context

closes #602.

[x] I have raised an issue to propose this change (required for new features and bug fixes)

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Documentation (update in the documentation)

Checklist:

[x] I've read the CONTRIBUTION guide (required)
[x] I have updated the changelog accordingly (required).
[x] My change requires a change to the documentation.
[x] I have updated the tests accordingly (required for a bug fix or a new feature).
[x] I have updated the documentation accordingly.
[x] I have ensured pytest and pytype both pass.

Thanks for the PR, I'll try to do a review before next week ;)

Thanks for the reviews!

i dont have a strong opinions for your two comments


excluded packages don't need to be present

so do not report them as missing.
Fixes #282
Fixes #300
Updates #160

@kardianos please take a serious look at this. It removes a lot of pain from your appengine users. See the referenced issues.


IllegalArgumentException or ExceptionInInitializerError on startup

[19:25:04] [Server thread/INFO]: [Pl3xMap] Enabling Pl3xMap v1.0
[19:25:04] [Server thread/ERROR]: Error occurred while enabling Pl3xMap v1.0 (Is it up to date?)
java.lang.IllegalArgumentException: null
	at jdk.nio.zipfs.ZipPath.relativize(ZipPath.java:230) ~[jdk.zipfs:?]
	at net.pl3x.map.util.FileUtil$1.visitFile(FileUtil.java:137) ~[?:?]
	at net.pl3x.map.util.FileUtil$1.visitFile(FileUtil.java:128) ~[?:?]
	at java.nio.file.Files.walkFileTree(Files.java:2724) ~[?:?]
	at java.nio.file.Files.walkFileTree(Files.java:2796) ~[?:?]
	at net.pl3x.map.util.FileUtil.copyFromJar(FileUtil.java:128) ~[?:?]
	at net.pl3x.map.util.FileUtil.extractWebFolder(FileUtil.java:117) ~[?:?]
	at net.pl3x.map.Pl3xMap.start(Pl3xMap.java:49) ~[?:?]
	at net.pl3x.map.Pl3xMap.onEnable(Pl3xMap.java:36) ~[?:?]
	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.4.jar:git-Purpur-936]
	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.4.jar:git-Purpur-936]
	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.4.jar:git-Purpur-936]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:501) ~[patched_1.16.4.jar:git-Purpur-936]
	at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:415) ~[patched_1.16.4.jar:git-Purpur-936]
	at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:466) ~[patched_1.16.4.jar:git-Purpur-936]
	at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:249) ~[patched_1.16.4.jar:git-Purpur-936]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:937) ~[patched_1.16.4.jar:git-Purpur-936]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:175) ~[patched_1.16.4.jar:git-Purpur-936]
	at java.lang.Thread.run(Thread.java:834) [?:?]
[19:25:04] [Server thread/INFO]: [Pl3xMap] Disabling Pl3xMap v1.0

I've had this issue on my primary PC for quite some time now, but couldn't reproduce on a different windows VM.
The issue only occurs under Windows, but doesn't happen in Linux (ubuntu, specifically) nor WSL on the same windows installation.
I can "bypass" the issue by manually moving the web directory to the plugins directory and deleting the web folder from the jar which at least allows the plugin to start up (and remains fully functional).
 Adopt fixed it in <IP_ADDRESS>+1

As per conversation in Discord, it is caused by a bug in the JVM. Adopt fixed it in <IP_ADDRESS>+1

Good day, I downloaded the plugin and ran it, noticing the error that pointed to this issue report.
I updated my java version, only to find it doing the same thing.
Here is a snippet of my log (the very first lines) containing java information:
java -Xms10G -Xmx10G -jar paper165.jar nogui System Info: Java 11 (Java HotSpot(TM) 64-Bit Server VM 11.0.10+8-LTS-162) Host: Windows 10 10.0 (amd64)
As you can see later in the log I am running the 124th BETA build on the latest 1.16.5 paper.
Full log: https://pastebin.com/y5mD7BtW
This is on a fresh 1.16.5 paper server (which I created after I ran it on a server with a bunch of other plugins to make sure it wasn't some kind of incompatibility).
Let me know if there's more information you need. I'd love to be able to use this software!

@CocoTheOwner Create an new issue pls

Re-opening this as it seems newer JVM versions re-broke the same thing.
I'll have to find a different method to walking the file tree inside the jar for extracting the web folder to fix this for good.

This has finally been fixed in build 135 \o/


ability to 'save' a post for later

Describe the Feature
i as a user would like to save some post for later.
this would make it way easier to find interesting stuff again.
Attachments
No response
Describe Alternatives
No response
Additional Context
No response

@gm0stache have you tried using this feed?
https://bsky.app/profile/did:plc:q6gjnaw2blty4crticxkmujt/feed/my-pins

@eeston very cool!
but would still prefer to have something like a "saved post" button in the app sidebar showing me posts that i saved.


Add "additional_constraints" support

This PR adds the ability to set "additional_constraints" in the ParameterDescription

@MrBlenny can you run pre-commit run -a in the root of your repository to fix the formatting?
The change looks nice overall! Is the idea of additional_constraints to pass the validation logic off to the downstream code? Since there might be domain specific validation, this seems useful.

I'll push a commit with lint when I'm at a computer later today.
Yes, I was keen to embed JSON schema into the additional constraints and use that to generate a UI for setting advanced parameters (such as parameters that have their values as JSON encoding ROS messages). A simpler example would be to embed enum options for a strong param in the additional constraints (as JSON schema or otherwise) so you can dynamically build a UI to set params via a dropdown of enum options.
It would be pretty powerful if this library supported JSON schema as a validator but that'd of course be a big change.


[BEAM-9705] Go sdk add value length validation checking on write to d…

…atabase
Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Run Go PostCommit

@tvalentyn

cc: @adranwit

@youngoli i think it's better to merge earlier because it's the main io to write on DB, so on the next release the databaseio is more stable. Thank you.


Script interface improvements for test body motion

General API and doc improvements for body motion in 2D and 3D physics servers.
List of changes:
-Physics servers test body motion use a class to hold parameters instead of multiple arguments to make it more readable and flexible since there are many options: PhysicsTestMotionParameters
-Improved documentation for PhysicsTestMotionResult and KinematicCollision
-Removed read-only properties in PhysicsTestMotionResult and KinematicCollision (not handled in scripts, so they should be get_ methods only instead)

What do you think about adding a constructor for MotionParemeters to reduce the code?

Yeah, it's a good idea to do that for the most used parameters, I'll add it tomorrow.

What do you think about adding a constructor for MotionParameters to reduce the code?

Done!

Thanks!


Most Active Users section not working

Affected module
UI
Describe the bug
It currently only displays 2 records, which is impossible.
To Reproduce

Expected behavior
We have XX daily active users. This is plainly wrong.
Version:

OS: Chrome
OpenMetadata version: 0.13.1

@TeddyCr can you look into this. Looks more of an operational issue than a bug

@trillhaa thank you for opening this issue. Are you able to share the logs from the workflow? Feel free to DM them directly to me on slack if there are any privacy concerns.

Hi @TeddyCr
Following is a snippet from the Warning portion of the Data Insights workflows:
[2023-01-31 12:42:36] WARNING {DataInsight:web_analytic_report_data_processor:256} - Could not get user details - 7 validation errors for User
--
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image24
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image32
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image48
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image72
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image192
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)
  | 2023-01-31T18:12:36.217+05:30 | profile -> images -> image512
  | 2023-01-31T18:12:36.217+05:30 | ensure this value has at least 1 characters (type=value_error.any_str.min_length; limit_value=1)

Although this shows up as a warning, I believe it is actually an error that is being caught.
Could you kindly verify and let me know?

Thanks @abcabhishek for sharing, let me take a look.

@abcabhishek we have a PR open that should fix your issue. We'll do a minor release of the 0.13.2 python package early next with the fix.
Also could you share the response you get from sending a GET request to this endpoint http://localhost:8585/api/v1/users/name/{userName}?fields=profile,roles,teams where {userName} is a username that does not show up in the data insight report.


Help - New Version

Please help us, a new version of termsrv.dll has been updated: 10.0.14393.1198
RDPWRAP does not work ..

Support for 10.0.14393.1198 was already added in https://github.com/stascorp/rdpwrap/commit/890006de99625c194aa48dfd27c5c9a53bdb656e.
Run update.bat.

So, it will work with The Creators Update on Windows 10 Home??

No.


Question on 0.00001 SAT Precision Data

Is there a way to increase the precision of the asset amounts especially for higher value cryptos (like BTC)?
For example, I have the following in IN table
BTC | 0.000214345960800000
BTC | 0.001076080000000000
BTC | 0.000000135094000000
The total value of BTC should be 0.003331371054800000, but the BTC Tax tab in the generated full report shows an outstanding balance of 0.00333137105. The BTC In-Out tab also doesn't show all the decimal places.

Interesting: that's a precision of 1/100000 sats, which is beyond what can affect your tax results. RP2 defines precision here: https://github.com/eprbell/rp2/blob/main/src/rp2/rp2_decimal.py#L19. It's currently a constant, but I suppose it could be passed in from a CLI option. Curious: can I ask what exchange is providing numbers with such high precision? I probably won't be able to work on this very soon, but if you'd like to submit a PR I'll be happy to review the code and offer guidance, if needed.

I agree with the fact it won't affect the taxes. It might be concerning for someone who has thousands of transactions and when each one gets rounded, the total might be off. Even then I don't think it should be a lot.
I am not one with that many transactions. I can look into the code to see if I can do something about it.
Gemini was the one with this precision, other exchanges seem to be fine.

Just adding my $0.02, I've seen this with Gate.IO also. My final TFUEL balance in the tax report is "0.00000025254" for a crypto that trades for approx $0.20 apiece. I spent some time looking into it, and one thing I did note is that the file you get when you export transactions on GateIO has less precision than the values shown in their user interface! The fractional problem is exacerbated when they split a buy order into multiple executions which can result in some pretty minute numbers on the crypto fee that I think contributed to this end result.
I tried adjusting the crypto fees on one of my input transactions to offset the remaining balance since the change is inconsequential in the real world, but the adjustment needed was too small, and I couldn't get it to 0. It was either the number I have currently, or negative the same amount.
It's possible RP2 could rounded out / truncate this number, or just leave it as-is to avoid unintended consequences and allowing the data to speak for itself. As for my purposes, I ignore this figure on the report, and in the open positions plugin I've been working on, I have a declared figure of 0.000001 as a cutoff for ignoring wallets with inconsequential balances.

RP2 uses 13 digit precision, however RP2Decimal supports up to 20, I think. I don't think this is a high priority issue, because the final effect on fiat tax amount is basically none. However if somebody wants to sumbit a PR fix this, it should be fairly easy. Something along these lines:

add a parameter to the ArgumentParser (-x / --precision) in rp2_main.py
the code handling the new parameter passes the precision to a rp2_decimal_setup(precision: int) -> None function which overrides CRYPTO_DECIMALS and CRYPTO_DECIMAL_MASK

I took another look at this on my input, and instead of working it from the output, did a formula of sum(transfer out from exchange) - sum(crypto in at exchange) + sum(crypto fees for in transactions at exchange) which resulted in the value, and copy/pasted the resulting value into the crypto_fee field of a transaction that didnt have a crypto fee. The value was 0.000000252539985590161, which then gave me the expected 0 crypto final balance for that asset at that exchange.


wrangler tail tty-awareness and json-respecting

Make wrangler tail TTY-aware, and stop printing non-JSON in JSON mode
Closes #493
2 quick fixes:

Check process.stdout.isTTY at runtime to determine whether to default to "pretty" or "json" output for tailing.
Only print messages like "Connected to {worker}" if in "pretty" mode (errors still throw strings)

well, after the tests pass ofc

well, after the tests pass ofc

aurghhhh they pass on my machine wtf

CI is not a TTY, maybe that's it?


Fix support for large AppMaps on Windows

Fixes non-working handling of large AppMaps on Windows. The "stats" command was printing ANSI escape codes to STDOUT, which were breaking JSON parsing. This only happened on Windows, though. Running CI on Windows would have found this problem.
The other commits fix CI on Windows and should also fix the flaky CI with Travis. Background activity, which is often delayed on slow systems, was breaking the tests.

:tada: This PR is included in version 0.34.1 :tada:
The release is available on:

v0.34.1
GitHub release

Your semantic-release bot :package::rocket:


Stopped working in latest versions

I'm facing an error with versions 1.1.10 and 1.1.4:
> vue-i18n-extract report -v "./src/**/{*.?(js|vue),.i18nignore}" -l "./src/i18n/!(index).?(js|json|yml|yaml)"

(node:23308) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token export
    at C:\Users\myproject\node_modules\vue-i18n-extract\dist\vue-i18n-extract.umd.js:145:27
    at Array.map (<anonymous>)
    at readLangFiles (C:\Users\myproject\node_modules\vue-i18n-extract\dist\vue-i18n-extract.umd.js:133:24)
    at parseLanguageFiles (C:\Users\myproject\node_modules\vue-i18n-extract\dist\vue-i18n-extract.umd.js:198:23)
    at createI18NReport (C:\Users\myproject\node_modules\vue-i18n-extract\dist\vue-i18n-extract.umd.js:285:33)
    at Command.reportCommand (C:\Users\myproject\node_modules\vue-i18n-extract\dist\vue-i18n-extract.umd.js:297:20)
    at Command.listener [as _actionHandler] (C:\Users\myproject\node_modules\vue-i18n-extract\node_modules\commander\index.js:426:31)
    at Command._parseCommand (C:\Users\myproject\node_modules\vue-i18n-extract\node_modules\commander\index.js:1002:14)
    at Command._dispatchSubcommand (C:\Users\myproject\node_modules\vue-i18n-extract\node_modules\commander\index.js:953:18)
    at Command._parseCommand (C:\Users\myproject\node_modules\vue-i18n-extract\node_modules\commander\index.js:970:12)
(node:23308) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:23308) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit
code.

My language files are all .js files exporting an object ES6-style.
Version 1.1.2 works fine.
I was trying to test other versions, but I can't install a specific version with npm i -D<EMAIL_ADDRESS>for version 1.1.3 and from version 1.1.5 up to version 1.1.9. Installing version 1.1.10 works fine again with this syntax.
[edit]
I just noticed you decided to remove support for .js files: https://github.com/pixari/vue-i18n-extract/commit/df69db56cf08367538b0d634d7c2c8159528717d
Is the reasoning for this decision discussed anywhere?

same here

Yes @pdcmoreira, you are right.
Unfortunately supporting JS files caused other problems we couldn't manage to solve.
I'll try to find a solution.

I created an issue: https://github.com/pixari/vue-i18n-extract/issues/109


Sidekiq, Capybara, Poltergeist, Phantom JS - memory quota exceeded errors

Hello
Some background: Rails app. Background jobs. I'm running Sidekiq with multiple theads, each one of them is using Capybara, Poltergeist and PhantomJS in order to test and take screenshots of different pages.
I'm hitting critical memory quota exceeded errors in my worker. It seems highly likely that I'm collecting multiple instances of PhantomJS on my worker, despite the jobs finishing as expected.
I would really like to try something like Capybara::Session.close or Capybara::Session.quit, in a teardown routine at the end of my Sidekiq job and see if that makes a difference. I can't see how to do this.
Any help would be massively appreciated.
Tom

Please ask how to questions on the mailing list as requested in the readme

OK will do. Apologies.


Fix item summary view count

(No longer a huge commit)

The test appear broken.

#1199 tweaked the PR so that is only a small edit of institution.  The PR now contains a mod to the installer that allows you to select your auditing options.  This was done so that autotests can run with auditing enabled.

Note: turn off whitespace changes when viewing the PR!  :)

Unfortunately @abidingotter , this is still failing (on all three cases) in test com.tle.webtests.test.viewing.VersionShowAllTest.

@edalex-ian Yeah I saw that, but didn't get time to see what the issue was.


Port the count_ops method in QuantumCircuit to Rust

Summary
This PR is to address issue 12971 to port the count_ops method into Rust to improve performance.
Details and comments
I added a get_ops method to the CircuitData class in qiskit/crates/circuit/src/circuit_data.rs and updated the count_ops method in qiskit/circuit/quantumcircuit.py to call get_ops.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

10 of 10 (100.0%)  changed or added relevant lines in 2 files are covered.
36 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.007%) to 89.203%

Files with Coverage Reduction
New Missed Lines
%

crates/qasm2/src/expr.rs
1
94.02%

crates/qasm2/src/lex.rs
4
91.98%

crates/circuit/src/circuit_data.rs
31
92.25%

Totals

Change from base Build<PHONE_NUMBER>5:
0.007%

Covered Lines:
71653

Relevant Lines:
80326

💛  - Coveralls

`For a simple 2 qubit system in superposition, benchmarking shows 3x improvement in latency.
----------------------------------------------------------------------------------------- benchmark: 2 tests ----------------------------------------------------------------------------------------
Name (time in us)                    Min                Max               Mean            StdDev             Median               IQR            Outliers  OPS (Kops/s)            Rounds  Iterations
test_new_count_ops_benchmark      3.7925 (1.0)       3.7925 (1.0)       3.7925 (1.0)      0.0000 (1.0)       3.7925 (1.0)      0.0000 (1.0)           0;0      263.6782 (1.0)           1         100
test_old_count_ops_benchmark     11.0083 (2.90)     11.0083 (2.90)     11.0083 (2.90)     0.0000 (1.0)      11.0083 (2.90)     0.0000 (1.0)           0;0       90.8402 (0.34)          1         100
`


Panning trickles click event down to descendants

Describe the bug
I have some clickable descendants in my zoomable area which are listening on click events.
Every panning action invokes also this click event.
Can this be prevented?
Your environment

Version of panzoom: 4.1.0
Chrome 83, Firefox 77

Expected behavior
A click with mouse moving action (=panning) should not let the click event though to the children.
A click without panning movement should be catched by my child elements.
Actual behavior
Every panning action also invokes click events on children and descendants.

Thanks for opening an issue. It's hard to tell without a test case, but I assume you're adding custom click handlers. If you'd like to prevent the click from bubbling up, you can bind to pointerdown and call event.stopImmediatePropagation(). Or, an easier solution might be to use the exclude or excludeClass options.

No, I don't want to prevent the click to my custom click handler from bubbling up (which event.stopImmediatePropagation() would fix) but the opposite: I want to prevent the click from the pan event to trickle down to my custom click handler.

Sorry, I'm not sure what you mean. Events don't trickle down by nature. They only bubble up the DOM tree. Do you mean you have a parent of a panzoom element with a click handler? If so, I think you could use handleStartEvent and call stopImmediatePropagation() so that the pointerdown event doesn't bubble up to your element. However, that wouldn't prevent other down events or the click event, so you'd need to add a custom handler as well to the Panzoom element to prevent the click from reaching your custom handler.
Does that help?

Sorry for not making myself clearer :-(
Here's some code:

var panzoom = Panzoom(document.querySelector(".zoom_wrapper"), {
  maxScale: 6
});

$(".package img").on("click", showProductDescription);

Problem:

I start panning on an image
when I release mouse button, click is fired on .package img and showProductDescription() is invoked

I don't want to call showProductDescription() when mouse is moved to pan after clicking on an image.
Hope this is clearer?

I still did not find a solution for my problem. To help to understand it I created a codepen:
https://codepen.io/okoetter/pen/wvGwgVQ

Thanks for the test case. I think this has to do with a misunderstanding of how the events work. You can stop events from trickling up. You can't stop them from trickling down. For instance, I've modified your codepen to add the "panzoom-exclude" class to the image (https://codepen.io/timmywil/pen/zYqOwrW). Note that the image gets the event before Panzoom and still fires click events, but Panzoom does not drag with the exclude class there.
That said, if you want to prevent the click handler, but don't have control over that code, I see a couple possible solutions. I haven't tested these solutions in all browsers, just Chrome.
Add pointer-events: none to the image: https://codepen.io/timmywil/pen/LYNPyZM
Add an overlay to cover the image: https://codepen.io/timmywil/pen/ExKYmgR

Thanks for your answer.
I have complete control over the code and I need the click event on the images. The click event should be invoked if (and only if) there is a click without a panning.

panzoom-exclude class is no solution because then I cannot pan anymore
pointer-events: none or overlay is no solution because then I can't click anymore ;-(

The click event should be invoked if (and only if) there is a click without a panning.

This is not trivial to solve in a generic manner, because you need some way of distinguishing when the user clicks vs when they drag. On mobile their finger might slide even if their intent is just to click. Usually I've seen this handled by requiring a click+hold to drag.

Sorry my solutions didn't help, but I hope it's clear this is not something that can be solved within the library for you.

The click event should be invoked if (and only if) there is a click without a panning.

How about this? https://codepen.io/timmywil/pen/VwaZWQP

I think your solution is exactly what I need. I will add some kind of threshhold as you suggested but this helps me a lot.
Thank you!!!


Issues with entity_picture and light background

Having an issue where my entity_pictures for device_tracker wont show.. maps shows just fine
also when i add a light i only see "title", no device shows, and log shows no errors.

Here is for example one of my device_trackers

{
					 position: [2, 0],
					 type: TYPES.DEVICE_TRACKER,
					 id: 'device_tracker.micaela',
					 map: 'google',
					 states: {
					 home: "Home",
					 not_home: "Away",
					 },
					 slidesDelay: 2
				  },
				  {
					 position: [3, 0],
					 type: TYPES.DEVICE_TRACKER,
					 id: 'device_tracker.cjas_iphone_7',
					 map: 'google',
					 states: {
					 home: "Home",
					 not_home: "Away",
					 },
					 slidesDelay: 2
				  },

and here is the light config.
{
					 position: [2, 1],
					 title: 'Library',
					 subtitle: 'Lounge',
					 id: 'light.library',
					 type: TYPES.LIGHT,
					 states: {
						on: "On",
						off: "Off"
					 },
					 icons: {
						on: "mdi-lightbulb-on",
						off: "mdi-lightbulb"
					 },
					 sliders: [
					 {
					 title: 'Brightness',
					 field: 'brightness',
					 max: 255,
					 min: 0,
					 step: 5,
					 request: {
					 type: "call_service",
					 domain: "light",
					 service: "turn_on",
					 field: "brightness"
					 }
					},
					 {
					 title: 'Color temp',
					 field: 'color_temp',
					 max: 588,
					 min: 153,
					 step: 15,
					 request: {
					 type: "call_service",
					 domain: "light",
					 service: "turn_on",
					 field: "color_temp"
         }
      },

Cheers

You are using local entity_picture so you might need to use bgSuffix to make it show. As for the light you forgot to close a square bracket ] which was open here sliders: [


More accurate macro errors

Tweak how macro errors are treated to retain original location
Add test coverage for these cases

Resolves #7147
Top level raise in macro
macro macro_raise
  {% raise "OH NO" %}
end

macro_raise

Before:
$ crystal run --error-trace test.cr
In test.cr:5:1

 5 | macro_raise
     ^----------
Error: OH NO

After:
$ ccrystal run --error-trace test.cr
In test.cr:2:6

 2 | {% raise "OH NO" %}
        ^----
Error: OH NO

In test.cr:5:1

 5 | macro_raise
     ^----------
Error: OH NO

Node raise in macro
macro macro_raise_on(arg)
  {% arg.raise "OH NO" %}
end

macro_raise_on 123

Before:
$ crystal run --error-trace test.cr
In test.cr:5:1

 5 | macro_raise_on 123
     ^-------------
Error: OH NO

After:
$ ccrystal run --error-trace test.cr
In test.cr:5:1

 5 | macro_raise_on 123
     ^-------------
Error: OH NO

In test.cr:5:16

 5 | macro_raise_on 123
                    ^
Error: OH NO

This one is a bit weird, but I didn't think it was worth trying to figure out how to remove the first frame in only this single context.
Node raise in macro missing location
macro macro_raise_on(arg)
  {% arg.raise "foo" %}
end

macro_raise_on :this

Before:
$ crystal run --error-trace test.cr
In test.cr:5:1

 5 | macro_raise_on :this
     ^-------------
Error: foo

After:
$ ccrystal run --error-trace test.cr
In test.cr:5:1

 5 | macro_raise_on :this
     ^-------------
Error: foo

Node raise in complex/nested macro call
class Child
  def self.value : Nil
  end
end

module ExampleModule
  macro calculate_value
    {% begin %}
      {%
        if method = Child.class.methods.find &.name.stringify.==("value")
          method.raise "Value method must be an instance method."
        else
          raise "BUG: Didn't find value method."
        end
      %}
    {% end %}
  end

  class_getter value : Nil do
    calculate_value
  end
end

ExampleModule.value

Before:
$ crystal run --error-trace test.cr
In test.cr:24:15

 24 | ExampleModule.value
                    ^----
Error: Value method must be an instance method.

After:
$ ccrystal run --error-trace test.cr
In test.cr:24:15

 24 | ExampleModule.value
                    ^----
Error: Value method must be an instance method.

In test.cr:20:5

 20 | calculate_value
      ^--------------
Error: Value method must be an instance method.

In test.cr:2:12

 2 | def self.value : Nil
              ^----
Error: Value method must be an instance method.

Top level raise in method
def foo(x)
  {% raise "OH NO" %}
end

foo 1

Before:
$ crystal run --error-trace test.cr
In test.cr:5:1

 5 | foo 1
     ^--
Error: OH NO

After:
$ ccrystal run --error-trace test.cr
In test.cr:2:6

 2 | {% raise "OH NO" %}
        ^----
Error: OH NO

In test.cr:5:1

 5 | foo 1
     ^--
Error: OH NO

Note that the frame for raise should never be shown. I implemented it that way so that a method call could produce a error just like the compiler can produce an error for it (for example, wrong number of arguments). Pointing to raise makes the error a bit more obscure, and kind of loses the point I had in mind.
The other changes look good, though!

Yeah, that's an important point. I think this change in its entirety is still a good move forward. No existing specs are broken, so the error attribution scope was never specified in code. And as we can see from the examples in https://github.com/crystal-lang/crystal/issues/7147 there were quite some inconsistencies.
Now we have a more clearly defined base behaviour. We can use that to adjust the error reporting for better usability in future changes.
Showing the frame of the raise call probably won't hurt anyone in the mean time.
Do you agree that we can leave this change in for 1.9 (it really is quite an improvement) and do some fine tuning afterwards?

Of course! I was just mentioning the intention behind not showing raise in the frame, but the overall change is better than that lost feature. And that feature isn't that important either.


[UPDATE] Remove deprecated API calls from display_information

Description

Replace a deprecated API call in sample.
Checklist:

[ ] Set target branch to main (current release) or v.next (next release)
[ ] Request a reviewer
[ ] Assign a reviewer
[ ] Tag reviewer in comment

Assigning to @jenmerritt for a first review.

Wrong branch - remove this PR.


general: fuzzy search to allow finding things spelled slightly differently

the plug-in itself doesn't offer this option. There seems to be some code around to fix it, but not sure if it works that easy


Target Groups in Nexus repository manager staging profiles

Target Groups

https://github.com/j143/systemds/issues/121#issuecomment-851023232
Staging profile Id: 1486a6e8f50cdf


GUID should contain 32 digits.......

I am getting the error when trying to use the MP.  This is the error I am currently seeing.

Hi,
do u use the latest version <IP_ADDRESS>?
I am familiar with this problem in the previous version.

try the new version
QueryOleDbMonitorLibrary.mp
QueryOleDbMonitorTemplate.mpb
thanks


chore: reduce continuous integration time

We make a list of all the files that has being changed
And we only test for the current changes.
The idea is that when we modify the frontend, that cannot
break anything in the backend.
So we only run frontend tests and deployments, which saves
time.
The drawback is that if something is brokend in the backend,
and we only modified the frontend. Travis will succed but
there will be still problems there. So we need to be extra
carefull that the base is correct.
To aliviate this problem we set up a daily cron job that
will build and deploy everyting.

What do you guys think?

Current problem is that I'm comparing HEAD to HEAD^1.
But the you could push more than one commit at the time.

@Ignacio What is the problem of testing all of them?
On Thu, Aug 24, 2017 at 4:12 PM Ignacio Tartavull<EMAIL_ADDRESS>wrote:

Current problem is that I'm comparing HEAD to HEAD^1.
But the you could push more than one commit at the time.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/seung-lab/neuroglancer/pull/175#issuecomment-324744081,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHTA9QrXaiVYoHO2-Q2WdcIxcYIGCGyZks5sbdk6gaJpZM4PB1eJ
.

@jingpengw life is to short to wait for travis to finish testing

Some other interesting approach
https://github.com/korfuri/bazel-travis

lgtm


AV sync  after SDI input switching

Audio and video out of sync after SDI input switching. I try to use DeckLink Mini Recorder, DeckLink SDI - every SDI input switching  increases  delay between audio and video streams.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34736323-av-sync-after-sdi-input-switching?utm_campaign=plugin&utm_content=tracker%2F256764&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F256764&utm_medium=issues&utm_source=github).

I've seen the same behavior on the Decklink SDI (pre 4k) and Mini Recorder. This seems to be an issue with the firmware on the cards and wasn't something wrong with bmdtools. I created posts on the blackmagic forums regarding this for the Decklink SDI and the Decklink Mini Recorder with more details
Basically, the pts values of the audio and video differ a lot after an input switch which causes A/V sync issue. These pts values come from the card and a lot of issues were resolved for me with the Decklink SDI card by updating the firmware and drivers to 10.4.2. I've not tested the 10.6.X releases yet, but those might fix other issues with the Mini Recorder as well

@stevenviola In some cases, I use open broadcaster for capture & encode, and all looks ok.

I successfully modified decklink_input_callback::VideoInputFrameArrived method of ffmpeg decklink decoding module for ts synchronization a/v streams after  SDI input switching, and at first glance, all looks ok. Now i'm testing it

@yverbin glad you have something working, but this does not belong here.

@yverbin can you share your update so we can review it as well ? Thank you.


Route layers for route functions

First of all, thank you so much for this great library! I enjoy the code first experience with auto generated docs.
Currently for aide::axum::routing::{delete, get, patch, put, post} and other routing functions it is impossible to set route layers.
For example this code is valid for axum::routing::{delete, get, patch, put, post} :
let routes = Router::new()
        .route(
            "/",
            get(expenses_handlers::find_many)
                .route_layer(cache_layer.clone())
                .route_layer(auth_layer.verify(vec![Roles::Admin, Roles::Customer])),
        )
        .route(
            "/:id",
            get(expenses_handlers::find_one)
                .route_layer(cache_layer)
                .route_layer(auth_layer.verify(vec![Roles::Admin, Roles::Customer])),
        )

but with aide::axum::routing functions there is no .route_layer() function, only .layer() function is available, but it is impossible to use multiple .layer() function for a specific route. So it would be great if this code become valid:
let routes = ApiRouter::new()
        .api_route(
            "/",
            get(expenses_handlers::find_many)
                .route_layer(cache_layer.clone()) // TODO Find out how to add multiple layers
                .route_layer(auth_layer.verify(vec![Roles::Admin, Roles::Customer])),
        )
        .api_route(
            "/:id",
            get(expenses_handlers::find_one)
                .route_layer(cache_layer) // TODO Find out how to add multiple layers
                .route_layer(auth_layer.verify(vec![Roles::Admin, Roles::Customer])),
        )

But currently following errors is received:
error[E0599]: no method named `route_layer` found for struct `ApiMethodRouter` in the current scope
  --> src/api/expenses/mod.rs:47:18
   |
46 | /             get(expenses_handlers::find_many)
47 | |                 .route_layer(cache_layer.clone())
   | |                 -^^^^^^^^^^^ method not found in `ApiMethodRouter<_, _>`
   | |_________________|
   |

error[E0599]: no method named `route_layer` found for struct `ApiMethodRouter` in the current scope
  --> src/api/expenses/mod.rs:53:18
   |
52 | /             get(expenses_handlers::find_one)
53 | |                 .route_layer(cache_layer)
   | |                 -^^^^^^^^^^^ method not found in `ApiMethodRouter<_, _>`
   | |_________________|

All you need to do is to add following method right next to layer() method in ApiMethodRouter
/// This method wraps a route_layer around the [`ApiMethodRouter`]
    /// For further information see [`axum::routing::method_routing::MethodRouter::route_layer`]
    pub fn route_layer<L>(self, layer: L) -> ApiMethodRouter<S, B, Infallible>
        where
            L: Layer<Route<B, Infallible>> + Clone + Send + 'static,
            L::Service: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
            <L::Service as Service<Request<B>>>::Response: IntoResponse + 'static,
            <L::Service as Service<Request<B>>>::Future: Send + 'static,
    {
        ApiMethodRouter {
            router: self.router.route_layer(layer),
            operations: self.operations,
        }
    }

I've added a PR that aligns the routing interface with axum's that adds this method as well.

thank you


Linux support in .NET MAUI

Linux runs on a high diversity of devices of different form factors and possibilities.
.NET MAUI will give official support to Android, iOS, macOS and Windows. The purpose of this issue is to collect feedback to specify possible actions at the community level to review Linux support in .NET MAUI.
Linux support in Xamarin.Forms is achieved thanks to a backend using GTK Sharp 2.12.
Possible options for .NET MAUI:

Use the Xamarin.Forms backend by updating Handlers and other changes. It could also be upgraded to GTK 3: https://github.com/GtkSharp/GtkSharp
Reuse as much as possible from the actual GTK 2 Backend and create bindings library for GTK 4?
Use GTK as a container, but use drawn controls: https://github.com/dotnet/GraphicsControls
Other? (Add your feedback)

Add your feedback!. What do you think is the best option to add Linux support to .NET MAUI? What would you use it for (Raspberry PI Apps, IoT, Desktop App, etc)?

Thank you very much for considering Linux support on .NET MAUI. It's something that many of us have been asking for for a long time.
My humble opinion is to use the option where Linux support is available as soon as possible. Later, in successive versions of .NET MAUI, other options could be evaluated.

In order to consider MAUI as our UI framework, it is very important to us to be able to reach customers that work with Linux (such as many public organizations, etc). We would mainly use it for our Desktop version of the product. Thank you for opening this path for Linux support.

Maui currently doesn't have a Skia backend, so using SkiaSharp to do drawing would be quite an extensive exercise, all the controls would have to be drawn from the ground up using primitives.

But see the great work being pursued in the linked projects https://github.com/dotnet/GraphicsControls (which depends on https://github.com/dotnet/System.Graphics). Extensive exercise yes, but actually extremely efficient since it's done once for all platforms, and would therefore benefit from combined effort, usage, and contributions.
Even without linux many people are going to want to use this library as soon as it's ready, since the demand for platform-independent rendering is much greater than the demand for platform-specific rendering. Then linux comes for free.

Linux is an important platform among our customers, we believe that including MAUI support for Linux would save a lot of time and effort in the development of cross-platform applications.

Our main target will be Raspbian. Running typically, on Raspberry Pi 4.

Linux is an important platform among our customers, we believe that including MAUI support for Linux would save a lot of time and effort in the development of cross-platform applications.

Your company can hire a professional to only focus on that? Or sponsor an open-source maintainer?

I'm the lead developer on a bunch of stuff at my company that runs on multiple platforms. It's modeling & simulation that has resource-intensive native/local-desktop components. Several of the underlying simulations are command-line dotnetcore/.NET5, with a GUI harness around.
I personally do 95% of my development on Linux, hopping to Windows and Mac mostly to debug platform-specific things that come up. I have users on all three platforms. For me, when looking at creating a new GUI, I need it to have a good Linux development path with deployment options to other OSs. Currently that usually ends up meaning Java.
The GUI options drive architecture decisions; fully supported Linux+Win+Mac GUI in .NET would be a preferred option that opens lots of doors. Non-first-party support for my primary development platforms largely takes it off the table.
I have a preference for things that "look native", but in this day and age, virtually nothing has a consistent "native" look or would even know what an HIG is. Truly clean integration with a decent 3d pipeline [eg an openGL panel] would help a lot but isn't a deal-breaker.
To the question as posed: I don't know about implementation of the GUI framework; only that it should exist, perform adequately, and be receive reliable support+maintenance. Everything else is frosting.

I think GTK is favourable to target, preferrably GTK4 as it's right around the corner. Ubuntu and ChromeOS would be the two platforms I'd like to see things working on. I'll echo most of the sentiment from @chunky.
If projects support packaging in any kind of way, Ubuntu Snaps would be a nice target to have.

@chunky As I've said, without allocating resources to make this happen, hardly this will become true. Companies like your have to invest in projects like this.

Linux does not have a native feel all the desktops "native" looks vary drastically.  I think the two main ones would be KDE and GNOME if I had to guess, but there are a lot of other "native" ones out there.  I think most likely you would see some form of interface that these UI can maybe share and wire in to use them.  If Microsoft plans to support anything would guess it would need to be one of the mainstream first.
I agree that if we need to choose one to start with GNOME/GTK would be the safest route to go.  Microsoft already has relationships with Canonical/Ubuntu and GNOME is the default of a lot of distros.  I think Redhat and a lot of enterprise distros also have GNOME as default.  I believe and please someone correct me if I am wrong that KDE and other UIs can run GTK front end apps without the need for GNOME.  I know a while back there was a bug or issue that GTK apps didn't render well in KDE.  Not sure if that has been resolved or not, but something to consider that even though it may run in a non GNOME environment there could still be UI issues.  I think this is the fundamental problem with supporting Linux in the first place.  The only other option is Microsoft roll there own and have it skinned and do some kind of detection to try to match as best as possible, or let the developer configure for GNOME ,KDE, XFCE, MATE, Cinnamon you see the problem.

@knuxbbs It seems to be a possibility, otherwise this issue would not have been opened by @jsuarezruiz. There are some frameworks, like UNO that have a worked for a while in offering a way to work with the same technology addressing different platforms (including web). Performance was quite an issue when we tested this framework but I heard they have improved it since then. Hiring a specialist and mantaining several UI technologies is something we would like to avoid.

@lmartinedreira I thought this issue was more of a "call to action". Anyway, let's see what @jsuarezruiz has to say.

Thank you all for the feedback. For clarifying the expectations or doubts of what is the objective of this issue. In the launch, .NET MAUI will support iOS, Android, Windows, and macOS. Official Linux support could come, but it would be later. My initial objective is to gather information mainly about interest, use and if possible about the expected/desired technological stack. After gathering the information, I you would be interested in doing a call to action to get help with some tests (Example: port current backend to GTK3/4, drawn controls etc).
From the feedback received (here and elsewhere), there is interest in Linux. The use is varied between Desktop, Raspberry Pi, etc.
I have some questions, but probably my main question is, would you want a native UI (using GTK Widgets) or, having a native container (GTK window) and drawn controls cover your needs?

GTK4 widgets would be my vote. That's by far the most harmonious. Maybe even better for performance and battery life? (would have to see side by side, but I'm just assuming at this point)

I recognise that Linux support in MAUI is very much a second-tier requirement. With that in mind, the idea of a widget layer that works on all platforms and happens to have a tiny shim to make it work on Linux is actually fairly compelling to me; it's less to support/break/etc. Presumably it also significantly smooths the complexity of a programmer-available drawing canvas because that comes as essentially a freebie. I could think of other benefits [custom theming is also accidentally free, albeit something I probably wouldn't use].
 But if custom-drawn is the best way to get MAUI to have Linux support, then I wouldn't poo-poo it.
[By way of example of integration woes: Many Linux desktops let you alt-right-click-drag to resize a window, and alt-left-click-drag to move a window. Many tools that bring their own widgetry don't support those shortcuts, and it's an absurdly painful paper cut every time].

Use GTK4 as a container, but use drawn controls: https://github.com/dotnet/GraphicsControls

Using drawn controls would make linux the only Maui platform to not use native controls.

Who cares? Any concept of "native look and feel" on Linux is a charade anyway.
Thanks,
Matt

From: Daniel Hughes<EMAIL_ADDRESS>Sent: Wednesday, March 3, 2021 5:13:03 PM
To: jsuarezruiz/forms-gtk-progress<EMAIL_ADDRESS>Cc: Matthew Heimlich<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [jsuarezruiz/forms-gtk-progress] Linux support in .NET MAUI (#31)
Using drawn controls would make linux the only Maui platform to not use native controls.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://us-east-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL2pzdWFyZXpydWl6L2Zvcm1zLWd0ay1wcm9ncmVzcy9pc3N1ZXMvMzEjaXNzdWVjb21tZW50LTc5MDExMDE2NA==&i=NWYzYWM2MjQ0MzEzZjAwZTk5YWQyNmVm&t=eWI1dU14UnVZTG9XUDlvdkwzYmhPY2xnYkJHWitnN292a2dDZjBZQWdQMD0=&h=c9dcec9c361841a9bf0346f8d19f7953, or unsubscribehttps://us-east-2.protection.sophos.com?d=github.com&u=aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BRTRJSEFIQVhBVE5TTUszQVo0MlBXVFRCMlg2N0FOQ05GU000WU1JQTRXUQ==&i=NWYzYWM2MjQ0MzEzZjAwZTk5YWQyNmVm&t=WURzUjdJbUhjNGZpTlp6Mjl5TTVOQ0Nrb0t6NlppNHYxdzczR0xtYWlqMD0=&h=c9dcec9c361841a9bf0346f8d19f7953.

Yes for Linux, but only in the context of supporting a Blazor PWA running native with however Mobile Blazor Bindings is folding into .Net 6.

My two cents:
I am a native desktop linux user, and I am also blind/screenreader user.
Supporting gtk3 (maybe 4?) native controls is better for accessibility, because gtk is and always was the most accessible thing on linux, compared only to win32 apps on windows side and winforms apps. I believe people using wpf apps with a screenreader find wpf less natural (although that doesn't mean inaccessible).
I hope gtk4 does not break accessibility once and for all, but it's another thing and unrelated to that discussion.
If you would do all custom and just use gtk for the top level window, you would increase the complexity of your work very much, and if you add accessibility to the picture, I would be afraid it wouldn't even be included or at least not in first release.
On a side note no one mentioned qt here, and I am actually happy of it, because qt is so much cross platform so that it has cross platform accessibility bugs. To all blind/screenreader users, or at least to me, it feels unnatural on every platform. And this does not even improve.
There is also the use case of blazor desktop, I would be happy to be able to use it on linux in an accessible way, even if that would be the only thing supported in dotnet6, as an alternative to electron. Of course if that's going to be deferred I'd have to live with it. Not sure if it's going to embed chromium or some other engine, though. Depending of how it's done doing it wrongly may break accessibility for linux users, for example webkit is not so nice in some respects.
Note avalonia (not sure about uno but possibly applies too) is not an alternative to me. I not only don't have any first party xplat ui I could use nowadays on dotnet, but I don't even have a third party alternative, with exception of per platform ui libs like gtk#. And of course with exception of pure web apps or blazor electron apps.

Thank you all for the feedback. For clarifying the expectations or doubts of what is the objective of this issue. In the launch, .NET MAUI will support iOS, Android, Windows, and macOS. Official Linux support could come, but it would be later. My initial objective is to gather information mainly about interest, use and if possible about the expected/desired technological stack. After gathering the information, I would be interested in doing a call to action to get help with some tests (Example: port current backend to GTK3/4, drawn controls etc).
From the feedback received (here and elsewhere), there is interest in Linux. The use is varied between Desktop, Raspberry Pi, etc.
I have some questions, but probably my main question is, would you want a native UI (using GTK Widgets) or, having a native container (GTK window) and drawn controls cover your needs?
To consider, doing everything native using GTK 4 for example, requires creating the C# bindings libraries for GTK 4, testing the performance and functionality of the library well and then creating a backend, one Handler for each control.
As against, give support with drawn controls requires only the native container with GTK and creating the drawn controls. In effort, there may be a certain similarity but this second option also brings benefits for the rest of the platforms (and even other possible platforms).

Just use GTK and drawn controls.

I don't think GTK toplevel with drawn controls makes sense.  Neither does coupling anything to do with MAUI to blazor, which has its own life expectancy concerns. 😆
Native GTK4 makes the most sense.

If you do drawn controls, can you guarantee the following:

Accessibility - Will blind people be able to use it?
Platform theme support - if I change my GTK theme will the app adjust

With GTK you are going to get these for free.
With drawn controls and a community supported project, potentially only a few people working in there own time with no help from Microsoft. I don't think you can be sure these will happen.

We can achieve accessibility support with drawn controls. Similarly, can have RTL support, adapt to system theme changes  (light, dark), etc.
But, if drawing controls are used, there would be native elements (Window etc) but, GTK themes would not work in the drawn controls.

As someone who uses a GTK theme, it would be frustrating to not have that support. On top of all the other missed benefits if this was done using drawing.
It just seems like a workaround to do drawing. Even down to the impact on battery life by refusing to just use what the system already has natively.

Developers would be frustrated if their app looks different in Linux from what the developer intended.

I agree you can achieve accessibility on native drawn controls, however it would have to be worked on, tested and fixed, so I am afraid I'd wait long for that even compared to the maui for linux release date. Of course if it would be done, I have no problem with that.
However being able to get it for free, with possibly minor bugs needing to be fixed, is an argument for not using drawn controls, still.

I don't agree with your rationale for compromise.  You're basically settling for something that will be a sub-par solution on the basis that you'd want it faster.  It's not a solution at that point, it's a half-measure and will likely end up becoming a permanent flaw.

well. this remains true every other platform support uses native controls, why linux would be an exception to the rule?
I am not looking for a compromise, but my experiences show that at least in case of community supported linux port, there is a high risk that accessibility support, in case of drawn controls, will be done either unacceptably late, or not at all. Of course it depends on the amount of work it requires.
Not counting qt and gtk on linux (where as I've commented qt is actually consistently broken in that regard on all platforms but at least usable), no one single other cross platform ui supports accessibility on linux, even if it supports it on everything else. With the exception of electron (but even chromium got that support only recently like last year!), and eclipse's swt that uses gtk under the hoot.
So, the less work one has to do to make accessibility work, the better it is for us. Not saying it cannot be done othervise. And it won't likely be that bad if, when using drawn controls, you could reuse gtk's own accessibility apis.
Anyway, everything has pros and cons and drawn controls don't preclude accessibility, so whatever... I am definitely open to testing this in the future.

I think it will be great if this is achieved. The numbers of Linux desktop are smaller than Windows sure, but that are a lot of Linux desktop customers that we can reach with our products if Xamarin can render to them.

Adding Linux support to GraphicsControls: https://github.com/dotnet/GraphicsControls/pull/17

i would prefer any linux support in maui. it would make the framework more superior because it would be an official solution and might be even a killer for other cross platform applications (at least if it works smoothly) types, mainly the electron ones which are way more memory hungry than maui would be.

Adding Linux support to GraphicsControls: dotnet/GraphicsControls#17
(First steps, still a lot to implement)

Doesn't the current Xamarin.Forms GTK backend uses drawn controls inside a GTK container? So why add another layer over it? Will GraphicsControls replace the current implementation?
Great work, but I expected to see something in .NET 6.

@knuxbbs I think the current Xamraian.Forms relies on an outdated version of GTKSharp which is not dotnet core compatible.  I am not 100% sure on that though.  I think it is GKT2 or something, and work would need to be done to port it to the newer version of GTKSharp.  Someone with more knowledge please comment on clarification.

@lucasfolino that's correct, Xamarin.Forms uses the old mono version of GTKSharp was abandoned by Xamarin/Microsoft. It only supports GTK2 (the GTK3 support was never finished).
That project was forked by the community into https://github.com/GtkSharp/GtkSharp and the GTK3 support was finished.
I'm not sure about the exact history but the Xamarin.Forms GTK support seems to have been created after the community fork happened, but for some reason still used the outdated abandoned mono version of GTK#, I've seen some comments that they didn't use GTK3 because of memory leaks, but I think this was them trying to use the unfinished mono GTK3 and not the community version.
Because Xamarin.Forms lacked GTK3 support and dotnet core support it has largely been ignored as unsuitable by the community. And for this same reason cannot be used in .net MAUI.

Hi,
currently @mjakeman and myself are working over at https://github.com/gircore/gir.core/ at modern GObject bindings.
We started the project because the current UI options on linux are limited for C# Devs and we wanted to support more modern GTK versions.
Our goal is to unify the gobject stack for c# Devs, which includes GTK.
We build directly on GOBject introspection which is well established and used for other language bindings like python and rust.
We are currently pretty much in protyping mode. The public API is manually done at the moment and we are working right now towards more automated code generation.
There are a few Demos available which cover basic GTK, GStreamer and DBus. However the API is in no way complete or stable and gir.core is not viable for serious projects at the moment.
In case you do plan to deliver linux support in a later state of the MAUI project hopefully we have reached a point where gir.core could be an option.

@badcel Really interesting project. A quick question, what kind of license will used?

i already did a spike using https://github.com/GtkSharp (compiling, but not usable at all), just to get a feeling how much afford it would be; /GtkSharp: https://github.com/lytico/maui/tree/lytico_gtksharp/System.Maui.Platform.GTK
this time MAUI was in an early stage without stable api, so i didn't continue.
i think this would be the fastest solution in terms of afford and time to release.
if https://github.com/gircore/gir.core/ becomes production ready with gtk 4, refactor then to gircore.

@jsuarezruiz it is MIT.

anyway, some .netstandard ff compatible Gtk-Library is needed, as  https://github.com/dotnet/GraphicsControls depends on Gtk.

@lytico Right, for now use Gtk 2.12 but must be updated to Gtk 3 or 4.

What do you think is the best option to add Linux support to .NET MAUI?

In my opinion, this would be the best option:

Use the Xamarin.Forms backend by updating Handlers and other changes. It could also be upgraded to GTK 3: https://github.com/GtkSharp/GtkSharp

What would you use it for (Raspberry PI Apps, IoT, Desktop App, etc)?

All of these, for libvlcsharp support.

In addition to @mfkl 's response, I'd like to highlight that LibVLCSharp would require native controls instead of drawn controls, otherwise the video view would be subject to the "airspace issue" (not being able to draw MAUI content over a native control, which is already the case in WPF and avalonia and forces ugly hacks)

My use case is creating a developer tool available on Windows, Mac, Linux and Web.
My current options are:

Using .Net Core with:

Blazor WASM for Web.
.Net MAUI for Windows and Mac, waiting for .Net Core 6 reaching a production ready level during this year.
Electron for Linux.

Flutter

I understand that when @jsuarezruiz says:

As against, give support with drawn controls requires only the native container with GTK and creating the drawn controls. In effort, there may be a certain similarity but this second option also brings benefits for the rest of the platforms (and even other possible platforms).

he refers to the possibility to bring .Net MAUI to the web.
With drawing controls (and if my assumption is correct) I could reduce at some point the number of projects specific to UI to just 1. With Gtk bindings it would be 2, still a great improvement.

Running MAUI rendered with GTK3 feels way more "native" to me, than running it in a WebControl.
Where could i start when i want to contribute to MAUI for Linux?

So, is there a certain timeline for Linux support in .NET MAUI? Or, were there no plan for it in the next two years?

@Color-Dark I don't think there is a timeline because there is not even a plan for realisation.

MAUI is to volatile at the moment to start an implementation.
let it be stable, and there will be an implementation soon.

@Color-Dark I don't think there is a timeline because there is not even a plan for realisation.

@seriouz Yes, it's just my hope

MAUI is to volatile at the moment to start an implementation.
let it be stable, and there will be an implementation soon.

Hope so

@Color-Dark  fyi: https://github.com/dotnet/Microsoft.Maui.Graphics/pull/61

Add your feedback!. What do you think is the best option to add Linux support to .NET MAUI? What would you use it for (Raspberry PI Apps, IoT, Desktop App, etc)?

Desktop App, thank

I have started a project here https://github.com/jsuarezruiz/maui-linux to add Linux support to .NET MAUI using Gtk 3 (in the short term, we would look at the option of using Gtk 4 in the future).
Note that it is a community level project (will contribute in spare time). And for that reason, we will need to help each other. Once the sample and basic handlers are finished, PRs and help will be more than welcome!.
If you want to take a look to the initial code related with linux implementation: https://github.com/jsuarezruiz/maui-linux/tree/init-linux
For the moment, together we will progress in this way. This does not mean that  could be official support in the future, even that this work helps or becomes part of the official implementation.

Who cares? Any concept of "native look and feel" on Linux is a charade anyway.

Using the native GTK widgets would at least allow the theming engine to work, thus each can achieve a consistent style for their specific desktop environment.

I would use it for cross-platform: Linux (x86, x64, and arm such as raspberry pi), Windows (x86, x64, and arm), and MacOS (x64, arm).
I want to make native desktop applications with a single code base. So I don't have to duplicate it across every platform. Xamarin.Forms is fantastic for this in Android and iOS. There are other platforms Xamarin.Forms support, but I don't use them.

@Jakar510 so, whats wrong merging the linux-community work? i guess, if it works somehow, ms will suport changes
https://github.com/jsuarezruiz/maui-linux/pull/10
https://github.com/lytico/maui/tree/lytico/gtksharp/linux-ongoing
https://github.com/dotnet/Microsoft.Maui.Graphics/pull/78

@Jakar510 so, if there is a Maui.Gtk, that is what you would need? sorry, i don't understand your demand not really, but want to.

@lytico I can never get Xamarin.Forms Gtk to work, even the samples. I hope they change this with Maui.Gtk. I would love to use it, but can't get anything GTK working.

@jsuarezruiz
Man I hate to be a negative nancy but Linux seems to be going the way of the D-Bus/system.d/freedesktop platform.
As much as I love X11 (cmon, you could telnet in and VNC an instance of CDE back in like 1997, what's not to love?!), it's going to be booted out, at least according to this. Don't get me wrong, I loathe systemd for breaking POSIX, but wayland.freedesktop.org looks like it's going to do the whole 'consolidate, depreciate, and force a la systemd. See: https://wayland.freedesktop.org/ I'm not sure how active this is now, but IIRC this/sway etc was the direction the conversation was going
This actually makes a lot more sense for the whole Linux community-- you can start targeting a new, standardized pretty interface & as long as the runtimes are there for QT or GTK or whatever, no apps get broken. (Unlike systemd which broke junk.)  See you in a few days.
But I swear to god if this is MAUI impl is anything webkit/electron based, I'm literally going back to FreeBSD with a Win7 VMware instance.
(I have binaries I compiled in VS 6 that still run on Win10, Windows LTS is a million times better than Linux. Now that is long-term support. If I want, I can still drop down and target raw WinAPI. The new WinDBG and all the app profiling tools like xperf and Intel's Vtune stuff is miles ahead of GDB (even with my pimped out rc TUI). The only thing Linux has y'all beat on is the ease with which I can dev drivers... I digress.)

I'm a C# developer since many years, and I am waiting for a cross platform (Windows+Linux+Mac+Android) desparetely. So I was excited when I heard about MAUI.
But without being able to target Linux (x86/x64+Arm for Raspberry) in a way that makes sense, MAUI is useless to me.
I cannot understand why Microsoft announces MAUI as "cross platform" without Linux. I'm deeply disappointed, thats a typical MS ignorance! Sorry, and maybe I'll get locked out on Github for mentioning this, but this has to be said.

@deuse The same for web!

Well, I don't believe this decision is rooted in ignorance so much as it's rooted in business priorities and capacity to address the business priorities.  I've watched Scott Hunter stand on stage and very clearly state if enough people desire this functionality, they will build it.  From a priority standpoint though, they can't boil the ocean and do all platforms at the same time.
My recommendation to you is to communicate your desires for this behavior and make your Use Cases known.  We're literally not even at MAUI 1.0 right now, these things take time.

@RChrisCoble: Thanks for your answer, but I cannot label it as "cross platform" without ignoring Linux. That's simply not true.
 How many millions of people are using Linux? Shall they beg MS "oh, please please support Linux as platform"? I expect a "cross platform" tool to BE cross platform.
Obviously Microsoft has enough time and manpower for creating unwanted and unnecessary things like Windows 11 and Cortana. Did enough people desire this? Probably not. I could mention here many more examples.
 Surely not. MS does not care about the feedback of the users.
And that's why I name it "ignorance" and got so upset and angry.
IMO, MS will a) never add Linux support or b) will add some kind of support which will not be of use. That's the way MS handled this in the past. I had to learn this many times.

@deuse Why are you waiting for MAUI? Just use Photino! https://www.tryphotino.io/#get-started

No disagreement with anything you said.  I suppose I'm just trying to frame against the reality of the situation.  Personally, I'm a Program Manager, 50 years old, my set of programs span a spend of close to 9MM/yr.  I work in a large, global, distributed software company.  It's not Microsoft big, but it's pretty big.  Top 50 in the world.
Software is written to make money, period.  Software is promoted by marketing/sales folks.  These are two very different sets of people.  It's not a stretch for me to hear, "We're building a cross platform solution" which (wink wink) doesn't cover 'every' platform right now, but it could, and it might someday.  Marketing is forward looking, as they are selling the present and the future.  The feature investment goes to where the money is, MS isn't a charity organization.
I can very much assure you MS does care about the feedback from customers.  This is a new Microsoft (in a broad sense) that is absolutely building what the community is asking for, doing everything out in the open, is responsive to individual folks like myself, and personally coming from someone that has coded on MS platforms my entire life, they are killing it.  It wasn't always this way.
I'm sure this doesn't dissuade your anger, but have patience.  Mature frameworks take time...years.  Just capture your use cases in places like this and record them for posterity.  I promise you they are listening.

@RChrisCoble:

Software is written to make money, period.
Sure.
MS isn't a charity organization.
Correct. But as probably "the leading" software tools company they have responsibility.
I can very much assure you MS does care about the feedback from customers.
No, the opposite is true. Some examples?

VisualStudio has bugs which have not been fixed since decades, despite enough urgent user feedback.
Some years ago macros has been removed from VS. Much protest in the communites. MS started a survey and finally made a solution which never worked. I don't know but probably it has been removed again from VS. I'm using the macros of Vlasov Studio, which are great! They did implement it the way that MS should have done.
In Windows, users cannot deinstall some programs that are automatically installed (like I wrote before). Why, if MS cares about the feedback?

It wasn't always this way.
Yes it was always this way, I cannot see a change.
I promise you they are listening.
Oh, I believe they are listening. But also I believe that they are ignoring us.
@Chris: I am really hoping that you are right, and my fears are meaningless. But I'm a developer for almost 40 years now, and past killed any hope I had for Microsoft and their listening and caring for users. In German there is a word "verschlimmbessern". I don't know the english translation, but it means "making something worser instead of better". And that's the experience with their products I had to make over this years. They have great products, but as many times as these products are improved they make new things which are (partially) useless and too complicated.

@seriouz: thanks for the link

I'm a C# developer since many years, and I am waiting for a cross platform (Windows+Linux+Mac+Android) desparetely. So I was excited when I heard about MAUI.
But without being able to target Linux (x86/x64+Arm for Raspberry) in a way that makes sense, MAUI is useless to me.
I cannot understand why Microsoft announces MAUI as "cross platform" without Linux. I'm deeply disappointed, thats a typical MS ignorance! Sorry, and maybe I'll get locked out on Github for mentioning this, but this has to be said.

Some people like to throw insults around.

maui - linux -gtk is work in progress:
https://github.com/lytico/maui/tree/lytico/gtksharp/linux-ongoing
pull requests regularly accepted:
https://github.com/jsuarezruiz/maui-linux/pulls?q=is%3Apr+is%3Aclosed
by one of the top maintainers of maui (see: https://github.com/jsuarezruiz)

Microsoft open sources MAUI, a Microsoft employee on their own time, creates a fork to add Linux support and takes PRs.
And that's not good enough? Please.
This is a symptom of the .NET ecosystem still not fully embracing open source, if it's not from the Mothership it's not worth using.
Perhaps this and maui-linux are good candidates for the .NET Foundation?

Microsoft open sources MAUI, a Microsoft employee on their own time, creates a fork to add Linux support and takes PRs.

Which Microsoft employee? Where is the Linux/MAUI project?

Microsoft open sources MAUI, a Microsoft employee on their own time, creates a fork to add Linux support and takes PRs.

Which Microsoft employee? Where is the Linux/MAUI project?

Look at the post right before mine, my friend.

Microsoft open sources MAUI, a Microsoft employee on their own time, creates a fork to add Linux support and takes PRs.

Which Microsoft employee? Where is the Linux/MAUI project?

Look at the post right before mine, my friend.

🤣🤣🤣🤣🤣

I really appreciate all the feedback, and I love the diversity of opinions but let me focus the direction of this issue, its objectives and status.
First of all, there is no official Linux support and there will be none at launch (November). Like most decisions, it was made based on a lot of data (team size, available time, number of Xamarin.Forms.Platform.GTK package downloads, feedback, etc). I understand that the decision may not like and even upset. However, this does NOT mean that could be official support for Linux in the future. In fact, throughout the year and speaking with different companies, there is an interest and need in having Linux.
That said, there is a community project here https://github.com/jsuarezruiz/maui-linux
The decisions taken so far are basically, add support to Linux using GtkSharp 3.22 https://github.com/GtkSharp/GtkSharp and try to update to Gtk 4 when we have the possibility in a reasonable way (considering stability, performance etc).
On the other hand, and at the moment it is an experimental project but we have https://github.com/dotnet/Microsoft.Maui.Graphics.Controls
They are drawn controls for .NET MAUI. I have done tests on Linux using SkiaSharp and we could get the desired look and feel. For example, here I am playing with GNOME designs: https://github.com/dotnet/Microsoft.Maui.Graphics.Controls/pull/28
So, in summary, we are trying to move forward at the community level. In the future we may or may not have official support but it is not a closed door. Of course, I (we as community) am happy to have your help.

my opinion: microsoft will be forced to offer a linux-desktop-based framework.
there are huge discussions about microsoft - dependency in the European Union, specially in the public sector.
corona deepened that discussion, eg. using MS Teams in schools. some german federal states even forbid the usage of MS Teams, Office365 and others.
so, if the dotnet ecosystem wants to be a choice for developing desktop applications in the future, a linux desktop framework will be a need.
maui-gtk could be the first choice for it, having a rich ecosystem of 3rdParty supported libs (supposing the ports from xamarin to maui in the future)

my opinion: microsoft will be forced to offer a linux-desktop-based framework.
there are huge discussions about microsoft - dependency in the European Union, specially in the public sector.
corona deepened that discussion, eg. using MS Teams in schools. some german federal states even forbid the usage of MS Teams, Office365 and others.
so, if the dotnet ecosystem wants to be a choice for developing desktop applications in the future, a linux desktop framework will be a need.
maui-gtk could be the first choice for it, having a rich ecosystem of 3rdParty supported libs (supposing the ports from xamarin to maui in the future)

I also heard that some German cities switched back to Windows 10 from Linux?

I also heard that some German cities switched back to Windows 10 from Linux?

It was Munich, shortly after Microsoft decided to move its German office to Munich. Nobody knows what was discussed behind closed doors at that time.

@saint4eva, @darkdragon-001
Yep, that's true, I suppose a strong lobby.
I'm a member of my local Linux User Group, and I discussed with the IT person in our local school about this, and he said in general that they don't care anymore about OpenSource or not, if it make sense or not. Their primary objective is that things are working more or less, especially in corona times.

I don't understand how the current discussion is directly relevant to the issue at hand.

I also heard that some German cities switched back to Windows 10 from Linux?

It was Munich, shortly after Microsoft decided to move its German office to Munich. Nobody knows what was discussed behind closed doors at that time.

That is an excuse from your side, though. Every business has something that is being discussed behind doors - that is why it is business. Of course, there is a reason for everything.

@saint4eva, @darkdragon-001
Yep, that's true, I suppose a strong lobby.
I'm a member of my local Linux User Group, and I discussed with the IT person in our local school about this, and he said in general that they don't care anymore about OpenSource or not, if it make sense or not. Their primary objective is that things are working more or less, especially in corona times.

That is exactly why many businesses and organisation prefer Microsoft solutions. They would like to focus on their core business values.

So a couple of folks have already condemned the WebView/embedded browser/electron idea/solution.
But really, how bad it could be? All we need is an embedded web browser (WebKit), no need to reinvent the wheel, all the controls, etc. If someone wants a UI then in HTML+CSS everything is possible. And with BlazorWebView you can write the event handlers directly in C#, no need of JavaScript. Is battery consumption really that bad for a web browser? It depends on what you put there, of course... But people are using web browsers just fine on their mobiles even with JavaScript turned on and without any ad-blocker. Rendering your app's UI cannot be that bad. There is no electron for mobile. A BlazorWebView could cover everything (web, mobile, desktop). It would use WebKit on Linux natively, no need to redeploy it with your app. You could publish the very same code to web, mobile app or to a desktop app. All is needed to be done is to make the UI responsive on smaller resolutions as well.
Does anyone have any tangible data or real-life experience that a web-based UI would be terrible for performance/battery life? I'm really interested because actually the whole idea can be a dead-end indeed.
If battery life is that important and critical, then why write the app in .NET at all?  But it won't. It doesn't matter that much. Android runs on Java. WebKit is written in C++. C'mon.
A web-UI won't have the look and feel of your OS, but for most (or at least for some) people it doesn't matter. In Windows 11 there are UIs which were created in the style of Win95, WinXP, Win7, Win8, Win10... Noone really cares. That game is already lost (maybe not that much for MacOS/iPhone).

Is battery consumption really that bad for a web browser? It depends on what you put there, of course...

True. However, nearly any framework you put there will be a resource hog. If you stick with straightforward HTML (without overlaps over overlaps like google does with their products and Angular usually does) and <1MB (uncompressed) of CSS and <1MB (uncompressed) of JS (just as a principle to provide an objective value), then the performance should be manageable.
If using web tech, the very important parts are usually summarized to:

Avoid animations but do them with CSS
Don't use useless tags over useless tags. If you can do something with a single HTML tag, don't use 3, 4 or even 7 like google does with their stuff.
Don't generate HTML nor CSS with javascript. In this case, use C# and templates to generate the HTML. Then, for interactivity, you can use javascript to place such blocks of HTML into the DOM tree.

Those are the principles for fast, low power consumption web pages.

 But it won't.

You have no idea how much longer a phone's battery can last just by running a C++ OS instead of running something heavy such as Android and their apps. I have because I've done tests on that. Think more like 1.7x longer.

Please use native linux controls.
This means supporting gtk2, gtk3/4 and qt.

gtk2 is for distros like linux mint which refuse to use modern versions of gtk due to the gnome devs removing theming support in gtk3.
gtk3 to 4 is for other gnome distros. you probably only need to support the latest.
qt is for distros like kde that use a qt rendering backend.

How is this not proof that "fragmentation" exists.  The least used OS have arguably three mainstream and probably more UI front ends used.  If this isn't fragmentation I do not know what is.  This is exactly the reason MS wouldn't support because they can't just support one.  @Shadowblitz16  how would you feel if MS only supported QT?  If you had to choose one which would it be?  Ultimately, I would rather see Microsoft have their own front end written from the ground up and have skins/styling to emulate these UIs.  This would be the most future proof than just supporting one.  With that said this also is a lot of work to do this for an OS that is arguably used less than the current ones supported.

@Shadowblitz16
I think that is too much to ask. At least, at this point.
For now, It'd stick with qt and use container of sorts. I think flatpak is the best choice nowadays.
Then expansion can proceed to other frameworks.
@Shadowblitz16 There's no only GTK and Qt.

@

@Shadowblitz16 I think that is too much to ask. At least, at this point. For now, It'd stick with qt and use container of sorts. I think flatpak is the best choice nowadays.
Then expansion can proceed to other frameworks.
@Shadowblitz16 There's more toolkits than just GTK and Qt.

Like 90% of gui toolkits out there use qt or gtk rendering backend.
can you give examples in which they don't?

How is this not proof that "fragmentation" exists. The least used OS have arguably three mainstream and probably more UI front ends used. If this isn't fragmentation I do not know what is. This is exactly the reason MS wouldn't support because they can't just support one. @Shadowblitz16 how would you feel if MS only supported QT? If you had to choose one which would it be? Ultimately, I would rather see Microsoft have their own front end written from the ground up and have skins/styling to emulate these UIs. This would be the most future proof than just supporting one. With that said this also is a lot of work to do this for an OS that is arguably used less than the current ones supported.

There is fragmentation but most distros support qt, gtk2 a gtk3 backends.
I mean if eto forms and pure basic forms can do it why can't a billion dollar company?

Here is a list of cross platform .NET gui tools with linux desktop support.

Avalonia
Uno
Eto.Forms

But please go ahead an tell my why supporting linux desktop is just to hard for Microsoft to do.
Microsoft has more resources then all these put together by orders of magnitude. There are no technical problems preventing .NET Maui from being on linux.

Yep eto forms even uses native back ends for linux.
And it doesn't even support qt that i know of.
Its just kubuntu that styles gtk apps to look like its qt apps.

You have entire companies dedicated to one single problem.  No other company supports all the plumbing that is there.  I think at this point dotnet may be the largest of frameworks out there.  Java is larger with choice, but I am talking about what comes in the box that is provided by one single provider.  So if you where to build an app using only MS packages vs Oracle only you would see MS supplies a lot more out of the box.  This takes resources, so yes Microsoft has more resources, but they also have a lot higher burden.  No single framework supports as much out of the box than dotnet does.  No frameworks supports, web, desktops, mobile and other use cases as much as dotnet.  This is all provided by Microsoft.  Java is close, but it relies on a lot of third party libraries.  Let alone thrown in all the tools to support these things.
Microsoft supports 6 languages I can think of.  C#, VB, Python, Java, Typescript. F# four of those are all Microsofts burden.  Three of those all work with dotnet with no third party additions.  You could say IronPython counts too since that is binding for dotnet in python, but it hasn't been updated.  You then have the CLR.  Which has another language associated with it in IL.  You could also say there are WASM binding for dotnet too.  This is just the languages.  Then you have the dotnet framework itself.  It has binding for SQL Server, Entity Framework, DI, web libraries, crypto libraries, desktop libraries, mobile, image libraries, json, xml and the list goes on.  I am just throwing stuff out there, but this is ALL provided by MS themselves.  Everything I mentioned is MS only other than the the few languages they support in VS.  This is your baseline of what MS uses their resources on.  Not only is this baseline, but this is all JUST the DOTNET FRAMEWORK.  Let alone a slew of other opensource projects, like Typescript, VS Code, and Azure Data Studio to name a few.  They are still adding more to the whole thing.
So I would say that a desktop platform for a community that only complains about the company is going to be low on their list of support.  Because 1 they don't care, and 2 the Linux community is going to hate it any way.  They will just use this as "more proof of embrace, extend, extinguish"  because isn't that what MS supporting Linux desktop would look like?  It must really be MS trying to just make it so everyone is dependent on them for everything so they can pull the carpet out from under them and finally destroy the cancer that is Linux.
So to summarize.  Yes Microsoft has more resources, but they also support a lot more than any other company out there when it comes to developers.  I too want Linux support but stop throwing shade at MS.    If you have something to add to the conversation please add it, but to say MS doesn't have the resource, or know how is just wrong and misinformed.

finally destroy the cancer that is Linux.
That right there is the reason why the linux community hates Microsoft.
Microsoft for a long time was trying to kill off its competition.
And while today they are mostly open source they still put spyware and bloat on their own os and software.
Maybe there is a reason a lot of the linux community hates microsoft.

I think your attitude is why there is only 1 native cross platform gui. Eto.Forms
I think its time Microsoft provided a good cross platform GUI library that doesn't try to force its xaml and custom rendering crap onto linux and mac users.
Linux and mac users for the most part want their apps to look like the rest of their os. and in linux's case support theming.
Maybe there is a reason why Microsoft creates a new ui every 4 years.

Also to answer your question @lucasfolino

how would you feel if MS only supported QT?  This would be the most future proof than just supporting one.

Your going to write a skin for every OS, distro and theme out there?
That sound like much more work then just providing a native backend.

The open source community should not use ethics to kidnap each other, so as to provide open source solutions for free.
Open source authors are generally not obligated to provide free services to everyone (to meet everyone's requirements). The problem with Linux is that there is no standard desktop environment, so if you want to develop a unified and compatible UI, it must be a dirty job and a huge workload.

Regarding other,
Uno platform uses SkiaSharp: https://platform.uno/how-it-works/
The idea is to paint the widgets.

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

Skia's website (not SkiaSharp): https://skia.org/
Mono Project uses Skia (via SkiaSharp) to draw the Win.Forms widgets
This is interesting : https://www.mono-project.com/docs/gui/winforms/#why-not-use-native-widgets
It basically states that using a UI toolkit to implement another UI toolkit is a mistake.

Regarding other, Uno platform uses SkiaSharp: https://platform.uno/how-it-works/
The idea is to paint the widgets.

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

Skia's website (not SkiaSharp): https://skia.org/
Mono Project uses Skia (via SkiaSharp) to draw the Win.Forms widgets
This is interesting : https://www.mono-project.com/docs/gui/winforms/#why-not-use-native-widgets It basically states that using a UI toolkit to implement another UI toolkit is a mistake.
I completely agree with you, my vote for rendering UI using Graphics API like Skia.
Solution base UI toolkit is mistake, even new Google approach for drawing is based on Skia (see JetPack)

Why it is bad idea ? Because mistakes done in underlying system will be multiplied on mistakes in .NET MAUI and it will be support hell !!
Also see my issue posted on:
https://github.com/dotnet/Microsoft.Maui.Graphics.Controls/issues/91

Finally, I have Maui for GTK working pretty good.  I did not want to say anything until I had it working.
Open to the public:
https://github.com/DerbyRussell/maui/tree/derby-gtk3-integration-prism
Check it out!

My version contains Prism for Maui GTI too:
https://github.com/DerbyRussell/maui/tree/derby-gtk3-integration-prism

My version contains Prism for Maui GTK too:

What Prism? This?
https://en.wikipedia.org/wiki/PRISM

Yes, that is where I got the source code for Prism.  But now works with GTK in my repository

The samples are a starting point and absolutely must be working!

Sorry for not trying it but just asking because it is quicker:
Does BlazorWebView work as well under Linux via GTK?

No, I didn't work at all on BlazorWebView

BlazorWebView shouldn't be hard because I already have the buttons, labels, check boxes etc ready for MAUI and BlazorWebView is simply HTML converted to all these items.

I haven't had time for BlazorWebView.

I also did not have time for Menu or Menu Bar, Flyout Page.  And because Microsoft is only supporting ListView control in a backwards compatibility mode only, I did not work on the ListView control.  The ListView is actually very similar to the BlazorWebView control in terms of difficulty.

How to build on Windows and publish to Linux?

Sorry Guys and Gals, I hadn't tried building my samples in a while. Just updated the code so they are working again. https://github.com/DerbyRussell/maui/tree/derby-gtk3-integration-prism
The samples are a starting point and absolutely must be working!

How to build on Windows visual studio and publish to Linux?

Sorry Guys and Gals, I hadn't tried building my samples in a while. Just updated the code so they are working again. https://github.com/DerbyRussell/maui/tree/derby-gtk3-integration-prism
The samples are a starting point and absolutely must be working!

How to build on Windows visual studio and publish to Linux?

At my org, we use VS Linux Debugger. Self-plugs aside, this will help you to deploy your C# apps onto your remote Linux machine.

another attempt is here: https://github.com/jsuarezruiz/maui-linux/pull/66

is android not supported on dotnet 8.0 arm Ubuntu?
 dotnet workload search
Workload ID            Description
aspire                 .NET Aspire SDK (Preview)
macos                  .NET SDK Workload for building macOS applications.
maui-tizen             .NET MAUI SDK for Tizen
maui-windows           .NET MAUI SDK for Windows
wasi-experimental      workloads/wasi-experimental/description
wasm-experimental      workloads/wasm-experimental/description
wasm-tools             .NET WebAssembly build tools
dotnet workload install android
Workload ID android isn't supported on this platform.

I am so sorry for that.
I found this link:
https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?pivots=os-linux-ubuntu-other&tabs=dotnet8
and it seems to solve your issue.
Please let me know,
Derby
On Wed, Apr 3, 2024 at 8:10 PM amirvenus @.***> wrote:

is android not supported on dotnet 8.0 arm Ubuntu?
dotnet workload search
Workload ID Description
aspire .NET Aspire SDK (Preview)
macos .NET SDK Workload for building macOS applications.
maui-tizen .NET MAUI SDK for Tizen
maui-windows .NET MAUI SDK for Windows
wasi-experimental workloads/wasi-experimental/description
wasm-experimental workloads/wasm-experimental/description
wasm-tools .NET WebAssembly build tools
dotnet workload install android
Workload ID android isn't supported on this platform.
—
Reply to this email directly, view it on GitHub
https://github.com/jsuarezruiz/forms-gtk-progress/issues/31#issuecomment-2035834299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQHM3HHVANXHITUWBPGDF43Y3SLADAVCNFSM4YMIA4W2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBTGU4DGNBSHE4Q
.
You are receiving this because you commented.Message ID:
@.***>