Haven't tried this solution for removing menu items, but could be interesting to give a try:
https://stackoverflow.com/a/77351807
My current implementation does not actually replace the menu items, it just changes the function they execute. So I could make the 'Close' menu item do something completely different like opening a new window or something weird.
Basically, I specify which menu item I would like to manipulate, and then call the function that should be executed. #Swift #AppKit #macOS
nostr:nevent1qvzqqqqqqypzp8yls8khjhc0tma9tzfjsfrg0kz0cln2fnaxmdwk6w6sljmlltkzqy28wumn8ghj7mn0wd68ytn00p68ytnyv4mqzxrhwden5te0wfjkccte9eekummjwsh8xmmrd9skcqg5waehxw309aex2mrp0yhxgctdw4eju6t0qyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqqyzvpy0lj5zc0mnchw2gu4wg4nqv42sknl9h4tz8gny2zf68x5frgymkcu8d
Frederik Handberg
npub1nj0c...2gqz
23 🇩🇰 Studying for a degree in Software Engineering while building fun projects and working freelance as a News Photographer 📷
I share my software projects, photos and videos from my work as a news photographer, and progress updates as I learn to sew garments.
Basically, I just write about my hobbies.
frederikhandberg.com
Notes (20)
Why does it need to be so difficult replacing the default menu items in a native #macOS app???
Like, it's not because the code is super difficult and complex. In fact, the code is really simple, but there is just no documentation provided by Apple on how to manipulate the default menu items, like 'Close' in 'File' menu with the `CMD + W` shortcut.
I tried using `CommandGroup(replacing: .saveItem)` and then providing the function I would like to call whenever the user clicks the shortcut `CMD + W`. But no, that didn't work.
Googled with limited success, but eventually found something useful on Stackoverflow:
https://stackoverflow.com/questions/74417490/swiftui-update-the-mainmenu-solved-kludgey
I like scrolling #Nostr a lot more than scrolling the mainstream social networks.
I think it’s more philosophical rather than the content that I find on Nostr. Because I can find much more content related to my interests (tech, programming, sewing, nature) on other platforms (Instagram, Threads, Reddit) than on Nostr.
But it just feels good using Nostr knowing that I’m supporting a protocol standing for freedom rather than a centralized platform who seeks to capture their users attention to make them doomscrolling all day long. I despise their business practices. But of course, I understand why they work that way. They just seek the most amount of profit. This is probably why they (especially Meta) are pushing AI generated “content”, because humans aren’t producing enough, but AI can generate an infinite amount. I can only hope that people dislike it so much, they end up using the platforms less…
In general, I dislike the cross-platform frameworks. I just find them to always be lacking something. Whether it’s Flutter that uses a “game-engine” and therefore behaves in strange ways on iOS, React Native that has some pretty massive sizes because of the heavy dependencies, or whatever other framework it might be…
Nothing beats a completely native app in terms of user experience. Though the developer experience can be trash on native, and better on frameworks, like Flutter which has hot reload while Xcode doesn’t… come on Apple 🙄
nostr:nevent1qqsq2ktfk2vdjqyq998esyrduhlacnm0ch8d7mp27hqe8dgnff9a6dszyprqcf0xst760qet2tglytfay2e3wmvh9asdehpjztkceyh0s5r9cqcyqqqqqqgpzpmhxue69uhkummnw3ezuamfdejsc5qdkc
I guess they never heard about AI lying and making up stuff...
Not sure how that's possible though. I feel like it's pretty common knowledge that AI can't be trusted.
https://youtu.be/oN0nViY4gn4
The pallet finally arrived today with the ironing equipment, which means, I now have everything I need to begin my #sewing project 🪡
**First project:** Sewing a t-shirt.


That’s a good idea.
I often find mods on Reddit to be overly aggressive in terms of banning and removing comments/posts.
nostr:nevent1qqsdsnpf3zrmmymvef58r8wtfpk7fctszpj2yuecp0t92d06qvrkvpszyr02k7w6lgwzhe955mf6egf40dk25zm5f06x44ff5khyvs5g270xsqcyqqqqqqgpzpmhxue69uhkummnw3ezuamfdejs9s2dh2
I have worked on implementing tabs and I think I'm quite happy with the result so far. I have mostly been spending my time getting the UI to look good with some animations _(the animations could use some more work though)_.
It's possible to rearrange tabs by dragging a tab left and right. Simple stuff like closing a tab also works. I do need to get the shortcut `CMD + W` to work as well, so it's faster to close tabs. The home-tab cannot be closed, so when the user selects the home-tab (or there is no other tabs except home-tab) and clicks the close-shortcut, it will not close the tab, but instead close the window.
**Problem:** It's only possible to drag tabs in the horizontal direction (x-axis). This means, tabs can only be dragged inside the tab-area. But ideally, it should be possible to drag tabs outside the tab-area. When doing so and releasing the tab, it should open the tab in a new window.
I'm struggling a bit to get this behavior working. Funny enough, it works fine except when using a ScrollView, because then the tab will clip to the ScrollView. This means the tab will just be hidden in the UI when trying to drag it outside the ScrollView...
I am switching between a normal HStack and a ScrollView depending on the amount of tabs. If there are too many tabs to show in the viewport, the app will switch over to using a ScrollView, and this is where the problem begins, because it hides the tab when trying to drag outside. Also, the switching between HStack and ScrollView can cause some glitches. #dev #SwiftUI #AppKit
https://video.nostr.build/225dbaade0f094f3e47cf72609d6adc39a0ee3a1004ff44092e0091e43115f2c.mp4
Portable identities are the biggest reason why I use #Nostr.
Before I started using Nostr, I was using #Mastodon, but I was really annoyed that I couldn’t just move to a new instance.
Well, Mastodon is a bit complicated, because it is technically possible to move from an instance to some other instances (not all, it depends on the individual instance), but you will lose ALL of your content (posts and replies) which makes moving between instances completely useless.
Why would I move instance if I lose all my stuff?
With Nostr, there is no reason to worry about this. You just have your keypair and can use any client you want. You can even build your own.
Coolest part is, you keep all your stuff like your posts/notes when using your Nostr identity on different clients.
nostr:nevent1qqsw969hsjjwkrza3ljeqx4hmasge6akw09mnyg3qumssw7p652m7vgzyr02k7w6lgwzhe955mf6egf40dk25zm5f06x44ff5khyvs5g270xsqcyqqqqqqgpzpmhxue69uhkummnw3ezuamfdejsqk24zx
Yeah, _at least for now_ is the important part here.
They will keep trying to get this Chat Control proposal passed in the EU. Fighting for privacy rights is a never ending battle, unfortunately.
nostr:nevent1qqsgnq0ep9hvn2vr4dznaj6d40mnlz58mtdjwj09w4t3r7a79m3nrsszyzpllrxap2vegxr2r7xyxgnfn5cr00faawcml444fa665kg4c57myqcyqqqqqqgpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qrtjxtm
This mf’er is the biggest threat to online privacy in my country (Denmark), but also a huge threat to the rest of the EU because Denmark is the country really pushing Chat Control.
nostr:nevent1qqsdk2zamt4t9n6ej26p0cqr0kpfu06c7xjrx2dh9uzxj2zc0vwzhmszyz5pejnc7krta6m3jguumxczugaxppf8esw6vhtzrvtn60au8xussqcyqqqqqqgu78z3v
Will be interesting to see what #Canva is going to do about the #Affinity apps.
They acquired the company #Serif more than a year ago.
It’s no longer possible to buy or download the Affinity apps. They are gone from the website. However, they seem to have an announcement on October 30. I don’t know what to expect. Could be moving to a subscription-based model 😬


Don’t write something on #Nostr that you’ll later regret 😅
nostr:nevent1qqsvvvapypylvfy9e3cc5fsz70zc0rtq2yycj0vnzdfggh94u34uqxczyr02k7w6lgwzhe955mf6egf40dk25zm5f06x44ff5khyvs5g270xsqcyqqqqqqgpzpmhxue69uhkummnw3ezuamfdejs3lykqr
Their business model is getting investor money.
They are not profitable and will not be anytime soon. Maybe never.
They are running on the promise of AGI and later ASI. If they can’t create hype, they fail because investors lose interest at that point.
It’s a hype-machine. Something Musk and Altman are excellent at.
But AI is here to stay, so whether it’s OpenAI or someone else, I don’t really think it matters. Only way for OpenAI and the others to stop is if all the VC money is suddenly gone. The $20/month and $200/month subscriptions certainly aren’t generating enough money to keep the companies alive.
nostr:nevent1qqs9qkfq5z4aengf68mxqcy7m39x2zk9885lczv4g8vqnf0nfa7rj5czyqzxrl97e3xrxazrnyeddw83zf5uekmue9e667js4cmzmvf4536d6qcyqqqqqqgpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhg5d5hf3
#Nostr is the solution to enshittification (or at least a similar protocol).
Users need an easy way to leave a platform (client) and just use a different one without all the hassle of losing their account and data. Nostr enables users to take their identity and just switch to a different client.
Nostr is pretty cool 😎
nostr:nevent1qqsqzxxczxqge4pv4mkhkpyw325shnq28qq0373na3274uvhfpuwm4szyrr7mfnq567gyuznp6ptffm39tx75t33ms99d7xuj4dvqz00m97gvqcyqqqqqqgpz4mhxue69uhhwmm59ehx7um5wgh8qctjw3ustg6h9z
It’s incredibly sad and disgusting how the European Union and United Kingdom have this desire to ban online privacy for its citizens.
Online #privacy will be a thing of the past if this bill goes through. Unfortunately, I think it will, but only time will tell…
Next up, they are probably going to attempt to ban VPNs.
nostr:nevent1qqszrvlnfk6mtkqv8f3jh62v9ek93jcmzz0l8n8yv8pavagtawy2nxgzyzwflq0d090s7hh62kyn9qjxslvyl3lx5n86dk6ad5a4pl9hl7hvyqcyqqqqqqgprpmhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv0nett8
This is certainly very concerning #ChatControl
nostr:nevent1qqsrpr4wee9rl2f06v6jh7qzpn7dzt75p2h0wd0fyfhm3qfuzudqyhqzyzjzxljzpndskv3369clapumet3h5tdh40e0z23n0wt4xdmp3savyqcyqqqqqqgpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qyt2dtw
There’s basically nothing worse than waiting on something to get delivered imo. Especially not when it’s a valuable item…
I got the feature of reorganizing tabs to work a few days ago.
Well, mostly working. The animation can look a bit janky sometimes.
Also, I need to figure out how I can get the same behavior as Chrome, where if dragging a tab outside the “tab area” and releasing, it will open the same tab as a new window. #dev
nostr:nevent1qqsq3qd0drpeu4zjj65qam9s5qvf84ufzjp8w0gj5gtja5aw6rzcdsszyzwflq0d090s7hh62kyn9qjxslvyl3lx5n86dk6ad5a4pl9hl7hvyqcyqqqqqqgpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgufc7xv