Code Monkey home page Code Monkey logo

Comments (15)

gijsbers avatar gijsbers commented on August 21, 2024

How to repeat your scenario? What software do you use to run your games? What are the commands that starts them? Is there some simple easily downloadable game which does it (sometimes)?

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

A free game I tried now that this happens with is OpenTTD. Switching to another workspace and back, the game is minimized. I can start that game by just running openttd in the terminal. I am on Archlinux and OpenTTD is installed from the main repos.

Are you able to reproduce this with OpenTTD? for example? I'll see if I can find some other free games to test with.

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

This also happens with Teeworlds. It's free to play on Steam. https://store.steampowered.com/app/380840/Teeworlds/

This issue does not happen with ClassiCube. It's a free game, but if you get it on Steam it costs.

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

I installed minecraft, and the startup screens work, they allow to continue without login, but to play I need to sign up, which I prefer to avoid.
I could play openttd and all seems fine no matter what I try.
For Teeworlds I need Steam, which requires lots of dependencies I don't want.
Maybe you can do a icesh spy on the window which is misbehaving or sleep 3; icesh -c minecraft spy or whatever, see icesh(1). Delay a bit when switching workspaces to get a clear time difference in the output.

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024
49:01.164: 0x3600007: Leave Grab Ancestor Nofocus
49:01.164: 0x3600007: _NET_WM_STATE = _NET_WM_STATE_FOCUSED
49:01.165: 0x3600007: Focus Normal Nonlinear
49:01.165: 0x3600007: Enter Ungrab Ancestor Focus
49:10.079: 0x3600007: WM_NORMAL_HINTS
49:10.095: 0x3600007: _NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 1
49:10.095: 0x3600007: _NET_WM_STATE = _NET_WM_STATE_FOCUSED, _NET_WM_STATE_FULLSCREEN
49:10.096: 0x3600007: _WIN_LAYER(CARDINAL) = 14
49:10.096: 0x3600007: Leave Normal Nonlinear Focus
49:10.096: 0x3600007: Configure 1920x1080+0+0
49:10.096: 0x3600007: Visibility PartiallyObscured
49:10.096: 0x3600007: Visibility Unobscured
49:10.096: 0x3600007: Enter Normal Nonlinear Focus
49:10.096: 0x3600007: Configure 1920x1080+0+0 Send
49:10.096: 0x3600007: _NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 0, 0
49:10.096: 0x3600007: Visibility FullyObscured
49:10.096: 0x3600007: Visibility Unobscured
49:22.001: 0x3600007: Defocus Grab Ancestor
49:22.002: 0x3600007: Defocus WhileGrabbed Nonlinear
49:22.023: 0x3600007: Leave Normal Nonlinear Nofocus
49:22.025: 0x3600007: Unmap
49:22.025: 0x3600007: _NET_WM_STATE = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN
49:22.042: 0x3600007: _WIN_LAYER(CARDINAL) = 4
49:22.042: 0x3600007: _WIN_STATE(CARDINAL) = 2, 1023
49:22.045: 0x3600007: _NET_WM_STATE = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_FULLSCREEN
49:22.046: 0x3600007: WM_STATE(WM_STATE) = 3, 0

I had minecraft open in windowed mode, ran icesh spy and clicked on it. then I did this order

  1. clicked to select the winecraft window
  2. pressed F11 to fullscreen
  3. switched to another workspace
  4. switched back to the workspace with minecraft on it
  5. ctrl+c to quit icesh.

Is that log above useful?

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

About Teeworlds, you can play it outside of Steam. You might be able to install it from your package manager. https://www.teeworlds.com/?page=downloads

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

I can repeat your scenario with Teeworlds. When I run icewm with even logging enabled (this is a configure option --enable-logevents, which also requires either a preferences setting Logevents=1 or the --logevents command line option), then I can see that Teeworlds sends an iconify request to the window manager. It looks like this:

IceWM: window=0x400011: clientMessage WM_CHANGE_STATE fmt=32 data=3,0x0,0x0

Its X11 call is documented here:
https://tronche.com/gui/x/xlib/ICC/client-to-window-manager/XIconifyWindow.html

Icewm simply obeys the request of Teeworlds to be iconified. No bug.
If you want you could enable event logging and see if the other programs send similar requests.

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

Ah! Very interesting. I suppose other games, like Minecraft, also does this then. I thought this might have been a bug somehow because games did not iconify on Openbox, but maybe that was a bug in Openbox.

I will make sure and see if Minecraft also sends an iconify request. If I enable LogEvents, where can I read the log afterwards?

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

I don't know. It depends on the system. You run Arch, right? You run a display manager like SLiM or GDM? Check their docs or search for that. If you start your window manager from ~/.xinitrc or ~/.xsessionrc, which I do, then you can set it there.
Maybe you can modify the icewm-session.desktop somehow to redirect output, dunno, search.

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

I tried setting exec icewm-session --enable-logevents but it says icewm-session: Warning: Unknown option '--enable-logevents' 😕

As for logging, I figured it out by doing startx &> ~/startx.log.

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

You can check that it was configured with logevents enabled by icewm --configured. It should print logevents in the output:

icewm configured options: alsa ao fdomenus fribidi gdkpixbuf i18n librsvg libxpm logevents nls oss session shape xfreetype2 xinerama xrandr

(@Code7R Strangely, the CMake build doesn't seem to support this option?)

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

I have this in my config

#  Enable event logging for debugging
LogEvents=1 # 0/1

but it doesn't seem to be enabled icewm configured options: alsa ao fdomenus fribidi gdkpixbuf i18n librsvg libxpm nls oss session shape xfreetype2 xinerama xrandr

I did try to also use the --logevents cmd line option but doesn't seem to work either icewm-session: Warning: Unknown option '--logevents'.

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

By default icewm does not have it in the executable to save some space. That is why it complains it doesn't understand the option. To get it the configure must be told to include it. Do ./configure --help=short and examine the output. Then you should see:

--enable-logevents Support logging of X11 events.

Then ./configure --enable-logevents ............ (whatever else you may want) should do the trick. Then make and make install.

from icewm.

gijsbers avatar gijsbers commented on August 21, 2024

Ah now I see. You give the option to icewm-session. But it can only be given to icewm. Don't give it to icewm-session and just set it in the preferences.

from icewm.

Brottweiler avatar Brottweiler commented on August 21, 2024

I'm going to close this as this is probably intended behaviour, like how you explained that Teeworlds sent an iconify request. Configuring and recompiling IceWM is a bit too much of a bother for me right now.

Thanks for the support!

from icewm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.