Giter Club home page Giter Club logo

skippy-xd's People

Contributors

gitter-badger avatar honsiorovskyi avatar landroni avatar richardgv 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

skippy-xd's Issues

Multi touch gestures not working

Hello,

I am currently using touchegg for activating skippy-xd (three swipes down), works like a charm. Also three taps are set to mimic Mouse3 button, but it does not work in exposē mode, as it seems to be blocked by skippy.

Any suggestions?

Thank you.

SIGSEGV when activating on empty desktop

When activating skippy on an empty desktop with no faked root window (e.g. fluxbox), uninitialized pointer is freed.

It is caused by the fact that XGetInputFocus returns PointerRoot in this case, which is not checked. Passing this value as a window ID causes X* functions to fail. In the final results uninitialized pointer is freed (wm.c function wm_get_focused line XFree(children)).

Proposed patch:

Bug fix: Proper handling of the PointerRoot focus

Fix a SIGSEGV issue when input focus is on the X root window. In that case,
XGetInputFocus returns PointerRoot, which can not be passed as a valid
window ID.

Signed-off-by: Arkadiusz Bokowy <[email protected]>

---
 src/wm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/wm.c b/src/wm.c
index bebf44c..91b7c06 100644
--- a/src/wm.c
+++ b/src/wm.c
@@ -626,8 +626,8 @@ wm_get_focused(Display *dpy)
    unsigned char *data;

    XGetInputFocus(dpy, &focused, &revert_to);
-   
-   while(focused != None && focused != root)
+
+   while(focused != None && focused != PointerRoot && focused != root)
    {
        status = XGetWindowProperty(dpy, focused, XA_WM_STATE,
                                    0L, 1L, False, XA_WM_STATE, &real_type, &real_format,
--
1.8.3.2

Windows from 1st virtual desktop are shown in exposé on other virtual desktops

With xfwm4, exposé on non-1st virtual desktops/workspaces displays the (incompletely rendered) windows from the 1st workspace. I.e., if no windows are open on the 1st workspace, the exposé on other workspaces works as expected.

I get this with xfwm 4.10 and skippy-xd from git with the latest wip-patch applied. Btw, wm-check() reports xfwm as EWMH compliant.

New Chromium tabs cause chromium windows to not be rendered when running from the daemon

When running from the daemon with skippy-xd --start-daemon and skippy-xd --activate window-picker, Skippy-XD is not rendering chromium windows when a new tab is opened or an existing one is selected. The space for the window is allocated in the window picker space, but there is no image rendered to represent the window and the window is not selectable. This only happens on the first run of the window picker with the new tab opened-- when it is run again with the same tab visible, the window renders and is selectable.

Steps to reproduce:

  1. Start skippy-XD daemon ( skippy-xd --start-daemon )
  2. Start Chromium
  3. Run the window picker ( skippy-xd --activate window-picker ) noting that Chromium is visible in the picker view and close it.
  4. Open a new Chromium tab ( Ctrl+T ) or choose another existing one.
  5. Run the window picker again ( skippy-xd --activate window-picker ) noting that Chromium is not visible although a space for the window is allocated in the picker view, and close it.
  6. Run the window picker again ( skippy-xd --activate window-picker ) noting that Chromium and it's new tab are now visible.

Notes:

  • When running skippy-xd without the daemon/window picker, this does not occur.
  • There are no relevant messages in the daemon's terminal output.
  • This does not seem to occur on any other application with a tabbed interface (firefox, thunar, guake terminal, etc)
  • Occurs on XFCE, Cinnamon, and Gnome-classic (not WM dependent)

Specs:

  • Skippy XD Built from master on 15-5-13
  • System: Xubuntu 12.10/XFCE, AMD 5770, FGLRX 13.4

I can provide any other logs if needed as it's easy for me to reproduce.

Tray icon

It would be neat if skippy-xd had a tray icon you could click to open it.

window icons shown instead of previews

Occasionally, window previews are replaced with icons (see screenshot), but will be displayed correctly on a second invocation of --activate-window-picker.

skippy-xd-fail

Unfortunately I have not been able to reproduce this on demand, so I can't provide information on when and why this happens. I am running metacity in standalone mode on Debian Wheezy.

I'll gladly provide any information or help I can in tracking down the cause of this issue.

Enable icon + thumbnail mode

Hi,

I love skippy, but sometime the thumbnail is not enough to quicly distinguish a chrome window from a PDF viewer window (too much white). I don't like the icon-only view mode so, would it be possible to add a mix mode where both thumbnail and icon are overlapped. this is typical in other compositors like compiz or kwin.

Regaeds

Feature request: (work)Spaces feature of Mission Control

skippy-xd is pretty nice, but the real killer feature of Mission Control that appears to be missing is drag and drop placement of workspaces, windows on workspaces, and creation/deletion of workspaces. I use XMonad with Xfce4, so getting that working for me is a long shot. As it is, I don't have a need for skippy-xd now, but if I could get the workspace features working, that would be awesome.

Native window placement

I like to see the window previews sorted like this.

You can take a look at the code for this Gnome 3 addon over here.

On line 138 is a reference to kwin.

The link is broken, but I found the file over here.

bind 'tab' to select recursively the displayed windows

Some users may prefer to use Skippy-XD instead of the default alt+tab switcher coming with their WM. So it would be nice to make Skippy-XD behave nicer for people used to this workflow.

Assume that skippy-xd is bound to alt+tab. Once that is pressed, it would be nice if tab allowed to recursively move/select the displayed windows (as traditional alt+tab would do on Xfce, for example).

Additionally, if at all possible, Skippy-XD could inhibit the alt+tab as captured by the WM, and by continuing to keep alt pressed and by hitting tab allow to move/select/focus the displayed windows recursively. This would be "exactly" like the Xfce alt+tab switcher.

What do you think?

option to display windows only in current workspace and display

Would it be difficult for Skippy-XD to optionally display only windows from current workspace and display?

By default Skippy-XD shows windows from all displays (i.e., monitors), not only those that are on the current display (where "current display" means the one where the currently active window lies). This can be very useful for people using multiple monitors: see these somewhat related askubuntu question and xfce bug report.

Multimonitor issue

When using multimonitor, I've found two issues:

  1. All the miniatures are displayed on the active monitor. I'd rather see them on their monitor if possible. If this is doable, then 2) does not apply. Otherwise, if this is not going to be done shorty or ever, please see 2) as a intermediate fix.

  2. When miniatures are displayed, the other monitor still shows whatever it was showing (e.g. thunderbird window), but with a static image. This leads to some confusions, as sometimes you don't realize to be in the exposee mode and click on the image thinking it is the actual window. More importantly, even though the image is static, it is actually responsive. Therefore, if you click on it, you can perform actual actions without seeing what's happening (well, you can see it on the miniature, but not in the big window). To solve this issue I'd suggest just performing whatever you are doing on the exposee display, that is, hiding the windows and showing the destktop instead.

Regards

Update function DGifOpenFileName for new libgif

The newer versions of libgif introduce an incompatible change in the function DGifOpenFileName. On 3.10.10-1-ARCH I had to change line 13 of src/img-gif.c from

GifFileType *f = DGifOpenFileName(path);

to

  GifFileType *f = DGifOpenFileName(path,&ret);

in order for the program to compile.

Keyboard navigation is buggy

Sometimes the up/down keys don't work when choosing windows.

In some situations the key strokes are passed to one of the clients, and skippy takes 100% CPU.

I usually find this happens usually after navigating around a little with the keyboard, and returning to the same window. Especially if there are an uneven number of windows on each row (e.g. three windows total, two on one row, and one on the other and you use up/down.)

I can't 100% reproduce it though. (I'm using the latest version from git as of 2013-06-02, and fvwm is my window manager.)

Binding mouse actions not working

I installed the git version of skippy-xd today and in my ~/.skippy-xd.rc I have the section:

[bindings]
miwMouse1 = focus
miwMouse2 = close-ewmh
miwMouse3 = 

but it seems that this section isn't getting read, as the defaults are still used. I've also tried putting other actions on Mouse 3, but the settings are still ignored.

building master

I'm encountering some strange messages when building master:

make (11804)
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/skippy.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/wm.c
src/wm.c: In function ‘wm_get_window_title’:
src/wm.c:400:2: warning: pointer targets in return differ in signedness [-Wpointer-sign]
src/wm.c: In function ‘wm_wid_get_prop_rstr’:
src/wm.c:656:3: warning: pointer targets in passing argument 1 of ‘mstrdup’ differ in signedness [-Wpointer-sign]
src/skippy.h:299:1: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/dlist.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/mainwin.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/clientwin.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/layout.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/focus.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/config.c
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
cc -I/usr/include/freetype2 -DNDEBUG -O2 -D_FORTIFY_SOURCE=2 -std=c99 -Wall -DCFG_XINERAMA -DSKIPPYXD_VERSION=""git--"" -c src/tooltip.c
cc -Wl,-O1 -Wl,--as-needed -o skippy-xd skippy.o wm.o dlist.o mainwin.o clientwin.o layout.o focus.o config.o tooltip.o -lm -lXft -lXrender -lX11 -lXcomposite -lXdamage -lXfixes -lXext -lXinerama
make (11804) returned '0'

Are they expected? (Including the "fatal: Not a git repository (or any of the parent directories): .git" message?)

Highlight does not follow mouse cursor

Highlighting previews works only when I use keyboard navigation. With the mouse cursor only the tooltip changes. This is with version 5.1~git20130603 from the daily ppa.

Window-decorations aren't shown (Xfmw4)

Somehow when I run skippyxd it only shows the window content, but without the window-decoration. That looks a bit odd to me, maybe it can be fixed. Thanks!

ESC sometimes fails

ESC sometimes fails to close skippy-xd. This is intermittent. How could I debug this?

Windows preview with artifacts

Im using skippy-xd and xfce with gerybird theme.
I noticed that the each window preview has a black rectangle at the bottom and some are slightly cut at the top.

Looking at the code ( in function 'clientwin_repaint' line 220 ) i found that this artifacts could be fixed by substracting a little amount from y_src(s_y) in XRenderComposite.
Obviously this is only a hack that works for me in my current configuration. Unfortunately i dont know anything about xlib so i couldnt fix it in a more generic way.

With original code:
error

With fix:
ok

Windows should not be upscaled

Hey,

Right now Skippy upscales windows if there is room enough for it. For example, this happens if you have a single small window open and use Skippy.

I think better behavior would be if Skippy downscaled windows when necessary, but didn't upscale them.

place window title in fixed position

Now the window title follows the mouse as a tooltip. Sometimes this is confusing. Maybe it will be nicer if the title were always displayed in the same location (configurable), say top-center. What do you think?

Wish: windows from all desktops

Greetings!
Thank You for very usefull app. (I really have looked for such)
I think, skippy-xd misses one feature to show windows from all desktops, not just from current. Is it possible to add this option to program? It would be great.
Maybe, command argument --show-from-all or something else.

Feature request: Unminimize window

Hi, would it be possible to add the reverse of iconify to the available bindings, i.e. toggle the WM_STATE back to NormalState and redraw the pixmap of the window?

Many thanks for the great program by the way.

display icons of iconified windows (Now: Display icons in the bottom?)

Currently iconified windows are not displayed in Skippy-XD. Would it be possible to have them displayed at the bottom of the Skippy-XD screen, Windows7- or Xfce (unlabelled) Window Buttons-style? This way when right-click to minimize a window will not make it disappear from the screen, but merely place it in the bottom row of iconified windows.

Configuration file with user defined keyboard bindings

I like to define my own keyboard bindings.

Something like:

[bindings]
miwMouse1 = focus
miwMouse2 = close-ewmh
miwMouse3 = iconify

Alt+Tab = select-next
Alt+Shift+Tab = select-previous
Enter = focus

Right = select-right
Left = select-left
Up = select-up
Down = select-down

Feature Request: Show only windows of application Class

I would love to be able to use this in conjunction with a dock to view open windows of a specific application. i.e. I have 3 firefox windows open; I click firefox on my dock and skippy-xd shows the firefox windows only.

I am aware that the integration would need to come from the dock side, but to allow easy integration with multiple launchers/docks etc, this would ideally be achieved by adding a command line option --application-class to select the windows.

Feature Request - Scale selected windows

I've been desperate for the equivalent of Compiz Scale 'by window group' for a long time, across many distros, and would be very happy to use skippy-xd for this feature, driven by my own scripting, as running a full window manager just for Scale behaviour is a bit crazy, and creates lots of other unnecessary problems (e.g. distro keyboard shortcuts not working).

However, I don't see any mechanism for scaling just a subset of the windows with skippy-xd. Not sure what kind of window identifiers skippy-xd uses internally, but it should be fairly straightforward to filter the windows using a list of appropriate X11 ids, I would guess.

This would mean that, for example, when looking at a focused Chrome window, you could zoom to see all other Chrome windows, or when looking at a focused Terminal window, could zoom to see only other Terminals. The result in terms of screen real-estate, and the ease of identifying windows, is very significant in the case of Compiz Scale. However, I believe Compiz is buggy and is not due to be maintained on any future rendering platform, sadly.

From the point of view of skippy-xd support, I don't think skippy should have to handle the logic of which windows to present, but an invocation which could pass window ids (from a suitably configured script) would be brilliant, and very reusable I think across lots of desktop metaphors.

Feature request: add an option to display window title text overlay at clientDisplayMode

Right now, I can only see the window-title text of a window when hovering over it's mini-window, and when I have many windows of the same type open, e.g. nautilus, it's hard to see which one is the one I want to switch to.

In that situation it's cumbersome to hover over all of the mini-windows of same type to see their title in order to switch to it.
I would propose to have a possibility to add the window-title text to the mini-windows, in a manner which does not break the design by filling all of the mini-window with text, if the title text is super long.
Also, control over size, color, font, placement inside and eventually a bit outside of the mini-windows would be desirable.

Some windows are not displayed at all

Hi,

after having used skippy-xd for a while, I've found myself surprised that some windows are not displayed. I don't know if they are special or not, but they are listed in Xfce's application list on the panel, but skippy fails to show them.

In particular, this happens with some pop-up windows in chromium (the kidn of browser window without navigation bar, etc.). It also happens with a "tclsh" program I have to execute from time to time.

Am I missing some option?

Regards

Long startup time

When starting skippy-xd with first skippy-xd --start-daemon, then skippy-xd-activate (is that the theoretically best way?), it takes up to three seconds till the expose-view appears. The strange thing is, that it is not always like that - sometimes it is instant. But if it is instant, it is always that way, till I restart compton. I can't nail down what is causing this.

I'm using icewm and compton with an AMD-Gpu.

Let me know which information you need.

not working

hi,
I got problem running skippy-xd
terminal message:
"
skippy-xd
WARNING: Ignoring invalid line: 0q�
running once then quitting...
"
nothing happens
I am using precise 64 mate, also i have installed xcompmgr last version

Icon rendering issues

I've found a little bug in the thumbnail-icon mode. However, I don't know if it is skippy related, or maybe some image library on my box. Firstly, icon transparency is not correctly recognized, and secondly image's rows are shifted to the right.

screenshot-2014-10-04-09 35 35

System: gentoo stable (with few exceptions, but not for libraries) without multilib support.
Skippy is run in the daemon mode: skippy-xd --start-daemon
Libpng is compiled with the apng support.

$ skippy-xd --help
skippy-xd (git-998e0e7-2014-06-18)
  Compiled with libpng 1.6.12, using 1.6.12.
  Compiled with zlib 1.2.8, using 1.2.8.

$ ldd ~/bin/skippy-xd 
linux-vdso.so.1 (0x00007fff6a5b8000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007f2f8d4c2000)
libgif.so.4 => /usr/lib64/libgif.so.4 (0x00007f2f8d2b8000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2f8cfb6000)
libXft.so.2 => /usr/lib64/libXft.so.2 (0x00007f2f8cda0000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f2f8cb96000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f2f8c85b000)
libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f2f8c658000)
libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f2f8c455000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f2f8c24f000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f2f8c04c000)
libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f2f8be17000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2f8bc01000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2f8b85a000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f2f8b61e000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f2f8b35c000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f2f8b13a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f8af36000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f2f8ad24000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2f8d717000)
libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f2f8aafb000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2f8a8dd000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f2f8a6cd000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f2f8a4c9000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f2f8a2c3000)

cropped screenshots

This is minor. Sometimes Skippy-XD will display cropped screenshots of windows (see attached), which is distracting. Can we do something about that?
screenshot - 06232013 - 06 05 58 pm

Doesn't work with i3wm

I don't know if this should count as a feature request or bug.. I installed skippy-xd package from Arch Linux AUR to see if it would work in i3wm. It didn't. It gave me...

FATAL: WM not NETWM or GNOME WM Spec compliant.

With skippy-xd-git witch is currently built from the 20.e8e3638 commit gave..

config_get_double(general, updateFreq, 10,000000): Value "10.0" is not a valid floating-point number.
main(): WM not NETWM or GNOME WM Spec compliant. Troubles ahead.
running once then quitting...
skippy_run(): No client windows found.

So I guess it is not compatible yet. Will it be in the future?

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.