Code Monkey home page Code Monkey logo

awexygen's Introduction

Awexygen iconAwexygen

Standalone desktop application with the UI framework decoupled from awesome window manager (AwesomeWM for short), runnable in other window managers and desktop environments.

Disclaimer

Awexygen is a hobby project, and it is not part of AwesomeWM.

Awexygen leverages LGI to simulate a subset of AwesomeWM native runtime to run the UI framework without becoming another window manager. It might behave differently to the actual AwesomeWM runtime on certain aspects (see below). Also, performance may suffer from the simulation.

Usage

Before running Awexygen, you need to install Lua and LGI with Gtk 3 (and optionally librsvg). Awexygen also needs AwseomeWM's assets, but you don't have to install it: You can clone it from http://github.com/awesomewm/awesome and set env var AWESOMEWM_ASSETS_DIR to the cloned directory when running Awexygen.

To run Awexygen in command line, execute:

[path to awexygen] [entry] [other arguments...]

Entry can be a Lua script path or a module name, depending on whether it contains a / character or not. If the entry is not specified, module awexygen_rc will be loaded. If the module/script failed to load, an error message would be printed.

Awexygen will search modules in various paths (see the awexygen script), but the recommended place is the directory of your AwesomeWM config (i.e. $HOME/.config/awesome).

For exmaples, check the modules in the examples directory, and run them with e.g.

./awexygen examples/theme.lua

You can also install the desktop entry using utils/install_desktop.sh, which would generate awexygen.desktop in your local application directory.

Compatibility

I developed Awexygen with AwesomeWM 4.3-git, LGI 0.9.2 with Gtk 3, and Lua 5.1; No testing has been done with other versions.

What are supposed to work

  • lgi

  • gears

  • drawin and wibox (mostly)

    • Supported attributes: x, y, width, height, type, bg, fg, ontop, widget, visible, shape_clip, shape_bounding, shape_input
    • Extra attributes: title, icon_name, icon_pixbuf, resizable, decorated, gtk_layout
    • Setting attributes border_width, border_color, opacity is ignored. Use wibox.container.background on the main widget instead.
  • beautiful

  • naughty

  • awful.spawn except StartupNotification.

  • screen: Screen listing and configuration monitoring with the list signal.

  • keygrabber/mousegrabber will capture only key/mouse events to any windows of the application.

What are not supposed to work

  • Window managing and desktop environment related functionalities (e.g. root, client, tag).
  • Global key/mouse binding; grabbing is limited (see keygrabber/mousegrabber above).
  • systray
  • selection

Note that you may be able to do some of the above using external programs (with awful.spawn), external libraries (with LGI), and/or native Gtk widgets (see below).

Using Gtk widgets

For adventures, Awexygen provides awexygen.wrapped_gtk_widget to embed Gtk widgets into the AwesomeWM UI hierarchy. See examples/wrappped_gtk_widget.lua for example.

License

This project is licensed under GNU General Public License v3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.