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 windowCtrl+Shift+F8
- Show the last hidden windowCtrl+Shift+F9
- Exit the programFor 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.
I have developed and tested exclusively on Fedora KDE Spin, so these instructions should work well if you are using Fedora.
libX11
or Xlib
- Library to communicate with Xlibxdo
- Helper library which contains useful functions related to Xlibxkeymacro
- Own hand-crafted library to deal with keyboard macro parsing and handling, already included in the repository as a sub-module!help2man
- Program to generate man documentation from --help
text (build-time dependency only)Install all dependencies on Fedora:
$ sudo dnf install libX11 libxdo help2man
$ sudo dnf install libX11-devel libxdo-devel # Development headers for compiling
$ make
$ 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 :)