Coder Social home page Coder Social logo

bbidulock / icewm Goto Github PK

View Code? Open in Web Editor NEW
576.0 38.0 97.0 37.27 MB

A window manager designed for speed, usability, and consistency

License: Other

CMake 1.04% Shell 0.53% C 4.87% C++ 90.93% XSLT 0.12% Batchfile 0.01% Makefile 1.12% M4 0.84% Perl 0.55%
icewm ewmh window-manager linux icccm c-plus-plus floating

icewm's Introduction

  • 🔭 I’m currently working on SS7 load generators and security testers and CloudSS7 distributed STP networks.
  • 🌱 I’m currently learning to be nicer to others.
  • 👯 I’m looking to collaborate on SS7 security.
  • 🤔 I’m looking for help with netconf, ipflow and netflow.
  • 💬 Ask me about Arch Linux (on AWS, OpenStack and NFV).
  • 📫 How to reach me: [email protected]
  • 😄 Pronouns: He/Him
  • ⚡ Fun fact: I wrote my first Chess program with APL in Grade 5 (circa '69) on an IBM 14100 front-end driven by a converted IBM Selectric Typewriter over an acoustic (Bell 110) modem.

icewm's People

Contributors

alkastner avatar andriykopanytsia avatar arifpedia avatar bbidulock avatar belphegor-belbel avatar bsiegert avatar cho2 avatar christine-g avatar code7r avatar crayxt avatar deltaresero avatar dontsueme avatar elchevive avatar embar- avatar freekdk avatar gianvacca avatar gijsbers avatar hugok79 avatar jinn-alt avatar madanadam avatar marcelocripe avatar mrbrainsample avatar pro-pra avatar scarabeusiv avatar scootergrisen avatar skriesch avatar stanislav-brabec avatar taraspanchenko avatar tetralet avatar wsxy162 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

icewm's Issues

Sometimes no focus on new window

When a new program is started, icewm sometimes fails to properly focus it. A way for me to reproduce 100%:

  1. Start audacious (music player) on desktop 1
  2. Press Ctrl+J, an audacious dialog window appears
  3. Switch to desktop 2, by keyboard or mouse, doesn't matter.
  4. I press the key Ctrl+Alt+a which I have defined as:
    key "Ctrl+Alt+a" xfce4-terminal
    Or I start a terminal from the menu or start a terminal from the quicklaunch, it doesn't matter.
  5. The new terminal window does not get focus, it does have the urgency bit set and starts flashing in the taskbar.

The same problem happens with firefox or chromium and seems to happen when there is already a firefox or chromium window running somewhere and a new window is opened.

This problem does not happen in icewm 1.3.8. I've tracked it down to commit a57ec4f. The following patch fixes the problem for me. It's a terrible patch because it completely ignores the new timing code but my X knowledge is too limited to completely understand the code in updateNetWMUserTime

--- icewm-1.3.10.bak/src/wmframe.cc 2015-07-03 03:38:11.000000000 +0200
+++ icewm-1.3.10/src/wmframe.cc 2015-08-15 12:15:08.763321027 +0200
@@ -1851,9 +1851,9 @@
             doActivate = false;
     }

-    if (fUserTime != -1UL)
+/*    if (fUserTime != -1UL)
         if (fUserTime == 0 || fUserTime != manager->lastUserTime())
-            doActivate = false;
+            doActivate = false;*/
 }

 void YFrameWindow::wmShow() {

The gettext requirement is too high for most distributions currently

Priority: High

The latest stable versions of Ubuntu (13.10) and Debian (Wheezy) currently use gettext version 0.18.1 while the requirement here is now 0.18.3. There are several other distributions which are in a similar situation. While changing 0.18.3 to 0.18.1 in configure.ac might allow for Ubuntu 13.10 and Debian Wheezy (and newer) to build this, it isn't the proper way to fix it nor am I completely sure that would work. I don't have time to look into this more right now, so I'm just reporting the issue here.

No rule for icewm.lsm

On Ubuntu 14.04, the current HEAD does not compile with the command in the README. It leads to this error in the first make step:

make[2]: *** Keine Regel vorhanden, um das Target »icewm.lsm«, 
  benötigt von »all-am«, zu erstellen.  Schluss.

which translates to the usual no rule available error I'm sure you know.

Solution was for me to remove the icewm.lsm from the Makefile.

commit fb939b6

commit fb939b6: add new default theme and background
surly this commit breaks too much to be useful?

Broken tray

Broken tray after restarting: "killall -SIGHUP icewm" or via menu.
Tray appears in a separate window (It becomes visible after the start of the next the system tray application).
Corrected command "killall icewmtray && icewmtray –notify", but not all applications handle this correctly.

test branch

Propose to add a branch for accumulation and verification of new features, that would not affect the stable branch.

Question regarding the numerous #if 1 preprocessor directives

While I can understand having preprocessor directives "#if 0" or "#if 1" with an "#else" statement, I don't understand why there are so many "#if 1" alone. Are these still relevant for disabling certain blocks of code for debugging because if not the removal of them would help clean up the code a little?

Should use g_type_init() in src/yimage_gdk.cc

If I compile and use IceWM with Thinstation (glib v2.23), IceWM does not launch.
Error is : GLib-GObject-CRITICAL ** gtype.c 2720: You forgot to call g_type_init()

If we add g_type_init() to function image_init() in src/yimage_gdk.cc :
void image_init() {
g_type_init();
xlib_rgb_init(xapp->display(), ScreenOfDisplay(xapp->display(), xapp->screen()));
gdk_pixbuf_xlib_init(xapp->display(), xapp->screen());
}

Everything is Ok and IceWM is running.
See RedHat Bug 1031459 and comment #14 may help.

Any way, function image_init() could be like this :
void image_init() {
#if (GLIB_MAJOR_VERSION <= 2 && GLIB_MINOR_VERSION < 36 && GLIB_MICRO_VERSION <= 0)
g_type_init();
#endif
xlib_rgb_init(xapp->display(), ScreenOfDisplay(xapp->display(), xapp->screen()));
gdk_pixbuf_xlib_init(xapp->display(), xapp->screen());
}

This help using IceWM with older version of glib and may be run older platform too.

Theme "motif" not show the "menuButton.xpm" icon

Hi~
I use a motif theme under icewm.
In $HOME/.icewm/themes/motif-blue/default.theme, my setting is
Look=motif
ShowMenuButtonIcon=0

I have "menuButtonA.xpm", "menuButtonI.xpm" and "menuButton.xpm" in $HOME/.icewm/themes/motif-blue/ ,
motif_no_icon2
But I found icewm will not show any "menuButton*.xpm" icon on the title bar.
motif_no_icon
Would you fix this problem?
Thank you~

Note: I posted the bug before:
http://sourceforge.net/p/icewm/bugs/914/

Taskbar autohide again

Version 1.3.8 for Vector Linux (Slackware based), as well as 1.3.8 built from source code. Taskbar does not auto hide, once it has been shown. The only way to hide it is to launch an application by choosing it from main menu, which must be activated from 'start' button. The problem has been fixed at least twice in previous releases, I think. Now, it seems to be back again. I switched to 1.3.5 built from source, because it seems to be working there.

Takbar has been set to autohide in preferences file, of course. Making it double height or single height doesn't seem to make a difference.

Errors in calculating the geometry of windows

Run the three programs (xclock, mplayer, gimp)
Make them the same size (about 640x480).
Compare posts xwininfo and icewm (tooltip appearing when moving windows):

Program    xwininfo    icewm
xclock     640x480     640x480
smplayer   638x481     238x234
gimp       641x479     414x408

The big problem with VirtualBox:
Specifies a display resolution of 640x480 inside a virtual machine.
IceWM window size changes, but not right (the window is less than required).
xwininfo:

  …
  Corners:  +750+363  -216+363  -216-342  +750-342
  -geometry 634x495+750+363

icewm (tooltip): 344x397
xprop:

…
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        user specified location: 842, 305
        program specified location: 842, 305
        user specified size: 640 by 521
        program specified size: 640 by 521
        program specified minimum size: 290 by 98
        window gravity: Static
…

If set manually (mouse) window dimensions 640x521 , everything fits.
If set the option in VB «Auto-resize Guest Display», the window is compressed in the cycle (up to size zero).

Support UTF-8 in window titles

I'm not sure if this is a reasonable feature request. UTF-8 is ubiquitous, especially on Linux, and it's so widely supported that actually not supporting it in modern programs requires effort. But I know IceWM is pretty old and behind.

Are the desktop files Icewm installs correct ?

Debian updated my Icewm today based on the latest stable code from here, but the desktop files it installed in /usr/share/xsessions did not allow Icewm to be selected in lightdm. I had to change the Hidden and NoDisplay from true to false and then it appeared in the lightdm menu.

wallpapers for themes

I suggest to get acquainted with the test (regular-icex) hybrid live-CD based on the way Icewm. In it are added to all themes the wallpapers. Please select the wallpaper options for inclusion in the total git, is to create the necessary patch.

https://yadi.sk/d/GZsd6GDihHZnN

Sorry for the computer translation.

Problem compile IceWM on Debian testing

I compiled IceWM on Ubuntu with g++ 4.8.4 and all is OK.
I compiled IceWM on Debian testing (antiX) g++ 4.8.5 and compilation jump from /tmp/icewm
into /var/tmp/icewm
I do not understand why.

mario@antix1:/tmp/icewm
$ make V=0
make all-recursive
make[1]: Entering directory '/var/tmp/icewm'
Making all in src
make[2]: Entering directory '/var/tmp/icewm/src'
CXX mstring.lo
In file included from mstring.cc:6:0:
../config.h:549:15: error: multiple types in one declaration
#define pid_t int
^
../config.h:549:15: error: declaration does not declare anything [-fpermissive]
Makefile:1543: recipe for target 'mstring.lo' failed
make[2]: *** [mstring.lo] Error 1
make[2]: Leaving directory '/var/tmp/icewm/src'
Makefile:580: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/icewm'
Makefile:477: recipe for target 'all' failed
make: *** [all] Error 2

Reboot/Shutdown button compatible with gnome-polkit.

In a polkitd enabled system running icewm whose policy does not allow an ordinary user to reboot, when an ordinary user wants to reboot, a graphic password window is expected to be ready to authenticate.

I want to achieve this by running a polkit gnome agent. When I have a /usr/lib/polkit-gnome-authentication-agent-1 running in background. I tried things like following, and meet a weird problem:

$ nohup /usr/lib/polkit-gnome-authentication-agent-1 &
$ systemctl reboot # run from xterm 

=> The authentication dialog can be pop up successfully

=> However clicking the reboot button from the icewm "logout" submenu, the
desktop looks "frozen" without accepting mouse and keyboard events.

Interestingly, it actually not hangs, wait for 10-20 minutes or so, the
authentication dialog pops out, which behaves in a very sluggish way. And
each of the subsequent mouse/keyboard actions become extremely slowly
responded.

Hanging around icewm src, I found the following attempted patch actually could
resolve the problem. While the difference seems runCommand() ends up with calling "execvp()"
and doLogout() ends up with calling "system()".

But the thing is I am pretty new to icewm, and not very experienced of subtle practice of system() and
execvp() running in the context. So I probably underestimated the risk of the change. Are there any one here could possibly help to take a look? Any thoughts will be appreciated. Thank you. If you think submitting the following patch is fine, I will do that :-)

Index: icewm-1.3.12/src/wmapp.cc
===================================================================
--- icewm-1.3.12.orig/src/wmapp.cc
+++ icewm-1.3.12/src/wmapp.cc
@@ -1821,7 +1821,7 @@ void YWMApp::handleSMAction(int message)
         break;
     case ICEWM_ACTION_REBOOT:
         rebootOrShutdown = 1;
-        wmapp->doLogout();
+       wmapp->runCommand(rebootCommand);
         break;
     case ICEWM_ACTION_RESTARTWM:
         wmapp->restartClient(0, 0);

Logout menu, shutdown and reboot

Shutdown and reboot commands don't seem to do anything, no matter how you define them in preferences file. Version 1.3.8, Vector Linux 7.1. 1.3.8 built from source, exactly the same.

Works flawlessly in 1.3.5. built from source.

reboot confirmation dialog losing focus in front of xchat

I have a little glitch to report. Repro steps:

X-Chat must be the only window on the current workspace. Press Ctrl-Alt-Del and click reboot or use the hotkey. The confirmation window appears on top of xchat but it does NOT gain the focus.

I am not an expert WRT icewm's window handling, do you know someone more appropriate to care about this issue? Smells like some kind of concurency issue but it's only a wild guess.

Workspace Names

Problem with
WorkspaceNames=" DEV ", " TER ", " CON ", " :-) "
in fie ~/preferences
Always shows workspace as 1 2 3 4
Until recently, everything worked well.

Missing icons in "Desktop Apps" menu

Snip from the, menu which is generated with icewm-menu-fdo:

menu "Games" folder {
prog "0 A.D." 0ad 0ad
prog "cave9" /usr/share/cave9/icon.png cave9

The icons for 0ad is missing in the menu, the cave9 icon is showed.
The Icon key in the 0ad desktop file contains "Icon=0ad", because the icon is a png file, and the "Icon=0ad.png" not allowed by desktop-file-validate command. The icewm-menu-fdo command doesn't appends neither full path, neither .png extension.

Bug QuickSwitch

~/.icewm/winoptions:
xvkbd.ignoreQuickSwitch: 1
xvkbd.appTakesFocus: 1

~/.icewm/startup (or .xinitrc):
xvkbd >& /dev/null &

Immediately after running the IceWM, the xvkbd it is visible in the QuickSwitch (the first three press "Alt+TAB").
Without options "appTakesFocus" everything is fine, but then does not work autofocus in xvkbd :(

Conky crashes when used in startup file.

Hello Bbidulock,

Hey conky crashes when i use it in the startup file when i right click over conky.

conky -c /opt/conky/conkytheme &

X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 25 (X_SendEvent)
Resource id in failed request: 0xe00001
Serial number of failed request: 4335
Current serial number in output stream: 4338

RXVT-Unicode Issue in Client/Daemon Mode

When running a RXVT-Unicode terminal in client/daemon mode, there is a problem with obtaining the focus. The border highlights as if the window has the focus, but the terminal does not accept keystrokes.

I bisected the issue to commit 1f73e33
"Hack for java7 focus issue; deactivatable with parameter ActivateJava7FocusHack=0"
dontsueme authored on Mar 31, 2013

1f73e33

When RXVT-Unicode is running in client/daemon mode, this patch identifies the terminal as a Java(7) application, and suppresses the focus (Note: RXVT-Unicode is not a Java application).

Icewm 1.3.8 title bar transparent

Hello Everyone,

This bug does not appear in icewm-1.2.38pre2. I believe it started with icewm 1.3.0.

The title bar is transparent when the xpm width is 1. Also some of the icons set by the winoptions just go to default icons. This a screen shot of what it looks like.

http://s15.postimg.org/ackxua8e3/icewm.png

I have no problem like this when i use icewm 1.2.38pre2.

BTW: I'm running Slackware 14.1 Multilib. Nvidia GeForce 430GT Driver 340.65.

utf in menu broken

Hello
i try update debian package from 1.3.7 to latest git

for now new version correct build, but in new version i have new bugs

  • broken unicode symbols in menu,
  • not fix old - unicode names in window titles

https://launchpad.net/~ivan1986/+archive/ppa

can you look on this package, it may be useful after i found way to fix bugs

Forking IceWM?

Hello bbidulock, hello everyone,

I am most pleased to see someone picking up the fading remains of icewm! It is awesome to see updates and commits.
But what happened to the original project? Why is the website no longer reachable?

If we want to continue this WM in some way, can we use the original name? Has anyone tried to reach out to the original devs and ask them if they have/had any intentions? If they just vanished and do not reply with anything concerning the name / domain, it might be a good idea to fork icewm under a different name. Of course, forking should always be the last option.

If we continue under 'IceWM', we might want to set a milestone for a new and 'updated' release. Get some release process going, maybe some CI and testing would be cool. :-)

What are your opinions on this?

Penguin Subtitle Player

Penguin Subtitle Player creates a window with subtitles which is on top of the other window. It is a Qt5 application with statically linked Qt5 libs. It seems to be working with JWM and Xfce4 on the same machine. With Icewm there seems to be something missing. It hides as soon as user activates program options which bring up additional dialog windows, like 'preferences' and 'file open'. Then main window stays hidden and can't be accessed any more. The process i still running in the background. With icewm-session it places itself into tray and clicking on it makes no difference.

I feel tat it might be a minor issue which could be solved, but I don't know where to start.

I am running IceWM 1.3.5 built from source, because I have other issues with 1.3.8, which I reported here, too.

Center dialog on owner window

I have set CenterTransientsOnOwner on 1

Center dialogs on owner window

CenterTransientsOnOwner=1 # 0/1

Dialog window always shows alongside main window.

Include HTML docs in the release tarballs

Would it be possible to include generated HTML documentation in the release tarballs? Building it requires several packages that are not useful for much of anything else. It is kind of a big deal if you building the whole system from sources - you don't want to waste time for things that you will likely never need again.

icewm-1-3-BRANCH: Won't compile with enable-guievents enabled

Any attempts to compile on the 1.3 branch with GUI events enabled will result in the following error:

wmmgr.cc: In member function ‘void YWindowManager::activateWorkspace(long int)’:
wmmgr.cc:2370:9: error: ‘wmapp’ was not declared in this scope
wmapp->signalGuiEvent(geWorkspaceChange);
^
wmmgr.cc: In member function ‘void YWindowManager::checkLogout()’:
wmmgr.cc:2995:34: warning: ignoring return value of ‘int system(const char_)’, declared with attribute warn_unused_result [-Wunused-result]
system(rebootCommand);
^
wmmgr.cc:2998:36: warning: ignoring return value of ‘int system(const char_)’, declared with attribute warn_unused_result [-Wunused-result]
system(shutdownCommand);
^
make[1]: *** [wmmgr.o] Error 1
make[1]: Leaving directory `.../icewm/src'
make: *** [base] Error 2

It seems this bug was mentioned too on Sourceforge but was never fixed: http://sourceforge.net/p/icewm/bugs/910/

Minor Issue with tray icon bg

Hello bbidulock,

It would be nice if the icons the are not handled by icewm tray like nmapplet would match the taskbarbg.xpm. It's an eye sore to have the taskbarbg not match.

http://s8.postimg.org/6zsr86hpw/icewm.jpg

Also this might be asking to much but it would a if the icewm menu could be made to look like
the whisker menu.

Failure to build the documentation

With the current GIT version I get lots of
nsgmls:0:242:33:E: "DESCRIP" not finished but document ended
nsgmls:0:242:33:E: end tag for "DESCRIP" omitted, but its declaration does not permit this
nsgmls:0:236:0: start tag was here
nsgmls:0:242:33:E: end tag for "ARTICLE" omitted, but its declaration does not permit this
nsgmls:0:2:0: start tag was here
html2html: Problem with ref "lib"

and lateron
/usr/bin/install -c -m 644 icewm.html icewm-1.html icewm-2.html icewm-3.html icewm-4.html icewm-5.html ./icewm-6.html ./icewm-7.html ./icewm-8.html ./icewm-9.html ./icewm-10.html ./icewm-11.html ./icewm-12.html ./icewm-13.html ./icewm-14.html ./icewm-15.html ./icewm-16.html ./icewm-17.html ./icewm-18.html ./icewm-19.html ./icewm-20.html '/var/tmp/portage/x11-wm/icewm-9999/image//usr/share/doc/icewm'
/usr/bin/install: cannot stat './icewm-6.html': No such file or directory
/usr/bin/install: cannot stat './icewm-7.html': No such file or directory
/usr/bin/install: cannot stat './icewm-8.html': No such file or directory
/usr/bin/install: cannot stat './icewm-9.html': No such file or directory
/usr/bin/install: cannot stat './icewm-10.html': No such file or directory
/usr/bin/install: cannot stat './icewm-11.html': No such file or directory
/usr/bin/install: cannot stat './icewm-12.html': No such file or directory
/usr/bin/install: cannot stat './icewm-13.html': No such file or directory
/usr/bin/install: cannot stat './icewm-14.html': No such file or directory
/usr/bin/install: cannot stat './icewm-15.html': No such file or directory
/usr/bin/install: cannot stat './icewm-16.html': No such file or directory
/usr/bin/install: cannot stat './icewm-17.html': No such file or directory
/usr/bin/install: cannot stat './icewm-18.html': No such file or directory
/usr/bin/install: cannot stat './icewm-19.html': No such file or directory
/usr/bin/install: cannot stat './icewm-20.html': No such file or directory

_NET_CLIENT_LIST_STACKING is not updated when focus is changed

According to http://standards.freedesktop.org/wm-spec/1.3/ar01s03.html the root window property _NET_CLIENT_LIST_STACKING should give a list of the windows in the current stacking order, so that topmost window is last in the list.

Currently icewm only updates this property when new windows are opened, resulting in outdated information and thus inability to query the window stacking order from other applications.

Attached patch fixes this issue, and attached python script can be used to show the _NET_CLIENT_LIST_STACKING value for testing.

0001-Update-_NET_CLIENT_LIST_STACKING-when-changing-windo.txt

list_stacking_order.py.txt

argb visual capability

Hi,

I got the 1.3.9 version of icewm working under
gentoo linux

As far as I can understand, I might need an
argb-visual capable window manager, whether I want
this window's edges to appear smooth:

I've been trying cairo-clock, and all that I can see is a
black background

Kind Regards,

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.