Files
amiwm-neo/MODULES.md
Adrian Chadd 631176c9a2 [amiwm] Implement a keyboard shortcut to move a client to a different screen
This allows a keyboard shortcut to move a client to a different amiwm
screen.  That way when you have things like Firefox restart every window
in a single screen, you can quickly move screens to where they should be.
2022-09-05 16:06:18 -07:00

4.0 KiB

Background module

To get background images (aka backdrops) on your screens, use the Background module. The Module command should come after the Screen command, and the initstring should be the filename of the picture. Example:

Screen "Workbench Screen" Module "Background" "~/megumin.png"

The Background module is really a shell script that requires the program 'display' from imagemagick package. Currently, it doesn't support any standard imagemagick parameters.

Background_stretch module

Same as the Background module, but stretches your backdrop to size of your screen. Example:

Screen "Workbench Screen" Module "Background_stretch" "~/megumin.png"

Please note that this module will just stretch or downscale the image (depending on the size of the image) to your display ratio. If you don't want your image to look ugly, try the next module..

Background_resize module

Same as the Background_stretch, but it cares about your display ratio. For example, if you've got a 16:9 screen but your backdrop image is 4:3, it will get stretched, but it will still be displayed as a 4:3 picture. The remaining part of the screen will be used to show the same image, but repeated.

Keyboard module

With the Keyboard module, you can bind window manager functions to keys on the keyboard. The initstring should consist of one or more keybindings on the form

modifiers:where:func

Multiple keybindings are specified with spaces between them.

modifiers

Modifiers is 0 or more of: Shift Control Meta Lock Mod1 Mod2 Mod3 Mod4 Mod5 Button1 Button2 Button3 Button4 Button5

Modifiers are joined together using spaces. This can be confusing as it looks like keybindings are specified with spaces between them but the parser actually handles this.

The modifiers listed must be pressed together with the key to activate the binding.

keysym

Keysym is a standard X keysym name, like F1 or Prior.

where

where is either "all", or one or more of window, frame, icon, root separated with '|' (bar). This controls in what areas of the screen that the key will be active.

func

The function to perform when the key is pressed. Currently the following are defined:

rotatescreens - Move the frontmost screen to the back raisewindow - Rotate the bottom window to the top of the screen lowerwindow - Rotate the top window to the bottom of the screen rotatewindow - Move the current window to the next screen, rotate screen front - Move the window in which the key is pressed to the front back - Move the window in which the key is pressed to the back iconify - Iconify the window in which the key is pressed

Example

Module "Keyboard" "
Meta:window|frame:front
Meta:window|frame:iconify
Meta:window|frame:back"

This binds the keys Meta-F1, Meta-F2 and Meta-F3 to front, back and iconify respectively. The will only have effect inside windows and in window frames. (These are the only places that front/iconfy/back has effect anyway.)

An example with multiple modifiers in a single keybinding.

Module "Keyboard" "Meta:all:rotatescreens
Meta:all:raisewindow
Control Meta:all:lowerwindow"

Filesystem module

This is an april fools joke module, but at least it's a starting point for building out an icon on the desktop!

Module "Filesystem" "/path/to/open"

Launcher module

This is a simple prototype launcher program that will place an icon on the current workbench screen so it can be double clicked to run.

The module must be placed after the Screen definition you wish for it to show up in.

The format is:

Module "Launcher" "() () ()"

The icon is one of the .info icons in the amiwm IconDir.

Battery module

This is a simple battery state polling module that is being used during battery monitoring / menu toolbar development.

It's currently FreeBSD specific and based on what xbatt does to pull info from APM/ACPI. Adding Linux and other OS support shouldn't be too difficult.

Module "Battery"