What does your OS look like? (Screen Shots..)

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by BenLunt »

Did some work on my GUI. Within the past year or so, I have added desktop icons as well as a few other enhancements.

Most recently, added a list of all devices found.

Image

It needs work. The list does show a sub-list item under a main-list item (see FDC: and then the FDD: lines or the USB lines for example), displays the "linked" lines, but doesn't know that the next item isn't a part of this set.

See below what I want it to be, eventually:

Image

The icon and the drawing of the (dotted) lines are an easy addition, but I need to add code so that the list knows what items are sub-items and who the parent item is. The little minus (and plus) button to the left is a simple thing to add as it is an actual button object that can be requested for its state (0 or 1). It is the parent and child list items I need to add code for.

Also, right now I show what is attached to a specific port on the USB (root) hub, and then I show it again later since it is still a device. I need to work with it a little so it doesn't show it twice, the last two lines, for example. The second to the last line is the actual root hub already shown, while the last line is the flash drive connected to the first port, again, already shown.

(The numbers at the end of some of the lines are there for my debugging purposes)

One other note, this shows me that I forgot to go back to my HUB code and mark an unused port (disconnected port) as disconnected instead of "unknown"... :-)

Anyway, just thought I would share.
Ben
- http://www.fysnet.net/osdesign_book_series.htm
mariuszp
Member
Member
Posts: 587
Joined: Sat Oct 16, 2010 3:38 pm

Re: What does your OS look like? (Screen Shots..)

Post by mariuszp »

Glidix-minipad-syntax.png
I got syntax highlighting to work in my custom-made text editor in Glidix!
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: What does your OS look like? (Screen Shots..)

Post by Sik »

Getting back to this project. Let's see how it lasts :​P

Overhauling everything from scratch. Probably most obvious difference is that the taskbar is gone... I just have no idea what to fill it with. Using the keyboard will be a must anyway, may as well use keyboard shortcuts (this is a toy OS, I don't expect perfect usability). Not any weird stuff, just the same kind of shortcuts modern OSes use (like alt+tab to switch or alt+F4 to quit).

Before anybody rushes to download, none of this is in the GitHub repo yet, in fact I may make a new repo for this since it's essentially a full rewrite (even the name changed).
Calculator
Calculator
blastem_20180909_202711.png (4.73 KiB) Viewed 6698 times
The calculator, now looking a bit fancier. Despite the looks, decided to ditch the old calculator-style input and let the user enter the whole calculation since honestly I think it brings up less problems in the long term — it's both more useful and also avoids the plethora of edge cases actual calculators have (which do things that way only due to limited hardware). Of course if the entered text is too long it will scroll.

Also, the solar panel is there because I couldn't think what to fill the gap with. If I come up with something (that I'm actually willing to implement) it'll take its place.
Terminal
Terminal
blastem_20180908_161032.png (1.45 KiB) Viewed 6698 times
Some random screenshot of a terminal, since again I implemented it early so I could test keyboard input. Enjoy the useless commands.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: What does your OS look like? (Screen Shots..)

Post by klange »

mariuszp wrote:I got syntax highlighting to work in my custom-made text editor in Glidix!
Hi mariuszp... I wanted to try running Glidix, but you have no binary releases, so I thought I'd try building from source, but your build scripts are very confusing, and they want me to build a toolchain as root? What's up with that?

e: I got the toolchain built and added to my PATH without running it all as root, but further into the build it looks like libgpm is failing to find libc when linking a shared object. Everything before that seems to have worked, and there is a libc.so here, it just wasn't installed anywhere?

Code: Select all

x86_64-glidix-gcc obj/src/install.o obj/src/decoder.o obj/src/context.o -o libgpm.so -shared -ggdb
/home/mujin/Downloads/glidix-sysroot/usr/bin/../lib/gcc/x86_64-glidix/6.2.0/../../../../x86_64-glidix/bin/ld: cannot find -lc
e: It also looks like you're installing gcc+binutils into the path they use for a sysroot?
mariuszp
Member
Member
Posts: 587
Joined: Sat Oct 16, 2010 3:38 pm

Re: What does your OS look like? (Screen Shots..)

Post by mariuszp »

klange wrote:
mariuszp wrote:I got syntax highlighting to work in my custom-made text editor in Glidix!
Hi mariuszp... I wanted to try running Glidix, but you have no binary releases, so I thought I'd try building from source, but your build scripts are very confusing, and they want me to build a toolchain as root? What's up with that?

e: I got the toolchain built and added to my PATH without running it all as root, but further into the build it looks like libgpm is failing to find libc when linking a shared object. Everything before that seems to have worked, and there is a libc.so here, it just wasn't installed anywhere?

Code: Select all

x86_64-glidix-gcc obj/src/install.o obj/src/decoder.o obj/src/context.o -o libgpm.so -shared -ggdb
/home/mujin/Downloads/glidix-sysroot/usr/bin/../lib/gcc/x86_64-glidix/6.2.0/../../../../x86_64-glidix/bin/ld: cannot find -lc
e: It also looks like you're installing gcc+binutils into the path they use for a sysroot?
I should probably write instructions on how to build somewhere.

If you have the cross-compiler already in the PATH, then you should configure in a separate directory, as follows:

Code: Select all

../glidix/configure --sysroot=<WHATEVER> --iso
You then need to install libc in that path:

Code: Select all

make libc
sudo make install-libc
You may have to do this with other parts as well, I can't remember exactly which, if there is a dependency problem (like you had). This is because the scripts expect access to Glidix libraries; I try to remove this expectation as much as possible but it's a lot to sort through so things like this still happen occassionally (And besides, libc must be installed anyway, to build native binutils and gcc).

With the --iso option passed, the end result is an ISO image, glidix.iso.

I put the last nightly build up on my site, just for you!!! Here's a TEMPORARY link:
https://madd-games.org/glidix-10sep2018.iso

(I will soon start posting regular builds)
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: What does your OS look like? (Screen Shots..)

Post by klange »

A common complaint / critique about my UI has been that the decoration theme did not adjust when a window was fullscreen, leaving a gap around the edges where the shadow is drawn. This required a bit of rethinking in the decorator library, but it's finally fixed:

Image
User avatar
BenLunt
Member
Member
Posts: 941
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by BenLunt »

Okay, after a re-write of the GUI_LIST object, a list can now have groups, a group containing individual list elements, with these list elements having child groups.

Image

Notice that the FDC, ATA, and USB list elements, each have a child group listing of one or more elements each. Click on the minus sign to hide the children, shown in the window beneath it with a plus button to show these children again. i.e.: Collapse or Expand.

A group is completely independent of another group of elements so that more than one element can point to a single group, each child group shown (the same physical group of elements) updated when one is changed, so is the other listing shown.

The dotted lines I mentioned before are being drawn, the code is there (as shown below):

Image

But they are not visible due to the fact that the placement of these lines is on the LIST object instead of the ELEMENT object and is not getting pushed to the "dirty" RECT. If I manually mark that RECT as dirty, the LIST object thinks its dirty and overwrites them anyway. This is shown below.

Image

The pink area (added after the fact) is the LIST object, while the white areas are the ELEMENT objects within the list. I will need to "back peddle" the drawing of these dotted lines so that they remain visible.

However, now with the groups, the LIST object now knows when a group ends compared to my previous post where it did not.

Along with this, I noticed that I now need to write a little bit of code to make sure that I can only have one "application name" running at the same time. i.e.: Don't let the user have more than one of these apps open. Should be quite simple to implement, though I didn't think about it until I tried it. :-)

Ben
- http://www.fysnet.net/osdesign_book_series.htm
User avatar
nakst
Member
Member
Posts: 51
Joined: Sun Jan 17, 2016 7:57 am

Re: What does your OS look like? (Screen Shots..)

Post by nakst »

I've been trying to design how my "System Options" program will look.
Image

I'm finding prototyping interface designs to be fairly easy, thanks to my simple UI markup language.
For example, the code for the "Regional settings" page looks like:

Code: Select all

[pane optionsRegionalSettingsPane]
contents = {
	[fill] scrollPane {
		[fill] optionsPage {
			[h_fill] heading "Regional settings" ;;

			section "Layout" ;; optionsBox {
				; [left] command "commandRightToLeftLayout"
			} ;;

			section "Number formatting" ;; optionsBox {
				[right] label "Decimal symbol" ; textbox "." ;;
				[right] label "Digits after decimal" ; textbox "2" ;;
				[right] label "Digit grouping symbol" ; textbox "," ;;
				[right] label "Digits per group" ; textbox "3" ;;
				[right] label "Negative sign" ; textbox "-" ;;
				[right] label "Standard digits" ; textbox "0123456789" ;;
				[right] label "Currency symbol" ; textbox "$" ;;
				[right] label "Example:" ; label "-1,234,567.89" 
			} ;;

			section "Date and time" ;; optionsBox {
				[right] label "Time format" ; textbox "hh:mm" ;;	
				[right] label "Long date format" ; textbox "DD MM YYYY" ;;
				[right] label "Short date format" ; textbox "yyyy/mm/dd" ;;
				[right] label "AM suffix" ; textbox "AM" ;;
				[right] label "PM suffix" ; textbox "PM" ;;
				; [left] command "commandUse24HourClock"
			} ;;

			section "Language and input" ;; optionsBox {
				[right] label "System language" ; textbox "English" ;;
				[right] label "Keyboard layout" ; textbox "English (US)"
			}
		}
	}
};
User avatar
AndrewAPrice
Member
Member
Posts: 2300
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What does your OS look like? (Screen Shots..)

Post by AndrewAPrice »

That's a nice markup language you have, nakst.

I'm not at that level yet, but anytime I've attempted to make a templating system it often results in me wanting to make it so complicated that I figure I ought to just build a nice set of helper builder utils in modern C++17 to do it instead. :(

I've been thinking about entity component systems, which are extremely popular in the video game industry (tools like Unity), and how you could build a general applications framework around an ECS.
My OS is Perception.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: What does your OS look like? (Screen Shots..)

Post by klange »

My C library has reached a point where I can start bringing back third-party libraries as optional extensions, so I'm working to make freetype available for rendering text. Here's what my terminal looks like with the three text backends (freetype, native SDF-based renderer, and bitmap):

Image

Next step for this is to get the rest of the text rendering into a state where it can use Freetype - menus, window decorations, panel.
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: What does your OS look like? (Screen Shots..)

Post by Sik »

Taking down GitHub link from my signature until the new project is up, I don't want to cause confusion. The current stuff is still too green to release for my tastes, hence why I haven't linked to that yet.

Anyway, WIP of the file manager (with a fake directory listing, though the list per-se does indeed work), yeah I know it's cutting text in the middle of anything but given the small space available I decided it was a better option for this particular case (for e.g. a text editor I'd make it break only at spaces instead):
File manager
File manager
blastem_20180923_213801.png (3.52 KiB) Viewed 5828 times
Also a WIP of the settings screen (I'll probably need to split it down into subscreens when I start adding stuff for each peripheral):
Settings screen
Settings screen
blastem_20180921_111458.png (2.48 KiB) Viewed 5828 times
Also huh, would it be cheating if I include a game? I mean, it's fullscreen and the cursor got tucked away to the side (whoops - you can spot a faint black line to the right if you pay attention), but it isn't obvious it's running on top of that OS. The kernel is the one providing the timing, drawing and input routines though:
Snake game
Snake game
blastem_20180913_055048.png (4.14 KiB) Viewed 5828 times
Also I totally didn't steal the idea of a snake game from somebody else's OS project here (honestly I can't even remember the name of said project lol). Planning to include a few more though (besides the obvious Solitaire).
dseller
Member
Member
Posts: 84
Joined: Thu Jul 03, 2014 5:18 am
Location: The Netherlands
Contact:

Re: What does your OS look like? (Screen Shots..)

Post by dseller »

Finally implemented stack backtracing. Should have done this a lot earlier, it makes debugging a lot easier.

Image
User avatar
AndrewAPrice
Member
Member
Posts: 2300
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: What does your OS look like? (Screen Shots..)

Post by AndrewAPrice »

@Sik that looks awesome!

Are you making an OS for the Motorola 68k? (Curious after seeing your file extension.)
My OS is Perception.
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: What does your OS look like? (Screen Shots..)

Post by Sik »

Mega Drive (and yeah, 7.67MHz 68000).

Something I noticed is that the file manager there emulated at half the speed still feels more responsive than a lot of modern software (and that's considering it takes a few frames to render all filenames since they're in a variable width font and hence need to be software rendered, not to mention the video routines are far from optimal…). I get that this thing is single tasking and running on a much lower resolution but it's pretty sad, honestly :​/

EDIT: also I just noticed you guessed it for the wrong reasons (the mock-up folder consists of the kind of files I'm bound to have in a Mega Drive game), I like to use the ".68k" extension for 68000 asm files (and ".z80" for Z80 asm files). What would be the executable files for this OS are the ones with ".mega" extension.
klange
Member
Member
Posts: 679
Joined: Wed Mar 30, 2011 12:31 am
Libera.chat IRC: klange
Discord: klange

Re: What does your OS look like? (Screen Shots..)

Post by klange »

I spent some time figuring out how to use the VMware backdoor interface to automatically set the display resolution as the window changes size (similar to the feature in VirtualBox that does the same thing):

Image

I wrote up an article that should be easier to understand than the sample code that VMware provides: VMware tools on the wiki

I was very surprised to see that VMware had provided sample code for their SVGA interface. They even have samples for some of the more advanced features, which I need to look into. Some parts of their API are rather obtuse, though - I think I've implemented cleaner approaches in mine, and hopefully they're easier to understand.
Post Reply