Sawfish
Scripts quick access edit this
  • Author: hqwrong <hq.wrong@gmail.com>
  • Version: 1.1
  • License: GNU GPL 2 or later



Synopsis[]

A tool for window display,search and manipulation

Description[]

Cabinet-shot

cabinet-screenshot

Cabinet has a similar interface with iswitch,it also adds some own features, like:

1) Support window icons to be shown


Actually,this is my main motive to write Cabinet. For People are apt to distinguish from images instead of text.

2) Support cycling among workspaces


The rationale is that most times the reason you create another workspace is to make a bunch of applications distinguished from others. It's a bad idear to mix them together to choose from. The better one is only let you have applications of current workspace,and enable you to cycle among workspaces. Though, Cabinet afford you a choice: To toggle between workspace-mode -- to just show windows of current workspace -- and all-mode -- to show all the windows. When in workspace mode, the tag on split line is something like 2/3, which means the largest workspace id is 3, and now you are in workspace of id 2. When in all mode, the tag should be "ALL". Notice you should set workspace boundary to 'wrap-around, put this in your rc file:

(setq workspace-boundary-mode 'wrap-around)

3) Distinguish windows for display from windows for manipulation.

Some applications, most time you are not inclined to select them via Cabinet, for you already have a hot key for them or other reasons, but somehow you just want to see them there: being displayed on Cabinet. You may see a split line on Cabinet, the items below it are windows that you just want to display. This feature makes Cabinet could somehow functions like a panel.

4) Use forground color instead of tag to indicate window status.


Because the same reason for enabling icons. Because it saves a charater's space.

5) Enable users to manipulate a bunch of windows.


Use "Super-Spc" to mark the selected window, and use procedure "with-marked-wl", you can manipulate them. The marks will be cleared out after you quit from Cabinet. Cabinet affords a procedure to tile marked windows horizontally .

6) Item format


Item format is like this : icon + window name + <window class> + viewport id + workspace id Variable "cabinet-item-text" controls what to append to icon. You can customize it.

Installation[]

Cabinet required `hqw-util.jl', it should have been published along with Cabinet. To separate them apart, because hqw-util.jl's independence, you may find it useful at other occasions.

Put hqw-util.jl and cabinet.jl in your load directory. add

(require 'cabinet)

into your rc file.

&nbsp Use command `cabinet-switch' to start Cabinet. To bind it to "W-s",copy the following line to your rc file.

(bind-keys global-keymap "W-s" 'cabinet-switch)