awrit icon indicating copy to clipboard operation
awrit copied to clipboard

`awrit` will not run on Ubuntu 24.04 due to new AppArmor defaults

Open Maverobot opened this issue 4 months ago • 28 comments

Image

Nothing is shown after running awrit. Not sure what is wrong here.

OS: Ubuntu 24.04.3 LTS Kitty: 0.42.2

Maverobot avatar Aug 15 '25 20:08 Maverobot

Same issue here -

Kitty: 0.42.1 OS: macOS Sequoia 15.6 arm64

pallymore avatar Aug 15 '25 20:08 pallymore

Nothing is shown after running writ. Not sure what is wrong here.

OS: Ubuntu 24.04.3 LTS Kitty: 0.42.2

Please provide the contents of: cat ~/awrit/awrit_error.txt

chase avatar Aug 15 '25 23:08 chase

Same issue here -

Kitty: 0.42.1 OS: macOS Sequoia 15.6 arm64

I'm afraid I cannot reproduce this in the same environment with a fresh install. How did you install awrit?

chase avatar Aug 15 '25 23:08 chase

Same issue here - Kitty: 0.42.1 OS: macOS Sequoia 15.6 arm64

I'm afraid I cannot reproduce this in the same environment with a fresh install. How did you install awrit?

fresh install w/ curl -fsS https://chase.github.io/awrit/get | bash

I use fish shell - maybe that's why?

this is in my error log:

12 |     return path.join(process.env.ELECTRON_OVERRIDE_DIST_PATH, executablePath || 'electron');
13 |   }
14 |   if (executablePath) {
15 |     return path.join(__dirname, 'dist', executablePath);
16 |   } else {
17 |     throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again');
               ^
error: Electron failed to install correctly, please delete node_modules/electron and try installing again
      at getElectronPath (/Users/yrzhang/awrit/node_modules/electron/index.js:17:11)
      at <anonymous> (/Users/yrzhang/awrit/node_modules/electron/index.js:21:18)

let me try to install again.

pallymore avatar Aug 16 '25 02:08 pallymore

Image

tried in both fish and zsh it's just giving me these

pallymore avatar Aug 16 '25 02:08 pallymore

Image

tried in both fish and zsh it's just giving me these

Have you checked the error log to see if there's anything new?

What you're seeing is the response for the theme values from Kitty, but shortly after it should be showing something.

chase avatar Aug 16 '25 02:08 chase

Nothing is shown after running writ. Not sure what is wrong here. OS: Ubuntu 24.04.3 LTS Kitty: 0.42.2

Please provide the contents of: cat ~/awrit/awrit_error.txt

❯ cat ~/awrit/awrit_error.txt
[6010:0816/091200.595868:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:169] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Maverobot avatar Aug 16 '25 07:08 Maverobot

❯ cat ~/awrit/awrit_error.txt
[6010:0816/091200.595868:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:169] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Can you check that the owner and permissions of ~/awrit/node_modules/electron/dist/chrome-sandbox are correct?

ls -l ~/awrit/node_modules/electron/dist/chrome-sandbox

chase avatar Aug 16 '25 16:08 chase

Yes. The ownership seems to be wrong:

❯ ls -la /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox
-rwxr-xr-x 1 zheng zheng 48256 Aug 15 21:58 /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox*

I changed the ownership and permissions:

❯ sudo chown root /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox

~
❯ sudo chmod 4755 /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox

and then:

~
❯ ls -l ~/awrit/node_modules/electron/dist/chrome-sandbox
-rwsr-xr-x 1 root zheng 48256 Aug 15 21:58 /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox*

However, the awrit gets stuck in a blank screen after being executed.

Maverobot avatar Aug 16 '25 18:08 Maverobot

However, the awrit gets stuck in a blank screen after being executed.

Does the error log say anything different now?

chase avatar Aug 16 '25 18:08 chase

However, the awrit gets stuck in a blank screen after being executed.

Does the error log say anything different now?

It is different now but it looks quite normal...

❯ cat ~/awrit/awrit_error.txt
size { cols: 114, rows: 55, width: 1824, height: 1980 }

Maverobot avatar Aug 16 '25 18:08 Maverobot

❯ cat ~/awrit/awrit_error.txt
size { cols: 114, rows: 55, width: 1824, height: 1980 }

That's pretty odd.

Can you provide the output from kitty? kitty --debug-rendering awrit

chase avatar Aug 16 '25 18:08 chase

❯ cat ~/awrit/awrit_error.txt
size { cols: 114, rows: 55, width: 1824, height: 1980 }

That's pretty odd.

Can you provide the output from kitty? kitty --debug-rendering awrit

Thanks for the quick reply. Here it is:

❯ kitty --debug-rendering awrit
[0.051] Ignoring unknown config key: open_url_modifiers
[0.053] Cannot use both macos_titlebar_color and background_opacity
[0.169] Creating window with geometry: 640x480@0x0
[0.181] Creating window with geometry: 640x400@0x0
[0.185] GL version string: '4.6 (Core Profile) Mesa 25.0.7-0ubuntu0.24.04.1' Detected version: 4.6
[0.272] OS Window created
[0.288] Child launched
[0.324] Window resized to: 1876 2058 from: 640 400
[0.325] Window moved to: 1936 28 from: 0 0
[0.343] [glfw error 65544]: process_desktop_settings: failed with error: org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop
[0.344] Got notification server capabilities: frozenset({'actions', 'x-dunst-stack-tag', 'private-synchronous', 'synchronous', 'icon-static', 'body-markup', 'x-canonical-private-synchronous', 'body-hyperlinks', 'body'})
[1.109] [PARSE ERROR] Ignoring attempt to turn on/off C1 controls as we only support C0 controls

Maverobot avatar Aug 16 '25 18:08 Maverobot

Thanks for the quick reply. Here it is:

Nothing out of the ordinary there either, pretty strange.

Would you mind doing a clean reinstall? rm -rf ~/awrit; curl -fsS https://chase.github.io/awrit/get | bash

I've bumped some of the dependencies, there might be some upstream bugs that have since been fixed.

chase avatar Aug 16 '25 19:08 chase

Thanks for the quick reply. Here it is:

Nothing out of the ordinary there either, pretty strange.

Would you mind doing a clean reinstall? rm -rf ~/awrit; curl -fsS https://chase.github.io/awrit/get | bash

I've bumped some of the dependencies, there might be some upstream bugs that have since been fixed.

I've done what you asked. It seems that we are back to square one:

❯ rm -rf ~/awrit; curl -fsS https://chase.github.io/awrit/get | bash
Downloading awrit using git 
Cloning into '/home/zheng/awrit'...
remote: Enumerating objects: 1341, done.
remote: Counting objects: 100% (136/136), done.
remote: Compressing objects: 100% (93/93), done.
remote: Total 1341 (delta 96), reused 44 (delta 43), pack-reused 1205 (from 3)
Receiving objects: 100% (1341/1341), 942.31 KiB | 1.46 MiB/s, done.
Resolving deltas: 100% (696/696), done.
Installing bun
######################################################################## 100.0%
Downloading binary from https://github.com/chase/awrit/releases/download/awrit-native-rs-2.0.1/awrit-native-rs.linux-x64-gnu.node
Saving to awrit-native-rs.linux-x64-gnu.node
Download completed successfully
bun install v1.2.20 (6ad208bc)

+ @biomejs/[email protected]
+ @sinonjs/[email protected]
+ @types/[email protected]
+ @types/[email protected]
+ [email protected]
+ awrit-native-rs@awrit-native-rs
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]

196 packages installed [12.87s]

~/.local/bin/awrit already exists, skipping link install 

awrit was successfully installed to ~/awrit 

To get started, run: 
  awrit --help 

~ 1m 15s
❯ awrit

~
❯ cat ~/awrit/awrit_error.txt
building toolbar
[51921:0816/211331.199190:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:169] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Maverobot avatar Aug 16 '25 19:08 Maverobot

Hmm, that's pretty odd. It almost seems like recent versions of the Linux version of Electron is broken.

This should revert to the last known version that was definitely working on Linux:

cd ~/awrit && git checkout 2f65a6d7db9b9f1a342c11bf44ec6e97cd353aab && ./.bun/bin/bun i && ./awrit

chase avatar Aug 16 '25 22:08 chase

Hmm, that's pretty odd. It almost seems like recent versions of the Linux version of Electron is broken.

This should revert to the last known version that was definitely working on Linux:

cd ~/awrit && git checkout 2f65a6d7db9b9f1a342c11bf44ec6e97cd353aab && ./.bun/bin/bun i && ./awrit

I tried it. Still no effect with the same error log.

❯ cat ~/awrit/awrit_error.txt
[9209:0817/100801.699673:FATAL:setuid_sandbox_host.cc(163)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Maverobot avatar Aug 17 '25 08:08 Maverobot

I tried it. Still no effect with the same error log.

❯ cat ~/awrit/awrit_error.txt
[9209:0817/100801.699673:FATAL:setuid_sandbox_host.cc(163)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Hm, thanks for helping me debug. I'm a little stumped, since that version of awrit definitely used to work and the only thing that might have changed is the bun version, but that shouldn't be affecting the permissions of node_modules/electron/dist/chrome-sandbox.

I'll have to think on this a bit, but unfortunately it's quite difficult for me to debug since I only have a MacBook Air these days that doesn't really support Linux VMs with accelerated graphics.

chase avatar Aug 17 '25 11:08 chase

No problem. I'm on vacation and don't have my Mac with me. I can check it out on my Mac and another Linux PC in 2 days when I'm at home. It's a very bad luck to experience it when trying to use awrit for the very first time :(

Maverobot avatar Aug 17 '25 11:08 Maverobot

Unfortunately, awrit does not work on my Mac Studio either. @chase FYI.

❯ cat awrit/awrit_error.txt
building toolbar
Failed to query terminal colors
✗ Build failed in 54ms
error during build:
[@tailwindcss/vite:generate:build] Can't resolve '../../../dist/kitty.css' in '/Users/qu/awrit/src/toolbar/src'
file: /Users/qu/awrit/src/toolbar/src/index.css
    at finishWithoutResolve (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:565:18)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:27:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:16:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:27:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:16:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js:35:9)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:42:14)
    at _next0 (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:8:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:30:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:16:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/FileExistsPlugin.js:33:8)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/NextPlugin.js:30:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/AppendPlugin.js:40:14)
    at _next1 (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:8:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:31:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/FileExistsPlugin.js:33:8)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/NextPlugin.js:30:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/TryNextPlugin.js:32:14)
    at _next0 (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:23:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:45:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:40:47)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:37:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:42:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:22:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:80:17)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:104:26)
    at next (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:35:3)
    at forEachBail (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:49:9)
    at findDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:70:3)
    at loadDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:169:3)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:45:27)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:22:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/JoinRequestPlugin.js:42:14)
    at _next1 (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:8:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:31:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:40:47)
    at _next0 (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:23:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:45:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ConditionalPlugin.js:40:47)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:37:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/NextPlugin.js:30:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/NextPlugin.js:30:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:80:17)
    at onJson (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:96:6)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:123:7)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js:204:6)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:104:26)
    at next (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:35:3)
    at forEachBail (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:49:9)
    at findDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:70:3)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:104:26)
    at next (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:35:3)
    at forEachBail (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:49:9)
    at findDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:70:3)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:104:26)
    at next (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:35:3)
    at forEachBail (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:49:9)
    at findDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:70:3)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:104:26)
    at next (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:35:3)
    at forEachBail (/Users/qu/awrit/node_modules/enhanced-resolve/lib/forEachBail.js:49:9)
    at findDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:70:3)
    at loadDescriptionFile (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFileUtils.js:169:3)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:45:27)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:22:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/ParsePlugin.js:74:14)
    at anonymous (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:7:5)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:15:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)
    at <anonymous> (file:///Users/qu/awrit/node_modules/tapable/lib/HookCodeFactory.js:27:10)
    at <anonymous> (/Users/qu/awrit/node_modules/enhanced-resolve/lib/Resolver.js:718:5)

Maverobot avatar Aug 19 '25 21:08 Maverobot

Unfortunately, awrit does not work on my Mac Studio either. @chase FYI.

❯ cat awrit/awrit_error.txt
building toolbar
Failed to query terminal colors
✗ Build failed in 54ms
error during build:
[@tailwindcss/vite:generate:build] Can't resolve '../../../dist/kitty.css' in '/Users/qu/awrit/src/toolbar/src'
file: /Users/qu/awrit/src/toolbar/src/index.css

What version of Kitty are you using on your Mac?

This seems unrelated to the problems you had on the Ubuntu installation, basically the step where it's querying terminal colors is failing, which usually means a very old version of Kitty.

chase avatar Aug 20 '25 22:08 chase

@Maverobot Hey there, I've made a few changes that might at least get things running on macOS for you.

I'm still working on getting Linux setup on my MacBook Air in a way that Kitty supports it.

chase avatar Aug 24 '25 21:08 chase

I was able to install Fedora 42 and it seems it runs on a fresh install just fine, so I'm closing this for now. Feel free to re-open if you still have difficulties.

chase avatar Aug 24 '25 23:08 chase

Thanks for looking into it! I am now able to run awrit on my MacOS without any issue.

However, it still does not work on my Linux/Ubuntu PC.

❯ awrit
vite v7.1.3 building for production...
transforming...
✓ 7 modules transformed.
rendering chunks...
computing gzip size...
../../dist/toolbar/index.html                  0.38 kB │ gzip: 0.27 kB
../../dist/toolbar/assets/index-C2chGspt.css   7.95 kB │ gzip: 2.22 kB
../../dist/toolbar/index-_e0N5iFr.js          21.11 kB │ gzip: 8.06 kB │ map: 128.16 kB
✓ built in 288ms

❯ cat ~/awrit/awrit_error.txt
building toolbar
[10449:0825/183757.699874:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:169] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

Can you please reopen the issue? @chase Unfortunately I don't have the permissions to reopen it.

Maverobot avatar Aug 25 '25 16:08 Maverobot

However, it still does not work on my Linux/Ubuntu PC.

❯ awrit
vite v7.1.3 building for production...
transforming...
✓ 7 modules transformed.
rendering chunks...
computing gzip size...
../../dist/toolbar/index.html                  0.38 kB │ gzip: 0.27 kB
../../dist/toolbar/assets/index-C2chGspt.css   7.95 kB │ gzip: 2.22 kB
../../dist/toolbar/index-_e0N5iFr.js          21.11 kB │ gzip: 8.06 kB │ map: 128.16 kB
✓ built in 288ms

❯ cat ~/awrit/awrit_error.txt
building toolbar
[10449:0825/183757.699874:FATAL:sandbox/linux/suid/client/setuid_sandbox_host.cc:169] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /home/zheng/awrit/node_modules/electron/dist/chrome-sandbox is owned by root and has mode 4755.

It seems like this might be an Ubuntu issue that's going to be resolved sometime soon: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2046844#157

But it's definitely a newer issue introduced in 24.04: https://github.com/electron/electron/issues/42510

I can't think of a good workaround until Ubuntu pushes a fix, however, since it shouldn't require sudo to install and I don't really want to introduce that since it seems sketchy.

chase avatar Aug 25 '25 17:08 chase

Potentially I could setup something like https://github.com/webdriverio-community/wdio-electron-service/blob/main/packages/wdio-electron-service/src/apparmor.ts

Still need to figure out how to get Kitty working with Ubuntu through a VM though, the OpenGL passthrough is rather out of date.

chase avatar Aug 25 '25 20:08 chase

I got it working after I did chown and chmod though. My system is

  • Ubuntu 24.04
  • kitty version: 0.42.2
  • awrit version: not sure ( when I do awrit -v, it output nothing, see second image)
Image Image

kaung-minkhant avatar Sep 04 '25 18:09 kaung-minkhant

I got it working after I did chown and chmod though. My system is

* Ubuntu 24.04

* kitty version: 0.42.2

* awrit version: not sure ( when I do awrit -v, it output nothing, see second image)

Thanks for the update, I'm not sure if that's the best idea in regards to security. It would be ideal if the sandbox dropped privileges, but I think since the default is to create a namespace as a normal user without full root privileges, that's a risky assumption.

The Canonical-approved way is an app armor profile.

chase avatar Sep 04 '25 18:09 chase