Clear Specifications for Web Browser, Goals and Pictures :D

Emerald-browser

Goals

Not bothersome (person shouldn't be bothered by anything)
Full control
To be fully written in C += 2

* Uses the same engine as Chrome, with QWebEngine

Ubuntu and fedora have packages

emerald-browser [number of terminals, default 1]

C += 2 compiler is called "g+". It's a wrapper for g++

Usage

g+ foo.cpp -O3 -Wall -Wextra -o foo

Example C += 2 program

···

---------------------------------------

main
puts("Hello world")

--------------------------------------

(No need for #includes)

g+ is written in Ruby. It could be ported to Crystal

TODO

1. Make g+ work better

It doesn't support classes, structs or namespaces currently

You can always #include C++ or C files though

C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.

Some things I want to implement

These should be a single unary option buton, like what GNOME 40 or Chrome
has.
In that, there should be many options. Maybe even things like Update System
There should be a close button for panes.
The source code should be tidied up, but please don't clutter it with too
much OOP.
Currently, everything gets googled. There could be a cache of some kind.
Everything you would want to do on your computer, should be doable in this
program. Currently, it makes a full-screen widget.

If there could be a Compiz cube for tabs, that would be really interesting.

There was a program that converted Chrome tabs to a filesystem extension.
Maybe something like this could be added.

Port to Mac.

Port to Windows??? No Terminal then

Port to FreeBSD

Would need to work for certain in X and Wayland

open should be improved

To open tabs, do

open [query1] [query2?]... (number of Google results per query to show in
panes)

Example

open 'ruby talk' 'ruby docs' 3

That would open 3 google results for ruby talk, and 3 google results for
ruby docs

googler is used to search Google.
Googler is used to search google. Googler is automatically installed.

Googler is written in python

* This browser should be as fast or faster than Chrome.

* Downloads don't currently work
* Fullscreen doesn't currently work
* Opening pages in new tabs doesn't currently work
* You currently can't close tabs, only open them
* The simplest way to close the browser currently is killall emerald-browser
* Add signal and slot to close program when window closes. This doesn't
currently happen.

Back and forward buttons should be added, somewhere.

Currently, you can right click, and do navigation

A way to type in addresses manually should be added.

Currently, you can do echo [full url] > /tmp/emerald-browser-fifo

Doing echo '/home/' > /tmp/emerald-browser-fifo should work

* Multiple instances needs to work

* Want installation to be super simple. Download a binary

* Let's get a fully functional browser, THEN care about packaging

If there could be a flip 3d for tabs, that would be cool

Does anyone know bcat? It's a Ruby program :slight_smile:

It's browser cat

One uses it like this

sudo yum upgrade | bcat

One sees the output in their browser

It's not my program

There's an interesting cover flow widget for Qt. Maybe that could be useful.

Some pictures






With Compiz


Gregory Cohen

main
[indentation]puts("Hello world")

···

On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

Emerald-browser

Goals

Not bothersome (person shouldn't be bothered by anything)
Full control
To be fully written in C += 2

* Uses the same engine as Chrome, with QWebEngine

Ubuntu and fedora have packages

emerald-browser [number of terminals, default 1]

C += 2 compiler is called "g+". It's a wrapper for g++

Usage

g+ foo.cpp -O3 -Wall -Wextra -o foo

Example C += 2 program

---------------------------------------

main
puts("Hello world")

--------------------------------------

(No need for #includes)

g+ is written in Ruby. It could be ported to Crystal

TODO

1. Make g+ work better

It doesn't support classes, structs or namespaces currently

You can always #include C++ or C files though

C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.

Some things I want to implement

These should be a single unary option buton, like what GNOME 40 or Chrome
has.
In that, there should be many options. Maybe even things like Update System
There should be a close button for panes.
The source code should be tidied up, but please don't clutter it with too
much OOP.
Currently, everything gets googled. There could be a cache of some kind.
Everything you would want to do on your computer, should be doable in this
program. Currently, it makes a full-screen widget.

If there could be a Compiz cube for tabs, that would be really interesting.

There was a program that converted Chrome tabs to a filesystem extension.
Maybe something like this could be added.

Port to Mac.

Port to Windows??? No Terminal then

Port to FreeBSD

Would need to work for certain in X and Wayland

open should be improved

To open tabs, do

open [query1] [query2?]... (number of Google results per query to show in
panes)

Example

open 'ruby talk' 'ruby docs' 3

That would open 3 google results for ruby talk, and 3 google results for
ruby docs

googler is used to search Google.
Googler is used to search google. Googler is automatically installed.

Googler is written in python

* This browser should be as fast or faster than Chrome.

* Downloads don't currently work
* Fullscreen doesn't currently work
* Opening pages in new tabs doesn't currently work
* You currently can't close tabs, only open them
* The simplest way to close the browser currently is killall
emerald-browser
* Add signal and slot to close program when window closes. This doesn't
currently happen.

Back and forward buttons should be added, somewhere.

Currently, you can right click, and do navigation

A way to type in addresses manually should be added.

Currently, you can do echo [full url] > /tmp/emerald-browser-fifo

Doing echo '/home/' > /tmp/emerald-browser-fifo should work

* Multiple instances needs to work

* Want installation to be super simple. Download a binary

* Let's get a fully functional browser, THEN care about packaging

If there could be a flip 3d for tabs, that would be cool

Does anyone know bcat? It's a Ruby program :slight_smile:

It's browser cat

One uses it like this

sudo yum upgrade | bcat

One sees the output in their browser

It's not my program

There's an interesting cover flow widget for Qt. Maybe that could be
useful.

Some pictures

https://imgur.com/4vRpN9m.png
https://imgur.com/qKNkHxR.png
https://imgur.com/vBy9XnW.png
https://imgur.com/0zv6oSc.png
https://imgur.com/4vRpN9m.png
https://imgur.com/WRVB9X1.png

With Compiz

https://imgur.com/sTzNUm9.png
https://imgur.com/T9BeS0o.png

Gregory Cohen

echo "open /home/" > /tmp/emerald-browser-fifo

···

On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

main
[indentation]puts("Hello world")

On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:

Emerald-browser

Goals

Not bothersome (person shouldn't be bothered by anything)
Full control
To be fully written in C += 2

* Uses the same engine as Chrome, with QWebEngine

Ubuntu and fedora have packages

emerald-browser [number of terminals, default 1]

C += 2 compiler is called "g+". It's a wrapper for g++

Usage

g+ foo.cpp -O3 -Wall -Wextra -o foo

Example C += 2 program

---------------------------------------

main
puts("Hello world")

--------------------------------------

(No need for #includes)

g+ is written in Ruby. It could be ported to Crystal

TODO

1. Make g+ work better

It doesn't support classes, structs or namespaces currently

You can always #include C++ or C files though

C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.

Some things I want to implement

These should be a single unary option buton, like what GNOME 40 or Chrome
has.
In that, there should be many options. Maybe even things like Update
System
There should be a close button for panes.
The source code should be tidied up, but please don't clutter it with too
much OOP.
Currently, everything gets googled. There could be a cache of some kind.
Everything you would want to do on your computer, should be doable in
this program. Currently, it makes a full-screen widget.

If there could be a Compiz cube for tabs, that would be really
interesting.

There was a program that converted Chrome tabs to a filesystem extension.
Maybe something like this could be added.

Port to Mac.

Port to Windows??? No Terminal then

Port to FreeBSD

Would need to work for certain in X and Wayland

open should be improved

To open tabs, do

open [query1] [query2?]... (number of Google results per query to show in
panes)

Example

open 'ruby talk' 'ruby docs' 3

That would open 3 google results for ruby talk, and 3 google results for
ruby docs

googler is used to search Google.
Googler is used to search google. Googler is automatically installed.

Googler is written in python

* This browser should be as fast or faster than Chrome.

* Downloads don't currently work
* Fullscreen doesn't currently work
* Opening pages in new tabs doesn't currently work
* You currently can't close tabs, only open them
* The simplest way to close the browser currently is killall
emerald-browser
* Add signal and slot to close program when window closes. This doesn't
currently happen.

Back and forward buttons should be added, somewhere.

Currently, you can right click, and do navigation

A way to type in addresses manually should be added.

Currently, you can do echo [full url] > /tmp/emerald-browser-fifo

Doing echo '/home/' > /tmp/emerald-browser-fifo should work

* Multiple instances needs to work

* Want installation to be super simple. Download a binary

* Let's get a fully functional browser, THEN care about packaging

If there could be a flip 3d for tabs, that would be cool

Does anyone know bcat? It's a Ruby program :slight_smile:

It's browser cat

One uses it like this

sudo yum upgrade | bcat

One sees the output in their browser

It's not my program

There's an interesting cover flow widget for Qt. Maybe that could be
useful.

Some pictures

https://imgur.com/4vRpN9m.png
https://imgur.com/qKNkHxR.png
https://imgur.com/vBy9XnW.png
https://imgur.com/0zv6oSc.png
https://imgur.com/4vRpN9m.png
https://imgur.com/WRVB9X1.png

With Compiz

https://imgur.com/sTzNUm9.png
https://imgur.com/T9BeS0o.png

Gregory Cohen

BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
before in Ruby (but it totally sucked):

Still, there is an option to make it use the latest Chromium and look
much better (using SWT):

Thank me once you've utilized that option and built yourself an
awesome web browser, and share it with us once completed... I'm
interested!

···

On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

echo "open /home/" > /tmp/emerald-browser-fifo

On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

main
[indentation]puts("Hello world")

On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

Emerald-browser

Goals

Not bothersome (person shouldn't be bothered by anything)
Full control
To be fully written in C += 2

* Uses the same engine as Chrome, with QWebEngine

Ubuntu and fedora have packages

emerald-browser [number of terminals, default 1]

C += 2 compiler is called "g+". It's a wrapper for g++

Usage

g+ foo.cpp -O3 -Wall -Wextra -o foo

Example C += 2 program

---------------------------------------

main
puts("Hello world")

--------------------------------------

(No need for #includes)

g+ is written in Ruby. It could be ported to Crystal

TODO

1. Make g+ work better

It doesn't support classes, structs or namespaces currently

You can always #include C++ or C files though

C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO ANYTHING C++ CAN DO AND MORE.

Some things I want to implement

These should be a single unary option buton, like what GNOME 40 or Chrome has.
In that, there should be many options. Maybe even things like Update System
There should be a close button for panes.
The source code should be tidied up, but please don't clutter it with too much OOP.
Currently, everything gets googled. There could be a cache of some kind.
Everything you would want to do on your computer, should be doable in this program. Currently, it makes a full-screen widget.

If there could be a Compiz cube for tabs, that would be really interesting.

There was a program that converted Chrome tabs to a filesystem extension. Maybe something like this could be added.

Port to Mac.

Port to Windows??? No Terminal then

Port to FreeBSD

Would need to work for certain in X and Wayland

open should be improved

To open tabs, do

open [query1] [query2?]... (number of Google results per query to show in panes)

Example

open 'ruby talk' 'ruby docs' 3

That would open 3 google results for ruby talk, and 3 google results for ruby docs

googler is used to search Google.
Googler is used to search google. Googler is automatically installed.

Googler is written in python

* This browser should be as fast or faster than Chrome.

* Downloads don't currently work
* Fullscreen doesn't currently work
* Opening pages in new tabs doesn't currently work
* You currently can't close tabs, only open them
* The simplest way to close the browser currently is killall emerald-browser
* Add signal and slot to close program when window closes. This doesn't currently happen.

Back and forward buttons should be added, somewhere.

Currently, you can right click, and do navigation

A way to type in addresses manually should be added.

Currently, you can do echo [full url] > /tmp/emerald-browser-fifo

Doing echo '/home/' > /tmp/emerald-browser-fifo should work

* Multiple instances needs to work

* Want installation to be super simple. Download a binary

* Let's get a fully functional browser, THEN care about packaging

If there could be a flip 3d for tabs, that would be cool

Does anyone know bcat? It's a Ruby program :slight_smile:

It's browser cat

One uses it like this

sudo yum upgrade | bcat

One sees the output in their browser

It's not my program

There's an interesting cover flow widget for Qt. Maybe that could be useful.

Some pictures

https://imgur.com/4vRpN9m.png
https://imgur.com/qKNkHxR.png
https://imgur.com/vBy9XnW.png
https://imgur.com/0zv6oSc.png
https://imgur.com/4vRpN9m.png
https://imgur.com/WRVB9X1.png

With Compiz

https://imgur.com/sTzNUm9.png
https://imgur.com/T9BeS0o.png

Gregory Cohen

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Phone: 438-835-5602

Dude, all pictures that I've seen of SWT on Linux have looked bad, and
wrong.

Not on Windows and Mac, but Linux.

People in the Linux world use GTK and QT.

···

On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:

BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
before in Ruby (but it totally sucked):
GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT

Still, there is an option to make it use the latest Chromium and look
much better (using SWT):
JxBrowser — a Chromium-based Swing/JavaFX/SWT component

Thank me once you've utilized that option and built yourself an
awesome web browser, and share it with us once completed... I'm
interested!

On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
>
>
> echo "open /home/" > /tmp/emerald-browser-fifo
>
>
>
> On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>
>> main
>> [indentation]puts("Hello world")
>>
>> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>>
>>>
>>>
>>> Emerald-browser
>>>
>>> Goals
>>>
>>> Not bothersome (person shouldn't be bothered by anything)
>>> Full control
>>> To be fully written in C += 2
>>>
>>>
>>>
>>> * Uses the same engine as Chrome, with QWebEngine
>>>
>>> Ubuntu and fedora have packages
>>>
>>>
>>> emerald-browser [number of terminals, default 1]
>>>
>>>
>>> C += 2 compiler is called "g+". It's a wrapper for g++
>>>
>>> Usage
>>>
>>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>>>
>>>
>>> Example C += 2 program
>>>
>>>
>>> ---------------------------------------
>>>
>>> main
>>> puts("Hello world")
>>>
>>> --------------------------------------
>>>
>>>
>>>
>>>
>>> (No need for #includes)
>>>
>>>
>>> g+ is written in Ruby. It could be ported to Crystal
>>>
>>> TODO
>>>
>>> 1. Make g+ work better
>>>
>>> It doesn't support classes, structs or namespaces currently
>>>
>>> You can always #include C++ or C files though
>>>
>>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.
>>>
>>>
>>>
>>> Some things I want to implement
>>>
>>>
>>>
>>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>>> In that, there should be many options. Maybe even things like Update
System
>>> There should be a close button for panes.
>>> The source code should be tidied up, but please don't clutter it with
too much OOP.
>>> Currently, everything gets googled. There could be a cache of some
kind.
>>> Everything you would want to do on your computer, should be doable in
this program. Currently, it makes a full-screen widget.
>>>
>>> If there could be a Compiz cube for tabs, that would be really
interesting.
>>>
>>>
>>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>>>
>>>
>>> Port to Mac.
>>>
>>> Port to Windows??? No Terminal then
>>>
>>> Port to FreeBSD
>>>
>>> Would need to work for certain in X and Wayland
>>>
>>> open should be improved
>>>
>>>
>>> To open tabs, do
>>>
>>>
>>> open [query1] [query2?]... (number of Google results per query to show
in panes)
>>>
>>>
>>> Example
>>>
>>> open 'ruby talk' 'ruby docs' 3
>>>
>>> That would open 3 google results for ruby talk, and 3 google results
for ruby docs
>>>
>>>
>>>
>>>
>>> googler is used to search Google.
>>> Googler is used to search google. Googler is automatically installed.
>>>
>>> Googler is written in python
>>>
>>>
>>> * This browser should be as fast or faster than Chrome.
>>>
>>>
>>> * Downloads don't currently work
>>> * Fullscreen doesn't currently work
>>> * Opening pages in new tabs doesn't currently work
>>> * You currently can't close tabs, only open them
>>> * The simplest way to close the browser currently is killall
emerald-browser
>>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Back and forward buttons should be added, somewhere.
>>>
>>> Currently, you can right click, and do navigation
>>>
>>> A way to type in addresses manually should be added.
>>>
>>>
>>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>>>
>>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>>>
>>>
>>>
>>> * Multiple instances needs to work
>>>
>>>
>>> * Want installation to be super simple. Download a binary
>>>
>>>
>>> * Let's get a fully functional browser, THEN care about packaging
>>>
>>>
>>>
>>> If there could be a flip 3d for tabs, that would be cool
>>>
>>>
>>> Does anyone know bcat? It's a Ruby program :slight_smile:
>>>
>>> It's browser cat
>>>
>>> One uses it like this
>>>
>>> sudo yum upgrade | bcat
>>>
>>> One sees the output in their browser
>>>
>>> It's not my program
>>>
>>>
>>>
>>>
>>> There's an interesting cover flow widget for Qt. Maybe that could be
useful.
>>>
>>>
>>>
>>> Some pictures
>>>
>>>
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/qKNkHxR.png
>>> https://imgur.com/vBy9XnW.png
>>> https://imgur.com/0zv6oSc.png
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/WRVB9X1.png
>>>
>>>
>>> With Compiz
>>>
>>> https://imgur.com/sTzNUm9.png
>>> https://imgur.com/T9BeS0o.png
>>>
>>>
>>> Gregory Cohen
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Phone: 438-835-5602

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

From what I have noticed, SWT apps have a native theme for GNOME, but not for KDE. The thing you posted is just the Adwaita GTK theme, which simply is the default theme of the GNOME 3+ desktop. Unless something changed, things are not really so pretty for KDE users, where it defaults to the Motif theme.

···

On 10/20/21 06:10, Gregory Cohen wrote:

Dude, all pictures that I've seen of SWT on Linux have looked bad, and wrong.

Not on Windows and Mac, but Linux.

People in the Linux world use GTK and QT.

On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:

    BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
    before in Ruby (but it totally sucked):
    GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT

    Still, there is an option to make it use the latest Chromium and look
    much better (using SWT):
    JxBrowser — a Chromium-based Swing/JavaFX/SWT component

    Thank me once you've utilized that option and built yourself an
    awesome web browser, and share it with us once completed... I'm
    interested!

The default theme for GNOME 3?

That looked hideous!

That is not default for GNOME 3 from what I've seen

···

On Wed, Oct 20, 2021 at 12:14 AM hmdne <hmdne@airmail.cc> wrote:

From what I have noticed, SWT apps have a native theme for GNOME, but
not for KDE. The thing you posted is just the Adwaita GTK theme, which
simply is the default theme of the GNOME 3+ desktop. Unless something
changed, things are not really so pretty for KDE users, where it
defaults to the Motif theme.

On 10/20/21 06:10, Gregory Cohen wrote:
> Dude, all pictures that I've seen of SWT on Linux have looked bad, and
> wrong.
>
> Not on Windows and Mac, but Linux.
>
> People in the Linux world use GTK and QT.
>
>
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:
>
> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
> before in Ruby (but it totally sucked):
> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>
> Still, there is an option to make it use the latest Chromium and look
> much better (using SWT):
> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
>
> Thank me once you've utilized that option and built yourself an
> awesome web browser, and share it with us once completed... I'm
> interested!
>

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

Which is better, SWT's Chromium or QWebEngine?

Does SWT even have a package for Linux? LibUI looks kind of cool though,
the other stuff is probably not that much for me

Show me a picture of SWT or Tk on Linux that looks really good

···

On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:

BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
before in Ruby (but it totally sucked):
GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT

Still, there is an option to make it use the latest Chromium and look
much better (using SWT):
JxBrowser — a Chromium-based Swing/JavaFX/SWT component

Thank me once you've utilized that option and built yourself an
awesome web browser, and share it with us once completed... I'm
interested!

On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
>
>
> echo "open /home/" > /tmp/emerald-browser-fifo
>
>
>
> On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>
>> main
>> [indentation]puts("Hello world")
>>
>> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>>
>>>
>>>
>>> Emerald-browser
>>>
>>> Goals
>>>
>>> Not bothersome (person shouldn't be bothered by anything)
>>> Full control
>>> To be fully written in C += 2
>>>
>>>
>>>
>>> * Uses the same engine as Chrome, with QWebEngine
>>>
>>> Ubuntu and fedora have packages
>>>
>>>
>>> emerald-browser [number of terminals, default 1]
>>>
>>>
>>> C += 2 compiler is called "g+". It's a wrapper for g++
>>>
>>> Usage
>>>
>>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>>>
>>>
>>> Example C += 2 program
>>>
>>>
>>> ---------------------------------------
>>>
>>> main
>>> puts("Hello world")
>>>
>>> --------------------------------------
>>>
>>>
>>>
>>>
>>> (No need for #includes)
>>>
>>>
>>> g+ is written in Ruby. It could be ported to Crystal
>>>
>>> TODO
>>>
>>> 1. Make g+ work better
>>>
>>> It doesn't support classes, structs or namespaces currently
>>>
>>> You can always #include C++ or C files though
>>>
>>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.
>>>
>>>
>>>
>>> Some things I want to implement
>>>
>>>
>>>
>>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>>> In that, there should be many options. Maybe even things like Update
System
>>> There should be a close button for panes.
>>> The source code should be tidied up, but please don't clutter it with
too much OOP.
>>> Currently, everything gets googled. There could be a cache of some
kind.
>>> Everything you would want to do on your computer, should be doable in
this program. Currently, it makes a full-screen widget.
>>>
>>> If there could be a Compiz cube for tabs, that would be really
interesting.
>>>
>>>
>>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>>>
>>>
>>> Port to Mac.
>>>
>>> Port to Windows??? No Terminal then
>>>
>>> Port to FreeBSD
>>>
>>> Would need to work for certain in X and Wayland
>>>
>>> open should be improved
>>>
>>>
>>> To open tabs, do
>>>
>>>
>>> open [query1] [query2?]... (number of Google results per query to show
in panes)
>>>
>>>
>>> Example
>>>
>>> open 'ruby talk' 'ruby docs' 3
>>>
>>> That would open 3 google results for ruby talk, and 3 google results
for ruby docs
>>>
>>>
>>>
>>>
>>> googler is used to search Google.
>>> Googler is used to search google. Googler is automatically installed.
>>>
>>> Googler is written in python
>>>
>>>
>>> * This browser should be as fast or faster than Chrome.
>>>
>>>
>>> * Downloads don't currently work
>>> * Fullscreen doesn't currently work
>>> * Opening pages in new tabs doesn't currently work
>>> * You currently can't close tabs, only open them
>>> * The simplest way to close the browser currently is killall
emerald-browser
>>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Back and forward buttons should be added, somewhere.
>>>
>>> Currently, you can right click, and do navigation
>>>
>>> A way to type in addresses manually should be added.
>>>
>>>
>>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>>>
>>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>>>
>>>
>>>
>>> * Multiple instances needs to work
>>>
>>>
>>> * Want installation to be super simple. Download a binary
>>>
>>>
>>> * Let's get a fully functional browser, THEN care about packaging
>>>
>>>
>>>
>>> If there could be a flip 3d for tabs, that would be cool
>>>
>>>
>>> Does anyone know bcat? It's a Ruby program :slight_smile:
>>>
>>> It's browser cat
>>>
>>> One uses it like this
>>>
>>> sudo yum upgrade | bcat
>>>
>>> One sees the output in their browser
>>>
>>> It's not my program
>>>
>>>
>>>
>>>
>>> There's an interesting cover flow widget for Qt. Maybe that could be
useful.
>>>
>>>
>>>
>>> Some pictures
>>>
>>>
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/qKNkHxR.png
>>> https://imgur.com/vBy9XnW.png
>>> https://imgur.com/0zv6oSc.png
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/WRVB9X1.png
>>>
>>>
>>> With Compiz
>>>
>>> https://imgur.com/sTzNUm9.png
>>> https://imgur.com/T9BeS0o.png
>>>
>>>
>>> Gregory Cohen
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Phone: 438-835-5602

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

One more thing

A web browser should only be built using C, C++ or Rust

That is what I was doing

···

On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:

BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
before in Ruby (but it totally sucked):
GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT

Still, there is an option to make it use the latest Chromium and look
much better (using SWT):
JxBrowser — a Chromium-based Swing/JavaFX/SWT component

Thank me once you've utilized that option and built yourself an
awesome web browser, and share it with us once completed... I'm
interested!

On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
>
>
> echo "open /home/" > /tmp/emerald-browser-fifo
>
>
>
> On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>
>> main
>> [indentation]puts("Hello world")
>>
>> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>>>
>>>
>>>
>>> Emerald-browser
>>>
>>> Goals
>>>
>>> Not bothersome (person shouldn't be bothered by anything)
>>> Full control
>>> To be fully written in C += 2
>>>
>>>
>>>
>>> * Uses the same engine as Chrome, with QWebEngine
>>>
>>> Ubuntu and fedora have packages
>>>
>>>
>>> emerald-browser [number of terminals, default 1]
>>>
>>>
>>> C += 2 compiler is called "g+". It's a wrapper for g++
>>>
>>> Usage
>>>
>>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>>>
>>>
>>> Example C += 2 program
>>>
>>>
>>> ---------------------------------------
>>>
>>> main
>>> puts("Hello world")
>>>
>>> --------------------------------------
>>>
>>>
>>>
>>>
>>> (No need for #includes)
>>>
>>>
>>> g+ is written in Ruby. It could be ported to Crystal
>>>
>>> TODO
>>>
>>> 1. Make g+ work better
>>>
>>> It doesn't support classes, structs or namespaces currently
>>>
>>> You can always #include C++ or C files though
>>>
>>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO
ANYTHING C++ CAN DO AND MORE.
>>>
>>>
>>>
>>> Some things I want to implement
>>>
>>>
>>>
>>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>>> In that, there should be many options. Maybe even things like Update
System
>>> There should be a close button for panes.
>>> The source code should be tidied up, but please don't clutter it with
too much OOP.
>>> Currently, everything gets googled. There could be a cache of some
kind.
>>> Everything you would want to do on your computer, should be doable in
this program. Currently, it makes a full-screen widget.
>>>
>>> If there could be a Compiz cube for tabs, that would be really
interesting.
>>>
>>>
>>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>>>
>>>
>>> Port to Mac.
>>>
>>> Port to Windows??? No Terminal then
>>>
>>> Port to FreeBSD
>>>
>>> Would need to work for certain in X and Wayland
>>>
>>> open should be improved
>>>
>>>
>>> To open tabs, do
>>>
>>>
>>> open [query1] [query2?]... (number of Google results per query to show
in panes)
>>>
>>>
>>> Example
>>>
>>> open 'ruby talk' 'ruby docs' 3
>>>
>>> That would open 3 google results for ruby talk, and 3 google results
for ruby docs
>>>
>>>
>>>
>>>
>>> googler is used to search Google.
>>> Googler is used to search google. Googler is automatically installed.
>>>
>>> Googler is written in python
>>>
>>>
>>> * This browser should be as fast or faster than Chrome.
>>>
>>>
>>> * Downloads don't currently work
>>> * Fullscreen doesn't currently work
>>> * Opening pages in new tabs doesn't currently work
>>> * You currently can't close tabs, only open them
>>> * The simplest way to close the browser currently is killall
emerald-browser
>>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Back and forward buttons should be added, somewhere.
>>>
>>> Currently, you can right click, and do navigation
>>>
>>> A way to type in addresses manually should be added.
>>>
>>>
>>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>>>
>>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>>>
>>>
>>>
>>> * Multiple instances needs to work
>>>
>>>
>>> * Want installation to be super simple. Download a binary
>>>
>>>
>>> * Let's get a fully functional browser, THEN care about packaging
>>>
>>>
>>>
>>> If there could be a flip 3d for tabs, that would be cool
>>>
>>>
>>> Does anyone know bcat? It's a Ruby program :slight_smile:
>>>
>>> It's browser cat
>>>
>>> One uses it like this
>>>
>>> sudo yum upgrade | bcat
>>>
>>> One sees the output in their browser
>>>
>>> It's not my program
>>>
>>>
>>>
>>>
>>> There's an interesting cover flow widget for Qt. Maybe that could be
useful.
>>>
>>>
>>>
>>> Some pictures
>>>
>>>
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/qKNkHxR.png
>>> https://imgur.com/vBy9XnW.png
>>> https://imgur.com/0zv6oSc.png
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/WRVB9X1.png
>>>
>>>
>>> With Compiz
>>>
>>> https://imgur.com/sTzNUm9.png
>>> https://imgur.com/T9BeS0o.png
>>>
>>>
>>> Gregory Cohen
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Phone: 438-835-5602

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

"A web browser should only be built using C, C++ or Rust"

I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.

That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.

SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.

I don't know anything about QT widgets. I only know enough to avoid QT.

By the way, here are some Linux GUI examples built with SWT:



It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.

I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:

Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(Tcl/Tk 8.5.

Anyways, thanks for the info about Linux GUI.

I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.

···

On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:

One more thing

A web browser should only be built using C, C++ or Rust

That is what I was doing

On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:

BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
before in Ruby (but it totally sucked):
GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT

Still, there is an option to make it use the latest Chromium and look
much better (using SWT):
JxBrowser — a Chromium-based Swing/JavaFX/SWT component

Thank me once you've utilized that option and built yourself an
awesome web browser, and share it with us once completed... I'm
interested!

On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>
>
>
> echo "open /home/" > /tmp/emerald-browser-fifo
>
>
>
> On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>>
>> main
>> [indentation]puts("Hello world")
>>
>> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>>>
>>>
>>>
>>> Emerald-browser
>>>
>>> Goals
>>>
>>> Not bothersome (person shouldn't be bothered by anything)
>>> Full control
>>> To be fully written in C += 2
>>>
>>>
>>>
>>> * Uses the same engine as Chrome, with QWebEngine
>>>
>>> Ubuntu and fedora have packages
>>>
>>>
>>> emerald-browser [number of terminals, default 1]
>>>
>>>
>>> C += 2 compiler is called "g+". It's a wrapper for g++
>>>
>>> Usage
>>>
>>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>>>
>>>
>>> Example C += 2 program
>>>
>>>
>>> ---------------------------------------
>>>
>>> main
>>> puts("Hello world")
>>>
>>> --------------------------------------
>>>
>>>
>>>
>>>
>>> (No need for #includes)
>>>
>>>
>>> g+ is written in Ruby. It could be ported to Crystal
>>>
>>> TODO
>>>
>>> 1. Make g+ work better
>>>
>>> It doesn't support classes, structs or namespaces currently
>>>
>>> You can always #include C++ or C files though
>>>
>>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO ANYTHING C++ CAN DO AND MORE.
>>>
>>>
>>>
>>> Some things I want to implement
>>>
>>>
>>>
>>> These should be a single unary option buton, like what GNOME 40 or Chrome has.
>>> In that, there should be many options. Maybe even things like Update System
>>> There should be a close button for panes.
>>> The source code should be tidied up, but please don't clutter it with too much OOP.
>>> Currently, everything gets googled. There could be a cache of some kind.
>>> Everything you would want to do on your computer, should be doable in this program. Currently, it makes a full-screen widget.
>>>
>>> If there could be a Compiz cube for tabs, that would be really interesting.
>>>
>>>
>>> There was a program that converted Chrome tabs to a filesystem extension. Maybe something like this could be added.
>>>
>>>
>>> Port to Mac.
>>>
>>> Port to Windows??? No Terminal then
>>>
>>> Port to FreeBSD
>>>
>>> Would need to work for certain in X and Wayland
>>>
>>> open should be improved
>>>
>>>
>>> To open tabs, do
>>>
>>>
>>> open [query1] [query2?]... (number of Google results per query to show in panes)
>>>
>>>
>>> Example
>>>
>>> open 'ruby talk' 'ruby docs' 3
>>>
>>> That would open 3 google results for ruby talk, and 3 google results for ruby docs
>>>
>>>
>>>
>>>
>>> googler is used to search Google.
>>> Googler is used to search google. Googler is automatically installed.
>>>
>>> Googler is written in python
>>>
>>>
>>> * This browser should be as fast or faster than Chrome.
>>>
>>>
>>> * Downloads don't currently work
>>> * Fullscreen doesn't currently work
>>> * Opening pages in new tabs doesn't currently work
>>> * You currently can't close tabs, only open them
>>> * The simplest way to close the browser currently is killall emerald-browser
>>> * Add signal and slot to close program when window closes. This doesn't currently happen.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Back and forward buttons should be added, somewhere.
>>>
>>> Currently, you can right click, and do navigation
>>>
>>> A way to type in addresses manually should be added.
>>>
>>>
>>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>>>
>>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>>>
>>>
>>>
>>> * Multiple instances needs to work
>>>
>>>
>>> * Want installation to be super simple. Download a binary
>>>
>>>
>>> * Let's get a fully functional browser, THEN care about packaging
>>>
>>>
>>>
>>> If there could be a flip 3d for tabs, that would be cool
>>>
>>>
>>> Does anyone know bcat? It's a Ruby program :slight_smile:
>>>
>>> It's browser cat
>>>
>>> One uses it like this
>>>
>>> sudo yum upgrade | bcat
>>>
>>> One sees the output in their browser
>>>
>>> It's not my program
>>>
>>>
>>>
>>>
>>> There's an interesting cover flow widget for Qt. Maybe that could be useful.
>>>
>>>
>>>
>>> Some pictures
>>>
>>>
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/qKNkHxR.png
>>> https://imgur.com/vBy9XnW.png
>>> https://imgur.com/0zv6oSc.png
>>> https://imgur.com/4vRpN9m.png
>>> https://imgur.com/WRVB9X1.png
>>>
>>>
>>> With Compiz
>>>
>>> https://imgur.com/sTzNUm9.png
>>> https://imgur.com/T9BeS0o.png
>>>
>>>
>>> Gregory Cohen
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva
Phone: 438-835-5602

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

PSA Reminder:

Can we please follow the netiquette at least occasionally, as suggested
by the Ruby Talk Guidelines for this mailing list[1].

I point to this numbered section 2, and specifically sub-paragraph 1
along with the first bullet:

1 The general format guidelines (aka Netiquette) are matters of common
  sense and common courtesy that make life easier for third parties to
  follow along (in real time or when perusing archives):

   - Please note: Include quoted text from previous posts before your
     responses and selectively quote as much as is relevant.

[1]: Posting Guidelines for the Ruby-Talk Mailing List

I did this in my post recent post (the long one)

···

On Wed, Oct 20, 2021 at 7:08 PM Victor Goff <keeperotphones@gmail.com> wrote:

PSA Reminder:

Can we please follow the netiquette at least occasionally, as suggested
by the Ruby Talk Guidelines for this mailing list[1].

I point to this numbered section 2, and specifically sub-paragraph 1
along with the first bullet:

1 The general format guidelines (aka Netiquette) are matters of common
  sense and common courtesy that make life easier for third parties to
  follow along (in real time or when perusing archives):

   - Please note: Include quoted text from previous posts before your
     responses and selectively quote as much as is relevant.

[1]:
Posting Guidelines for the Ruby-Talk Mailing List

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

most recent post

···

On Wed, Oct 20, 2021 at 8:57 PM Gregory Cohen <gregorycohen2@gmail.com> wrote:

I did this in my post recent post (the long one)

On Wed, Oct 20, 2021 at 7:08 PM Victor Goff <keeperotphones@gmail.com> > wrote:

PSA Reminder:

Can we please follow the netiquette at least occasionally, as suggested
by the Ruby Talk Guidelines for this mailing list[1].

I point to this numbered section 2, and specifically sub-paragraph 1
along with the first bullet:

1 The general format guidelines (aka Netiquette) are matters of common
  sense and common courtesy that make life easier for third parties to
  follow along (in real time or when perusing archives):

   - Please note: Include quoted text from previous posts before your
     responses and selectively quote as much as is relevant.

[1]:
Posting Guidelines for the Ruby-Talk Mailing List

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

At this point, the things that my web pages show (all 3 of them) are what I
care about more than my other software.

Would you want to work on C += 2? It's kind of the greatest programming
language there is, but it is quite incomplete.

Syntax of Ruby and Python (and bash too) + modern C++ = best of all
possible worlds.

It's written in Ruby

It's just a transpiler

···

On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:

"A web browser should only be built using C, C++ or Rust"

I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.

That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.

SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.

I don't know anything about QT widgets. I only know enough to avoid QT.

By the way, here are some Linux GUI examples built with SWT:

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png

It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.

I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:
glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub

Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(
Tcl/Tk 8.5.
).

Anyways, thanks for the info about Linux GUI.

I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.

On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
> One more thing
>
> A web browser should only be built using C, C++ or Rust
>
> That is what I was doing
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:
>>
>> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
>> before in Ruby (but it totally sucked):
>> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>>
>> Still, there is an option to make it use the latest Chromium and look
>> much better (using SWT):
>> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
>>
>> Thank me once you've utilized that option and built yourself an
>> awesome web browser, and share it with us once completed... I'm
>> interested!
>>
>> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>> >
>> >
>> >
>> > echo "open /home/" > /tmp/emerald-browser-fifo
>> >
>> >
>> >
>> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>
>> >> main
>> >> [indentation]puts("Hello world")
>> >>
>> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>>
>> >>>
>> >>>
>> >>> Emerald-browser
>> >>>
>> >>> Goals
>> >>>
>> >>> Not bothersome (person shouldn't be bothered by anything)
>> >>> Full control
>> >>> To be fully written in C += 2
>> >>>
>> >>>
>> >>>
>> >>> * Uses the same engine as Chrome, with QWebEngine
>> >>>
>> >>> Ubuntu and fedora have packages
>> >>>
>> >>>
>> >>> emerald-browser [number of terminals, default 1]
>> >>>
>> >>>
>> >>> C += 2 compiler is called "g+". It's a wrapper for g++
>> >>>
>> >>> Usage
>> >>>
>> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>> >>>
>> >>>
>> >>> Example C += 2 program
>> >>>
>> >>>
>> >>> ---------------------------------------
>> >>>
>> >>> main
>> >>> puts("Hello world")
>> >>>
>> >>> --------------------------------------
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> (No need for #includes)
>> >>>
>> >>>
>> >>> g+ is written in Ruby. It could be ported to Crystal
>> >>>
>> >>> TODO
>> >>>
>> >>> 1. Make g+ work better
>> >>>
>> >>> It doesn't support classes, structs or namespaces currently
>> >>>
>> >>> You can always #include C++ or C files though
>> >>>
>> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN
DO ANYTHING C++ CAN DO AND MORE.
>> >>>
>> >>>
>> >>>
>> >>> Some things I want to implement
>> >>>
>> >>>
>> >>>
>> >>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>> >>> In that, there should be many options. Maybe even things like
Update System
>> >>> There should be a close button for panes.
>> >>> The source code should be tidied up, but please don't clutter it
with too much OOP.
>> >>> Currently, everything gets googled. There could be a cache of some
kind.
>> >>> Everything you would want to do on your computer, should be doable
in this program. Currently, it makes a full-screen widget.
>> >>>
>> >>> If there could be a Compiz cube for tabs, that would be really
interesting.
>> >>>
>> >>>
>> >>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>> >>>
>> >>>
>> >>> Port to Mac.
>> >>>
>> >>> Port to Windows??? No Terminal then
>> >>>
>> >>> Port to FreeBSD
>> >>>
>> >>> Would need to work for certain in X and Wayland
>> >>>
>> >>> open should be improved
>> >>>
>> >>>
>> >>> To open tabs, do
>> >>>
>> >>>
>> >>> open [query1] [query2?]... (number of Google results per query to
show in panes)
>> >>>
>> >>>
>> >>> Example
>> >>>
>> >>> open 'ruby talk' 'ruby docs' 3
>> >>>
>> >>> That would open 3 google results for ruby talk, and 3 google
results for ruby docs
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> googler is used to search Google.
>> >>> Googler is used to search google. Googler is automatically
installed.
>> >>>
>> >>> Googler is written in python
>> >>>
>> >>>
>> >>> * This browser should be as fast or faster than Chrome.
>> >>>
>> >>>
>> >>> * Downloads don't currently work
>> >>> * Fullscreen doesn't currently work
>> >>> * Opening pages in new tabs doesn't currently work
>> >>> * You currently can't close tabs, only open them
>> >>> * The simplest way to close the browser currently is killall
emerald-browser
>> >>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> Back and forward buttons should be added, somewhere.
>> >>>
>> >>> Currently, you can right click, and do navigation
>> >>>
>> >>> A way to type in addresses manually should be added.
>> >>>
>> >>>
>> >>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>> >>>
>> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>> >>>
>> >>>
>> >>>
>> >>> * Multiple instances needs to work
>> >>>
>> >>>
>> >>> * Want installation to be super simple. Download a binary
>> >>>
>> >>>
>> >>> * Let's get a fully functional browser, THEN care about packaging
>> >>>
>> >>>
>> >>>
>> >>> If there could be a flip 3d for tabs, that would be cool
>> >>>
>> >>>
>> >>> Does anyone know bcat? It's a Ruby program :slight_smile:
>> >>>
>> >>> It's browser cat
>> >>>
>> >>> One uses it like this
>> >>>
>> >>> sudo yum upgrade | bcat
>> >>>
>> >>> One sees the output in their browser
>> >>>
>> >>> It's not my program
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> There's an interesting cover flow widget for Qt. Maybe that could
be useful.
>> >>>
>> >>>
>> >>>
>> >>> Some pictures
>> >>>
>> >>>
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/qKNkHxR.png
>> >>> https://imgur.com/vBy9XnW.png
>> >>> https://imgur.com/0zv6oSc.png
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/WRVB9X1.png
>> >>>
>> >>>
>> >>> With Compiz
>> >>>
>> >>> https://imgur.com/sTzNUm9.png
>> >>> https://imgur.com/T9BeS0o.png
>> >>>
>> >>>
>> >>> Gregory Cohen
>> >
>> >
>> > Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>>
>>
>>
>> --
>> Andy Maleh
>>
>> LinkedIn: https://www.linkedin.com/in/andymaleh
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Phone: 438-835-5602
>>
>> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

You are underrating Qt.

Qt is a very, very good library.

It is used for many, many things.

All of which will be as fast or faster than Java.

However, GTK has a more homely feel to it.

It's more elegant.

It's the difference of C vs C++

I want to avoid Java like the plague

Anything Java can do, C++ can do just fine

Only, people don't hate C++, and Java is loathed.

A word of warning.

···

On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:

"A web browser should only be built using C, C++ or Rust"

I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.

That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.

SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.

I don't know anything about QT widgets. I only know enough to avoid QT.

By the way, here are some Linux GUI examples built with SWT:

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png

It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.

I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:
glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub

Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(
Tcl/Tk 8.5.
).

Anyways, thanks for the info about Linux GUI.

I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.

On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
> One more thing
>
> A web browser should only be built using C, C++ or Rust
>
> That is what I was doing
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:
>>
>> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
>> before in Ruby (but it totally sucked):
>> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>>
>> Still, there is an option to make it use the latest Chromium and look
>> much better (using SWT):
>> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
>>
>> Thank me once you've utilized that option and built yourself an
>> awesome web browser, and share it with us once completed... I'm
>> interested!
>>
>> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>> >
>> >
>> >
>> > echo "open /home/" > /tmp/emerald-browser-fifo
>> >
>> >
>> >
>> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>
>> >> main
>> >> [indentation]puts("Hello world")
>> >>
>> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>>
>> >>>
>> >>>
>> >>> Emerald-browser
>> >>>
>> >>> Goals
>> >>>
>> >>> Not bothersome (person shouldn't be bothered by anything)
>> >>> Full control
>> >>> To be fully written in C += 2
>> >>>
>> >>>
>> >>>
>> >>> * Uses the same engine as Chrome, with QWebEngine
>> >>>
>> >>> Ubuntu and fedora have packages
>> >>>
>> >>>
>> >>> emerald-browser [number of terminals, default 1]
>> >>>
>> >>>
>> >>> C += 2 compiler is called "g+". It's a wrapper for g++
>> >>>
>> >>> Usage
>> >>>
>> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>> >>>
>> >>>
>> >>> Example C += 2 program
>> >>>
>> >>>
>> >>> ---------------------------------------
>> >>>
>> >>> main
>> >>> puts("Hello world")
>> >>>
>> >>> --------------------------------------
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> (No need for #includes)
>> >>>
>> >>>
>> >>> g+ is written in Ruby. It could be ported to Crystal
>> >>>
>> >>> TODO
>> >>>
>> >>> 1. Make g+ work better
>> >>>
>> >>> It doesn't support classes, structs or namespaces currently
>> >>>
>> >>> You can always #include C++ or C files though
>> >>>
>> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN
DO ANYTHING C++ CAN DO AND MORE.
>> >>>
>> >>>
>> >>>
>> >>> Some things I want to implement
>> >>>
>> >>>
>> >>>
>> >>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>> >>> In that, there should be many options. Maybe even things like
Update System
>> >>> There should be a close button for panes.
>> >>> The source code should be tidied up, but please don't clutter it
with too much OOP.
>> >>> Currently, everything gets googled. There could be a cache of some
kind.
>> >>> Everything you would want to do on your computer, should be doable
in this program. Currently, it makes a full-screen widget.
>> >>>
>> >>> If there could be a Compiz cube for tabs, that would be really
interesting.
>> >>>
>> >>>
>> >>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>> >>>
>> >>>
>> >>> Port to Mac.
>> >>>
>> >>> Port to Windows??? No Terminal then
>> >>>
>> >>> Port to FreeBSD
>> >>>
>> >>> Would need to work for certain in X and Wayland
>> >>>
>> >>> open should be improved
>> >>>
>> >>>
>> >>> To open tabs, do
>> >>>
>> >>>
>> >>> open [query1] [query2?]... (number of Google results per query to
show in panes)
>> >>>
>> >>>
>> >>> Example
>> >>>
>> >>> open 'ruby talk' 'ruby docs' 3
>> >>>
>> >>> That would open 3 google results for ruby talk, and 3 google
results for ruby docs
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> googler is used to search Google.
>> >>> Googler is used to search google. Googler is automatically
installed.
>> >>>
>> >>> Googler is written in python
>> >>>
>> >>>
>> >>> * This browser should be as fast or faster than Chrome.
>> >>>
>> >>>
>> >>> * Downloads don't currently work
>> >>> * Fullscreen doesn't currently work
>> >>> * Opening pages in new tabs doesn't currently work
>> >>> * You currently can't close tabs, only open them
>> >>> * The simplest way to close the browser currently is killall
emerald-browser
>> >>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> Back and forward buttons should be added, somewhere.
>> >>>
>> >>> Currently, you can right click, and do navigation
>> >>>
>> >>> A way to type in addresses manually should be added.
>> >>>
>> >>>
>> >>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>> >>>
>> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>> >>>
>> >>>
>> >>>
>> >>> * Multiple instances needs to work
>> >>>
>> >>>
>> >>> * Want installation to be super simple. Download a binary
>> >>>
>> >>>
>> >>> * Let's get a fully functional browser, THEN care about packaging
>> >>>
>> >>>
>> >>>
>> >>> If there could be a flip 3d for tabs, that would be cool
>> >>>
>> >>>
>> >>> Does anyone know bcat? It's a Ruby program :slight_smile:
>> >>>
>> >>> It's browser cat
>> >>>
>> >>> One uses it like this
>> >>>
>> >>> sudo yum upgrade | bcat
>> >>>
>> >>> One sees the output in their browser
>> >>>
>> >>> It's not my program
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> There's an interesting cover flow widget for Qt. Maybe that could
be useful.
>> >>>
>> >>>
>> >>>
>> >>> Some pictures
>> >>>
>> >>>
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/qKNkHxR.png
>> >>> https://imgur.com/vBy9XnW.png
>> >>> https://imgur.com/0zv6oSc.png
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/WRVB9X1.png
>> >>>
>> >>>
>> >>> With Compiz
>> >>>
>> >>> https://imgur.com/sTzNUm9.png
>> >>> https://imgur.com/T9BeS0o.png
>> >>>
>> >>>
>> >>> Gregory Cohen
>> >
>> >
>> > Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>>
>>
>>
>> --
>> Andy Maleh
>>
>> LinkedIn: https://www.linkedin.com/in/andymaleh
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Phone: 438-835-5602
>>
>> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

From the sounds of it, QWebEngine is just better than SWT's version of the
same thing.

Linux distros have packages, etc.

···

On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:

"A web browser should only be built using C, C++ or Rust"

I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.

That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.

SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.

I don't know anything about QT widgets. I only know enough to avoid QT.

By the way, here are some Linux GUI examples built with SWT:

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png

https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png

It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.

I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:
glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub

Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(
Tcl/Tk 8.5.
).

Anyways, thanks for the info about Linux GUI.

I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.

On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>
> One more thing
>
> A web browser should only be built using C, C++ or Rust
>
> That is what I was doing
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:
>>
>> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
>> before in Ruby (but it totally sucked):
>> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>>
>> Still, there is an option to make it use the latest Chromium and look
>> much better (using SWT):
>> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
>>
>> Thank me once you've utilized that option and built yourself an
>> awesome web browser, and share it with us once completed... I'm
>> interested!
>>
>> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> > wrote:
>> >
>> >
>> >
>> > echo "open /home/" > /tmp/emerald-browser-fifo
>> >
>> >
>> >
>> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>
>> >> main
>> >> [indentation]puts("Hello world")
>> >>
>> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen < > gregorycohen2@gmail.com> wrote:
>> >>>
>> >>>
>> >>>
>> >>> Emerald-browser
>> >>>
>> >>> Goals
>> >>>
>> >>> Not bothersome (person shouldn't be bothered by anything)
>> >>> Full control
>> >>> To be fully written in C += 2
>> >>>
>> >>>
>> >>>
>> >>> * Uses the same engine as Chrome, with QWebEngine
>> >>>
>> >>> Ubuntu and fedora have packages
>> >>>
>> >>>
>> >>> emerald-browser [number of terminals, default 1]
>> >>>
>> >>>
>> >>> C += 2 compiler is called "g+". It's a wrapper for g++
>> >>>
>> >>> Usage
>> >>>
>> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>> >>>
>> >>>
>> >>> Example C += 2 program
>> >>>
>> >>>
>> >>> ---------------------------------------
>> >>>
>> >>> main
>> >>> puts("Hello world")
>> >>>
>> >>> --------------------------------------
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> (No need for #includes)
>> >>>
>> >>>
>> >>> g+ is written in Ruby. It could be ported to Crystal
>> >>>
>> >>> TODO
>> >>>
>> >>> 1. Make g+ work better
>> >>>
>> >>> It doesn't support classes, structs or namespaces currently
>> >>>
>> >>> You can always #include C++ or C files though
>> >>>
>> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN
DO ANYTHING C++ CAN DO AND MORE.
>> >>>
>> >>>
>> >>>
>> >>> Some things I want to implement
>> >>>
>> >>>
>> >>>
>> >>> These should be a single unary option buton, like what GNOME 40 or
Chrome has.
>> >>> In that, there should be many options. Maybe even things like
Update System
>> >>> There should be a close button for panes.
>> >>> The source code should be tidied up, but please don't clutter it
with too much OOP.
>> >>> Currently, everything gets googled. There could be a cache of some
kind.
>> >>> Everything you would want to do on your computer, should be doable
in this program. Currently, it makes a full-screen widget.
>> >>>
>> >>> If there could be a Compiz cube for tabs, that would be really
interesting.
>> >>>
>> >>>
>> >>> There was a program that converted Chrome tabs to a filesystem
extension. Maybe something like this could be added.
>> >>>
>> >>>
>> >>> Port to Mac.
>> >>>
>> >>> Port to Windows??? No Terminal then
>> >>>
>> >>> Port to FreeBSD
>> >>>
>> >>> Would need to work for certain in X and Wayland
>> >>>
>> >>> open should be improved
>> >>>
>> >>>
>> >>> To open tabs, do
>> >>>
>> >>>
>> >>> open [query1] [query2?]... (number of Google results per query to
show in panes)
>> >>>
>> >>>
>> >>> Example
>> >>>
>> >>> open 'ruby talk' 'ruby docs' 3
>> >>>
>> >>> That would open 3 google results for ruby talk, and 3 google
results for ruby docs
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> googler is used to search Google.
>> >>> Googler is used to search google. Googler is automatically
installed.
>> >>>
>> >>> Googler is written in python
>> >>>
>> >>>
>> >>> * This browser should be as fast or faster than Chrome.
>> >>>
>> >>>
>> >>> * Downloads don't currently work
>> >>> * Fullscreen doesn't currently work
>> >>> * Opening pages in new tabs doesn't currently work
>> >>> * You currently can't close tabs, only open them
>> >>> * The simplest way to close the browser currently is killall
emerald-browser
>> >>> * Add signal and slot to close program when window closes. This
doesn't currently happen.
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> Back and forward buttons should be added, somewhere.
>> >>>
>> >>> Currently, you can right click, and do navigation
>> >>>
>> >>> A way to type in addresses manually should be added.
>> >>>
>> >>>
>> >>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>> >>>
>> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>> >>>
>> >>>
>> >>>
>> >>> * Multiple instances needs to work
>> >>>
>> >>>
>> >>> * Want installation to be super simple. Download a binary
>> >>>
>> >>>
>> >>> * Let's get a fully functional browser, THEN care about packaging
>> >>>
>> >>>
>> >>>
>> >>> If there could be a flip 3d for tabs, that would be cool
>> >>>
>> >>>
>> >>> Does anyone know bcat? It's a Ruby program :slight_smile:
>> >>>
>> >>> It's browser cat
>> >>>
>> >>> One uses it like this
>> >>>
>> >>> sudo yum upgrade | bcat
>> >>>
>> >>> One sees the output in their browser
>> >>>
>> >>> It's not my program
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> There's an interesting cover flow widget for Qt. Maybe that could
be useful.
>> >>>
>> >>>
>> >>>
>> >>> Some pictures
>> >>>
>> >>>
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/qKNkHxR.png
>> >>> https://imgur.com/vBy9XnW.png
>> >>> https://imgur.com/0zv6oSc.png
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/WRVB9X1.png
>> >>>
>> >>>
>> >>> With Compiz
>> >>>
>> >>> https://imgur.com/sTzNUm9.png
>> >>> https://imgur.com/T9BeS0o.png
>> >>>
>> >>>
>> >>> Gregory Cohen
>> >
>> >
>> > Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>>
>>
>>
>> --
>> Andy Maleh
>>
>> LinkedIn: https://www.linkedin.com/in/andymaleh
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Phone: 438-835-5602
>>
>> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
>> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org
?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

As an example, replying to your response that you did this in your
recent post, the long one, it would look something like this, with the
relevant material above, your response below?

This helps to reduce the amount of data transmitted, keeping the reading
material to what is relevant, while allowing us to get historical
information from the thread itself, if necessary.

When the rest of the information is included, we will, for no reason, as
it turns out, scroll down to the bottom to find out what else was
responded to, and finding none, we kick ourselves, because the joke is
on us. (Fool us once, …, fool us twice… the third time we probably will
not bother, and miss your enlightened response!)

···

On 21/10/20 08:57PM, Gregory Cohen wrote:

On Wed, Oct 20, 2021 at 7:08 PM Victor Goff <keeperotphones@gmail.com> > wrote:

> PSA Reminder:
>
> Can we please follow the netiquette at least occasionally, as suggested
> by the Ruby Talk Guidelines for this mailing list[1].

I did this in my post recent post (the long one)

As an example, replying to your response that you did this in your

recent post, the long one, it would look something like this, with the
relevant material above, your response below?

This helps to reduce the amount of data transmitted, keeping the reading
material to what is relevant, while allowing us to get historical
information from the thread itself, if necessary.

When the rest of the information is included, we will, for no reason, as
it turns out, scroll down to the bottom to find out what else was
responded to, and finding none, we kick ourselves, because the joke is
on us. (Fool us once, …, fool us twice… the third time we probably will
not bother, and miss your enlightened response!)

So I should do this, and not include the previous messages?

···

On Wed, Oct 20, 2021 at 9:34 PM Victor Goff <keeperotphones@gmail.com> wrote:

On 21/10/20 08:57PM, Gregory Cohen wrote:
> On Wed, Oct 20, 2021 at 7:08 PM Victor Goff <keeperotphones@gmail.com> > > wrote:
>
> > PSA Reminder:
> >
> > Can we please follow the netiquette at least occasionally, as suggested
> > by the Ruby Talk Guidelines for this mailing list[1].

>
> I did this in my post recent post (the long one)

As an example, replying to your response that you did this in your
recent post, the long one, it would look something like this, with the
relevant material above, your response below?

This helps to reduce the amount of data transmitted, keeping the reading
material to what is relevant, while allowing us to get historical
information from the thread itself, if necessary.

When the rest of the information is included, we will, for no reason, as
it turns out, scroll down to the bottom to find out what else was
responded to, and finding none, we kick ourselves, because the joke is
on us. (Fool us once, …, fool us twice… the third time we probably will
not bother, and miss your enlightened response!)

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

I'm no C++ pro, but I was a Java expert before I learned Ruby.

How do I learn C += 2 ? Do you have a pointer to what file(s) in your
democracy gem could teach me how to use it? Or is there another source
for learning it?

···

On Wed, Oct 20, 2021 at 9:16 PM Gregory Cohen <gregorycohen2@gmail.com> wrote:

From the sounds of it, QWebEngine is just better than SWT's version of the same thing.

Linux distros have packages, etc.

On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:

"A web browser should only be built using C, C++ or Rust"

I disagree. Libraries like SWT have a very smart architecture that
basically makes the widget part in C++ behind the scenes, but having a
Java or Ruby frontend syntax, so it has all the performance of C++
with all the productivity of JRuby.

That said, the result of my adventure in building a web browser in SWT
was discovering that the SWT Chromium widget that ships out of the box
is very old. That is why I recommend JxBrowser instead, which is
unfortunately not free. They charge money for its use. But, I am sure
it is high quality enough from reading its API docs.

SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
mostly have experience with Webkit on the Mac. It's decent enough, but
obviously not as good as Chromium overall.

I don't know anything about QT widgets. I only know enough to avoid QT.

By the way, here are some Linux GUI examples built with SWT:
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png
https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png

It would be much easier if you simply install Glimmer DSL for SWT
(glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
(instructions are at the GitHub page:
GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

That said, I would believe what you and hmdne might be indicating
about SWT looking good in Windows and Mac, but not in all
distributions of Linux. I only use it on Ubuntu, so that's the basic
Gnome look and it looks native to me.

I don't use KDE much anymore and confess I haven't tried SWT on KDE
much. Since SWT relies on GTK, and GTK is the source, I would imagine
GTK offers more flexibility in targeting more native looks on Linux.
SWT is useful mainly if you want to build cross-platform
native-looking desktop GUI apps. But, if you only care about Linux,
GTK obviously offers more flexibility. That's why I added GTK on my
next DSL TODO list for Glimmer. In fact, I recently received demand
for a Glimmer DSL for GTK at this Glimmer issue request:
glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub

Tk attempts to look native, but sometimes falls short. They only added
native themes since version 8.5 of Tcl/Tk I believe
(Tcl/Tk 8.5.

Anyways, thanks for the info about Linux GUI.

I look forward to seeing how the Emerald Browser turns out regardless
of what technology you use for it. If I discover any other web browser
options in Ruby in the future, I will make sure to mention them just
because Ruby is usually my preferred language of choice.

On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>
> One more thing
>
> A web browser should only be built using C, C++ or Rust
>
> That is what I was doing
>
> On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> wrote:
>>
>> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web browser
>> before in Ruby (but it totally sucked):
>> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
>>
>> Still, there is an option to make it use the latest Chromium and look
>> much better (using SWT):
>> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
>>
>> Thank me once you've utilized that option and built yourself an
>> awesome web browser, and share it with us once completed... I'm
>> interested!
>>
>> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>> >
>> >
>> >
>> > echo "open /home/" > /tmp/emerald-browser-fifo
>> >
>> >
>> >
>> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>> >>
>> >> main
>> >> [indentation]puts("Hello world")
>> >>
>> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen <gregorycohen2@gmail.com> wrote:
>> >>>
>> >>>
>> >>>
>> >>> Emerald-browser
>> >>>
>> >>> Goals
>> >>>
>> >>> Not bothersome (person shouldn't be bothered by anything)
>> >>> Full control
>> >>> To be fully written in C += 2
>> >>>
>> >>>
>> >>>
>> >>> * Uses the same engine as Chrome, with QWebEngine
>> >>>
>> >>> Ubuntu and fedora have packages
>> >>>
>> >>>
>> >>> emerald-browser [number of terminals, default 1]
>> >>>
>> >>>
>> >>> C += 2 compiler is called "g+". It's a wrapper for g++
>> >>>
>> >>> Usage
>> >>>
>> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
>> >>>
>> >>>
>> >>> Example C += 2 program
>> >>>
>> >>>
>> >>> ---------------------------------------
>> >>>
>> >>> main
>> >>> puts("Hello world")
>> >>>
>> >>> --------------------------------------
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> (No need for #includes)
>> >>>
>> >>>
>> >>> g+ is written in Ruby. It could be ported to Crystal
>> >>>
>> >>> TODO
>> >>>
>> >>> 1. Make g+ work better
>> >>>
>> >>> It doesn't support classes, structs or namespaces currently
>> >>>
>> >>> You can always #include C++ or C files though
>> >>>
>> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN C++. IT CAN DO ANYTHING C++ CAN DO AND MORE.
>> >>>
>> >>>
>> >>>
>> >>> Some things I want to implement
>> >>>
>> >>>
>> >>>
>> >>> These should be a single unary option buton, like what GNOME 40 or Chrome has.
>> >>> In that, there should be many options. Maybe even things like Update System
>> >>> There should be a close button for panes.
>> >>> The source code should be tidied up, but please don't clutter it with too much OOP.
>> >>> Currently, everything gets googled. There could be a cache of some kind.
>> >>> Everything you would want to do on your computer, should be doable in this program. Currently, it makes a full-screen widget.
>> >>>
>> >>> If there could be a Compiz cube for tabs, that would be really interesting.
>> >>>
>> >>>
>> >>> There was a program that converted Chrome tabs to a filesystem extension. Maybe something like this could be added.
>> >>>
>> >>>
>> >>> Port to Mac.
>> >>>
>> >>> Port to Windows??? No Terminal then
>> >>>
>> >>> Port to FreeBSD
>> >>>
>> >>> Would need to work for certain in X and Wayland
>> >>>
>> >>> open should be improved
>> >>>
>> >>>
>> >>> To open tabs, do
>> >>>
>> >>>
>> >>> open [query1] [query2?]... (number of Google results per query to show in panes)
>> >>>
>> >>>
>> >>> Example
>> >>>
>> >>> open 'ruby talk' 'ruby docs' 3
>> >>>
>> >>> That would open 3 google results for ruby talk, and 3 google results for ruby docs
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> googler is used to search Google.
>> >>> Googler is used to search google. Googler is automatically installed.
>> >>>
>> >>> Googler is written in python
>> >>>
>> >>>
>> >>> * This browser should be as fast or faster than Chrome.
>> >>>
>> >>>
>> >>> * Downloads don't currently work
>> >>> * Fullscreen doesn't currently work
>> >>> * Opening pages in new tabs doesn't currently work
>> >>> * You currently can't close tabs, only open them
>> >>> * The simplest way to close the browser currently is killall emerald-browser
>> >>> * Add signal and slot to close program when window closes. This doesn't currently happen.
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> Back and forward buttons should be added, somewhere.
>> >>>
>> >>> Currently, you can right click, and do navigation
>> >>>
>> >>> A way to type in addresses manually should be added.
>> >>>
>> >>>
>> >>> Currently, you can do echo [full url] > /tmp/emerald-browser-fifo
>> >>>
>> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
>> >>>
>> >>>
>> >>>
>> >>> * Multiple instances needs to work
>> >>>
>> >>>
>> >>> * Want installation to be super simple. Download a binary
>> >>>
>> >>>
>> >>> * Let's get a fully functional browser, THEN care about packaging
>> >>>
>> >>>
>> >>>
>> >>> If there could be a flip 3d for tabs, that would be cool
>> >>>
>> >>>
>> >>> Does anyone know bcat? It's a Ruby program :slight_smile:
>> >>>
>> >>> It's browser cat
>> >>>
>> >>> One uses it like this
>> >>>
>> >>> sudo yum upgrade | bcat
>> >>>
>> >>> One sees the output in their browser
>> >>>
>> >>> It's not my program
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> There's an interesting cover flow widget for Qt. Maybe that could be useful.
>> >>>
>> >>>
>> >>>
>> >>> Some pictures
>> >>>
>> >>>
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/qKNkHxR.png
>> >>> https://imgur.com/vBy9XnW.png
>> >>> https://imgur.com/0zv6oSc.png
>> >>> https://imgur.com/4vRpN9m.png
>> >>> https://imgur.com/WRVB9X1.png
>> >>>
>> >>>
>> >>> With Compiz
>> >>>
>> >>> https://imgur.com/sTzNUm9.png
>> >>> https://imgur.com/T9BeS0o.png
>> >>>
>> >>>
>> >>> Gregory Cohen
>> >
>> >
>> > Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
>> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>>
>>
>>
>> --
>> Andy Maleh
>>
>> LinkedIn: https://www.linkedin.com/in/andymaleh
>> Blog: http://andymaleh.blogspot.com
>> GitHub: http://www.github.com/AndyObtiva
>> Phone: 438-835-5602
>>
>> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
>> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>
>
> Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

--
Andy Maleh

LinkedIn: https://www.linkedin.com/in/andymaleh
Blog: http://andymaleh.blogspot.com
GitHub: http://www.github.com/AndyObtiva

Java it not that bad. The startup time and resource usage is due to their JIT, which from what I know you can disable. In general the warmup time pays off if an app is long running (ie. a server app). When you take a look at some benchmarks like optcarrot: GitHub - mame/optcarrot: A NES emulator written in Ruby you will note that JRuby (and TruffleRuby for that matter, because it's using something of a new Java VM) gets faster with time.

MJIT for MRI also gets good speedups and we are getting another YJIT soon. This benchmark may not be a representative of a real word performance, as it's a NES emulator.

I had to use Java libraries for numerous times and JRuby also helped me by providing a robust Ruby wrapping to those libraries allowing me to finish my task in no time.

···

On 10/21/21 03:12, Gregory Cohen wrote:

You are underrating Qt.

Qt is a very, very good library.

It is used for many, many things.

All of which will be as fast or faster than Java.

However, GTK has a more homely feel to it.

It's more elegant.

It's the difference of C vs C++

I want to avoid Java like the plague

Anything Java can do, C++ can do just fine

Only, people don't hate C++, and Java is loathed.

A word of warning.

On Wed, Oct 20, 2021 at 6:52 PM Andy Maleh <andy.am@gmail.com> wrote:

    "A web browser should only be built using C, C++ or Rust"

    I disagree. Libraries like SWT have a very smart architecture that
    basically makes the widget part in C++ behind the scenes, but having a
    Java or Ruby frontend syntax, so it has all the performance of C++
    with all the productivity of JRuby.

    That said, the result of my adventure in building a web browser in SWT
    was discovering that the SWT Chromium widget that ships out of the box
    is very old. That is why I recommend JxBrowser instead, which is
    unfortunately not free. They charge money for its use. But, I am sure
    it is high quality enough from reading its API docs.

    SWT does also ship with Webkit on the Mac and IE/Edge on Windows. I
    mostly have experience with Webkit on the Mac. It's decent enough, but
    obviously not as good as Chromium overall.

    I don't know anything about QT widgets. I only know enough to
    avoid QT.

    By the way, here are some Linux GUI examples built with SWT:
    https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-computed.png
    https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-group.png
    https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-hello-checkbox-group.png
    https://raw.githubusercontent.com/AndyObtiva/glimmer-dsl-swt/master/images/glimmer-tic-tac-toe-in-progress.png

    It would be much easier if you simply install Glimmer DSL for SWT
    (glimmer-dsl-swt | RubyGems.org | your community gem host) and try it for yourself
    (instructions are at the GitHub page:
    GitHub - AndyObtiva/glimmer-dsl-swt: Glimmer DSL for SWT (JRuby Desktop Development GUI Framework))

    That said, I would believe what you and hmdne might be indicating
    about SWT looking good in Windows and Mac, but not in all
    distributions of Linux. I only use it on Ubuntu, so that's the basic
    Gnome look and it looks native to me.

    I don't use KDE much anymore and confess I haven't tried SWT on KDE
    much. Since SWT relies on GTK, and GTK is the source, I would imagine
    GTK offers more flexibility in targeting more native looks on Linux.
    SWT is useful mainly if you want to build cross-platform
    native-looking desktop GUI apps. But, if you only care about Linux,
    GTK obviously offers more flexibility. That's why I added GTK on my
    next DSL TODO list for Glimmer. In fact, I recently received demand
    for a Glimmer DSL for GTK at this Glimmer issue request:
    glimmer-gtk ? · Issue #10 · AndyObtiva/glimmer · GitHub

    Tk attempts to look native, but sometimes falls short. They only added
    native themes since version 8.5 of Tcl/Tk I believe
    (Tcl/Tk 8.5.
    <Tcl/Tk 8.5).

    Anyways, thanks for the info about Linux GUI.

    I look forward to seeing how the Emerald Browser turns out regardless
    of what technology you use for it. If I discover any other web browser
    options in Ruby in the future, I will make sure to mention them just
    because Ruby is usually my preferred language of choice.

    On Wed, Oct 20, 2021 at 1:44 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
    >
    > One more thing
    >
    > A web browser should only be built using C, C++ or Rust
    >
    > That is what I was doing
    >
    > On Tue, Oct 19, 2021 at 3:32 PM Andy Maleh <andy.am@gmail.com> > wrote:
    >>
    >> BTW, I've built a toy multi-engine Chromium/Webkit hybrid web
    browser
    >> before in Ruby (but it totally sucked):
    >> GitHub - AndyObtiva/connector: A minimalist open-source multi-engine web browser built in Ruby with Glimmer DSL for SWT
    >>
    >> Still, there is an option to make it use the latest Chromium
    and look
    >> much better (using SWT):
    >> JxBrowser — a Chromium-based Swing/JavaFX/SWT component
    >>
    >> Thank me once you've utilized that option and built yourself an
    >> awesome web browser, and share it with us once completed... I'm
    >> interested!
    >>
    >> On Mon, Oct 4, 2021 at 8:51 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
    >> >
    >> > echo "open /home/" > /tmp/emerald-browser-fifo
    >> >
    >> > On Mon, Oct 4, 2021 at 12:40 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
    >> >>
    >> >> main
    >> >> [indentation]puts("Hello world")
    >> >>
    >> >> On Mon, Oct 4, 2021 at 12:36 AM Gregory Cohen > <gregorycohen2@gmail.com> wrote:
    >> >>>
    >> >>> Emerald-browser
    >> >>>
    >> >>> Goals
    >> >>>
    >> >>> Not bothersome (person shouldn't be bothered by anything)
    >> >>> Full control
    >> >>> To be fully written in C += 2
    >> >>>
    >> >>> * Uses the same engine as Chrome, with QWebEngine
    >> >>>
    >> >>> Ubuntu and fedora have packages
    >> >>>
    >> >>> emerald-browser [number of terminals, default 1]
    >> >>>
    >> >>> C += 2 compiler is called "g+". It's a wrapper for g++
    >> >>>
    >> >>> Usage
    >> >>>
    >> >>> g+ foo.cpp -O3 -Wall -Wextra -o foo
    >> >>>
    >> >>> Example C += 2 program
    >> >>>
    >> >>> ---------------------------------------
    >> >>>
    >> >>> main
    >> >>> puts("Hello world")
    >> >>>
    >> >>> --------------------------------------
    >> >>>
    >> >>> (No need for #includes)
    >> >>>
    >> >>> g+ is written in Ruby. It could be ported to Crystal
    >> >>>
    >> >>> TODO
    >> >>>
    >> >>> 1. Make g+ work better
    >> >>>
    >> >>> It doesn't support classes, structs or namespaces currently
    >> >>>
    >> >>> You can always #include C++ or C files though
    >> >>>
    >> >>> C += 2 is, and always will be a PREPROCESSOR FOR MODERN
    C++. IT CAN DO ANYTHING C++ CAN DO AND MORE.
    >> >>>
    >> >>> Some things I want to implement
    >> >>>
    >> >>> These should be a single unary option buton, like what
    GNOME 40 or Chrome has.
    >> >>> In that, there should be many options. Maybe even things
    like Update System
    >> >>> There should be a close button for panes.
    >> >>> The source code should be tidied up, but please don't
    clutter it with too much OOP.
    >> >>> Currently, everything gets googled. There could be a cache
    of some kind.
    >> >>> Everything you would want to do on your computer, should be
    doable in this program. Currently, it makes a full-screen widget.
    >> >>>
    >> >>> If there could be a Compiz cube for tabs, that would be
    really interesting.
    >> >>>
    >> >>> There was a program that converted Chrome tabs to a
    filesystem extension. Maybe something like this could be added.
    >> >>>
    >> >>> Port to Mac.
    >> >>>
    >> >>> Port to Windows??? No Terminal then
    >> >>>
    >> >>> Port to FreeBSD
    >> >>>
    >> >>> Would need to work for certain in X and Wayland
    >> >>>
    >> >>> open should be improved
    >> >>>
    >> >>> To open tabs, do
    >> >>>
    >> >>> open [query1] [query2?]... (number of Google results per
    query to show in panes)
    >> >>>
    >> >>> Example
    >> >>>
    >> >>> open 'ruby talk' 'ruby docs' 3
    >> >>>
    >> >>> That would open 3 google results for ruby talk, and 3
    google results for ruby docs
    >> >>>
    >> >>> googler is used to search Google.
    >> >>> Googler is used to search google. Googler is automatically
    installed.
    >> >>>
    >> >>> Googler is written in python
    >> >>>
    >> >>> * This browser should be as fast or faster than Chrome.
    >> >>>
    >> >>> * Downloads don't currently work
    >> >>> * Fullscreen doesn't currently work
    >> >>> * Opening pages in new tabs doesn't currently work
    >> >>> * You currently can't close tabs, only open them
    >> >>> * The simplest way to close the browser currently is
    killall emerald-browser
    >> >>> * Add signal and slot to close program when window closes.
    This doesn't currently happen.
    >> >>>
    >> >>> Back and forward buttons should be added, somewhere.
    >> >>>
    >> >>> Currently, you can right click, and do navigation
    >> >>>
    >> >>> A way to type in addresses manually should be added.
    >> >>>
    >> >>> Currently, you can do echo [full url] >
    /tmp/emerald-browser-fifo
    >> >>>
    >> >>> Doing echo '/home/' > /tmp/emerald-browser-fifo should work
    >> >>>
    >> >>> * Multiple instances needs to work
    >> >>>
    >> >>> * Want installation to be super simple. Download a binary
    >> >>>
    >> >>> * Let's get a fully functional browser, THEN care about
    packaging
    >> >>>
    >> >>> If there could be a flip 3d for tabs, that would be cool
    >> >>>
    >> >>> Does anyone know bcat? It's a Ruby program :slight_smile:
    >> >>>
    >> >>> It's browser cat
    >> >>>
    >> >>> One uses it like this
    >> >>>
    >> >>> sudo yum upgrade | bcat
    >> >>>
    >> >>> One sees the output in their browser
    >> >>>
    >> >>> It's not my program
    >> >>>
    >> >>> There's an interesting cover flow widget for Qt. Maybe that
    could be useful.
    >> >>>
    >> >>> Some pictures
    >> >>>
    >> >>> https://imgur.com/4vRpN9m.png
    >> >>> https://imgur.com/qKNkHxR.png
    >> >>> https://imgur.com/vBy9XnW.png
    >> >>> https://imgur.com/0zv6oSc.png
    >> >>> https://imgur.com/4vRpN9m.png
    >> >>> https://imgur.com/WRVB9X1.png
    >> >>>
    >> >>> With Compiz
    >> >>>
    >> >>> https://imgur.com/sTzNUm9.png
    >> >>> https://imgur.com/T9BeS0o.png
    >> >>>
    >> >>> Gregory Cohen
    >> >
    >> > Unsubscribe:
    <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
    >> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
    >>
    >> --
    >> Andy Maleh
    >>
    >> LinkedIn: https://www.linkedin.com/in/andymaleh
    >> Blog: http://andymaleh.blogspot.com
    >> GitHub: http://www.github.com/AndyObtiva
    >> Phone: 438-835-5602
    >>
    >> Unsubscribe:
    <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
    >> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
    >
    > Unsubscribe:
    <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
    > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

    -- Andy Maleh

    LinkedIn: https://www.linkedin.com/in/andymaleh
    Blog: http://andymaleh.blogspot.com
    GitHub: http://www.github.com/AndyObtiva

    Unsubscribe:
    <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
    <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>