├── .gitattributes ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── contrib ├── CMakeLists.txt ├── archlinux │ └── PKGBUILD ├── emacs-fancy │ ├── mosaic.el │ └── xwmos_ebuf_select ├── gentoo │ └── xwinmosaic-9999.ebuild ├── xwinmosaic_open_ebuf ├── xwinmosaic_run └── xwinmosaic_select_ebuf ├── debian ├── changelog ├── compat ├── control ├── copyright ├── docs └── rules ├── src ├── CMakeLists.txt ├── main.c ├── mosaic_box.c ├── mosaic_box.h ├── mosaic_search_box.c ├── mosaic_search_box.h ├── mosaic_window_box.c ├── mosaic_window_box.h ├── win32_interaction.c ├── win32_interaction.h ├── x_interaction.c └── x_interaction.h └── xwinmosaic.1 /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | text=auto 3 | 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | *~ 3 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.8) 2 | project (XWinMosaic C) 3 | 4 | OPTION (WITH_SCRIPTS "Install extra scripts" OFF) 5 | 6 | set (CMAKE_C_FLAGS "-std=c99 -Wall") 7 | 8 | IF(WIN32) 9 | add_definitions("-DWIN32") 10 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mwindows") 11 | ENDIF(WIN32) 12 | 13 | IF(UNIX) 14 | add_definitions("-DX11") 15 | ENDIF(UNIX) 16 | 17 | set (CMAKE_C_FLAGS_RELEASE "-O3") 18 | set (CMAKE_C_FLAGS_DEBUG "-g") 19 | 20 | add_subdirectory (src) 21 | 22 | if (WITH_SCRIPTS) 23 | add_subdirectory (contrib) 24 | ENDIF (WITH_SCRIPTS) 25 | 26 | install (FILES xwinmosaic.1 27 | DESTINATION share/man/man1) 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012, Anton Lobashev 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 15 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 16 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 18 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 19 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 21 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 23 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | XWinMosaic 2 | ========== 3 | 4 | X11 window switcher that draws windows list as a colourful mosaic 5 | ------------------------------------------------------------ 6 | 7 | Inspired by [XMonad.Actions.GridSelect](http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-GridSelect.html), but written in C + GTK+2, uses nice-looking colours and has some set of helpful features. 8 | 9 | ![xwinmosaic's screenshot](https://www.linux.org.ru/images/591/original.png "Screenshot") 10 | 11 | Use arrow keys (also `C-n`, `C-p`, `C-f`, `C-b` in default mode, `hjkl` in vim mode) or mouse to navigate through windows. 12 | Start typing to search for required window. 13 | 14 | Config file is created automatically on a first program run and stored in `~/.config/xwinmosaic/config`. 15 | 16 | ### Usage: 17 | Usage: 18 | xwinmosaic [OPTION...] - show X11 windows as colour mosaic 19 | 20 | Help Options: 21 | -h, --help Show help options 22 | --help-all Show all help options 23 | --help-gtk Show GTK+ Options 24 | 25 | Application Options: 26 | -r, --read-stdin Read items from stdin (and print selected item to stdout) 27 | -p, --permissive Lets search entry text to be used as individual item. 28 | -t, --format Read items from stdin in next format (comma separated): 29 | , , ,