a desktop and window manager for linux using x11 and xlib. it tries to reproduce the UX/UI of the amiga workbench as a workstation.
look at screenshots dir.
dependencies:
-lSM -lICE -lXext -lXmu -lX11 -lXrender -lXft -lXfixes
-lXdamage -lXrandr -lXcomposite -lm -lImlib2 -lfontconfig
install:
$ make
$ sudo make install
start the environment:
$ Xephyr -br -ac -noreset -screen 800x600 :1
$ DISPLAY=:1 ./amiwb
OR
$ startx ~/.xinitrc_amiwb -- :2
icons being used can be customised easily:
amiwb scans /usr/local/share/amiwb/icons/def_icons/ at start.
files like "def_zip.info" or "def_mp3.info" are automatically picked up and
will be used as default icon for the filetype.
and it looks for iconify icons in /usr/local/share/amiwb/icons/.
the general settings are in file ~/.config/amiwb/amiwbrc.
shortcuts, all use the "super" key. (check the menus).
example:
super+shift+Rhot-restarts amiwbsuper+Ecalls the "execute command" dialogsuper+Popens parent window in file managersuper+Rcalls rename dialog for the selected iconsuper+shift+Qquits amiwbsuper+shift+Dprints perfs output in the amiwb.log ..
-
menubar: all entries implemented. with global shortcut system (not user configurable, shortcuts hardcoded in for now). app menus substitutions works (for amiwb apps). additional custom menus parsed from file, toolsdaemon style. show optional menu addons (cpu, mem, sensors) LMB click on the menubar button on the far right gives a window list.
-
window decorations: sliders, arrows, close, resize, iconify, lower and maximize buttons work.
-
iconifying windows: "workbench" windows use a fixed "filer.info" icon for now, and clients use a name matching system, so if a app has a "kitty" name it will look for a "kitty.info" icon in /usr/local/share/amiwb/icons/ if matching check fails, it will show in file amiwb.log see: config.h ( #define LOG_FILE_PATH )
-
icons: show amiga icons, both normal and selected images. (classic, mwb, glowicons supported). the icon matching system works like on amiga: "xyz" dir will display image from "xyz.info" icon next to it, while hidding the .info file itself. same for files. multiselection works. some menu actions do support it (most don't yet.) file execution works through xdg-open for now. def_icons system works, it's simple and based on file extensions for matching.
-
drives management: auto mount external drives as device icons on the desktop. there's a ram disk too, it uses max available ram, minus 2gb reserved for linux, in case the user fills the ram disk so that doesn't crash or cripple the system.
-
background pictures for desktop and windows, both can do optional tiling
-
it handles: fullscreen for apps,
-
auto resize and adapt itself upon X resolutions changes
-
file operations: copy, move, dnd (with progress dialog and preserve extended attributes for comments) delete (with warning dialog) rename (rename dialog) execute (execute dialog, with file completion) information (icon info dialog, with comments, dir size, drives, and xdg-open support) extract (extract archive in place in a new dir, with progress dialog)
-
reqasl: browse the filesystem, using mouse or keyboard. open files (xdg-open) and dirs (in wb windows), clipboard support for inputfields. can add bookmarks, select all/none, show hidden
-
toolkit: using amiwb UI elements in new apps: button, listview, textview, inputfield, progress bar
TODO:
- make reqasl a file picker to load and save files from apps (wip)
- make a GUI for system settings