orbital issueshttps://gitlab.redox-os.org/redox-os/orbital/-/issues2024-02-10T15:43:46Zhttps://gitlab.redox-os.org/redox-os/orbital/-/issues/71GUI porting2024-02-10T15:43:46ZRibbonGUI portingThis issue will cover the porting of the most common rendering toolkits and libraries to Orbital.
- [ ] GLEW
- [ ] GTK3
- [ ] GTK4
- [ ] Qt5
- [ ] Qt6
- [ ] wxWidgetsThis issue will cover the porting of the most common rendering toolkits and libraries to Orbital.
- [ ] GLEW
- [ ] GTK3
- [ ] GTK4
- [ ] Qt5
- [ ] Qt6
- [ ] wxWidgetshttps://gitlab.redox-os.org/redox-os/orbital/-/issues/36(Feature Request) Double-click on the title bar to maximize window.2023-08-07T07:09:25ZRibbon(Feature Request) Double-click on the title bar to maximize window.https://gitlab.redox-os.org/redox-os/orbital/-/issues/70Wrong screen size when running on real hardware2023-08-07T07:09:24ZRon WilliamsWrong screen size when running on real hardwareWhen running natively on a low-end HP laptop, I select the screen size, the system boots somewhat normally, but the Orbital display is a small rectangle in the upper left of the screen, roughly 200px wide by 50px high.When running natively on a low-end HP laptop, I select the screen size, the system boots somewhat normally, but the Orbital display is a small rectangle in the upper left of the screen, roughly 200px wide by 50px high.https://gitlab.redox-os.org/redox-os/orbital/-/issues/69Orbital exits with "invalid argument"2023-07-18T17:25:56ZRon WilliamsOrbital exits with "invalid argument"On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size wa...On an HP laptop where Orbital previously worked, during boot, Orbital reports `orbital::core::display:48 failed to map display: invalid argument`, and Orbital exits. This appears to be an error code from `syscall::fmap`.
Display size was `1366x768`. `1024x768` appears to work.
Edit: This is reproducible on QEMU, choose resolution 1600x900 and Orbital will exit with the same error.https://gitlab.redox-os.org/redox-os/orbital/-/issues/21Windows are not destroyed on logout2023-05-18T11:52:26ZJeremy SollerWindows are not destroyed on logout*Created by: xTibor*
**Reproduction:**
1. Log in to the desktop with the default `user` account
2. Open some apps like `character_map`, `viewer` and `calendar`
3. Do not close the apps and log out
4. Use Alt+Tab on the login screen to s...*Created by: xTibor*
**Reproduction:**
1. Log in to the desktop with the default `user` account
2. Open some apps like `character_map`, `viewer` and `calendar`
3. Do not close the apps and log out
4. Use Alt+Tab on the login screen to switch to the windows that were supposed to be destroyed
The process list shows that the apps are killed on logout yet their windows are not destroyed by Orbital:
<details><summary>Processes before logout</summary>
```
PID PGID PPID RUID RGID RNS EUID EGID ENS STAT CPU MEM NAME
1 1 0 0 0 0 0 0 0 KR 0 0 B
2 2 0 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/init
4 2 2 0 0 0 0 0 0 UB 0 11 MB initfs:/bin/vesad
6 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/ps2d
9 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/bgad
11 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/ahcid
13 2 2 0 0 0 0 0 0 UB 0 66 MB initfs:/bin/redoxfs
15 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/nulld
17 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/zerod
19 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/randd
21 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/logd
23 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/ptyd
26 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/e1000d
28 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/ihdad
30 2 2 0 0 0 0 0 0 UB 0 2 MB file:/bin/smolnetd
32 2 2 0 0 1 0 0 1 UB 0 1 MB file:/bin/dnsd
36 2 2 0 0 0 0 0 0 UB 0 10 MB file:/bin/orbital
38 2 2 0 0 1 0 0 1 UB 0 2 MB file:/bin/getty
40 2 38 0 0 1 0 0 1 UB 0 2 MB file:/bin/login
41 2 2 0 0 1 0 0 1 UB 0 2 MB file:/bin/getty
42 2 41 0 0 1 0 0 1 UB 0 2 MB file:/bin/login
43 2 36 0 0 1 0 0 1 UB 0 12 MB file:/ui/bin/orblogin
44 2 43 1000 1000 1 1000 1000 1 UB 0 3 MB file:/ui/bin/launcher
45 2 44 1000 1000 1 1000 1000 1 UB 0 11 MB file:/ui/bin/background
46 2 44 1000 1000 1 1000 1000 1 UB 0 3 MB file:/ui/bin/character_map
47 2 44 1000 1000 1 1000 1000 1 UB 0 12 MB file:/ui/bin/viewer
48 2 44 1000 1000 1 1000 1000 1 UB 0 3 MB file:/ui/bin/calendar
49 49 42 1000 1000 1 1000 1000 1 UB 0 3 MB file:/bin/ion
50 49 49 1000 1000 1 1000 1000 1 US 0 3 MB file:/bin/ion
51 51 49 1000 1000 1 1000 1000 1 UR+ 0 1 MB file:/bin/ps
```
</details>
<details><summary>Processes after logout</summary>
```
PID PGID PPID RUID RGID RNS EUID EGID ENS STAT CPU MEM NAME
1 1 0 0 0 0 0 0 0 KR 0 0 B
2 2 0 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/init
4 2 2 0 0 0 0 0 0 UB 0 11 MB initfs:/bin/vesad
6 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/ps2d
9 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/bgad
11 2 2 0 0 0 0 0 0 UB 0 1 MB initfs:/bin/ahcid
13 2 2 0 0 0 0 0 0 UB 0 66 MB initfs:/bin/redoxfs
15 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/nulld
17 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/zerod
19 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/randd
21 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/logd
23 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/ptyd
26 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/e1000d
28 2 2 0 0 0 0 0 0 UB 0 1 MB file:/bin/ihdad
30 2 2 0 0 0 0 0 0 UB 0 2 MB file:/bin/smolnetd
32 2 2 0 0 1 0 0 1 UB 0 1 MB file:/bin/dnsd
36 2 2 0 0 0 0 0 0 UB 0 13 MB file:/bin/orbital
38 2 2 0 0 1 0 0 1 UB 0 2 MB file:/bin/getty
40 2 38 0 0 1 0 0 1 UB 0 2 MB file:/bin/login
41 2 2 0 0 1 0 0 1 UB 0 2 MB file:/bin/getty
42 2 41 0 0 1 0 0 1 UB 0 2 MB file:/bin/login
43 2 36 0 0 1 0 0 1 UB 0 12 MB file:/ui/bin/orblogin
49 49 42 1000 1000 1 1000 1000 1 UB 0 3 MB file:/bin/ion
50 49 49 1000 1000 1 1000 1000 1 US 0 3 MB file:/bin/ion
52 52 49 1000 1000 1 1000 1000 1 UR+ 0 1 MB file:/bin/ps
```
</details>https://gitlab.redox-os.org/redox-os/orbital/-/issues/68Add restore option to window tiling shortcuts2023-04-17T14:27:22ZAndrew MackenzieAdd restore option to window tiling shortcutsRestore window size back to original size after tiling left/right/top/bottom when the same shortcut is done again.
This allows the user to get the window back to its original size and location.
Use same restore struct as when maximizin...Restore window size back to original size after tiling left/right/top/bottom when the same shortcut is done again.
This allows the user to get the window back to its original size and location.
Use same restore struct as when maximizing. Code for max/restore and tiling can probably be combined more also.https://gitlab.redox-os.org/redox-os/orbital/-/issues/64Add tile left/right/top/bottom shortcuts2023-04-05T21:19:21ZAndrew MackenzieAdd tile left/right/top/bottom shortcutsAdd four or ital keyboard shortcuts to move the top window to occupy the left/top/right/bottom half of the display.
Add to shortcuts overlay.
Add to a doc in repo.Add four or ital keyboard shortcuts to move the top window to occupy the left/top/right/bottom half of the display.
Add to shortcuts overlay.
Add to a doc in repo.https://gitlab.redox-os.org/redox-os/orbital/-/issues/67Focus not set to top window when SUPER-TAB switching between windows2023-04-05T18:28:30ZAndrew MackenzieFocus not set to top window when SUPER-TAB switching between windowsWhen super-tab switching, we attempt to set the focus to the new window, but it doesn't appear to be working, and all the windows are left without focus and it seems to move to the launcher.
This causes problems such as key input to the...When super-tab switching, we attempt to set the focus to the new window, but it doesn't appear to be working, and all the windows are left without focus and it seems to move to the launcher.
This causes problems such as key input to the new window being lost and some keyboard shortcuts inadvertently modifying the Launcher window.https://gitlab.redox-os.org/redox-os/orbital/-/issues/66Improve SUPER overlay2023-04-04T17:19:54ZAndrew MackenzieImprove SUPER overlayIdeas for improving it:
- small delay before showing it, so in normal use when user types the other key "immediately" it is not shown.
- Better texts, shorter, easier to read
- Use of Unicode characters for some of the keys
- Better stylingIdeas for improving it:
- small delay before showing it, so in normal use when user types the other key "immediately" it is not shown.
- Better texts, shorter, easier to read
- Use of Unicode characters for some of the keys
- Better stylinghttps://gitlab.redox-os.org/redox-os/orbital/-/issues/65Maximize/restore window with double-clock on titlebar2023-04-04T16:21:27ZAndrew MackenzieMaximize/restore window with double-clock on titlebarWill need to investigate where to add double-clock detection, in Orbital or in the mouse event generation?
I think better the second, but will require modification of the mouse event (Orbclient?) so other apps can also receive it...Will need to investigate where to add double-clock detection, in Orbital or in the mouse event generation?
I think better the second, but will require modification of the mouse event (Orbclient?) so other apps can also receive it...https://gitlab.redox-os.org/redox-os/orbital/-/issues/49Document keyboard shortcuts and make discoverable for users2023-04-04T15:24:30ZAndrew MackenzieDocument keyboard shortcuts and make discoverable for usershttps://gitlab.redox-os.org/redox-os/orbital/-/issues/60Add keyboard shortcut to maximize/restore window size2023-04-04T15:24:30ZAndrew MackenzieAdd keyboard shortcut to maximize/restore window sizeIdeas for what shortcut to use?
Super + Space?
Super + Enter?
Super + F (for Fullscreen, make sense when going fullscreen, less when restoring)
BTW: No real harm (until we run out of shortcuts) to allow more than one shortcut per action.Ideas for what shortcut to use?
Super + Space?
Super + Enter?
Super + F (for Fullscreen, make sense when going fullscreen, less when restoring)
BTW: No real harm (until we run out of shortcuts) to allow more than one shortcut per action.https://gitlab.redox-os.org/redox-os/orbital/-/issues/61Refactor key_event() in scheme.rs from a massive if else to use match and guards2023-04-04T15:24:29ZAndrew MackenzieRefactor key_event() in scheme.rs from a massive if else to use match and guardsUse new key constants from orbclient in the process.Use new key constants from orbclient in the process.https://gitlab.redox-os.org/redox-os/orbital/-/issues/63Sometimes super events being sent to Launcher is not working2023-04-04T08:37:28ZAndrew MackenzieSometimes super events being sent to Launcher is not workingAfter logout and backing?
Super-T for terminal and the like stop workingAfter logout and backing?
Super-T for terminal and the like stop workinghttps://gitlab.redox-os.org/redox-os/orbital/-/issues/62Orbital processing super-key events at login window2023-04-04T08:36:45ZAndrew MackenzieOrbital processing super-key events at login windowAll the logic for super-key events for shortcuts etc are still being processed when the login window is displayed.
I think it will need some sort of special mode for login window?
Or maybe the super key events are not being sent correc...All the logic for super-key events for shortcuts etc are still being processed when the login window is displayed.
I think it will need some sort of special mode for login window?
Or maybe the super key events are not being sent correctly to login window (in place of launcher window) when it is being displayed?
Related to the "Hack" to send to the lowest numbered window?
All windows should be killed and ONLY window alive is login window, hence it gets the Super key events?
-> still need to disable Orbital from reacting to super keys itself?https://gitlab.redox-os.org/redox-os/orbital/-/issues/59Volume control popup has same redraw issue as window switcher2023-04-03T17:13:58ZAndrew MackenzieVolume control popup has same redraw issue as window switcherI have since found the keyboard short cuts that allow display of volume control.
Apart from the redraw issue, it doesn't seem to work for me - unable to make the bar increase or decrease.I have since found the keyboard short cuts that allow display of volume control.
Apart from the redraw issue, it doesn't seem to work for me - unable to make the bar increase or decrease.https://gitlab.redox-os.org/redox-os/orbital/-/issues/43Avoid unsafe code (as much as possible)2023-04-03T17:13:05ZAndrew MackenzieAvoid unsafe code (as much as possible)Strive to remove all the unsafe code in orbital and take advantage of rusts inherent advantages over other languages to protect us.Strive to remove all the unsafe code in orbital and take advantage of rusts inherent advantages over other languages to protect us.https://gitlab.redox-os.org/redox-os/orbital/-/issues/26Clipboard2023-03-28T15:24:49ZJeremy SollerClipboardMy thought is - let's call whatever the orbital modifier key is "super", although it could be ctrl or alt or anything chosen by the user
Here is the potential new event
```
enum ClipboardEventKind {
Copy,
Cut,
Paste
}
struct Clip...My thought is - let's call whatever the orbital modifier key is "super", although it could be ctrl or alt or anything chosen by the user
Here is the potential new event
```
enum ClipboardEventKind {
Copy,
Cut,
Paste
}
struct ClipboardEvent {
kind: ClipboardEventKind,
size: usize,
}
```
The reason to have all of them going through the same event, is there may be shared operations like opening a clipboard file that would be optimal to do in one match brace on the Event. The size field is to provide the size of the clipboard and may not be used for Copy or Cut
- super+c would send a new event - ClipboardEvent(Copy) - to the window that is focused
- super+x would send ClipboardEvent(Cut) where the application just deletes what it has selected
- orbital would also clear the currently selected clipboard buffer before sending the event, for compatibility with applications that do not have selection support
- if that window has something selected, it would dup(window_fd, b"clipboard"), write(clipboard_fd, &clipboard_data), close(clipboard_fd)
- alternatively, it could write(window_fd, format!("C:{}", clipboard_contents)) - but is allocation worse or an extra syscall?
- in the dup case, the clipboard _could_ be opened alongside the window at all times to save a syscall
Pasting would involve using the size field to determine how to handle the clipboard contents. I am unsure if the clipboard fd will support seek or fstat - that would provide an alternative way to peek at the size and to do partial reads
- super+v would send a ClipboardEvent(Paste)
- the window would dup(window_fd, b"clipboard"), read(clipboard_fd, &mut clipboard_data), close(clipboard_fd)
- I am not aware of a good alternative, read(window_fd) should usually return events. Doing anything else would break backwards compatibility
- Again, the clipboard could always be open in order to save a syscallJeremy SollerJeremy Sollerhttps://gitlab.redox-os.org/redox-os/orbital/-/issues/58Allow user to define the app to be used for background2023-03-28T15:00:36ZAndrew MackenzieAllow user to define the app to be used for backgroundCurrently the app "background" is hardwired into Orbital and login window.
Make the command's name configurable (via same config file as other config issues), allowing the user to override the background command.
This could allow any ap...Currently the app "background" is hardwired into Orbital and login window.
Make the command's name configurable (via same config file as other config issues), allowing the user to override the background command.
This could allow any app to be the background, and allow intelligent backgrounds that update with web or local content etc.
Combined with an action to show the background (an existing issue) will be more useful.https://gitlab.redox-os.org/redox-os/orbital/-/issues/57Make keyboard short cuts and apps used configurable2023-03-28T14:58:13ZAndrew MackenzieMake keyboard short cuts and apps used configurableAllow the user (via a config file, possibly managed by a settings app) to define
- what keyboard short cut (e.g. Super-B) corresponds to what action (e.g. Open default Browser)
- what command (e.g. "netsurf") corresponds to an actionAllow the user (via a config file, possibly managed by a settings app) to define
- what keyboard short cut (e.g. Super-B) corresponds to what action (e.g. Open default Browser)
- what command (e.g. "netsurf") corresponds to an action