A small progarm to show and hide windows in X window system. Most Linux distributions use a display server with X window system, you can easily hide and show windows using this program.
mapmywindows runs as a daemon (i.e it keeps running in the background until exit), once executed you can use keyboard shortcuts/macros to perform actions. Here are the currently available actions and their default keyboard shortcut combination:
Ctrl+Shift+F7- Hide active window
Ctrl+Shift+F8- Show the last hidden window
Ctrl+Shift+F9- Exit the program
For more usage details, try the
mapmywindows --help command to display the help text with the complete syntax and options.
Binary packages are available on the releases page, but may fail to run due to missing dependencies or differences between OS distributions, the packages are compiled in Fedora. Especially the library
libxdo might be missing and you may have to install it before mapmywindows works.
Compiling and Installing
I have developed and tested exclusively on Fedora KDE Spin, so these instructions should work well if you are using Fedora.
Xlib- Library to communicate with X
libxdo- Helper library which contains useful functions related to X
libxkeymacro- Own hand-crafted library to deal with keyboard macro parsing and handling, already included in the repository as a sub-module!
Install all dependencies on Fedora:
$ sudo dnf install libX11 libxdo $ sudo dnf install libX11-devel libxdo-devel # Development headers for compiling
$ sudo make install
This is my first proper program written in C!
After switching from Windows to Linux as my primary operating system a few months back, I was missing the functionality to hide and show certain windows. A program called Hide my Windows made this possible in Windows but I could not find a good alternative program in Linux to replace it, so I started my own journey to write a small replacement program which gets the job done, and here I am after about an year or so.
I started experimenting with different kind of programming languages (shell, euphoria to name a few) but ultimately settled on C because it closely matched my principles and has a mature and widely supported community and codebase.
Thanks to several folks at freenode (##c, ##programming etc.) who have helped me reach this point. I hope to keep learning more from them. And to not forget my friends who were supportive during the whole development process :)