inexorgame-obsolete / deprecated-cube-engine-inexor

UNMAINTAINED: Please have a look at the vulkan-renderer
https://inexor.org
zlib License
11 stars 1 forks source link

Desktop Integration #138

Open aschaeffer opened 9 years ago

aschaeffer commented 9 years ago

It would be nice to have a proper desktop integration for the different platforms.

Though all desktop environments have their specifics, the most important things are in common:

(Please add the specifics for your platform here! Thanks!)

aschaeffer commented 9 years ago

Added a description for the issue

Croydon commented 9 years ago

In the context of the Windows platform I don't really get the following two points:

minimize the application (to tray or launcher) instead of switching to windowed mode launching applications (windows start button, unity launcher, gnome menus, ...)

Could you please describe what you mean? The "windows start button" sound like a normal application link? That's getting created by the Sauer installer. Do we use another installer? And to the first point: When I'm alt+tab out of the game (or by using the windows key) it's working as expected, Inexor doesn't switch to windowed mode.

aschaeffer commented 9 years ago

Yes, that's a linux issue. You can leave the fullscreen mode and enter the windows mode, and then you're able to minimize. But you cannot minimize from fullscreen directly.

You're right that the links should be created by the installer. I'm not sure: do we have an installer for windows, already?

Calinou commented 9 years ago

A reminder: Windows start menu entries must go to their own folder. That is, %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Inexor\Inexor.lnk and not %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Inexor.lnk.

Try to keep the start menu entries to a minimum. Usually, you only need an entry to start the client, and one to start the server.

Croydon commented 8 years ago

Btw, Sauerbraten is using on Windows this: http://nsis.sourceforge.net

Croydon commented 8 years ago

Similar discussion on Red Eclipse: https://github.com/red-eclipse/base/issues/175

freezurbern commented 8 years ago

Btw, Sauerbraten is using on Windows this: http://nsis.sourceforge.net

quick heads up: Red Eclipse has a more up to date NSIS installer script (Link), if that's the route you want to take for Windows installations.

Fohlen commented 8 years ago

@freezurbern does this smoothly integrate with your CI/Travis (as on Windows?). We'd love to have some automatic packaging going on, which is why I'd suggest either the Visual Studio Setup Extension or, prefferably the Chocolate package manager..

freezurbern commented 8 years ago

I have successfully built NSIS packages through my Jenkins instance using the NSIS command line tools. It works great: on successful windows compile, generate windows installer. I can show you the console scripts if you'd like. Please note this is with Red Eclipse and the NSIS script i helped with for them (linked earlier) On Jun 21, 2016 2:31 PM, "Lennard Berger" notifications@github.com wrote:

@freezurbern https://github.com/freezurbern does this smoothly integrate with your CI/Travis (as on Windows?). We'd love to have some automatic packaging going on, which is why I'd suggest either the Visual Studio Setup Extension https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9 or, prefferably the Chocolate package manager https://chocolatey.org/..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/inexor-game/code/issues/138#issuecomment-227530117, or mute the thread https://github.com/notifications/unsubscribe/AGEZGROsHkwVB9shTJsjSLIU4QBATqTwks5qOC4KgaJpZM4D5_J4 .

aschaeffer commented 7 years ago

Most of the desktop integration functionality will be provided by Inexor Flex.

Icon

We have a scalable version of the Inexor logo:

Usage:

Window icon

Start menu entries / Application icon

[Desktop Entry]
Version=0.9
Type=Application
Name=Inexor
GenericName=Game
Comment=A fast-paced shooting game featuring an ingame map editor.
Icon=inexor
Categories=Game
Exec=flex start client
TryExec=flex start client
Terminal=false

The system tray functionality

Ubuntu Unity allows to integrate most of the system tray functionality in a start menu entry:

...
Actions=Start;Stop

[Desktop Action Start]
Name=Start Server
Exec=flex start 31415
OnlyShowIn=Unity;

[Desktop Action Start]
Name=Stop Server
Exec=flex start 31415
OnlyShowIn=Unity;

Libraries

Though the functionality of the tray icons and the system notifications are almost the same different platforms have different APIs and locations. I would prefer a cross platform way to solve these problems. Therefore I did a little research which NodeJS libraries provides a cross platform support for desktop integration tasks and are appropriate for integration in Inexor Flex.

Window control functionality

Control the window of an Inexor Core instance using Inexor Flex:

./flex minimize 31415
./flex maximize 31415
./flex fullscreen 31415
aschaeffer commented 7 years ago

Node-JS Library for dbus: https://github.com/Shouqun/node-dbus