Show warning if file with same filename exists
Hello. When testing encode bitrate quality a while back, I found that when exporting, if you use a filename that already exists as a file (for e.g: exporting a recording multiple times), Hosaka will let you overwrite it without any warnings. This may be annoying in cases where you’re testing out export settings, or maybe export multiple clips from the same recording. Should note that if you use the file-picker, it warns you properly, but would be nice if Hosaka itself gave that warning instead

Sujal Gurung 26 days ago
Show warning if file with same filename exists
Hello. When testing encode bitrate quality a while back, I found that when exporting, if you use a filename that already exists as a file (for e.g: exporting a recording multiple times), Hosaka will let you overwrite it without any warnings. This may be annoying in cases where you’re testing out export settings, or maybe export multiple clips from the same recording. Should note that if you use the file-picker, it warns you properly, but would be nice if Hosaka itself gave that warning instead

Sujal Gurung 26 days ago
Completed
Dark theme not applied on Arch / Hyprland despite logs saying so
Hello. On Arch / Hyprland, I have set a dark theme using nwg-look. This is also logged: 2026-03-31 05:04:19 DEBUG hosaka:82 - Log file: /home/sujal/.local/state/hosaka/hosaka.log 2026-03-31 05:04:19 DEBUG hosaka.app:219 - Applied dark color scheme from XDG portal But the window appears in light mode: Previously used to work but I’m not sure if dark mode got broken when moving from flatpak to arch package or in a recent update.

Sujal Gurung 27 days ago
Completed
Dark theme not applied on Arch / Hyprland despite logs saying so
Hello. On Arch / Hyprland, I have set a dark theme using nwg-look. This is also logged: 2026-03-31 05:04:19 DEBUG hosaka:82 - Log file: /home/sujal/.local/state/hosaka/hosaka.log 2026-03-31 05:04:19 DEBUG hosaka.app:219 - Applied dark color scheme from XDG portal But the window appears in light mode: Previously used to work but I’m not sure if dark mode got broken when moving from flatpak to arch package or in a recent update.

Sujal Gurung 27 days ago
Implement multi-monitor support for Xorg
Hello. I’m using the MX Linux xfce_64 ISO and when launching Hosaka, it does not show the dialog to choose the screen / window, even if I have a second monitor connected. It also does not show the text that lets me change the selected screen: Not sure if logs would help but you can check the logs for MX Linux in this specific comment: https://hosaka.featurebase.app/p/export-error-youtube-upload-failed-upload-ended-unexpectedly/comment/69cb06d492362006b7e9f2a6

Sujal Gurung 27 days ago
Implement multi-monitor support for Xorg
Hello. I’m using the MX Linux xfce_64 ISO and when launching Hosaka, it does not show the dialog to choose the screen / window, even if I have a second monitor connected. It also does not show the text that lets me change the selected screen: Not sure if logs would help but you can check the logs for MX Linux in this specific comment: https://hosaka.featurebase.app/p/export-error-youtube-upload-failed-upload-ended-unexpectedly/comment/69cb06d492362006b7e9f2a6

Sujal Gurung 27 days ago
Completed
Export fails on AMD GPUs since NV12 fast path (v0.1.142)
Hello. I’m currently on a new system (MX Linux, though don’t think the distro is the problem here) and wanted to do a quick recording. Installed using the install script and all went well. Authenticated youtube and when trying to upload, it fails. I’ve attached the log file found in ~/.local/state/hosaka/

Sujal Gurung about 1 month ago
Completed
Export fails on AMD GPUs since NV12 fast path (v0.1.142)
Hello. I’m currently on a new system (MX Linux, though don’t think the distro is the problem here) and wanted to do a quick recording. Installed using the install script and all went well. Authenticated youtube and when trying to upload, it fails. I’ve attached the log file found in ~/.local/state/hosaka/

Sujal Gurung about 1 month ago
Planned
Region selection in Hyprland is broken
When selecting a region the shape of that region is used, but the actual region itself is not; the entire screen is captured and incorrectly squashed into the specified region.

Hugo Baldwin about 1 month ago
Planned
Region selection in Hyprland is broken
When selecting a region the shape of that region is used, but the actual region itself is not; the entire screen is captured and incorrectly squashed into the specified region.

Hugo Baldwin about 1 month ago
Completed
Ability to change screen selection *after* Wayland sharing token storage
Currently after the user makes a sharing selection the Wayland token is stored to allow them to make a faster selection / recording on the next run. However this then also prevents them from changing their selection until token expiry which is unhelpful. When running Wayland there needs to be an option to clear the token / display the current sharing selection / make a new sharing selection (or perhaps all three!).

Hugo Baldwin about 1 month ago
Completed
Ability to change screen selection *after* Wayland sharing token storage
Currently after the user makes a sharing selection the Wayland token is stored to allow them to make a faster selection / recording on the next run. However this then also prevents them from changing their selection until token expiry which is unhelpful. When running Wayland there needs to be an option to clear the token / display the current sharing selection / make a new sharing selection (or perhaps all three!).

Hugo Baldwin about 1 month ago
Completed
Minor issues(?) with padding color settings
Put the question mark cause I’m not sure these should be considered issues. Demonstrated both in this video and described below: 1) Using the No fill (transparent) option in Colour tab seems to make it use the color set in Gradient 2) If you set an image background, then switch to some other tab, it switches to that tab’s background setting accordingly. But switching back to the Image tab doesn’t switch back to the image background.

Sujal Gurung about 1 month ago
Completed
Minor issues(?) with padding color settings
Put the question mark cause I’m not sure these should be considered issues. Demonstrated both in this video and described below: 1) Using the No fill (transparent) option in Colour tab seems to make it use the color set in Gradient 2) If you set an image background, then switch to some other tab, it switches to that tab’s background setting accordingly. But switching back to the Image tab doesn’t switch back to the image background.

Sujal Gurung about 1 month ago
Completed
opt-in watermark to help promote the app?
Had a random idea about what if there was a setting to display hosaka’s watermark in the padding areas? Not to handicap trial users but to help promote the app when people see recordings from the app. Thinking it could be opt-in i.e. disabled by default. I would use that quite a bit :)

Sujal Gurung about 1 month ago
Completed
opt-in watermark to help promote the app?
Had a random idea about what if there was a setting to display hosaka’s watermark in the padding areas? Not to handicap trial users but to help promote the app when people see recordings from the app. Thinking it could be opt-in i.e. disabled by default. I would use that quite a bit :)

Sujal Gurung about 1 month ago
Completed
Sometimes I get `HTTP Error 401: Unauthorized` when trying to export to YouTube
Thanks for adding Youtube export. Very handy. Though sometimes, I get a status 401 error. Disconnecting & re-connecting to Youtube fixes it. Here’s the logs for it: 19:02:19.504 DEBUG hosaka.core.ffmpeg:849 - Starting FFmpeg encoder: ffmpeg -y -loglevel warning -f rawvideo -pix_fmt bgr24 -s 1366x768 -r 60 -i pipe:0 -i /tmp/hosaka_audio_2_47d5d0b2.wav -c:v libopenh264 -b:v 8000000 -g 30 -profile:v high -pix_fmt yuv420p -map 0:v -map 1:a -c:a aac -b:a 192k -movflags frag_keyframe+empty_moov -f mp4 pipe:1 19:02:19.505 DEBUG hosaka.core.ffmpeg:870 - FFmpeg encoder started (PID: 221) 19:02:19.505 DEBUG hosaka.pipeline.export:170 - Export initialization complete 19:02:19.505 DEBUG hosaka.pipeline.export:589 - Export initialized successfully 19:02:20.416 ERROR hosaka.ui.workers.export:221 - Streaming export+upload failed: HTTP Error 401: Unauthorized Traceback (most recent call last): File "/app/lib/python3.12/site-packages/hosaka/ui/workers/export.py", line 183, in _run_streaming exporter.export_recording( File "/app/lib/python3.12/site-packages/hosaka/pipeline/export.py", line 592, in export_recording on_encoder_started() File "/app/lib/python3.12/site-packages/hosaka/ui/workers/export.py", line 175, in on_encoder_started coordinator.start(original_output_path.name) File "/app/lib/python3.12/site-packages/hosaka/core/streaming_upload.py", line 47, in start self._provider.start_streaming_upload(filename, content_type) File "/app/lib/python3.12/site-packages/hosaka/core/youtube_upload.py", line 230, in start_streaming_upload with urllib.request.urlopen(request, timeout=HTTP_TIMEOUT) as response: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 215, in urlopen return opener.open(url, data, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 521, in open response = meth(req, response) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 630, in http_response response = self.parent.error( ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 559, in error return self._call_chain(*args) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 492, in _call_chain result = func(*args) ^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 639, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 401: Unauthorized 19:02:20.420 ERROR hosaka.app:1474 - Export failed: HTTP Error 401: Unauthorized

Sujal Gurung about 1 month ago
Completed
Sometimes I get `HTTP Error 401: Unauthorized` when trying to export to YouTube
Thanks for adding Youtube export. Very handy. Though sometimes, I get a status 401 error. Disconnecting & re-connecting to Youtube fixes it. Here’s the logs for it: 19:02:19.504 DEBUG hosaka.core.ffmpeg:849 - Starting FFmpeg encoder: ffmpeg -y -loglevel warning -f rawvideo -pix_fmt bgr24 -s 1366x768 -r 60 -i pipe:0 -i /tmp/hosaka_audio_2_47d5d0b2.wav -c:v libopenh264 -b:v 8000000 -g 30 -profile:v high -pix_fmt yuv420p -map 0:v -map 1:a -c:a aac -b:a 192k -movflags frag_keyframe+empty_moov -f mp4 pipe:1 19:02:19.505 DEBUG hosaka.core.ffmpeg:870 - FFmpeg encoder started (PID: 221) 19:02:19.505 DEBUG hosaka.pipeline.export:170 - Export initialization complete 19:02:19.505 DEBUG hosaka.pipeline.export:589 - Export initialized successfully 19:02:20.416 ERROR hosaka.ui.workers.export:221 - Streaming export+upload failed: HTTP Error 401: Unauthorized Traceback (most recent call last): File "/app/lib/python3.12/site-packages/hosaka/ui/workers/export.py", line 183, in _run_streaming exporter.export_recording( File "/app/lib/python3.12/site-packages/hosaka/pipeline/export.py", line 592, in export_recording on_encoder_started() File "/app/lib/python3.12/site-packages/hosaka/ui/workers/export.py", line 175, in on_encoder_started coordinator.start(original_output_path.name) File "/app/lib/python3.12/site-packages/hosaka/core/streaming_upload.py", line 47, in start self._provider.start_streaming_upload(filename, content_type) File "/app/lib/python3.12/site-packages/hosaka/core/youtube_upload.py", line 230, in start_streaming_upload with urllib.request.urlopen(request, timeout=HTTP_TIMEOUT) as response: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 215, in urlopen return opener.open(url, data, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 521, in open response = meth(req, response) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 630, in http_response response = self.parent.error( ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 559, in error return self._call_chain(*args) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 492, in _call_chain result = func(*args) ^^^^^^^^^^^ File "/usr/lib/python3.12/urllib/request.py", line 639, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 401: Unauthorized 19:02:20.420 ERROR hosaka.app:1474 - Export failed: HTTP Error 401: Unauthorized

Sujal Gurung about 1 month ago
Completed
Low bitrate even when exporting with High quality on 720p display
Hello. Even when exporting at high quality, the final video’s bitrate seems to be low. Hosaka recording: vs. OBS output (directly uploaded OBS mkv to YouTube): I know youtube does some video processing too but even when viewing the exported video locally, it has artifacts. My display resolution is 1366×768. Attached logs as well. There’s this log in particular about the app using CPU encoding: 10:45:47.410 WARNING hosaka.core.ffmpeg:190 - VAAPI runtime probe failed. AMD GPU detected - ensure 'mesa-va-drivers' is installed. Falling back to CPU encoding. Might that be causing the issue, or is it ffmpeg settings? I did try fixing it yesterday but couldn’t find a way.

Sujal Gurung about 1 month ago
Completed
Low bitrate even when exporting with High quality on 720p display
Hello. Even when exporting at high quality, the final video’s bitrate seems to be low. Hosaka recording: vs. OBS output (directly uploaded OBS mkv to YouTube): I know youtube does some video processing too but even when viewing the exported video locally, it has artifacts. My display resolution is 1366×768. Attached logs as well. There’s this log in particular about the app using CPU encoding: 10:45:47.410 WARNING hosaka.core.ffmpeg:190 - VAAPI runtime probe failed. AMD GPU detected - ensure 'mesa-va-drivers' is installed. Falling back to CPU encoding. Might that be causing the issue, or is it ffmpeg settings? I did try fixing it yesterday but couldn’t find a way.

Sujal Gurung about 1 month ago
User Onboarding
Currently when I run the program it only jumps directly to “let’s record stuff” mode, but it would be better to see more information about the program straight away like “here’s how you control it” and “you’re running trial version x.x.xx”, etc

Hugo Baldwin 3 months ago
User Onboarding
Currently when I run the program it only jumps directly to “let’s record stuff” mode, but it would be better to see more information about the program straight away like “here’s how you control it” and “you’re running trial version x.x.xx”, etc

Hugo Baldwin 3 months ago
Completed
Export video
Would be good to have choice of where to export. Right now it only states which folder it’s going to, but doesn’t give you opportunity to change it.

djibuprofen 3 months ago
Completed
Export video
Would be good to have choice of where to export. Right now it only states which folder it’s going to, but doesn’t give you opportunity to change it.

djibuprofen 3 months ago
Completed
Default choice of devices at start
To think about, default choice should be current system’s audio devices with logic "Everything is ON by default, but you can disable camera or mic before start of recording"

djibuprofen 3 months ago
Completed
Default choice of devices at start
To think about, default choice should be current system’s audio devices with logic "Everything is ON by default, but you can disable camera or mic before start of recording"

djibuprofen 3 months ago
Indication of recording
Some panel with count up of minutes and seconds during recording would really make a difference. Or at least that red dot in the tray could be blinking when recording; and if recording paused or stopped, the red dot would change look to grey or something, or covered with common “pause” symbol ⏸️

djibuprofen 3 months ago
Indication of recording
Some panel with count up of minutes and seconds during recording would really make a difference. Or at least that red dot in the tray could be blinking when recording; and if recording paused or stopped, the red dot would change look to grey or something, or covered with common “pause” symbol ⏸️

djibuprofen 3 months ago