TheDcoder / mapmywindows

A small program to show and hide windows in X window system (commonly used in Linux desktops)
MIT License
0 stars 0 forks source link
keyboard-macros keyboard-shortcuts window-mapper window-show-hide xdotool xorg

mapmywindows

Build status

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.

Usage

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:

  1. Ctrl+Shift+F7 - Hide active window
  2. Ctrl+Shift+F8 - Show the last hidden window
  3. 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.

Download

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.

Requirements

  1. libX11 or Xlib - Library to communicate with X
  2. libxdo - Helper library which contains useful functions related to X
  3. libxkeymacro - Own hand-crafted library to deal with keyboard macro parsing and handling, already included in the repository as a sub-module!
  4. 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

Compile

$ make

Install

$ sudo make install

Acknowledgements

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 :)