diff --git a/packages/lua-lgi/build.sh b/packages/lua-lgi/build.sh index 7666ef4bef19048..7b6d8eb7d60600c 100644 --- a/packages/lua-lgi/build.sh +++ b/packages/lua-lgi/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Dynamic Lua binding to GObject libraries using GObject-I TERMUX_PKG_LICENSE="MIT" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.9.2 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=https://github.com/lgi-devs/lgi/archive/${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_SHA256=cfc4105482b4730b3a40097c9d9e7e35c46df2fb255370bdeb2f45a886548c4f TERMUX_PKG_AUTO_UPDATE=true diff --git a/packages/lua-lgi/glib-2.86.patch b/packages/lua-lgi/glib-2.86.patch new file mode 100644 index 000000000000000..9a810c8c99a21f8 --- /dev/null +++ b/packages/lua-lgi/glib-2.86.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Mon, 22 Sep 2025 00:32:48 +0200 +Subject: [PATCH] Use TypeClass.get instead of .ref + +`ref` became unintrospectable in GLib 2.86. +--- + lgi/ffi.lua | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/lgi/ffi.lua b/lgi/ffi.lua +index 10426325b265..617db8e815fc 100644 +--- a/lgi/ffi.lua ++++ b/lgi/ffi.lua +@@ -80,14 +80,13 @@ function ffi.load_enum(gtype, name) + local is_flags = GObject.Type.is_a(gtype, GObject.Type.FLAGS) + local enum_component = component.create( + gtype, is_flags and enum.bitflags_mt or enum.enum_mt, name) +- local type_class = GObject.TypeClass.ref(gtype) ++ local type_class = GObject.TypeClass.get(gtype) + local enum_class = core.record.cast( + type_class, is_flags and GObject.FlagsClass or GObject.EnumClass) + for i = 0, enum_class.n_values - 1 do + local val = core.record.fromarray(enum_class.values, i) + enum_component[core.upcase(val.value_nick):gsub('%-', '_')] = val.value + end +- type_class:unref() + return enum_component + end + diff --git a/x11-packages/awesome/awesomeConfig.cmake.patch b/x11-packages/awesome/awesomeConfig.cmake.patch deleted file mode 100644 index ddf334bb14f3acf..000000000000000 --- a/x11-packages/awesome/awesomeConfig.cmake.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/awesomeConfig.cmake -+++ b/awesomeConfig.cmake -@@ -65,7 +65,7 @@ - include(FindPkgConfig) - # lua - include(FindLua) --if (NOT LUA_FOUND) -+if (FALSE) - message(FATAL_ERROR - "Could not find Lua. See the error above.\n" - "You might want to hint it using the LUA_DIR environment variable, " diff --git a/x11-packages/awesome/build.sh b/x11-packages/awesome/build.sh index c19cb0a3e4c5fa4..9d416e426821029 100644 --- a/x11-packages/awesome/build.sh +++ b/x11-packages/awesome/build.sh @@ -3,11 +3,10 @@ TERMUX_PKG_DESCRIPTION="A highly configurable, next generation framework window TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_MAINTAINER="@termux" # Latest release version 4.3 does not support Lua 5.4. -_COMMIT=b54e50ad6cfdcd864a21970b31378f7c64adf3f4 -TERMUX_PKG_VERSION=2023.01.16 -TERMUX_PKG_REVISION=2 +_COMMIT=f009815cb75139acf4d8ba3c1090bf2844d13f4c +TERMUX_PKG_VERSION=2025.05.17 TERMUX_PKG_SRCURL=git+https://github.com/awesomeWM/awesome -TERMUX_PKG_SHA256=ce0f4ef9105adf1ca04536d60b31dc3aa04cb45e3b1459a63043c34484842ace +TERMUX_PKG_SHA256=d56f6ab4e9d820504509599279904b17e4bd2b4a37edab1adb43b3ecabd70893 TERMUX_PKG_GIT_BRANCH=master TERMUX_PKG_DEPENDS="dbus, gdk-pixbuf, glib, libcairo, liblua54, libx11, libxcb, libxdg-basedir, libxkbcommon, lua-lgi, pango, startup-notification, xcb-util, xcb-util-cursor, xcb-util-keysyms, xcb-util-wm, xcb-util-xrm" TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" @@ -33,31 +32,151 @@ termux_step_post_get_source() { fi } +# Function to obtain the .deb URL +obtain_deb_url() { + local url attempt retries wait PAGE deb_url + url="https://packages.ubuntu.com/noble/amd64/$1/download" + retries=50 + wait=50 + >&2 echo "url: $url" + for ((attempt=1; attempt<=retries; attempt++)); do + PAGE="$(curl -s "$url")" + deb_url="$(grep -oE 'https?://.*\.deb' <<< "$PAGE" | head -n1)" + if [[ -n "$deb_url" ]]; then + echo "$deb_url" + return 0 + else + >&2 echo "Attempt $attempt: Failed to obtain deb URL. Retrying in $wait seconds..." + fi + sleep "$wait" + done + termux_error_exit "Failed to obtain URL after $retries attempts." +} + +_install_ubuntu_packages() { + # install Ubuntu packages, like in the aosp-libs build.sh + export HOSTBUILD_ROOTFS="${TERMUX_PKG_HOSTBUILD_DIR}/ubuntu_packages" + mkdir -p "${HOSTBUILD_ROOTFS}" + local URL DEB_NAME DEB_LIST + DEB_LIST="$@" + for i in $DEB_LIST; do + echo "deb: $i" + URL="$(obtain_deb_url "$i")" + DEB_NAME="${URL##*/}" + termux_download "$URL" "${TERMUX_PKG_CACHEDIR}/${DEB_NAME}" SKIP_CHECKSUM + mkdir -p "${TERMUX_PKG_TMPDIR}/${DEB_NAME}" + ar x "${TERMUX_PKG_CACHEDIR}/${DEB_NAME}" --output="${TERMUX_PKG_TMPDIR}/${DEB_NAME}" + tar xf "${TERMUX_PKG_TMPDIR}/${DEB_NAME}"/data.tar.* \ + -C "${HOSTBUILD_ROOTFS}" + done + find "${HOSTBUILD_ROOTFS}" -type f -name '*.pc' | \ + xargs -n 1 sed -i -e "s|/usr|${HOSTBUILD_ROOTFS}/usr|g" + find "${HOSTBUILD_ROOTFS}/usr/lib/x86_64-linux-gnu" -xtype l \ + -exec sh -c "ln -snvf /usr/lib/x86_64-linux-gnu/\$(readlink \$1) \$1" sh {} \; + ln -sf convert-im6.q16 "${HOSTBUILD_ROOTFS}/usr/bin/convert" +} + +_load_ubuntu_packages() { + local hostbuild_lua_version="$(echo 'print(_VERSION)' | lua - | cut -d' ' -f2)" + export HOSTBUILD_ROOTFS="${TERMUX_PKG_HOSTBUILD_DIR}/ubuntu_packages" + export LD_LIBRARY_PATH="${HOSTBUILD_ROOTFS}/usr/lib/x86_64-linux-gnu" + LD_LIBRARY_PATH+=":${HOSTBUILD_ROOTFS}/usr/lib" + export LUA_PATH="${HOSTBUILD_ROOTFS}/usr/share/lua/$hostbuild_lua_version/?.lua;${TERMUX_PKG_SRCDIR}/?.lua" + export LUA_CPATH="${HOSTBUILD_ROOTFS}/usr/lib/x86_64-linux-gnu/lua/$hostbuild_lua_version/?.so" + export PATH="${HOSTBUILD_ROOTFS}/usr/bin:$PATH" + local hostbuild_imagemagick_version="$(convert --version | head -n1 | cut -d' ' -f3 | cut -d'-' -f1)" + export MAGICK_CODER_MODULE_PATH="${HOSTBUILD_ROOTFS}/usr/lib/x86_64-linux-gnu/ImageMagick-$hostbuild_imagemagick_version/modules-Q16/coders" +} + termux_step_host_build() { - local prefix="$TERMUX_PKG_HOSTBUILD_DIR/_prefix" - - local IMAGEMAGICK_BUILD_SH=$TERMUX_SCRIPTDIR/packages/imagemagick/build.sh - local IMAGEMAGICK_SRCURL=$(bash -c ". $IMAGEMAGICK_BUILD_SH; echo \$TERMUX_PKG_SRCURL") - local IMAGEMAGICK_SHA256=$(bash -c ". $IMAGEMAGICK_BUILD_SH; echo \$TERMUX_PKG_SHA256") - local IMAGEMAGICK_TARFILE=$TERMUX_PKG_CACHEDIR/$(basename $IMAGEMAGICK_SRCURL) - termux_download $IMAGEMAGICK_SRCURL $IMAGEMAGICK_TARFILE $IMAGEMAGICK_SHA256 - mkdir -p imagemagick - cd imagemagick - tar xf $IMAGEMAGICK_TARFILE --strip-components=1 - ./configure --prefix="$prefix" --with-png - make -j $TERMUX_PKG_MAKE_PROCESSES - make install + if [[ "$TERMUX_ON_DEVICE_BUILD" == "true" ]]; then + return + fi + + local hostbuild_lua_version="$(echo 'print(_VERSION)' | lua - | cut -d' ' -f2)" + _install_ubuntu_packages lua-lgi \ + lua-any \ + lua-expat \ + lua-filesystem \ + lua-ldoc \ + lua-penlight \ + imagemagick \ + imagemagick-6-common \ + imagemagick-6.q16 \ + libaom3 libde265-0 \ + libdjvulibre-text \ + libdjvulibre21 \ + libfftw3-double3 \ + libheif-plugin-aomdec \ + libheif-plugin-aomenc \ + libheif-plugin-libde265 \ + libheif1 \ + libjxr-tools \ + libjxr0t64 \ + liblqr-1-0 \ + libmagickcore-6.q16-7-extra \ + libmagickcore-6.q16-7t64 \ + libmagickwand-6.q16-7t64 \ + libwmflite-0.2-7 \ + liblua"$hostbuild_lua_version"-0 \ + liblua"$hostbuild_lua_version"-dev \ + libstartup-notification0 \ + libstartup-notification0-dev \ + libx11-xcb-dev \ + libxcb-cursor-dev \ + libxcb-cursor0 \ + libxcb-icccm4 \ + libxcb-icccm4-dev \ + libxcb-image0 \ + libxcb-image0-dev \ + libxcb-keysyms1 \ + libxcb-keysyms1-dev \ + libxcb-randr0-dev \ + libxcb-render-util0 \ + libxcb-render-util0-dev \ + libxcb-shape0 \ + libxcb-shape0-dev \ + libxcb-util-dev \ + libxcb-util0-dev \ + libxcb-util1 \ + libxcb-xinerama0 \ + libxcb-xinerama0-dev \ + libxcb-xkb-dev \ + libxcb-xkb1 \ + libxcb-xrm-dev \ + libxcb-xrm0 \ + libxcb-xtest0 \ + libxcb-xtest0-dev \ + libxdg-basedir-dev \ + libxdg-basedir1 \ + libxkbcommon-x11-0 \ + libxkbcommon-x11-dev \ + libxcb-shape0 \ + libxcb-shape0-dev \ + libxcb-xfixes0-dev + _load_ubuntu_packages + + termux_setup_cmake + termux_setup_ninja + + export PKG_CONFIG_PATH="${HOSTBUILD_ROOTFS}/usr/lib/x86_64-linux-gnu/pkgconfig" + export CFLAGS="-I${HOSTBUILD_ROOTFS}/usr/include/x86_64-linux-gnu" + CFLAGS+=" -I/usr/include/xcb" + cmake \ + -G Ninja \ + -S ${TERMUX_PKG_SRCDIR} \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + -DCMAKE_PREFIX_PATH="${HOSTBUILD_ROOTFS}/usr" \ + -DCMAKE_INSTALL_PREFIX="${HOSTBUILD_ROOTFS}/usr" + ninja \ + -j ${TERMUX_PKG_MAKE_PROCESSES} \ + install + unset PKG_CONFIG_PATH CFLAGS } termux_step_pre_configure() { - export PATH="$TERMUX_PKG_HOSTBUILD_DIR/_prefix/bin:$PATH" - - local bin="$TERMUX_PKG_BUILDDIR/_bin" - mkdir -p "$bin" - sed -e "s|@PREGEN_DIR@|$TERMUX_PKG_BUILDER_DIR/pregen|g" \ - "$TERMUX_PKG_BUILDER_DIR/lua-wrapper.in" > "$bin/lua" - chmod 0700 "$bin/lua" - touch "$bin/lgi-check" - chmod 0700 "$bin/lgi-check" - export PATH="$bin:$PATH" + if [[ "$TERMUX_ON_DEVICE_BUILD" == "false" ]]; then + _load_ubuntu_packages + export PATH="$TERMUX_PKG_HOSTBUILD_DIR:$PATH" + fi } diff --git a/x11-packages/awesome/glib-2.86.patch b/x11-packages/awesome/glib-2.86.patch new file mode 100644 index 000000000000000..b1fef7d8c800179 --- /dev/null +++ b/x11-packages/awesome/glib-2.86.patch @@ -0,0 +1,150 @@ +From 5ae48086fbc87cc7086e9da43bfc1e3407214e5e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Sat, 17 May 2025 20:32:58 +0200 +Subject: [PATCH 1/2] lib, tests: use GioUnix to use platform-specific Gio + classes + +In newest glib GioUnix symbols are not anymore exposed in GioUnix, +while lua-lgi should handle the change transparently, it's better to +adapt awesome to just use the right namespace. +--- + lib/awful/spawn.lua | 5 +++-- + tests/_client.lua | 11 ++++++----- + tests/test-spawn.lua | 8 ++++---- + 3 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/lib/awful/spawn.lua b/lib/awful/spawn.lua +index 7d3e945087..8eb7847627 100644 +--- a/lib/awful/spawn.lua ++++ b/lib/awful/spawn.lua +@@ -225,6 +225,7 @@ local capi = + } + local lgi = require("lgi") + local Gio = lgi.Gio ++local GioUnix = lgi.GioUnix + local GLib = lgi.GLib + local util = require("awful.util") + local gtable = require("gears.table") +@@ -418,11 +419,11 @@ function spawn.with_line_callback(cmd, callbacks) + end + end + if have_stdout then +- spawn.read_lines(Gio.UnixInputStream.new(stdout, true), ++ spawn.read_lines(GioUnix.InputStream.new(stdout, true), + stdout_callback, step_done, true) + end + if have_stderr then +- spawn.read_lines(Gio.UnixInputStream.new(stderr, true), ++ spawn.read_lines(GioUnix.InputStream.new(stderr, true), + stderr_callback, step_done, true) + end + assert(stdin == nil) +diff --git a/tests/_client.lua b/tests/_client.lua +index 3eb015f312..d45786bb28 100644 +--- a/tests/_client.lua ++++ b/tests/_client.lua +@@ -16,6 +16,7 @@ local GLib = lgi.require('GLib') + local Gdk = lgi.require('Gdk') + local Gtk = lgi.require('Gtk', '3.0') + local Gio = lgi.require('Gio') ++local GioUnix = lgi.require('GioUnix') + Gtk.init() + + local function open_window(class, title, options) +@@ -88,7 +89,7 @@ end) + coro() + + -- Read lines from stdin and feed them to the coroutine +-local stdin = Gio.UnixInputStream.new(0, false) ++local stdin = GioUnix.InputStream.new(0, false) + stdin = Gio.DataInputStream.new(stdin) + + local read_start, read_finish +@@ -116,7 +117,7 @@ Gtk:main{...} + ]] + + local lgi = require("lgi") +-local Gio = lgi.require("Gio") ++local GioUnix = lgi.require("GioUnix") + + local initialized = false + local pipe, pid +@@ -126,10 +127,10 @@ local function init() + initialized = true + local cmd = { lua_executable, "-e", test_client_source } + local _pid, _, stdin, stdout, stderr = awesome.spawn(cmd, false, true, true, true) +- pipe = Gio.UnixOutputStream.new(stdin, true) ++ pipe = GioUnix.OutputStream.new(stdin, true) + pid = _pid +- stdout = Gio.UnixInputStream.new(stdout, true) +- stderr = Gio.UnixInputStream.new(stderr, true) ++ stdout = GioUnix.InputStream.new(stdout, true) ++ stderr = GioUnix.InputStream.new(stderr, true) + spawn.read_lines(stdout, function(...) print("_client", ...) end) + spawn.read_lines(stderr, function(...) print("_client", ...) end) + end +diff --git a/tests/test-spawn.lua b/tests/test-spawn.lua +index dfc3cc5f8d..a24a94238a 100644 +--- a/tests/test-spawn.lua ++++ b/tests/test-spawn.lua +@@ -109,7 +109,7 @@ local steps = { + local pid, _, _, stdout = awesome.spawn({ "sh", "-c", "echo $AWESOME_SPAWN_TEST_VAR $HOME $USER" }, + false, false, true, false, nil, { "AWESOME_SPAWN_TEST_VAR=42" }) + assert(type(pid) ~= "string", pid) +- spawn.read_lines(require("lgi").Gio.UnixInputStream.new(stdout, true), ++ spawn.read_lines(require("lgi").GioUnix.InputStream.new(stdout, true), + function(line) + assert(not read_line) + read_line = true +@@ -171,7 +171,7 @@ local steps = { + false, false, true, "DEV_NULL") + assert(type(pid) ~= "string", pid) + assert(stderr == nil) +- spawn.read_lines(require("lgi").Gio.UnixInputStream.new(stdout, true), ++ spawn.read_lines(require("lgi").GioUnix.InputStream.new(stdout, true), + function(line) + assert(not read_line) + read_line = true +@@ -189,7 +189,7 @@ local steps = { + false, "INHERIT", true, false) + assert(type(pid) ~= "string", pid) + assert(stdin == nil) +- spawn.read_lines(require("lgi").Gio.UnixInputStream.new(stdout, true), ++ spawn.read_lines(require("lgi").GioUnix.InputStream.new(stdout, true), + function(line) + assert(not read_line) + read_line = true +@@ -215,7 +215,7 @@ local steps = { + assert(stdin ~= nil) + assert(stdout ~= nil) + assert(stderr ~= nil) +- spawn.read_lines(require("lgi").Gio.UnixInputStream.new(stdout, true), ++ spawn.read_lines(require("lgi").GioUnix.InputStream.new(stdout, true), + function(line) + assert(not read_line) + read_line = true + +From 80b7fa8262495e331da3c98a48adf94a5a806fef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= +Date: Sat, 13 Sep 2025 02:13:01 +0200 +Subject: [PATCH 2/2] awesomeConfig: Bump dependency on GLib 2.79.2 + +This is the version that provided GioUnix symbols, so we need to depend +on that +--- + awesomeConfig.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/awesomeConfig.cmake b/awesomeConfig.cmake +index 592c2b2526..b27baa456c 100644 +--- a/awesomeConfig.cmake ++++ b/awesomeConfig.cmake +@@ -132,7 +132,7 @@ pkg_check_modules(AWESOME_COMMON_REQUIRED REQUIRED + + set(AWESOME_DEPENDENCIES + glib-2.0 +- glib-2.0>=2.40 ++ glib-2.0>=2.79.2 + gdk-pixbuf-2.0 + cairo + x11 diff --git a/x11-packages/awesome/lua-wrapper.in b/x11-packages/awesome/lua-wrapper.in deleted file mode 100644 index e7390e3ae4c3ced..000000000000000 --- a/x11-packages/awesome/lua-wrapper.in +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -set -e - -PREGEN_DIR="@PREGEN_DIR@" - -exit_unknown() { - echo "lua-wrapper: ERROR: Unknown command: $@" >&2 - exit 1 -} - -case "$1" in - */docs/05-awesomerc.md.lua ) - a="/docs/05-awesomerc.md" - [[ "$2" =~ "$a" ]] || exit_unknown "$@" - cp "$PREGEN_DIR$a" "$2" - b="/awesomerc.lua" - [[ "$4" =~ "$b" ]] || exit_unknown "$@" - cp "$PREGEN_DIR$b" "$4" - c="/script_files/rc.lua" - [[ "$5" =~ "$c" ]] || exit_unknown "$@" - cp "$PREGEN_DIR$c" "$5" - ;; - */docs/06-appearance.md.lua ) - a="/docs/06-appearance.md" - [[ "$2" =~ "$a" ]] || exit_unknown "$@" - cp "$PREGEN_DIR$a" "$2" - ;; - */docs/build_rules_index.lua ) - cp "$PREGEN_DIR/docs/common/$(basename "$2")" "$2" - ;; - */docs/sample_theme.lua ) - cp "$PREGEN_DIR/script_files/theme.lua" "$2" - ;; - * ) - exit_unknown "$@" -esac diff --git a/x11-packages/awesome/pregen/awesomerc.lua b/x11-packages/awesome/pregen/awesomerc.lua deleted file mode 100644 index ab3b381f0a72e85..000000000000000 --- a/x11-packages/awesome/pregen/awesomerc.lua +++ /dev/null @@ -1,563 +0,0 @@ --- awesome_mode: api-level=4:screen=on --- If LuaRocks is installed, make sure that packages installed through it are --- found (e.g. lgi). If LuaRocks is not installed, do nothing. -pcall(require, "luarocks.loader") - --- Standard awesome library -local gears = require("gears") -local awful = require("awful") -require("awful.autofocus") --- Widget and layout library -local wibox = require("wibox") --- Theme handling library -local beautiful = require("beautiful") --- Notification library -local naughty = require("naughty") --- Declarative object management -local ruled = require("ruled") -local menubar = require("menubar") -local hotkeys_popup = require("awful.hotkeys_popup") --- Enable hotkeys help widget for VIM and other apps --- when client with a matching name is opened: -require("awful.hotkeys_popup.keys") - --- {{{ Error handling --- Check if awesome encountered an error during startup and fell back to --- another config (This code will only ever execute for the fallback config) -naughty.connect_signal("request::display_error", function(message, startup) - naughty.notification { - urgency = "critical", - title = "Oops, an error happened"..(startup and " during startup!" or "!"), - message = message - } -end) --- }}} - --- {{{ Variable definitions --- Themes define colours, icons, font and wallpapers. -beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") - --- This is used later as the default terminal and editor to run. -terminal = "xterm" -editor = os.getenv("EDITOR") or "nano" -editor_cmd = terminal .. " -e " .. editor - --- Default modkey. --- Usually, Mod4 is the key with a logo between Control and Alt. --- If you do not like this or do not have such a key, --- I suggest you to remap Mod4 to another key using xmodmap or other tools. --- However, you can use another modifier like Mod1, but it may interact with others. -modkey = "Mod4" --- }}} - --- {{{ Menu --- Create a launcher widget and a main menu -myawesomemenu = { - { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", function() awesome.quit() end }, -} - -mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "open terminal", terminal } - } - }) - -mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, - menu = mymainmenu }) - --- Menubar configuration -menubar.utils.terminal = terminal -- Set the terminal for applications that require it --- }}} - --- {{{ Tag layout --- Table of layouts to cover with awful.layout.inc, order matters. -tag.connect_signal("request::default_layouts", function() - awful.layout.append_default_layouts({ - awful.layout.suit.floating, - awful.layout.suit.tile, - awful.layout.suit.tile.left, - awful.layout.suit.tile.bottom, - awful.layout.suit.tile.top, - awful.layout.suit.fair, - awful.layout.suit.fair.horizontal, - awful.layout.suit.spiral, - awful.layout.suit.spiral.dwindle, - awful.layout.suit.max, - awful.layout.suit.max.fullscreen, - awful.layout.suit.magnifier, - awful.layout.suit.corner.nw, - }) -end) --- }}} - --- {{{ Wallpaper -screen.connect_signal("request::wallpaper", function(s) - awful.wallpaper { - screen = s, - widget = { - { - image = beautiful.wallpaper, - upscale = true, - downscale = true, - widget = wibox.widget.imagebox, - }, - valign = "center", - halign = "center", - tiled = false, - widget = wibox.container.tile, - } - } -end) --- }}} - --- {{{ Wibar - --- Keyboard map indicator and switcher -mykeyboardlayout = awful.widget.keyboardlayout() - --- Create a textclock widget -mytextclock = wibox.widget.textclock() - -screen.connect_signal("request::desktop_decoration", function(s) - -- Each screen has its own tag table. - awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) - - -- Create a promptbox for each screen - s.mypromptbox = awful.widget.prompt() - - -- Create an imagebox widget which will contain an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = awful.widget.layoutbox { - screen = s, - buttons = { - awful.button({ }, 1, function () awful.layout.inc( 1) end), - awful.button({ }, 3, function () awful.layout.inc(-1) end), - awful.button({ }, 4, function () awful.layout.inc(-1) end), - awful.button({ }, 5, function () awful.layout.inc( 1) end), - } - } - - -- Create a taglist widget - s.mytaglist = awful.widget.taglist { - screen = s, - filter = awful.widget.taglist.filter.all, - buttons = { - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - awful.button({ }, 4, function(t) awful.tag.viewprev(t.screen) end), - awful.button({ }, 5, function(t) awful.tag.viewnext(t.screen) end), - } - } - - -- Create a tasklist widget - s.mytasklist = awful.widget.tasklist { - screen = s, - filter = awful.widget.tasklist.filter.currenttags, - buttons = { - awful.button({ }, 1, function (c) - c:activate { context = "tasklist", action = "toggle_minimization" } - end), - awful.button({ }, 3, function() awful.menu.client_list { theme = { width = 250 } } end), - awful.button({ }, 4, function() awful.client.focus.byidx(-1) end), - awful.button({ }, 5, function() awful.client.focus.byidx( 1) end), - } - } - - -- Create the wibox - s.mywibox = awful.wibar { - position = "top", - screen = s, - widget = { - layout = wibox.layout.align.horizontal, - { -- Left widgets - layout = wibox.layout.fixed.horizontal, - mylauncher, - s.mytaglist, - s.mypromptbox, - }, - s.mytasklist, -- Middle widget - { -- Right widgets - layout = wibox.layout.fixed.horizontal, - mykeyboardlayout, - wibox.widget.systray(), - mytextclock, - s.mylayoutbox, - }, - } - } -end) - --- }}} - --- {{{ Mouse bindings -awful.mouse.append_global_mousebindings({ - awful.button({ }, 3, function () mymainmenu:toggle() end), - awful.button({ }, 4, awful.tag.viewprev), - awful.button({ }, 5, awful.tag.viewnext), -}) --- }}} - --- {{{ Key bindings - --- General Awesome keys -awful.keyboard.append_global_keybindings({ - awful.key({ modkey, }, "s", hotkeys_popup.show_help, - {description="show help", group="awesome"}), - awful.key({ modkey, }, "w", function () mymainmenu:show() end, - {description = "show main menu", group = "awesome"}), - awful.key({ modkey, "Control" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"}), - awful.key({ modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"}), - awful.key({ modkey }, "x", - function () - awful.prompt.run { - prompt = "Run Lua code: ", - textbox = awful.screen.focused().mypromptbox.widget, - exe_callback = awful.util.eval, - history_path = awful.util.get_cache_dir() .. "/history_eval" - } - end, - {description = "lua execute prompt", group = "awesome"}), - awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, - {description = "open a terminal", group = "launcher"}), - awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), - awful.key({ modkey }, "p", function() menubar.show() end, - {description = "show the menubar", group = "launcher"}), -}) - --- Tags related keybindings -awful.keyboard.append_global_keybindings({ - awful.key({ modkey, }, "Left", awful.tag.viewprev, - {description = "view previous", group = "tag"}), - awful.key({ modkey, }, "Right", awful.tag.viewnext, - {description = "view next", group = "tag"}), - awful.key({ modkey, }, "Escape", awful.tag.history.restore, - {description = "go back", group = "tag"}), -}) - --- Focus related keybindings -awful.keyboard.append_global_keybindings({ - awful.key({ modkey, }, "j", - function () - awful.client.focus.byidx( 1) - end, - {description = "focus next by index", group = "client"} - ), - awful.key({ modkey, }, "k", - function () - awful.client.focus.byidx(-1) - end, - {description = "focus previous by index", group = "client"} - ), - awful.key({ modkey, }, "Tab", - function () - awful.client.focus.history.previous() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}), - awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), - awful.key({ modkey, "Control" }, "n", - function () - local c = awful.client.restore() - -- Focus restored client - if c then - c:activate { raise = true, context = "key.unminimize" } - end - end, - {description = "restore minimized", group = "client"}), -}) - --- Layout related keybindings -awful.keyboard.append_global_keybindings({ - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, - {description = "swap with next client by index", group = "client"}), - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, - {description = "swap with previous client by index", group = "client"}), - awful.key({ modkey, }, "u", awful.client.urgent.jumpto, - {description = "jump to urgent client", group = "client"}), - awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, - {description = "increase master width factor", group = "layout"}), - awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, - {description = "decrease master width factor", group = "layout"}), - awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, - {description = "increase the number of master clients", group = "layout"}), - awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, - {description = "decrease the number of master clients", group = "layout"}), - awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, - {description = "increase the number of columns", group = "layout"}), - awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}), - awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, - {description = "select next", group = "layout"}), - awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, - {description = "select previous", group = "layout"}), -}) - - -awful.keyboard.append_global_keybindings({ - awful.key { - modifiers = { modkey }, - keygroup = "numrow", - description = "only view tag", - group = "tag", - on_press = function (index) - local screen = awful.screen.focused() - local tag = screen.tags[index] - if tag then - tag:view_only() - end - end, - }, - awful.key { - modifiers = { modkey, "Control" }, - keygroup = "numrow", - description = "toggle tag", - group = "tag", - on_press = function (index) - local screen = awful.screen.focused() - local tag = screen.tags[index] - if tag then - awful.tag.viewtoggle(tag) - end - end, - }, - awful.key { - modifiers = { modkey, "Shift" }, - keygroup = "numrow", - description = "move focused client to tag", - group = "tag", - on_press = function (index) - if client.focus then - local tag = client.focus.screen.tags[index] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - }, - awful.key { - modifiers = { modkey, "Control", "Shift" }, - keygroup = "numrow", - description = "toggle focused client on tag", - group = "tag", - on_press = function (index) - if client.focus then - local tag = client.focus.screen.tags[index] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - }, - awful.key { - modifiers = { modkey }, - keygroup = "numpad", - description = "select layout directly", - group = "layout", - on_press = function (index) - local t = awful.screen.focused().selected_tag - if t then - t.layout = t.layouts[index] or t.layout - end - end, - } -}) - -client.connect_signal("request::default_mousebindings", function() - awful.mouse.append_client_mousebindings({ - awful.button({ }, 1, function (c) - c:activate { context = "mouse_click" } - end), - awful.button({ modkey }, 1, function (c) - c:activate { context = "mouse_click", action = "mouse_move" } - end), - awful.button({ modkey }, 3, function (c) - c:activate { context = "mouse_click", action = "mouse_resize"} - end), - }) -end) - -client.connect_signal("request::default_keybindings", function() - awful.keyboard.append_client_keybindings({ - awful.key({ modkey, }, "f", - function (c) - c.fullscreen = not c.fullscreen - c:raise() - end, - {description = "toggle fullscreen", group = "client"}), - awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, - {description = "close", group = "client"}), - awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , - {description = "toggle floating", group = "client"}), - awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, - {description = "move to master", group = "client"}), - awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, - {description = "move to screen", group = "client"}), - awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, - {description = "toggle keep on top", group = "client"}), - awful.key({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end , - {description = "minimize", group = "client"}), - awful.key({ modkey, }, "m", - function (c) - c.maximized = not c.maximized - c:raise() - end , - {description = "(un)maximize", group = "client"}), - awful.key({ modkey, "Control" }, "m", - function (c) - c.maximized_vertical = not c.maximized_vertical - c:raise() - end , - {description = "(un)maximize vertically", group = "client"}), - awful.key({ modkey, "Shift" }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c:raise() - end , - {description = "(un)maximize horizontally", group = "client"}), - }) -end) - --- }}} - --- {{{ Rules --- Rules to apply to new clients. -ruled.client.connect_signal("request::rules", function() - -- All clients will match this rule. - ruled.client.append_rule { - id = "global", - rule = { }, - properties = { - focus = awful.client.focus.filter, - raise = true, - screen = awful.screen.preferred, - placement = awful.placement.no_overlap+awful.placement.no_offscreen - } - } - - -- Floating clients. - ruled.client.append_rule { - id = "floating", - rule_any = { - instance = { "copyq", "pinentry" }, - class = { - "Arandr", "Blueman-manager", "Gpick", "Kruler", "Sxiv", - "Tor Browser", "Wpa_gui", "veromix", "xtightvncviewer" - }, - -- Note that the name property shown in xprop might be set slightly after creation of the client - -- and the name shown there might not match defined rules here. - name = { - "Event Tester", -- xev. - }, - role = { - "AlarmWindow", -- Thunderbird's calendar. - "ConfigManager", -- Thunderbird's about:config. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. - } - }, - properties = { floating = true } - } - - -- Add titlebars to normal clients and dialogs - ruled.client.append_rule { - id = "titlebars", - rule_any = { type = { "normal", "dialog" } }, - properties = { titlebars_enabled = true } - } - - -- Set Firefox to always map on the tag named "2" on screen 1. - -- ruled.client.append_rule { - -- rule = { class = "Firefox" }, - -- properties = { screen = 1, tag = "2" } - -- } -end) --- }}} - --- {{{ Titlebars --- Add a titlebar if titlebars_enabled is set to true in the rules. -client.connect_signal("request::titlebars", function(c) - -- buttons for the titlebar - local buttons = { - awful.button({ }, 1, function() - c:activate { context = "titlebar", action = "mouse_move" } - end), - awful.button({ }, 3, function() - c:activate { context = "titlebar", action = "mouse_resize"} - end), - } - - awful.titlebar(c).widget = { - { -- Left - awful.titlebar.widget.iconwidget(c), - buttons = buttons, - layout = wibox.layout.fixed.horizontal - }, - { -- Middle - { -- Title - halign = "center", - widget = awful.titlebar.widget.titlewidget(c) - }, - buttons = buttons, - layout = wibox.layout.flex.horizontal - }, - { -- Right - awful.titlebar.widget.floatingbutton (c), - awful.titlebar.widget.maximizedbutton(c), - awful.titlebar.widget.stickybutton (c), - awful.titlebar.widget.ontopbutton (c), - awful.titlebar.widget.closebutton (c), - layout = wibox.layout.fixed.horizontal() - }, - layout = wibox.layout.align.horizontal - } -end) --- }}} - --- {{{ Notifications - -ruled.notification.connect_signal('request::rules', function() - -- All notifications will match this rule. - ruled.notification.append_rule { - rule = { }, - properties = { - screen = awful.screen.preferred, - implicit_timeout = 5, - } - } -end) - -naughty.connect_signal("request::display", function(n) - naughty.layout.box { notification = n } -end) - --- }}} - --- Enable sloppy focus, so that focus follows mouse. -client.connect_signal("mouse::enter", function(c) - c:activate { context = "mouse_enter", raise = false } -end) \ No newline at end of file diff --git a/x11-packages/awesome/pregen/docs/05-awesomerc.md b/x11-packages/awesome/pregen/docs/05-awesomerc.md deleted file mode 100644 index 3b60be0ad8bb2bc..000000000000000 --- a/x11-packages/awesome/pregen/docs/05-awesomerc.md +++ /dev/null @@ -1,771 +0,0 @@ -# Default configuration file documentation - -This document explains the default `rc.lua` file provided by Awesome. - - awesome_mode: api-level=4:screen=on - If LuaRocks is installed, make sure that packages installed through it are - found (e.g. lgi). If LuaRocks is not installed, do nothing. - - pcall(require, "luarocks.loader") - - -The Awesome API is distributed across many libraries (also called modules). - -Here are the modules that we import: - - - - - - - - - - - - - -
LibraryDescription
`gears`Utilities such as color parsing and objects
`wibox`Awesome own generic widget framework
`awful`Everything related to window managment
`naughty`Notifications
`ruled`Define declarative rules on various events
`menubar`XDG (application) menu implementation
`beautiful`Awesome theme module
- - Standard awesome library - - local gears = require("gears") - local awful = require("awful") - require("`awful.autofocus`") - - Widget and layout library - - local wibox = require("wibox") - - Theme handling library - - local beautiful = require("beautiful") - - Notification library - - local naughty = require("naughty") - - Declarative object management - - local ruled = require("ruled") - local menubar = require("menubar") - local hotkeys_popup = require("`awful.hotkeys`_popup") - - Enable hotkeys help widget for VIM and other apps - when client with a matching name is opened: - - require("`awful.hotkeys`_popup.keys") - - -## Error handling - Check if awesome encountered an error during startup and fell back to - another config (This code will only ever execute for the fallback config) - -Awesome is a window managing framework. It allows its users great (ultimate?) -flexibility. However, it also allows the user to write invalid code. Here's a -non-exhaustive list of possible errors: - - * Syntax: There is an `awesome -k` option available in the command line to - check the configuration file. Awesome cannot start with an invalid `rc.lua` - * Invalid APIs and type errors: Lua is a dynamic language. It doesn't have much - support for static/compile time checks. There is the `luacheck` utility to - help find some categories of errors. Those errors will cause Awesome to - "drop" the current call stack and start over. Note that if it cannot - reach the end of the `rc.lua` without errors, it will fall back to the - original file. - * Invalid logic: It is possible to write fully valid code that will render - Awesome unusable (like an infinite loop or blocking commands). In that case, - the best way to debug this is either using `print()` or using `gdb`. For - this, see the [Debugging tips Readme section](../documentation/01-readme.md.html) - * Deprecated APIs: The Awesome API is not frozen for eternity. After a decade - of development and recent changes to enforce consistency, it hasn't - changed much. This doesn't mean it won't change in the future. Whenever - possible, changes won't cause errors but will instead print a deprecation - message in the Awesome logs. These logs are placed in various places - depending on the distribution. By default, Awesome will print errors on - `stderr` and `stdout`. - - - - `naughty.connect`_signal("request::display_error", function(message, startup) - `naughty.notification` { - urgency = "critical", - title = "Oops, an error happened"..(startup and " during startup!" or "!"), - message = message - } - end) - - -## Variable definitions -To create custom themes, the easiest way is to copy the `default` theme folder -from `/usr/share/awesome/themes/` into `~/.config/awesome` and modify it. - -Awesome currently doesn't behave well without a theme containing all the "basic" -variables such as `bg_normal`. To get a list of all official variables, see -the [appearance guide](../documentation/06-appearance.md.html). - Themes define colours, icons, font and wallpapers. - - `beautiful.init`(`gears.filesystem.get`_themes_dir() .. "default/theme.lua") - - -   - This is used later as the default terminal and editor to run. - - terminal = "xterm" - editor = os.getenv("EDITOR") or "nano" - editor_cmd = terminal .. " -e " .. editor - - - Default modkey. - Usually, Mod4 is the key with a logo between Control and Alt. - If you do not like this or do not have such a key, - I suggest you to remap Mod4 to another key using xmodmap or other tools. - However, you can use another modifier like Mod1, but it may interact with others. - - modkey = "Mod4" - - -## Menu -   - Create a launcher widget and a main menu - - myawesomemenu = { - { "hotkeys", function() hotkeys_popup.show_help(nil, `awful.screen.focused`()) end }, - { "manual", terminal .. " -e man awesome" }, - { "edit config", editor_cmd .. " " .. awesome.conffile }, - { "restart", awesome.restart }, - { "quit", function() awesome.quit() end }, - } - - mymainmenu = `awful.menu`({ items = { { "awesome", myawesomemenu, `beautiful.awesome`_icon }, - { "open terminal", terminal } - } - }) - - mylauncher = `awful.widget.launcher`({ image = `beautiful.awesome`_icon, - menu = mymainmenu }) - - - Menubar configuration - - `menubar.utils.terminal` = terminal -- Set the terminal for applications that require it - - -## Tag layout -   - Table of layouts to cover with awful.layout.inc, order matters. - - tag.connect_signal("request::default_layouts", function() - `awful.layout.append`_default_layouts({ - `awful.layout.suit.floating`, - `awful.layout.suit.tile`, - `awful.layout.suit.tile.left`, - `awful.layout.suit.tile.bottom`, - `awful.layout.suit.tile.top`, - `awful.layout.suit.fair`, - `awful.layout.suit.fair.horizontal`, - `awful.layout.suit.spiral`, - `awful.layout.suit.spiral.dwindle`, - `awful.layout.suit.max`, - `awful.layout.suit.max.fullscreen`, - `awful.layout.suit.magnifier`, - `awful.layout.suit.corner.nw`, - }) - end) - - -## Wallpaper -The AwesomeWM wallpaper module, `awful.wallpaper` support both per-screen wallpaper -and wallpaper across multiple screens. In the default configuration, the `"request::wallpaper"` signal -is emitted everytime a screen is added, moved, resized or when the bars -(`awful.wibar`) are moved. - -This is will suited for single-screen wallpapers. If you wish to use multi-screen wallpaper, -it is better to create a global wallpaper object and edit it when the screen change. See -the `add_screen`/`remove_screens` methods and the `screens` property of `awful.wallpaper` for -examples. - - screen.connect_signal("request::wallpaper", function(s) - `awful.wallpaper` { - screen = s, - widget = { - { - image = `beautiful.wallpaper`, - upscale = true, - downscale = true, - widget = `wibox.widget.imagebox`, - }, - valign = "center", - halign = "center", - tiled = false, - widget = `wibox.container.tile`, - } - } - end) - - -## Wibar - - - - Keyboard map indicator and switcher - - mykeyboardlayout = `awful.widget.keyboardlayout`() - - - Create a textclock widget - - mytextclock = `wibox.widget.textclock`() - - -   - - screen.connect_signal("request::desktop_decoration", function(s) - -- Each screen has its own tag table. - `awful.tag`({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, `awful.layout.layouts`[1]) - - -- Create a promptbox for each screen - s.mypromptbox = `awful.widget.prompt`() - - -- Create an imagebox widget which will contain an icon indicating which layout we're using. - -- We need one layoutbox per screen. - s.mylayoutbox = `awful.widget.layoutbox` { - screen = s, - buttons = { - `awful.button`({ }, 1, function () `awful.layout.inc`( 1) end), - `awful.button`({ }, 3, function () `awful.layout.inc`(-1) end), - `awful.button`({ }, 4, function () `awful.layout.inc`(-1) end), - `awful.button`({ }, 5, function () `awful.layout.inc`( 1) end), - } - } - - -- Create a taglist widget - s.mytaglist = `awful.widget.taglist` { - screen = s, - filter = `awful.widget.taglist.filter.all`, - buttons = { - `awful.button`({ }, 1, function(t) t:view_only() end), - `awful.button`({ modkey }, 1, function(t) - if client.focus then - client.focus:move_to_tag(t) - end - end), - `awful.button`({ }, 3, `awful.tag.viewtoggle`), - `awful.button`({ modkey }, 3, function(t) - if client.focus then - client.focus:toggle_tag(t) - end - end), - `awful.button`({ }, 4, function(t) `awful.tag.viewprev`(t.screen) end), - `awful.button`({ }, 5, function(t) `awful.tag.viewnext`(t.screen) end), - } - } - - -   - - -- Create a tasklist widget - s.mytasklist = `awful.widget.tasklist` { - screen = s, - filter = `awful.widget.tasklist.filter.currenttags`, - buttons = { - `awful.button`({ }, 1, function (c) - c:activate { context = "tasklist", action = "toggle_minimization" } - end), - `awful.button`({ }, 3, function() `awful.menu.client`_list { theme = { width = 250 } } end), - `awful.button`({ }, 4, function() `awful.client.focus.byidx`(-1) end), - `awful.button`({ }, 5, function() `awful.client.focus.byidx`( 1) end), - } - } - - -   - - -- Create the wibox - s.mywibox = `awful.wibar` { - position = "top", - screen = s, - -   - - widget = { - layout = `wibox.layout.align.horizontal`, - { -- Left widgets - layout = `wibox.layout.fixed.horizontal`, - mylauncher, - s.mytaglist, - s.mypromptbox, - }, - s.mytasklist, -- Middle widget - { -- Right widgets - layout = `wibox.layout.fixed.horizontal`, - mykeyboardlayout, - `wibox.widget.systray`(), - mytextclock, - s.mylayoutbox, - }, - } - } - end) - - - -## Mouse bindings -   - - `awful.mouse.append`_global_mousebindings({ - `awful.button`({ }, 3, function () mymainmenu:toggle() end), - `awful.button`({ }, 4, `awful.tag.viewprev`), - `awful.button`({ }, 5, `awful.tag.viewnext`), - }) - - -## Key bindings - - This section stores the global keybindings. A global keybinding is a shortcut - that will be executed when the key is pressed. It is different from - client keybindings. A client keybinding - only works when a client is focused while a global one works all the time. - - Each keybinding is stored in an `awful.key` object. When creating such an - object, you need to provide a list of modifiers, a key or keycode, a callback - function and extra metadata used for the `awful.hotkeys_popup` widget. - - Common modifiers are: - - - - - - - - - - -
NameDescription
Mod4Also called Super, Windows and Command ⌘
Mod1Usually called Alt on PCs and Option on Macs
ShiftBoth left and right shift keys
ControlAlso called CTRL on some keyboards
- - Note that both `Mod2` and `Lock` are ignored by default. If you wish to - use them, add `awful.key.ignore_modifiers = {}` to your `rc.lua`. `Mod3`, - `Mod5` are usually not bound in most keyboard layouts. There is an X11 utility - called `xmodmap` to bind them. See - [the ARCH Linux Wiki](https://wiki.archlinux.org/index.php/xmodmap) for more - information. - - The key or keycode is usually the same as the keyboard key, for example: - - * "a" - * "Return" - * "Shift_R" - - Each key also has a code. This code depends on the exact keyboard layout. It - can be obtained by reading the terminal output of the `xev` command. A keycode - based keybinding will look like `#123` where 123 is the keycode. - - The callback has to be a function. Note that a function isn't the same as a - function call. If you use, for example, `awful.tag.viewtoggle()` as the - callback, you store the **result** of the function. If you wish to use that - function as a callback, just use `awful.tag.viewtoggle`. The same applies to - methods. If you have to add parameters to the callback, wrap them in another - function. For the toggle example, this would be - `function() awful.tag.viewtoggle(mouse.screen.tags[1]) end`. - - Note that global keybinding callbacks have no argument. If you wish to act on - the current `client`, use the client keybindings - table. - - - - General Awesome keys - - `awful.keyboard.append`_global_keybindings({ - `awful.key`({ modkey, }, "s", hotkeys_popup.show_help, - {description="show help", group="awesome"}), - `awful.key`({ modkey, }, "w", function () mymainmenu:show() end, - {description = "show main menu", group = "awesome"}), - `awful.key`({ modkey, "Control" }, "r", awesome.restart, - {description = "reload awesome", group = "awesome"}), - `awful.key`({ modkey, "Shift" }, "q", awesome.quit, - {description = "quit awesome", group = "awesome"}), - `awful.key`({ modkey }, "x", - function () - `awful.prompt.run` { - prompt = "Run Lua code: ", - textbox = `awful.screen.focused`().mypromptbox.widget, - exe_callback = `awful.util.eval`, - history_path = `awful.util.get`_cache_dir() .. "/history_eval" - } - end, - {description = "lua execute prompt", group = "awesome"}), - `awful.key`({ modkey, }, "Return", function () `awful.spawn`(terminal) end, - {description = "open a terminal", group = "launcher"}), - `awful.key`({ modkey }, "r", function () `awful.screen.focused`().mypromptbox:run() end, - {description = "run prompt", group = "launcher"}), - `awful.key`({ modkey }, "p", function() `menubar.show`() end, - {description = "show the menubar", group = "launcher"}), - }) - - - Tags related keybindings - - `awful.keyboard.append`_global_keybindings({ - `awful.key`({ modkey, }, "Left", `awful.tag.viewprev`, - {description = "view previous", group = "tag"}), - `awful.key`({ modkey, }, "Right", `awful.tag.viewnext`, - {description = "view next", group = "tag"}), - `awful.key`({ modkey, }, "Escape", `awful.tag.history.restore`, - {description = "go back", group = "tag"}), - }) - - - Focus related keybindings - - `awful.keyboard.append`_global_keybindings({ - `awful.key`({ modkey, }, "j", - function () - `awful.client.focus.byidx`( 1) - end, - {description = "focus next by index", group = "client"} - ), - `awful.key`({ modkey, }, "k", - function () - `awful.client.focus.byidx`(-1) - end, - {description = "focus previous by index", group = "client"} - ), - `awful.key`({ modkey, }, "Tab", - function () - `awful.client.focus.history.previous`() - if client.focus then - client.focus:raise() - end - end, - {description = "go back", group = "client"}), - `awful.key`({ modkey, "Control" }, "j", function () `awful.screen.focus`_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - `awful.key`({ modkey, "Control" }, "k", function () `awful.screen.focus`_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), - `awful.key`({ modkey, "Control" }, "n", - function () - local c = `awful.client.restore`() - -- Focus restored client - if c then - c:activate { raise = true, context = "key.unminimize" } - end - end, - {description = "restore minimized", group = "client"}), - }) - - - Layout related keybindings - - `awful.keyboard.append`_global_keybindings({ - `awful.key`({ modkey, "Shift" }, "j", function () `awful.client.swap.byidx`( 1) end, - {description = "swap with next client by index", group = "client"}), - `awful.key`({ modkey, "Shift" }, "k", function () `awful.client.swap.byidx`( -1) end, - {description = "swap with previous client by index", group = "client"}), - `awful.key`({ modkey, }, "u", `awful.client.urgent.jumpto`, - {description = "jump to urgent client", group = "client"}), - `awful.key`({ modkey, }, "l", function () `awful.tag.incmwfact`( 0.05) end, - {description = "increase master width factor", group = "layout"}), - `awful.key`({ modkey, }, "h", function () `awful.tag.incmwfact`(-0.05) end, - {description = "decrease master width factor", group = "layout"}), - `awful.key`({ modkey, "Shift" }, "h", function () `awful.tag.incnmaster`( 1, nil, true) end, - {description = "increase the number of master clients", group = "layout"}), - `awful.key`({ modkey, "Shift" }, "l", function () `awful.tag.incnmaster`(-1, nil, true) end, - {description = "decrease the number of master clients", group = "layout"}), - `awful.key`({ modkey, "Control" }, "h", function () `awful.tag.incncol`( 1, nil, true) end, - {description = "increase the number of columns", group = "layout"}), - `awful.key`({ modkey, "Control" }, "l", function () `awful.tag.incncol`(-1, nil, true) end, - {description = "decrease the number of columns", group = "layout"}), - `awful.key`({ modkey, }, "space", function () `awful.layout.inc`( 1) end, - {description = "select next", group = "layout"}), - `awful.key`({ modkey, "Shift" }, "space", function () `awful.layout.inc`(-1) end, - {description = "select previous", group = "layout"}), - }) - - -   - - - `awful.keyboard.append`_global_keybindings({ - `awful.key` { - modifiers = { modkey }, - keygroup = "numrow", - description = "only view tag", - group = "tag", - on_press = function (index) - local screen = `awful.screen.focused`() - local tag = screen.tags[index] - if tag then - tag:view_only() - end - end, - }, - `awful.key` { - modifiers = { modkey, "Control" }, - keygroup = "numrow", - description = "toggle tag", - group = "tag", - on_press = function (index) - local screen = `awful.screen.focused`() - local tag = screen.tags[index] - if tag then - `awful.tag.viewtoggle`(tag) - end - end, - }, - `awful.key` { - modifiers = { modkey, "Shift" }, - keygroup = "numrow", - description = "move focused client to tag", - group = "tag", - on_press = function (index) - if client.focus then - local tag = client.focus.screen.tags[index] - if tag then - client.focus:move_to_tag(tag) - end - end - end, - }, - `awful.key` { - modifiers = { modkey, "Control", "Shift" }, - keygroup = "numrow", - description = "toggle focused client on tag", - group = "tag", - on_press = function (index) - if client.focus then - local tag = client.focus.screen.tags[index] - if tag then - client.focus:toggle_tag(tag) - end - end - end, - }, - `awful.key` { - modifiers = { modkey }, - keygroup = "numpad", - description = "select layout directly", - group = "layout", - on_press = function (index) - local t = `awful.screen.focused`().selected_tag - if t then - t.layout = t.layouts[index] or t.layout - end - end, - } - }) - - -   - - client.connect_signal("request::default_mousebindings", function() - `awful.mouse.append`_client_mousebindings({ - `awful.button`({ }, 1, function (c) - c:activate { context = "mouse_click" } - end), - `awful.button`({ modkey }, 1, function (c) - c:activate { context = "mouse_click", action = "mouse_move" } - end), - `awful.button`({ modkey }, 3, function (c) - c:activate { context = "mouse_click", action = "mouse_resize"} - end), - }) - end) - - - - - A client keybinding is a shortcut that will get the currently focused client - as its first callback argument. For example, to toggle a property, the callback - will look like `function(c) c.sticky = not c.sticky end`. For more information - about the keybinding syntax, see the - global keybindings section. - - client.connect_signal("request::default_keybindings", function() - `awful.keyboard.append`_client_keybindings({ - `awful.key`({ modkey, }, "f", - function (c) - c.fullscreen = not c.fullscreen - c:raise() - end, - {description = "toggle fullscreen", group = "client"}), - `awful.key`({ modkey, "Shift" }, "c", function (c) c:kill() end, - {description = "close", group = "client"}), - `awful.key`({ modkey, "Control" }, "space", `awful.client.floating.toggle` , - {description = "toggle floating", group = "client"}), - `awful.key`({ modkey, "Control" }, "Return", function (c) c:swap(`awful.client.getmaster`()) end, - {description = "move to master", group = "client"}), - `awful.key`({ modkey, }, "o", function (c) c:move_to_screen() end, - {description = "move to screen", group = "client"}), - `awful.key`({ modkey, }, "t", function (c) c.ontop = not c.ontop end, - {description = "toggle keep on top", group = "client"}), - `awful.key`({ modkey, }, "n", - function (c) - -- The client currently has the input focus, so it cannot be - -- minimized, since minimized clients can't have the focus. - c.minimized = true - end , - {description = "minimize", group = "client"}), - `awful.key`({ modkey, }, "m", - function (c) - c.maximized = not c.maximized - c:raise() - end , - {description = "(un)maximize", group = "client"}), - `awful.key`({ modkey, "Control" }, "m", - function (c) - c.maximized_vertical = not c.maximized_vertical - c:raise() - end , - {description = "(un)maximize vertically", group = "client"}), - `awful.key`({ modkey, "Shift" }, "m", - function (c) - c.maximized_horizontal = not c.maximized_horizontal - c:raise() - end , - {description = "(un)maximize horizontally", group = "client"}), - }) - end) - - - -## Rules - Rules to apply to new clients. -   - - ruled.client.connect_signal("request::rules", function() - -   - - -- All clients will match this rule. - ruled.client.append_rule { - id = "global", - rule = { }, - properties = { - focus = `awful.client.focus.filter`, - raise = true, - screen = `awful.screen.preferred`, - placement = `awful.placement.no`_overlap+`awful.placement.no`_offscreen - } - } - - -   - - -- Floating clients. - ruled.client.append_rule { - id = "floating", - rule_any = { - instance = { "copyq", "pinentry" }, - class = { - "Arandr", "Blueman-manager", "Gpick", "Kruler", "Sxiv", - "Tor Browser", "Wpa_gui", "veromix", "xtightvncviewer" - }, - -- Note that the name property shown in xprop might be set slightly after creation of the client - -- and the name shown there might not match defined rules here. - name = { - "Event Tester", -- xev. - }, - role = { - "AlarmWindow", -- Thunderbird's calendar. - "ConfigManager", -- Thunderbird's about:config. - "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. - } - }, - properties = { floating = true } - } - - -   - - -- Add titlebars to normal clients and dialogs - ruled.client.append_rule { - - For client side decorations, clients might request no titlebars via - Motif WM hints. To honor these hints, use: - `titlebars_enabled = function(c) return not c.requests_no_titlebar end` - - See `client.requests_no_titlebar` for more details. - - id = "titlebars", - rule_any = { type = { "normal", "dialog" } }, - properties = { titlebars_enabled = true } - } - - -- Set Firefox to always map on the tag named "2" on screen 1. - -- ruled.client.append_rule { - -- rule = { class = "Firefox" }, - -- properties = { screen = 1, tag = "2" } - -- } - end) - - -## Titlebars -   - Add a titlebar if titlebars_enabled is set to true in the rules. - - client.connect_signal("request::titlebars", function(c) - -- buttons for the titlebar - local buttons = { - `awful.button`({ }, 1, function() - c:activate { context = "titlebar", action = "mouse_move" } - end), - `awful.button`({ }, 3, function() - c:activate { context = "titlebar", action = "mouse_resize"} - end), - } - - `awful.titlebar`(c).widget = { - { -- Left - `awful.titlebar.widget.iconwidget`(c), - buttons = buttons, - layout = `wibox.layout.fixed.horizontal` - }, - { -- Middle - { -- Title - halign = "center", - widget = `awful.titlebar.widget.titlewidget`(c) - }, - buttons = buttons, - layout = `wibox.layout.flex.horizontal` - }, - { -- Right - `awful.titlebar.widget.floatingbutton` (c), - `awful.titlebar.widget.maximizedbutton`(c), - `awful.titlebar.widget.stickybutton` (c), - `awful.titlebar.widget.ontopbutton` (c), - `awful.titlebar.widget.closebutton` (c), - layout = `wibox.layout.fixed.horizontal`() - }, - layout = `wibox.layout.align.horizontal` - } - end) - - -## Notifications - - - ruled.notification.connect_signal('request::rules', function() - -- All notifications will match this rule. - ruled.notification.append_rule { - rule = { }, - properties = { - screen = `awful.screen.preferred`, - implicit_timeout = 5, - } - } - end) - - `naughty.connect`_signal("request::display", function(n) - `naughty.layout.box` { notification = n } - end) - - - - Enable sloppy focus, so that focus follows mouse. - - client.connect_signal("mouse::enter", function(c) - c:activate { context = "mouse_enter", raise = false } - end) - diff --git a/x11-packages/awesome/pregen/docs/06-appearance.md b/x11-packages/awesome/pregen/docs/06-appearance.md deleted file mode 100644 index 15244f4c042dfb8..000000000000000 --- a/x11-packages/awesome/pregen/docs/06-appearance.md +++ /dev/null @@ -1,906 +0,0 @@ -# Change Awesome appearance - -## The beautiful themes - -Beautiful is where Awesome theme variables are stored. - -

--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
hotkeys\_bgHotkeys widget background color
hotkeys\_fgHotkeys widget foreground color
hotkeys\_border\_widthHotkeys widget border width
hotkeys\_border\_colorHotkeys widget border color
hotkeys\_shapeHotkeys widget shape
hotkeys\_modifiers\_fgForeground color used for hotkey modifiers (Ctrl, Alt, Super, etc)
hotkeys\_label\_bgBackground color used for miscellaneous labels of hotkeys widget
hotkeys\_label\_fgForeground color used for hotkey groups and other labels
hotkeys\_fontMain hotkeys widget font
hotkeys\_description\_fontFont used for hotkeys' descriptions
hotkeys\_group\_marginMargin between hotkeys groups
layout\_cornernwThe cornernw layout layoutbox icon
layout\_cornerneThe cornerne layout layoutbox icon
layout\_cornerswThe cornersw layout layoutbox icon
layout\_cornerseThe cornerse layout layoutbox icon
layout\_fairhThe fairh layout layoutbox icon
layout\_fairvThe fairv layout layoutbox icon
layout\_floatingThe floating layout layoutbox icon
layout\_magnifierThe magnifier layout layoutbox icon
layout\_maxThe max layout layoutbox icon
layout\_fullscreenThe fullscreen layout layoutbox icon
layout\_spiralThe spiral layout layoutbox icon
layout\_dwindleThe dwindle layout layoutbox icon
layout\_tileThe tile layout layoutbox icon
layout\_tiletopThe tile top layout layoutbox icon
layout\_tilebottomThe tile bottom layout layoutbox icon
layout\_tileleftThe tile left layout layoutbox icon
menu\_submenu\_iconThe icon used for sub-menus
menu\_fontThe menu text font
menu\_heightThe item height
menu\_widthThe default menu width
menu\_border\_colorThe menu item border color
menu\_border\_widthThe menu item border width
menu\_fg\_focusThe default focused item foreground (text) color
menu\_bg\_focusThe default focused item background color
menu\_fg\_normalThe default foreground (text) color
menu\_bg\_normalThe default background color
menu\_submenuThe default sub-menu indicator if no `menu_submenu_icon` is provided
snap\_bgThe snap outline background color
snap\_border\_widthThe snap outline width
snap\_shapeThe snap outline shape
snapper\_gapThe gap between snapped clients
cursor\_mouse\_resizeThe resize cursor name
cursor\_mouse\_moveThe move cursor name
maximized\_honor\_paddingHonor the screen padding when maximizing
fullscreen\_hide\_borderHide the border on fullscreen clients
maximized\_hide\_borderHide the border on maximized clients
prompt\_fg\_cursorThe prompt cursor foreground color
prompt\_bg\_cursorThe prompt cursor background color
prompt\_fontThe prompt text font
enable\_spawn\_cursorShow busy mouse cursor during spawn
master\_width\_factorThe default master width factor
useless\_gapThe default gap
gap\_single\_clientEnable gaps for a single client
master\_fill\_policyThe default fill policy
master\_countThe default number of master windows
column\_countThe default number of columns
titlebar\_fg\_normalThe titlebar foreground (text) color
titlebar\_bg\_normalThe titlebar background color
titlebar\_bgimage\_normalThe titlebar background image image
titlebar\_fgThe titlebar foreground (text) color
titlebar\_bgThe titlebar background color
titlebar\_bgimageThe titlebar background image image
titlebar\_fg\_focusThe focused titlebar foreground (text) color
titlebar\_bg\_focusThe focused titlebar background color
titlebar\_bgimage\_focusThe focused titlebar background image image
titlebar\_fg\_urgentThe urgent titlebar foreground (text) color
titlebar\_bg\_urgentThe urgent titlebar background color
titlebar\_bgimage\_urgentThe urgent titlebar background image
titlebar\_floating\_button\_normalThe normal non-floating button image
titlebar\_maximized\_button\_normalThe normal non-maximized button image
titlebar\_minimize\_button\_normalThe normal minimize button image
titlebar\_minimize\_button\_normal\_hoverThe hovered minimize button image
titlebar\_minimize\_button\_normal\_pressThe pressed minimize button image
titlebar\_close\_button\_normalThe normal close button image
titlebar\_close\_button\_normal\_hoverThe hovered close button image
titlebar\_close\_button\_normal\_pressThe pressed close button image
titlebar\_ontop\_button\_normalThe normal non-ontop button image
titlebar\_sticky\_button\_normalThe normal non-sticky button image
titlebar\_floating\_button\_focusThe focused client non-floating button image
titlebar\_maximized\_button\_focusThe focused client non-maximized button image
titlebar\_minimize\_button\_focusThe focused client minimize button image
titlebar\_minimize\_button\_focus\_hoverThe hovered+focused client minimize button image
titlebar\_minimize\_button\_focus\_pressThe pressed+focused minimize button image
titlebar\_close\_button\_focusThe focused client close button image
titlebar\_close\_button\_focus\_hoverThe hovered+focused close button image
titlebar\_close\_button\_focus\_pressThe pressed+focused close button image
titlebar\_ontop\_button\_focusThe focused client non-ontop button image
titlebar\_sticky\_button\_focusThe focused client sticky button image
titlebar\_floating\_button\_normal\_activeThe normal floating button image
titlebar\_floating\_button\_normal\_active\_hoverThe hovered floating client button image
titlebar\_floating\_button\_normal\_active\_pressThe pressed floating client button image
titlebar\_maximized\_button\_normal\_activeThe maximized client button image
titlebar\_maximized\_button\_normal\_active\_hoverThe hozered+maximized client button image
titlebar\_maximized\_button\_normal\_active\_pressThe pressed+maximized button image
titlebar\_ontop\_button\_normal\_activeThe ontop button image
titlebar\_ontop\_button\_normal\_active\_hoverThe hovered+ontop client button image
titlebar\_ontop\_button\_normal\_active\_pressThe pressed+ontop client button image
titlebar\_sticky\_button\_normal\_activeThe sticky button image
titlebar\_sticky\_button\_normal\_active\_hoverThe hovered+sticky button image
titlebar\_sticky\_button\_normal\_active\_pressThe pressed+sticky client button image
titlebar\_floating\_button\_focus\_activeThe floating+focused client button image
titlebar\_floating\_button\_focus\_active\_hoverThe hovered+floating+focused button image
titlebar\_floating\_button\_focus\_active\_pressThe pressed+floating+focused button image
titlebar\_maximized\_button\_focus\_activeThe maximized+focused button image
titlebar\_maximized\_button\_focus\_active\_hoverThe hovered+maximized+focused button image
titlebar\_maximized\_button\_focus\_active\_pressThe pressed+maximized+focused button image
titlebar\_ontop\_button\_focus\_activeThe ontop+focused button image
titlebar\_ontop\_button\_focus\_active\_hoverThe hovered+ontop+focused button image
titlebar\_ontop\_button\_focus\_active\_pressThe pressed+ontop+focused button image
titlebar\_sticky\_button\_focus\_activeThe sticky+focused button image
titlebar\_sticky\_button\_focus\_active\_hoverThe hovered+sticky+focused button image
titlebar\_sticky\_button\_focus\_active\_pressThe pressed+sticky+focused button image
titlebar\_floating\_button\_normal\_inactiveThe inactive+floating button image
titlebar\_floating\_button\_normal\_inactive\_hoverThe hovered+inactive+floating button image
titlebar\_floating\_button\_normal\_inactive\_pressThe pressed+inactive+floating button image
titlebar\_maximized\_button\_normal\_inactiveThe inactive+maximized button image
titlebar\_maximized\_button\_normal\_inactive\_hoverThe hovered+inactive+maximized button image
titlebar\_maximized\_button\_normal\_inactive\_pressThe pressed+maximized+inactive button image
titlebar\_ontop\_button\_normal\_inactiveThe inactive+ontop button image
titlebar\_ontop\_button\_normal\_inactive\_hoverThe hovered+inactive+ontop button image
titlebar\_ontop\_button\_normal\_inactive\_pressThe pressed+inactive+ontop button image
titlebar\_sticky\_button\_normal\_inactiveThe inactive+sticky button image
titlebar\_sticky\_button\_normal\_inactive\_hoverThe hovered+inactive+sticky button image
titlebar\_sticky\_button\_normal\_inactive\_pressThe pressed+inactive+sticky button image
titlebar\_floating\_button\_focus\_inactiveThe inactive+focused+floating button image
titlebar\_floating\_button\_focus\_inactive\_hoverThe hovered+inactive+focused+floating button image
titlebar\_floating\_button\_focus\_inactive\_pressThe pressed+inactive+focused+floating button image
titlebar\_maximized\_button\_focus\_inactiveThe inactive+focused+maximized button image
titlebar\_maximized\_button\_focus\_inactive\_hoverThe hovered+inactive+focused+maximized button image
titlebar\_maximized\_button\_focus\_inactive\_pressThe pressed+inactive+focused+maximized button image
titlebar\_ontop\_button\_focus\_inactiveThe inactive+focused+ontop button image
titlebar\_ontop\_button\_focus\_inactive\_hoverThe hovered+inactive+focused+ontop button image
titlebar\_ontop\_button\_focus\_inactive\_pressThe pressed+inactive+focused+ontop button image
titlebar\_sticky\_button\_focus\_inactiveThe inactive+focused+sticky button image
titlebar\_sticky\_button\_focus\_inactive\_hoverThe hovered+inactive+focused+sticky button image
titlebar\_sticky\_button\_focus\_inactive\_pressThe pressed+inactive+focused+sticky button image
titlebar\_tooltip\_messages\_closeThe message in the close button tooltip
titlebar\_tooltip\_messages\_minimizeThe message in the minimize button tooltip
titlebar\_tooltip\_messages\_maximized\_activeThe message in the maximize button tooltip when the client is maximized
titlebar\_tooltip\_messages\_maximized\_inactiveThe message in the maximize button tooltip when the client is unmaximized
titlebar\_tooltip\_messages\_floating\_activeThe message in the floating button tooltip when then client is floating
titlebar\_tooltip\_messages\_floating\_inactiveThe message in the floating button tooltip when then client isn't floating
titlebar\_tooltip\_messages\_ontop\_activeThe message in the onTop button tooltip when the client is onTop
titlebar\_tooltip\_messages\_ontop\_inactiveThe message in the onTop button tooltip when client isn't onTop
titlebar\_tooltip\_messages\_sticky\_activeThe message in the sticky button tooltip when the client is sticky
titlebar\_tooltip\_messages\_sticky\_inactiveThe message in the sticky button tooltip when the client isn't sticky
titlebar\_tooltip\_delay\_showThe delay in second before the titlebar buttons tooltip is shown
titlebar\_tooltip\_margins\_leftrightThe inner left and right margins for tooltip messages
titlebar\_tooltip\_margins\_topbottomThe inner top and bottom margins for the tooltip messages
titlebar\_tooltip\_timeoutThe time in second before invoking the `timer_function` callback
titlebar\_tooltip\_alignThe text horizontal alignment in tooltips
tooltip\_border\_colorThe tooltip border color
tooltip\_bgThe tooltip background color
tooltip\_fgThe tooltip foregound (text) color
tooltip\_fontThe tooltip font
tooltip\_border\_widthThe tooltip border width
tooltip\_opacityThe tooltip opacity
tooltip\_gapsThe tooltip margins
tooltip\_shapeThe default tooltip shape
tooltip\_alignThe default tooltip alignment
wallpaper\_bgThe default wallpaper background color
wallpaper\_fgThe default wallpaper foreground color
wibar\_stretchIf the wibar needs to be stretched to fill the screen
wibar\_favor\_verticalIf there is both vertical and horizontal wibar, give more space to vertical ones
wibar\_border\_widthThe wibar border width
wibar\_border\_colorThe wibar border color
wibar\_ontopIf the wibar is to be on top of other windows
wibar\_cursorThe wibar's mouse cursor
wibar\_opacityThe wibar opacity, between 0 and 1
wibar\_typeThe window type (desktop, normal, dock, …)
wibar\_widthThe wibar's width
wibar\_heightThe wibar's height
wibar\_bgThe wibar's background color
wibar\_bgimageThe wibar's background image
wibar\_fgThe wibar's foreground (text) color
wibar\_shapeThe wibar's shape
wibar\_marginsThe wibar's margins
wibar\_alignThe wibar's alignments
calendar\_styleThe generic calendar style table
layoutlist\_fg\_normalThe default foreground (text) color
layoutlist\_bg\_normalThe default background color
layoutlist\_fg\_selectedThe selected layout foreground (text) color
layoutlist\_bg\_selectedThe selected layout background color
layoutlist\_disable\_iconDisable the layout icons (only show the name label)
layoutlist\_disable\_nameDisable the layout name label (only show the icon)
layoutlist\_fontThe layoutlist font
layoutlist\_alignThe selected layout alignment
layoutlist\_font\_selectedThe selected layout title font
layoutlist\_spacingThe space between the layouts
layoutlist\_shapeThe default layoutlist elements shape
layoutlist\_shape\_border\_widthThe default layoutlist elements border width
layoutlist\_shape\_border\_colorThe default layoutlist elements border color
layoutlist\_shape\_selectedThe selected layout shape
layoutlist\_shape\_border\_width\_selectedThe selected layout border width
layoutlist\_shape\_border\_color\_selectedThe selected layout border color
prompt\_fgThe prompt foreground color
prompt\_bgThe prompt background color
taglist\_fg\_focusThe tag list main foreground (text) color
taglist\_bg\_focusThe tag list main background color
taglist\_fg\_urgentThe tag list urgent elements foreground (text) color
taglist\_bg\_urgentThe tag list urgent elements background color
taglist\_bg\_occupiedThe tag list occupied elements background color
taglist\_fg\_occupiedThe tag list occupied elements foreground (text) color
taglist\_bg\_emptyThe tag list empty elements background color
taglist\_fg\_emptyThe tag list empty elements foreground (text) color
taglist\_bg\_volatileThe tag list volatile elements background color
taglist\_fg\_volatileThe tag list volatile elements foreground (text) color
taglist\_squares\_selThe selected elements background image
taglist\_squares\_unselThe unselected elements background image
taglist\_squares\_sel\_emptyThe selected empty elements background image
taglist\_squares\_unsel\_emptyThe unselected empty elements background image
taglist\_squares\_resizeIf the background images can be resized
taglist\_disable\_iconDo not display the tag icons, even if they are set
taglist\_fontThe taglist font
taglist\_spacingThe space between the taglist elements
taglist\_shapeThe main shape used for the elements
taglist\_shape\_border\_widthThe shape elements border width
taglist\_shape\_border\_colorThe elements shape border color
taglist\_shape\_emptyThe shape used for the empty elements
taglist\_shape\_border\_width\_emptyThe shape used for the empty elements border width
taglist\_shape\_border\_color\_emptyThe empty elements shape border color
taglist\_shape\_focusThe shape used for the selected elements
taglist\_shape\_border\_width\_focusThe shape used for the selected elements border width
taglist\_shape\_border\_color\_focusThe selected elements shape border color
taglist\_shape\_urgentThe shape used for the urgent elements
taglist\_shape\_border\_width\_urgentThe shape used for the urgent elements border width
taglist\_shape\_border\_color\_urgentThe urgents elements shape border color
taglist\_shape\_volatileThe shape used for the volatile elements
taglist\_shape\_border\_width\_volatileThe shape used for the volatile elements border width
taglist\_shape\_border\_color\_volatileThe volatile elements shape border color
tasklist\_fg\_normalThe default foreground (text) color
tasklist\_bg\_normalThe default background color
tasklist\_fg\_focusThe focused client foreground (text) color
tasklist\_bg\_focusThe focused client background color
tasklist\_fg\_urgentThe urgent clients foreground (text) color
tasklist\_bg\_urgentThe urgent clients background color
tasklist\_fg\_minimizeThe minimized clients foreground (text) color
tasklist\_bg\_minimizeThe minimized clients background color
tasklist\_bg\_image\_normalThe elements default background image
tasklist\_bg\_image\_focusThe focused client background image
tasklist\_bg\_image\_urgentThe urgent clients background image
tasklist\_bg\_image\_minimizeThe minimized clients background image
tasklist\_disable\_iconDisable the tasklist client icons
tasklist\_disable\_task\_nameDisable the tasklist client titles
tasklist\_plain\_task\_nameDisable the extra tasklist client property notification icons
tasklist\_stickyExtra tasklist client property notification icon for clients with the sticky property set
tasklist\_ontopExtra tasklist client property notification icon for clients with the ontop property set
tasklist\_aboveExtra tasklist client property notification icon for clients with the above property set
tasklist\_belowExtra tasklist client property notification icon for clients with the below property set
tasklist\_floatingExtra tasklist client property notification icon for clients with the floating property set
tasklist\_maximizedExtra tasklist client property notification icon for clients with the maximized property set
tasklist\_maximized\_horizontalExtra tasklist client property notification icon for clients with the maximized_horizontal property set
tasklist\_maximized\_verticalExtra tasklist client property notification icon for clients with the maximized_vertical property set
tasklist\_minimizedExtra tasklist client property notification icon for clients with the minimized property set
tasklist\_alignThe focused client alignment
tasklist\_fontThe tasklist font
tasklist\_font\_focusThe focused client title alignment
tasklist\_font\_minimizedThe minimized clients font
tasklist\_font\_urgentThe urgent clients font
tasklist\_spacingThe space between the tasklist elements
tasklist\_shapeThe default tasklist elements shape
tasklist\_shape\_border\_widthThe default tasklist elements border width
tasklist\_shape\_border\_colorThe default tasklist elements border color
tasklist\_shape\_focusThe focused client shape
tasklist\_shape\_border\_width\_focusThe focused client border width
tasklist\_shape\_border\_color\_focusThe focused client border color
tasklist\_shape\_minimizedThe minimized clients shape
tasklist\_shape\_border\_width\_minimizedThe minimized clients border width
tasklist\_shape\_border\_color\_minimizedThe minimized clients border color
tasklist\_shape\_urgentThe urgent clients shape
tasklist\_shape\_border\_width\_urgentThe urgent clients border width
tasklist\_shape\_border\_color\_urgentThe urgent clients border color
tasklist\_icon\_sizeThe icon size
fontThe default font
bg\_normalThe default background color
bg\_focusThe default focused element background color
bg\_urgentThe default urgent element background color
bg\_minimizeThe default minimized element background color
fg\_normalThe default focused element foreground (text) color
fg\_focusThe default focused element foreground (text) color
fg\_urgentThe default urgent element foreground (text) color
fg\_minimizeThe default minimized element foreground (text) color
wallpaperThe wallpaper path
icon\_themeThe icon theme name
awesome\_iconThe Awesome icon path
menubar\_fg\_normalMenubar normal text color
menubar\_bg\_normalMenubar normal background color
menubar\_border\_widthMenubar border width
menubar\_border\_colorMenubar border color
menubar\_fg\_focusMenubar selected item text color
menubar\_bg\_focusMenubar selected item background color
menubar\_fontMenubar font
notification\_max\_widthThe maximum notification width
notification\_positionThe maximum notification position
notification\_action\_underline\_normalWhether or not to underline the action name
notification\_action\_underline\_selectedWhether or not to underline the selected action name
notification\_action\_icon\_onlyWhether or not the action label should be shown
notification\_action\_label\_onlyWhether or not the action icon should be shown
notification\_action\_shape\_normalThe shape used for a normal action
notification\_action\_shape\_selectedThe shape used for a selected action
notification\_action\_shape\_border\_color\_normalThe shape border color for normal actions
notification\_action\_shape\_border\_color\_selectedThe shape border color for selected actions
notification\_action\_shape\_border\_width\_normalThe shape border width for normal actions
notification\_action\_shape\_border\_width\_selectedThe shape border width for selected actions
notification\_action\_icon\_size\_normalThe action icon size
notification\_action\_icon\_size\_selectedThe selected action icon size
notification\_action\_bg\_normalThe background color for normal actions
notification\_action\_bg\_selectedThe background color for selected actions
notification\_action\_fg\_normalThe foreground color for normal actions
notification\_action\_fg\_selectedThe foreground color for selected actions
notification\_action\_bgimage\_normalThe background image for normal actions
notification\_action\_bgimage\_selectedThe background image for selected actions
notification\_shape\_normalThe shape used for a normal notification
notification\_shape\_selectedThe shape used for a selected notification
notification\_shape\_border\_color\_normalThe shape border color for normal notifications
notification\_shape\_border\_color\_selectedThe shape border color for selected notifications
notification\_shape\_border\_width\_normalThe shape border width for normal notifications
notification\_shape\_border\_width\_selectedThe shape border width for selected notifications
notification\_icon\_size\_normalThe notification icon size
notification\_icon\_size\_selectedThe selected notification icon size
notification\_bg\_normalThe background color for normal notifications
notification\_bg\_selectedThe background color for selected notifications
notification\_fg\_normalThe foreground color for normal notifications
notification\_fg\_selectedThe foreground color for selected notifications
notification\_bgimage\_normalThe background image for normal notifications
notification\_bgimage\_selectedThe background image for selected notifications
notification\_fontNotifications font
notification\_bgNotifications background color
notification\_fgNotifications foreground color
notification\_border\_widthNotifications border width
notification\_border\_colorNotifications border color
notification\_shapeNotifications shape
notification\_opacityNotifications opacity
notification\_marginThe margins inside of the notification widget (or popup)
notification\_widthNotifications width
notification\_heightNotifications height
notification\_spacingThe spacing between the notifications
notification\_icon\_resize\_strategyThe default way to resize the icon
notification\_icon\_sizeThe default notification icon size
arcchart\_border\_colorThe progressbar border background color
arcchart\_colorThe progressbar foreground color
arcchart\_border\_widthThe progressbar border width
arcchart\_paddingsThe padding between the outline and the progressbar
arcchart\_thicknessThe arc thickness
arcchart\_rounded\_edgeIf the chart has rounded edges
arcchart\_bgThe radial background
arcchart\_start\_angleThe (radiant) angle where the first value start
radialprogressbar\_border\_colorThe progressbar border background color
radialprogressbar\_colorThe progressbar foreground color
radialprogressbar\_border\_widthThe progressbar border width
radialprogressbar\_paddingsThe padding between the outline and the progressbar
calendar\_fontThe calendar font
calendar\_spacingThe calendar spacing
calendar\_week\_numbersDisplay the calendar week numbers
calendar\_start\_sundayStart the week on Sunday
calendar\_long\_weekdaysFormat the weekdays with three characters instead of two
flex\_heightAllow cells to have flexible height
checkbox\_border\_widthThe outer (unchecked area) border width
checkbox\_bgThe outer (unchecked area) background color, pattern or gradient
checkbox\_border\_colorThe outer (unchecked area) border color
checkbox\_check\_border\_colorThe checked part border color
checkbox\_check\_border\_widthThe checked part border width
checkbox\_check\_colorThe checked part filling color
checkbox\_shapeThe outer (unchecked area) shape
checkbox\_check\_shapeThe checked part shape
checkbox\_paddingsThe padding between the outline and the progressbar
checkbox\_colorThe checkbox color
graph\_fgThe graph foreground color
graph\_bgThe graph background color
graph\_border\_colorThe graph border color
piechart\_border\_colorThe border color
piechart\_border\_widthThe pie elements border width
piechart\_colorsThe pie chart colors
progressbar\_bgThe progressbar background color
progressbar\_fgThe progressbar foreground color
progressbar\_shapeThe progressbar shape
progressbar\_border\_colorThe progressbar border color
progressbar\_border\_widthThe progressbar outer border width
progressbar\_bar\_shapeThe progressbar inner shape
progressbar\_bar\_border\_widthThe progressbar bar border width
progressbar\_bar\_border\_colorThe progressbar bar border color
progressbar\_marginsThe progressbar margins
progressbar\_paddingsThe progressbar padding
separator\_thicknessThe separator thickness
separator\_border\_colorThe separator border color
separator\_border\_widthThe separator border width
separator\_span\_ratioThe relative percentage covered by the bar
separator\_colorThe separator's color
separator\_shapeThe separator's shape
slider\_bar\_border\_widthThe bar (background) border width
slider\_bar\_border\_colorThe bar (background) border color
slider\_handle\_border\_colorThe handle border_color
slider\_handle\_border\_widthThe handle border width
slider\_handle\_widthThe handle width
slider\_handle\_colorThe handle color
slider\_handle\_shapeThe handle shape
slider\_bar\_shapeThe bar (background) shape
slider\_bar\_heightThe bar (background) height
slider\_bar\_marginsThe bar (background) margins
slider\_handle\_marginsThe slider handle margins
slider\_bar\_colorThe bar (background) color
slider\_bar\_active\_colorThe bar (active) color
bg\_systrayThe systray background color
systray\_max\_rowsThe maximum number of rows for systray icons
systray\_icon\_spacingThe systray icon spacing
- - -## Sample theme file - - local theme = {} - - -- Default variables - -- theme.useless_gap = nil - -- theme.font = nil - -- theme.bg_normal = nil - -- theme.bg_focus = nil - -- theme.bg_urgent = nil - -- theme.bg_minimize = nil - -- theme.fg_normal = nil - -- theme.fg_focus = nil - -- theme.fg_urgent = nil - -- theme.fg_minimize = nil - -- theme.wallpaper = nil - -- theme.bg_systray = nil - - -- arcchart - -- theme.arcchart_border_color = nil - -- theme.arcchart_color = nil - -- theme.arcchart_border_width = nil - -- theme.arcchart_paddings = nil - -- theme.arcchart_thickness = nil - -- theme.arcchart_rounded_edge = nil - -- theme.arcchart_bg = nil - -- theme.arcchart_start_angle = nil - - -- awesome - -- theme.awesome_icon = nil - - -- calendar - -- theme.calendar_style = nil - -- theme.calendar_font = nil - -- theme.calendar_spacing = nil - -- theme.calendar_week_numbers = nil - -- theme.calendar_start_sunday = nil - -- theme.calendar_long_weekdays = nil - - -- checkbox - -- theme.checkbox_border_width = nil - -- theme.checkbox_bg = nil - -- theme.checkbox_border_color = nil - -- theme.checkbox_check_border_color = nil - -- theme.checkbox_check_border_width = nil - -- theme.checkbox_check_color = nil - -- theme.checkbox_shape = nil - -- theme.checkbox_check_shape = nil - -- theme.checkbox_paddings = nil - -- theme.checkbox_color = nil - - -- column - -- theme.column_count = nil - - -- cursor - -- theme.cursor_mouse_resize = nil - -- theme.cursor_mouse_move = nil - - -- enable - -- theme.enable_spawn_cursor = nil - - -- flex - -- theme.flex_height = nil - - -- fullscreen - -- theme.fullscreen_hide_border = nil - - -- gap - -- theme.gap_single_client = nil - - -- graph - -- theme.graph_fg = nil - -- theme.graph_bg = nil - -- theme.graph_border_color = nil - - -- hotkeys - -- theme.hotkeys_bg = nil - -- theme.hotkeys_fg = nil - -- theme.hotkeys_border_width = nil - -- theme.hotkeys_border_color = nil - -- theme.hotkeys_shape = nil - -- theme.hotkeys_modifiers_fg = nil - -- theme.hotkeys_label_bg = nil - -- theme.hotkeys_label_fg = nil - -- theme.hotkeys_font = nil - -- theme.hotkeys_description_font = nil - -- theme.hotkeys_group_margin = nil - - -- icon - -- theme.icon_theme = nil - - -- layout - -- theme.layout_cornernw = nil - -- theme.layout_cornerne = nil - -- theme.layout_cornersw = nil - -- theme.layout_cornerse = nil - -- theme.layout_fairh = nil - -- theme.layout_fairv = nil - -- theme.layout_floating = nil - -- theme.layout_magnifier = nil - -- theme.layout_max = nil - -- theme.layout_fullscreen = nil - -- theme.layout_spiral = nil - -- theme.layout_dwindle = nil - -- theme.layout_tile = nil - -- theme.layout_tiletop = nil - -- theme.layout_tilebottom = nil - -- theme.layout_tileleft = nil - - -- layoutlist - -- theme.layoutlist_fg_normal = nil - -- theme.layoutlist_bg_normal = nil - -- theme.layoutlist_fg_selected = nil - -- theme.layoutlist_bg_selected = nil - -- theme.layoutlist_disable_icon = nil - -- theme.layoutlist_disable_name = nil - -- theme.layoutlist_font = nil - -- theme.layoutlist_align = nil - -- theme.layoutlist_font_selected = nil - -- theme.layoutlist_spacing = nil - -- theme.layoutlist_shape = nil - -- theme.layoutlist_shape_border_width = nil - -- theme.layoutlist_shape_border_color = nil - -- theme.layoutlist_shape_selected = nil - -- theme.layoutlist_shape_border_width_selected = nil - -- theme.layoutlist_shape_border_color_selected = nil - - -- master - -- theme.master_width_factor = nil - -- theme.master_fill_policy = nil - -- theme.master_count = nil - - -- maximized - -- theme.maximized_honor_padding = nil - -- theme.maximized_hide_border = nil - - -- menu - -- theme.menu_submenu_icon = nil - -- theme.menu_font = nil - -- theme.menu_height = nil - -- theme.menu_width = nil - -- theme.menu_border_color = nil - -- theme.menu_border_width = nil - -- theme.menu_fg_focus = nil - -- theme.menu_bg_focus = nil - -- theme.menu_fg_normal = nil - -- theme.menu_bg_normal = nil - -- theme.menu_submenu = nil - - -- menubar - -- theme.menubar_fg_normal = nil - -- theme.menubar_bg_normal = nil - -- theme.menubar_border_width = nil - -- theme.menubar_border_color = nil - -- theme.menubar_fg_focus = nil - -- theme.menubar_bg_focus = nil - -- theme.menubar_font = nil - - -- notification - -- theme.notification_max_width = nil - -- theme.notification_position = nil - -- theme.notification_action_underline_normal = nil - -- theme.notification_action_underline_selected = nil - -- theme.notification_action_icon_only = nil - -- theme.notification_action_label_only = nil - -- theme.notification_action_shape_normal = nil - -- theme.notification_action_shape_selected = nil - -- theme.notification_action_shape_border_color_normal = nil - -- theme.notification_action_shape_border_color_selected = nil - -- theme.notification_action_shape_border_width_normal = nil - -- theme.notification_action_shape_border_width_selected = nil - -- theme.notification_action_icon_size_normal = nil - -- theme.notification_action_icon_size_selected = nil - -- theme.notification_action_bg_normal = nil - -- theme.notification_action_bg_selected = nil - -- theme.notification_action_fg_normal = nil - -- theme.notification_action_fg_selected = nil - -- theme.notification_action_bgimage_normal = nil - -- theme.notification_action_bgimage_selected = nil - -- theme.notification_shape_normal = nil - -- theme.notification_shape_selected = nil - -- theme.notification_shape_border_color_normal = nil - -- theme.notification_shape_border_color_selected = nil - -- theme.notification_shape_border_width_normal = nil - -- theme.notification_shape_border_width_selected = nil - -- theme.notification_icon_size_normal = nil - -- theme.notification_icon_size_selected = nil - -- theme.notification_bg_normal = nil - -- theme.notification_bg_selected = nil - -- theme.notification_fg_normal = nil - -- theme.notification_fg_selected = nil - -- theme.notification_bgimage_normal = nil - -- theme.notification_bgimage_selected = nil - -- theme.notification_font = nil - -- theme.notification_bg = nil - -- theme.notification_fg = nil - -- theme.notification_border_width = nil - -- theme.notification_border_color = nil - -- theme.notification_shape = nil - -- theme.notification_opacity = nil - -- theme.notification_margin = nil - -- theme.notification_width = nil - -- theme.notification_height = nil - -- theme.notification_spacing = nil - -- theme.notification_icon_resize_strategy = nil - -- theme.notification_icon_size = nil - - -- piechart - -- theme.piechart_border_color = nil - -- theme.piechart_border_width = nil - -- theme.piechart_colors = nil - - -- progressbar - -- theme.progressbar_bg = nil - -- theme.progressbar_fg = nil - -- theme.progressbar_shape = nil - -- theme.progressbar_border_color = nil - -- theme.progressbar_border_width = nil - -- theme.progressbar_bar_shape = nil - -- theme.progressbar_bar_border_width = nil - -- theme.progressbar_bar_border_color = nil - -- theme.progressbar_margins = nil - -- theme.progressbar_paddings = nil - - -- prompt - -- theme.prompt_fg_cursor = nil - -- theme.prompt_bg_cursor = nil - -- theme.prompt_font = nil - -- theme.prompt_fg = nil - -- theme.prompt_bg = nil - - -- radialprogressbar - -- theme.radialprogressbar_border_color = nil - -- theme.radialprogressbar_color = nil - -- theme.radialprogressbar_border_width = nil - -- theme.radialprogressbar_paddings = nil - - -- separator - -- theme.separator_thickness = nil - -- theme.separator_border_color = nil - -- theme.separator_border_width = nil - -- theme.separator_span_ratio = nil - -- theme.separator_color = nil - -- theme.separator_shape = nil - - -- slider - -- theme.slider_bar_border_width = nil - -- theme.slider_bar_border_color = nil - -- theme.slider_handle_border_color = nil - -- theme.slider_handle_border_width = nil - -- theme.slider_handle_width = nil - -- theme.slider_handle_color = nil - -- theme.slider_handle_shape = nil - -- theme.slider_bar_shape = nil - -- theme.slider_bar_height = nil - -- theme.slider_bar_margins = nil - -- theme.slider_handle_margins = nil - -- theme.slider_bar_color = nil - -- theme.slider_bar_active_color = nil - - -- snap - -- theme.snap_bg = nil - -- theme.snap_border_width = nil - -- theme.snap_shape = nil - - -- snapper - -- theme.snapper_gap = nil - - -- systray - -- theme.systray_max_rows = nil - -- theme.systray_icon_spacing = nil - - -- taglist - -- theme.taglist_fg_focus = nil - -- theme.taglist_bg_focus = nil - -- theme.taglist_fg_urgent = nil - -- theme.taglist_bg_urgent = nil - -- theme.taglist_bg_occupied = nil - -- theme.taglist_fg_occupied = nil - -- theme.taglist_bg_empty = nil - -- theme.taglist_fg_empty = nil - -- theme.taglist_bg_volatile = nil - -- theme.taglist_fg_volatile = nil - -- theme.taglist_squares_sel = nil - -- theme.taglist_squares_unsel = nil - -- theme.taglist_squares_sel_empty = nil - -- theme.taglist_squares_unsel_empty = nil - -- theme.taglist_squares_resize = nil - -- theme.taglist_disable_icon = nil - -- theme.taglist_font = nil - -- theme.taglist_spacing = nil - -- theme.taglist_shape = nil - -- theme.taglist_shape_border_width = nil - -- theme.taglist_shape_border_color = nil - -- theme.taglist_shape_empty = nil - -- theme.taglist_shape_border_width_empty = nil - -- theme.taglist_shape_border_color_empty = nil - -- theme.taglist_shape_focus = nil - -- theme.taglist_shape_border_width_focus = nil - -- theme.taglist_shape_border_color_focus = nil - -- theme.taglist_shape_urgent = nil - -- theme.taglist_shape_border_width_urgent = nil - -- theme.taglist_shape_border_color_urgent = nil - -- theme.taglist_shape_volatile = nil - -- theme.taglist_shape_border_width_volatile = nil - -- theme.taglist_shape_border_color_volatile = nil - - -- tasklist - -- theme.tasklist_fg_normal = nil - -- theme.tasklist_bg_normal = nil - -- theme.tasklist_fg_focus = nil - -- theme.tasklist_bg_focus = nil - -- theme.tasklist_fg_urgent = nil - -- theme.tasklist_bg_urgent = nil - -- theme.tasklist_fg_minimize = nil - -- theme.tasklist_bg_minimize = nil - -- theme.tasklist_bg_image_normal = nil - -- theme.tasklist_bg_image_focus = nil - -- theme.tasklist_bg_image_urgent = nil - -- theme.tasklist_bg_image_minimize = nil - -- theme.tasklist_disable_icon = nil - -- theme.tasklist_disable_task_name = nil - -- theme.tasklist_plain_task_name = nil - -- theme.tasklist_sticky = nil - -- theme.tasklist_ontop = nil - -- theme.tasklist_above = nil - -- theme.tasklist_below = nil - -- theme.tasklist_floating = nil - -- theme.tasklist_maximized = nil - -- theme.tasklist_maximized_horizontal = nil - -- theme.tasklist_maximized_vertical = nil - -- theme.tasklist_minimized = nil - -- theme.tasklist_align = nil - -- theme.tasklist_font = nil - -- theme.tasklist_font_focus = nil - -- theme.tasklist_font_minimized = nil - -- theme.tasklist_font_urgent = nil - -- theme.tasklist_spacing = nil - -- theme.tasklist_shape = nil - -- theme.tasklist_shape_border_width = nil - -- theme.tasklist_shape_border_color = nil - -- theme.tasklist_shape_focus = nil - -- theme.tasklist_shape_border_width_focus = nil - -- theme.tasklist_shape_border_color_focus = nil - -- theme.tasklist_shape_minimized = nil - -- theme.tasklist_shape_border_width_minimized = nil - -- theme.tasklist_shape_border_color_minimized = nil - -- theme.tasklist_shape_urgent = nil - -- theme.tasklist_shape_border_width_urgent = nil - -- theme.tasklist_shape_border_color_urgent = nil - -- theme.tasklist_icon_size = nil - - -- titlebar - -- theme.titlebar_fg_normal = nil - -- theme.titlebar_bg_normal = nil - -- theme.titlebar_bgimage_normal = nil - -- theme.titlebar_fg = nil - -- theme.titlebar_bg = nil - -- theme.titlebar_bgimage = nil - -- theme.titlebar_fg_focus = nil - -- theme.titlebar_bg_focus = nil - -- theme.titlebar_bgimage_focus = nil - -- theme.titlebar_fg_urgent = nil - -- theme.titlebar_bg_urgent = nil - -- theme.titlebar_bgimage_urgent = nil - -- theme.titlebar_floating_button_normal = nil - -- theme.titlebar_maximized_button_normal = nil - -- theme.titlebar_minimize_button_normal = nil - -- theme.titlebar_minimize_button_normal_hover = nil - -- theme.titlebar_minimize_button_normal_press = nil - -- theme.titlebar_close_button_normal = nil - -- theme.titlebar_close_button_normal_hover = nil - -- theme.titlebar_close_button_normal_press = nil - -- theme.titlebar_ontop_button_normal = nil - -- theme.titlebar_sticky_button_normal = nil - -- theme.titlebar_floating_button_focus = nil - -- theme.titlebar_maximized_button_focus = nil - -- theme.titlebar_minimize_button_focus = nil - -- theme.titlebar_minimize_button_focus_hover = nil - -- theme.titlebar_minimize_button_focus_press = nil - -- theme.titlebar_close_button_focus = nil - -- theme.titlebar_close_button_focus_hover = nil - -- theme.titlebar_close_button_focus_press = nil - -- theme.titlebar_ontop_button_focus = nil - -- theme.titlebar_sticky_button_focus = nil - -- theme.titlebar_floating_button_normal_active = nil - -- theme.titlebar_floating_button_normal_active_hover = nil - -- theme.titlebar_floating_button_normal_active_press = nil - -- theme.titlebar_maximized_button_normal_active = nil - -- theme.titlebar_maximized_button_normal_active_hover = nil - -- theme.titlebar_maximized_button_normal_active_press = nil - -- theme.titlebar_ontop_button_normal_active = nil - -- theme.titlebar_ontop_button_normal_active_hover = nil - -- theme.titlebar_ontop_button_normal_active_press = nil - -- theme.titlebar_sticky_button_normal_active = nil - -- theme.titlebar_sticky_button_normal_active_hover = nil - -- theme.titlebar_sticky_button_normal_active_press = nil - -- theme.titlebar_floating_button_focus_active = nil - -- theme.titlebar_floating_button_focus_active_hover = nil - -- theme.titlebar_floating_button_focus_active_press = nil - -- theme.titlebar_maximized_button_focus_active = nil - -- theme.titlebar_maximized_button_focus_active_hover = nil - -- theme.titlebar_maximized_button_focus_active_press = nil - -- theme.titlebar_ontop_button_focus_active = nil - -- theme.titlebar_ontop_button_focus_active_hover = nil - -- theme.titlebar_ontop_button_focus_active_press = nil - -- theme.titlebar_sticky_button_focus_active = nil - -- theme.titlebar_sticky_button_focus_active_hover = nil - -- theme.titlebar_sticky_button_focus_active_press = nil - -- theme.titlebar_floating_button_normal_inactive = nil - -- theme.titlebar_floating_button_normal_inactive_hover = nil - -- theme.titlebar_floating_button_normal_inactive_press = nil - -- theme.titlebar_maximized_button_normal_inactive = nil - -- theme.titlebar_maximized_button_normal_inactive_hover = nil - -- theme.titlebar_maximized_button_normal_inactive_press = nil - -- theme.titlebar_ontop_button_normal_inactive = nil - -- theme.titlebar_ontop_button_normal_inactive_hover = nil - -- theme.titlebar_ontop_button_normal_inactive_press = nil - -- theme.titlebar_sticky_button_normal_inactive = nil - -- theme.titlebar_sticky_button_normal_inactive_hover = nil - -- theme.titlebar_sticky_button_normal_inactive_press = nil - -- theme.titlebar_floating_button_focus_inactive = nil - -- theme.titlebar_floating_button_focus_inactive_hover = nil - -- theme.titlebar_floating_button_focus_inactive_press = nil - -- theme.titlebar_maximized_button_focus_inactive = nil - -- theme.titlebar_maximized_button_focus_inactive_hover = nil - -- theme.titlebar_maximized_button_focus_inactive_press = nil - -- theme.titlebar_ontop_button_focus_inactive = nil - -- theme.titlebar_ontop_button_focus_inactive_hover = nil - -- theme.titlebar_ontop_button_focus_inactive_press = nil - -- theme.titlebar_sticky_button_focus_inactive = nil - -- theme.titlebar_sticky_button_focus_inactive_hover = nil - -- theme.titlebar_sticky_button_focus_inactive_press = nil - -- theme.titlebar_tooltip_messages_close = nil - -- theme.titlebar_tooltip_messages_minimize = nil - -- theme.titlebar_tooltip_messages_maximized_active = nil - -- theme.titlebar_tooltip_messages_maximized_inactive = nil - -- theme.titlebar_tooltip_messages_floating_active = nil - -- theme.titlebar_tooltip_messages_floating_inactive = nil - -- theme.titlebar_tooltip_messages_ontop_active = nil - -- theme.titlebar_tooltip_messages_ontop_inactive = nil - -- theme.titlebar_tooltip_messages_sticky_active = nil - -- theme.titlebar_tooltip_messages_sticky_inactive = nil - -- theme.titlebar_tooltip_delay_show = nil - -- theme.titlebar_tooltip_margins_leftright = nil - -- theme.titlebar_tooltip_margins_topbottom = nil - -- theme.titlebar_tooltip_timeout = nil - -- theme.titlebar_tooltip_align = nil - - -- tooltip - -- theme.tooltip_border_color = nil - -- theme.tooltip_bg = nil - -- theme.tooltip_fg = nil - -- theme.tooltip_font = nil - -- theme.tooltip_border_width = nil - -- theme.tooltip_opacity = nil - -- theme.tooltip_gaps = nil - -- theme.tooltip_shape = nil - -- theme.tooltip_align = nil - - -- wallpaper - -- theme.wallpaper_bg = nil - -- theme.wallpaper_fg = nil - - -- wibar - -- theme.wibar_stretch = nil - -- theme.wibar_favor_vertical = nil - -- theme.wibar_border_width = nil - -- theme.wibar_border_color = nil - -- theme.wibar_ontop = nil - -- theme.wibar_cursor = nil - -- theme.wibar_opacity = nil - -- theme.wibar_type = nil - -- theme.wibar_width = nil - -- theme.wibar_height = nil - -- theme.wibar_bg = nil - -- theme.wibar_bgimage = nil - -- theme.wibar_fg = nil - -- theme.wibar_shape = nil - -- theme.wibar_margins = nil - -- theme.wibar_align = nil - - return theme - - -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 \ No newline at end of file diff --git a/x11-packages/awesome/pregen/docs/common/client_rules_index.ldoc b/x11-packages/awesome/pregen/docs/common/client_rules_index.ldoc deleted file mode 100644 index da968c50c2ea703..000000000000000 --- a/x11-packages/awesome/pregen/docs/common/client_rules_index.ldoc +++ /dev/null @@ -1,75 +0,0 @@ --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
NameDescription
placementThe client default placement on the screen
honor\_paddingWhen applying the placement, honor the screen padding
honor\_workareaWhen applying the placement, honor the screen work area
tagThe client default tag
tagsThe client default tags
new\_tagCreate a new tag for this client
switch\_to\_tagsUnselect the current tags and select this client tags
focusDefine if the client should grab focus by default
titlebars\_enabledShould this client have a titlebar by default
callbackA function to call when this client is ready
markedIf a client is marked or not
is\_fixedReturn if a client has a fixed size or not
immobilized\_horizontalIs the client immobilized horizontally?
immobilized\_verticalIs the client immobilized vertically?
floatingThe client floating state
xThe x coordinates
yThe y coordinates
widthThe width of the client
heightThe height of the client
dockableIf the client is dockable
requests\_no\_titlebarIf the client requests not to be decorated with a titlebar
shapeSet the client shape
activeReturn true if the client is active (has focus)
windowThe X window id
nameThe client title
skip\_taskbarTrue if the client does not want to be in taskbar
typeThe window type
classThe client class
instanceThe client instance
pidThe client PID, if available
roleThe window role, if available
machineThe machine the client is running on
icon\_nameThe client name when iconified
iconThe client icon as a surface
icon\_sizesThe available sizes of client icons
screenClient screen
hiddenDefine if the client must be hidden (Never mapped, invisible in taskbar)
minimizedDefine if the client must be iconified (Only visible in taskbar)
size\_hints\_honorHonor size hints, e
border\_widthThe client border width
border\_colorThe client border color
urgentSet to `true` when the client ask for attention
contentA cairo surface for the client window content
opacityThe client opacity
ontopThe client is on top of every other windows
aboveThe client is above normal windows
belowThe client is below normal windows
fullscreenThe client is fullscreen or not
maximizedThe client is maximized (horizontally and vertically) or not
maximized\_horizontalThe client is maximized horizontally or not
maximized\_verticalThe client is maximized vertically or not
transient\_forThe client the window is transient for
group\_windowWindow identification unique to a group of windows
leader\_windowIdentification unique to windows spawned by the same command
size\_hintsA table with size hints of the client
motif\_wm\_hintsThe motif WM hints of the client
stickySet the client sticky (Available on all tags)
modalIndicate if the client is modal
focusableTrue if the client can receive the input focus
shape\_boundingThe client's bounding shape as set by awesome as a (native) cairo surface
shape\_clipThe client's clip shape as set by awesome as a (native) cairo surface
shape\_inputThe client's input shape as set by awesome as a (native) cairo surface
client\_shape\_boundingThe client's bounding shape as set by the program as a (native) cairo surface
client\_shape\_clipThe client's clip shape as set by the program as a (native) cairo surface
startup\_idThe FreeDesktop StartId
validIf the client that this object refers to is still managed by awesome
first\_tagThe first tag of the client
buttonsGet or set mouse buttons bindings for a client
keysGet or set keys bindings for a client
diff --git a/x11-packages/awesome/pregen/docs/common/notification_rules_index.ldoc b/x11-packages/awesome/pregen/docs/common/notification_rules_index.ldoc deleted file mode 100644 index 1387c2fdb0b2ac5..000000000000000 --- a/x11-packages/awesome/pregen/docs/common/notification_rules_index.ldoc +++ /dev/null @@ -1,43 +0,0 @@ --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
NameDescription
idUnique identifier of the notification
titleTitle of the notification
timeoutTime in seconds after which popup expires
urgencyThe notification urgency level
categoryThe notification category
residentTrue if the notification should be kept when an action is pressed
hover\_timeoutDelay in seconds after which hovered popup disappears
screenTarget screen for the notification
positionCorner of the workarea displaying the popups
ontopBoolean forcing popups to display on top
heightPopup height
widthPopup width
fontNotification font
icon"All in one" way to access the default image or icon
icon\_sizeDesired icon size in px
app\_iconThe icon provided in the `app_icon` field of the DBus notification
imageThe notification image
imagesThe notification (animated) images
fgForeground color
bgBackground color
border\_widthBorder width
border\_colorBorder color
shapeWidget shape
opacityWidget opacity
marginWidget margin
presetTable with any of the above parameters
callbackFunction that will be called with all arguments
actionsA table containing strings that represents actions to buttons
ignoreIgnore this notification, do not display
suspendedTell if the notification is currently suspended (read only)
is\_expiredIf the notification is expired
auto\_reset\_timeoutIf the timeout needs to be reset when a property changes
ignore\_suspend
clientsA list of clients associated with this notification
max\_widthThe maximum popup width
app\_nameThe application name specified by the notification
widget\_templateThe widget template used to represent the notification
diff --git a/x11-packages/awesome/pregen/docs/common/screen_rules_index.ldoc b/x11-packages/awesome/pregen/docs/common/screen_rules_index.ldoc deleted file mode 100644 index 27da979bba8ed5e..000000000000000 --- a/x11-packages/awesome/pregen/docs/common/screen_rules_index.ldoc +++ /dev/null @@ -1,28 +0,0 @@ --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
NameDescription
tiling\_areaThe area where clients can be tiled
contentTake a screenshot of the physical screen
paddingThe screen padding
outputsA list of outputs for this screen with their size in mm
clientsThe list of visible clients for the screen
hidden\_clientsGet the list of clients assigned to the screen but not currently visible
all\_clientsAll clients assigned to the screen
tiled\_clientsTiled clients for the screen
tagsA list of all tags on the screen
selected\_tagsA list of all selected tags on the screen
selected\_tagThe first selected tag
dpiThe number of pixels per inch of the screen
minimum\_dpiThe lowest density DPI from all of the (physical) outputs
maximum\_dpiThe highest density DPI from all of the (physical) outputs
preferred\_dpiThe preferred DPI from all of the (physical) outputs
mm\_maximum\_sizeThe maximum diagonal size in millimeters
mm\_minimum\_sizeThe minimum diagonal size in millimeters
inch\_maximum\_sizeThe maximum diagonal size in inches
inch\_minimum\_sizeThe minimum diagonal size in inches
geometryThe screen coordinates
indexThe internal screen number
workareaThe screen workarea
diff --git a/x11-packages/awesome/pregen/docs/common/tag_rules_index.ldoc b/x11-packages/awesome/pregen/docs/common/tag_rules_index.ldoc deleted file mode 100644 index 9d1b3c899dd5926..000000000000000 --- a/x11-packages/awesome/pregen/docs/common/tag_rules_index.ldoc +++ /dev/null @@ -1,21 +0,0 @@ --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
NameDescription
indexThe tag index
screenThe tag screen
master\_width\_factorThe tag master width factor
layoutThe tag client layout
layoutsThe (proposed) list of available layouts for this tag
volatileDefine if the tag must be deleted when the last client is untagged
gapThe gap (spacing, also called `useless_gap`) between clients
gap\_single\_clientEnable gaps for a single client
master\_fill\_policySet size fill policy for the master client(s)
master\_countSet the number of master windows
iconSet the tag icon
column\_countSet the number of columns
nameTag name
selectedTrue if the tag is selected to be viewed
activatedTrue if the tag is active and can be used
diff --git a/x11-packages/awesome/pregen/script_files/rc.lua b/x11-packages/awesome/pregen/script_files/rc.lua deleted file mode 100644 index 29b56f79b1273c1..000000000000000 --- a/x11-packages/awesome/pregen/script_files/rc.lua +++ /dev/null @@ -1,575 +0,0 @@ ---------------------------------------------------------------------------- ---- The default rc.lua file. --- --- A copy of this file is usually installed in `/etc/xdg/awesome/`. --- --- See [The declarative layout system](../documentation/05-awesomerc.md.html) --- for a version with additional comments. --- --- --- -- awesome_mode: api-level=4:screen=on --- -- If LuaRocks is installed, make sure that packages installed through it are --- -- found (e.g. lgi). If LuaRocks is not installed, do nothing. --- pcall(require, "luarocks.loader") --- --- -- Standard awesome library --- local gears = require("gears") --- local awful = require("awful") --- require("awful.autofocus") --- -- Widget and layout library --- local wibox = require("wibox") --- -- Theme handling library --- local beautiful = require("beautiful") --- -- Notification library --- local naughty = require("naughty") --- -- Declarative object management --- local ruled = require("ruled") --- local menubar = require("menubar") --- local hotkeys_popup = require("awful.hotkeys_popup") --- -- Enable hotkeys help widget for VIM and other apps --- -- when client with a matching name is opened: --- require("awful.hotkeys_popup.keys") --- --- -- {{{ Error handling --- -- Check if awesome encountered an error during startup and fell back to --- -- another config (This code will only ever execute for the fallback config) --- naughty.connect_signal("request::display_error", function(message, startup) --- naughty.notification { --- urgency = "critical", --- title = "Oops, an error happened"..(startup and " during startup!" or "!"), --- message = message --- } --- end) --- -- }}} --- --- -- {{{ Variable definitions --- -- Themes define colours, icons, font and wallpapers. --- beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") --- --- -- This is used later as the default terminal and editor to run. --- terminal = "xterm" --- editor = os.getenv("EDITOR") or "nano" --- editor_cmd = terminal .. " -e " .. editor --- --- -- Default modkey. --- -- Usually, Mod4 is the key with a logo between Control and Alt. --- -- If you do not like this or do not have such a key, --- -- I suggest you to remap Mod4 to another key using xmodmap or other tools. --- -- However, you can use another modifier like Mod1, but it may interact with others. --- modkey = "Mod4" --- -- }}} --- --- -- {{{ Menu --- -- Create a launcher widget and a main menu --- myawesomemenu = { --- { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end }, --- { "manual", terminal .. " -e man awesome" }, --- { "edit config", editor_cmd .. " " .. awesome.conffile }, --- { "restart", awesome.restart }, --- { "quit", function() awesome.quit() end }, --- } --- --- mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, --- { "open terminal", terminal } --- } --- }) --- --- mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, --- menu = mymainmenu }) --- --- -- Menubar configuration --- menubar.utils.terminal = terminal -- Set the terminal for applications that require it --- -- }}} --- --- -- {{{ Tag layout --- -- Table of layouts to cover with awful.layout.inc, order matters. --- tag.connect_signal("request::default_layouts", function() --- awful.layout.append_default_layouts({ --- awful.layout.suit.floating, --- awful.layout.suit.tile, --- awful.layout.suit.tile.left, --- awful.layout.suit.tile.bottom, --- awful.layout.suit.tile.top, --- awful.layout.suit.fair, --- awful.layout.suit.fair.horizontal, --- awful.layout.suit.spiral, --- awful.layout.suit.spiral.dwindle, --- awful.layout.suit.max, --- awful.layout.suit.max.fullscreen, --- awful.layout.suit.magnifier, --- awful.layout.suit.corner.nw, --- }) --- end) --- -- }}} --- --- -- {{{ Wallpaper --- screen.connect_signal("request::wallpaper", function(s) --- awful.wallpaper { --- screen = s, --- widget = { --- { --- image = beautiful.wallpaper, --- upscale = true, --- downscale = true, --- widget = wibox.widget.imagebox, --- }, --- valign = "center", --- halign = "center", --- tiled = false, --- widget = wibox.container.tile, --- } --- } --- end) --- -- }}} --- --- -- {{{ Wibar --- --- -- Keyboard map indicator and switcher --- mykeyboardlayout = awful.widget.keyboardlayout() --- --- -- Create a textclock widget --- mytextclock = wibox.widget.textclock() --- --- screen.connect_signal("request::desktop_decoration", function(s) --- -- Each screen has its own tag table. --- awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1]) --- --- -- Create a promptbox for each screen --- s.mypromptbox = awful.widget.prompt() --- --- -- Create an imagebox widget which will contain an icon indicating which layout we're using. --- -- We need one layoutbox per screen. --- s.mylayoutbox = awful.widget.layoutbox { --- screen = s, --- buttons = { --- awful.button({ }, 1, function () awful.layout.inc( 1) end), --- awful.button({ }, 3, function () awful.layout.inc(-1) end), --- awful.button({ }, 4, function () awful.layout.inc(-1) end), --- awful.button({ }, 5, function () awful.layout.inc( 1) end), --- } --- } --- --- -- Create a taglist widget --- s.mytaglist = awful.widget.taglist { --- screen = s, --- filter = awful.widget.taglist.filter.all, --- buttons = { --- awful.button({ }, 1, function(t) t:view_only() end), --- awful.button({ modkey }, 1, function(t) --- if client.focus then --- client.focus:move_to_tag(t) --- end --- end), --- awful.button({ }, 3, awful.tag.viewtoggle), --- awful.button({ modkey }, 3, function(t) --- if client.focus then --- client.focus:toggle_tag(t) --- end --- end), --- awful.button({ }, 4, function(t) awful.tag.viewprev(t.screen) end), --- awful.button({ }, 5, function(t) awful.tag.viewnext(t.screen) end), --- } --- } --- --- -- Create a tasklist widget --- s.mytasklist = awful.widget.tasklist { --- screen = s, --- filter = awful.widget.tasklist.filter.currenttags, --- buttons = { --- awful.button({ }, 1, function (c) --- c:activate { context = "tasklist", action = "toggle_minimization" } --- end), --- awful.button({ }, 3, function() awful.menu.client_list { theme = { width = 250 } } end), --- awful.button({ }, 4, function() awful.client.focus.byidx(-1) end), --- awful.button({ }, 5, function() awful.client.focus.byidx( 1) end), --- } --- } --- --- -- Create the wibox --- s.mywibox = awful.wibar { --- position = "top", --- screen = s, --- widget = { --- layout = wibox.layout.align.horizontal, --- { -- Left widgets --- layout = wibox.layout.fixed.horizontal, --- mylauncher, --- s.mytaglist, --- s.mypromptbox, --- }, --- s.mytasklist, -- Middle widget --- { -- Right widgets --- layout = wibox.layout.fixed.horizontal, --- mykeyboardlayout, --- wibox.widget.systray(), --- mytextclock, --- s.mylayoutbox, --- }, --- } --- } --- end) --- --- -- }}} --- --- -- {{{ Mouse bindings --- awful.mouse.append_global_mousebindings({ --- awful.button({ }, 3, function () mymainmenu:toggle() end), --- awful.button({ }, 4, awful.tag.viewprev), --- awful.button({ }, 5, awful.tag.viewnext), --- }) --- -- }}} --- --- -- {{{ Key bindings --- --- -- General Awesome keys --- awful.keyboard.append_global_keybindings({ --- awful.key({ modkey, }, "s", hotkeys_popup.show_help, --- {description="show help", group="awesome"}), --- awful.key({ modkey, }, "w", function () mymainmenu:show() end, --- {description = "show main menu", group = "awesome"}), --- awful.key({ modkey, "Control" }, "r", awesome.restart, --- {description = "reload awesome", group = "awesome"}), --- awful.key({ modkey, "Shift" }, "q", awesome.quit, --- {description = "quit awesome", group = "awesome"}), --- awful.key({ modkey }, "x", --- function () --- awful.prompt.run { --- prompt = "Run Lua code: ", --- textbox = awful.screen.focused().mypromptbox.widget, --- exe_callback = awful.util.eval, --- history_path = awful.util.get_cache_dir() .. "/history_eval" --- } --- end, --- {description = "lua execute prompt", group = "awesome"}), --- awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, --- {description = "open a terminal", group = "launcher"}), --- awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, --- {description = "run prompt", group = "launcher"}), --- awful.key({ modkey }, "p", function() menubar.show() end, --- {description = "show the menubar", group = "launcher"}), --- }) --- --- -- Tags related keybindings --- awful.keyboard.append_global_keybindings({ --- awful.key({ modkey, }, "Left", awful.tag.viewprev, --- {description = "view previous", group = "tag"}), --- awful.key({ modkey, }, "Right", awful.tag.viewnext, --- {description = "view next", group = "tag"}), --- awful.key({ modkey, }, "Escape", awful.tag.history.restore, --- {description = "go back", group = "tag"}), --- }) --- --- -- Focus related keybindings --- awful.keyboard.append_global_keybindings({ --- awful.key({ modkey, }, "j", --- function () --- awful.client.focus.byidx( 1) --- end, --- {description = "focus next by index", group = "client"} --- ), --- awful.key({ modkey, }, "k", --- function () --- awful.client.focus.byidx(-1) --- end, --- {description = "focus previous by index", group = "client"} --- ), --- awful.key({ modkey, }, "Tab", --- function () --- awful.client.focus.history.previous() --- if client.focus then --- client.focus:raise() --- end --- end, --- {description = "go back", group = "client"}), --- awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end, --- {description = "focus the next screen", group = "screen"}), --- awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end, --- {description = "focus the previous screen", group = "screen"}), --- awful.key({ modkey, "Control" }, "n", --- function () --- local c = awful.client.restore() --- -- Focus restored client --- if c then --- c:activate { raise = true, context = "key.unminimize" } --- end --- end, --- {description = "restore minimized", group = "client"}), --- }) --- --- -- Layout related keybindings --- awful.keyboard.append_global_keybindings({ --- awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, --- {description = "swap with next client by index", group = "client"}), --- awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, --- {description = "swap with previous client by index", group = "client"}), --- awful.key({ modkey, }, "u", awful.client.urgent.jumpto, --- {description = "jump to urgent client", group = "client"}), --- awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end, --- {description = "increase master width factor", group = "layout"}), --- awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end, --- {description = "decrease master width factor", group = "layout"}), --- awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end, --- {description = "increase the number of master clients", group = "layout"}), --- awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end, --- {description = "decrease the number of master clients", group = "layout"}), --- awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end, --- {description = "increase the number of columns", group = "layout"}), --- awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end, --- {description = "decrease the number of columns", group = "layout"}), --- awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end, --- {description = "select next", group = "layout"}), --- awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, --- {description = "select previous", group = "layout"}), --- }) --- --- --- awful.keyboard.append_global_keybindings({ --- awful.key { --- modifiers = { modkey }, --- keygroup = "numrow", --- description = "only view tag", --- group = "tag", --- on_press = function (index) --- local screen = awful.screen.focused() --- local tag = screen.tags[index] --- if tag then --- tag:view_only() --- end --- end, --- }, --- awful.key { --- modifiers = { modkey, "Control" }, --- keygroup = "numrow", --- description = "toggle tag", --- group = "tag", --- on_press = function (index) --- local screen = awful.screen.focused() --- local tag = screen.tags[index] --- if tag then --- awful.tag.viewtoggle(tag) --- end --- end, --- }, --- awful.key { --- modifiers = { modkey, "Shift" }, --- keygroup = "numrow", --- description = "move focused client to tag", --- group = "tag", --- on_press = function (index) --- if client.focus then --- local tag = client.focus.screen.tags[index] --- if tag then --- client.focus:move_to_tag(tag) --- end --- end --- end, --- }, --- awful.key { --- modifiers = { modkey, "Control", "Shift" }, --- keygroup = "numrow", --- description = "toggle focused client on tag", --- group = "tag", --- on_press = function (index) --- if client.focus then --- local tag = client.focus.screen.tags[index] --- if tag then --- client.focus:toggle_tag(tag) --- end --- end --- end, --- }, --- awful.key { --- modifiers = { modkey }, --- keygroup = "numpad", --- description = "select layout directly", --- group = "layout", --- on_press = function (index) --- local t = awful.screen.focused().selected_tag --- if t then --- t.layout = t.layouts[index] or t.layout --- end --- end, --- } --- }) --- --- client.connect_signal("request::default_mousebindings", function() --- awful.mouse.append_client_mousebindings({ --- awful.button({ }, 1, function (c) --- c:activate { context = "mouse_click" } --- end), --- awful.button({ modkey }, 1, function (c) --- c:activate { context = "mouse_click", action = "mouse_move" } --- end), --- awful.button({ modkey }, 3, function (c) --- c:activate { context = "mouse_click", action = "mouse_resize"} --- end), --- }) --- end) --- --- client.connect_signal("request::default_keybindings", function() --- awful.keyboard.append_client_keybindings({ --- awful.key({ modkey, }, "f", --- function (c) --- c.fullscreen = not c.fullscreen --- c:raise() --- end, --- {description = "toggle fullscreen", group = "client"}), --- awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, --- {description = "close", group = "client"}), --- awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , --- {description = "toggle floating", group = "client"}), --- awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, --- {description = "move to master", group = "client"}), --- awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, --- {description = "move to screen", group = "client"}), --- awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, --- {description = "toggle keep on top", group = "client"}), --- awful.key({ modkey, }, "n", --- function (c) --- -- The client currently has the input focus, so it cannot be --- -- minimized, since minimized clients can't have the focus. --- c.minimized = true --- end , --- {description = "minimize", group = "client"}), --- awful.key({ modkey, }, "m", --- function (c) --- c.maximized = not c.maximized --- c:raise() --- end , --- {description = "(un)maximize", group = "client"}), --- awful.key({ modkey, "Control" }, "m", --- function (c) --- c.maximized_vertical = not c.maximized_vertical --- c:raise() --- end , --- {description = "(un)maximize vertically", group = "client"}), --- awful.key({ modkey, "Shift" }, "m", --- function (c) --- c.maximized_horizontal = not c.maximized_horizontal --- c:raise() --- end , --- {description = "(un)maximize horizontally", group = "client"}), --- }) --- end) --- --- -- }}} --- --- -- {{{ Rules --- -- Rules to apply to new clients. --- ruled.client.connect_signal("request::rules", function() --- -- All clients will match this rule. --- ruled.client.append_rule { --- id = "global", --- rule = { }, --- properties = { --- focus = awful.client.focus.filter, --- raise = true, --- screen = awful.screen.preferred, --- placement = awful.placement.no_overlap+awful.placement.no_offscreen --- } --- } --- --- -- Floating clients. --- ruled.client.append_rule { --- id = "floating", --- rule_any = { --- instance = { "copyq", "pinentry" }, --- class = { --- "Arandr", "Blueman-manager", "Gpick", "Kruler", "Sxiv", --- "Tor Browser", "Wpa_gui", "veromix", "xtightvncviewer" --- }, --- -- Note that the name property shown in xprop might be set slightly after creation of the client --- -- and the name shown there might not match defined rules here. --- name = { --- "Event Tester", -- xev. --- }, --- role = { --- "AlarmWindow", -- Thunderbird's calendar. --- "ConfigManager", -- Thunderbird's about:config. --- "pop-up", -- e.g. Google Chrome's (detached) Developer Tools. --- } --- }, --- properties = { floating = true } --- } --- --- -- Add titlebars to normal clients and dialogs --- ruled.client.append_rule { --- id = "titlebars", --- rule_any = { type = { "normal", "dialog" } }, --- properties = { titlebars_enabled = true } --- } --- --- -- Set Firefox to always map on the tag named "2" on screen 1. --- -- ruled.client.append_rule { --- -- rule = { class = "Firefox" }, --- -- properties = { screen = 1, tag = "2" } --- -- } --- end) --- -- }}} --- --- -- {{{ Titlebars --- -- Add a titlebar if titlebars_enabled is set to true in the rules. --- client.connect_signal("request::titlebars", function(c) --- -- buttons for the titlebar --- local buttons = { --- awful.button({ }, 1, function() --- c:activate { context = "titlebar", action = "mouse_move" } --- end), --- awful.button({ }, 3, function() --- c:activate { context = "titlebar", action = "mouse_resize"} --- end), --- } --- --- awful.titlebar(c).widget = { --- { -- Left --- awful.titlebar.widget.iconwidget(c), --- buttons = buttons, --- layout = wibox.layout.fixed.horizontal --- }, --- { -- Middle --- { -- Title --- halign = "center", --- widget = awful.titlebar.widget.titlewidget(c) --- }, --- buttons = buttons, --- layout = wibox.layout.flex.horizontal --- }, --- { -- Right --- awful.titlebar.widget.floatingbutton (c), --- awful.titlebar.widget.maximizedbutton(c), --- awful.titlebar.widget.stickybutton (c), --- awful.titlebar.widget.ontopbutton (c), --- awful.titlebar.widget.closebutton (c), --- layout = wibox.layout.fixed.horizontal() --- }, --- layout = wibox.layout.align.horizontal --- } --- end) --- -- }}} --- --- -- {{{ Notifications --- --- ruled.notification.connect_signal('request::rules', function() --- -- All notifications will match this rule. --- ruled.notification.append_rule { --- rule = { }, --- properties = { --- screen = awful.screen.preferred, --- implicit_timeout = 5, --- } --- } --- end) --- --- naughty.connect_signal("request::display", function(n) --- naughty.layout.box { notification = n } --- end) --- --- -- }}} --- --- -- Enable sloppy focus, so that focus follows mouse. --- client.connect_signal("mouse::enter", function(c) --- c:activate { context = "mouse_enter", raise = false } --- end) --- @script rc.lua --- @usebeautiful beautiful.awesome_icon --- @usebeautiful beautiful.wallpaper \ No newline at end of file diff --git a/x11-packages/awesome/pregen/script_files/theme.lua b/x11-packages/awesome/pregen/script_files/theme.lua deleted file mode 100644 index be9917b4d98e01c..000000000000000 --- a/x11-packages/awesome/pregen/script_files/theme.lua +++ /dev/null @@ -1,158 +0,0 @@ ---------------------------------------------------------------------------- ---- The default theme file. --- --- If you wish to create a custom theme, copy this file to --- `~/.config/awesome/mytheme.lua` --- and replace: --- --- beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") --- --- with --- --- beautiful.init(gears.filesystem.get_configuration_dir() .. "mytheme.lua") --- --- in your `rc.lua`. --- --- Here is the default theme content: --- --- --- --------------------------- --- -- Default awesome theme -- --- --------------------------- --- --- local theme_assets = require("`beautiful.theme`_assets") --- local xresources = require("`beautiful.xresources`") --- local rnotification = require("ruled.notification") --- local dpi = xresources.apply_dpi --- --- local gfs = require("`gears.filesystem`") --- local themes_path = gfs.get_themes_dir() --- --- local theme = {} --- --- theme.font = "sans 8" --- --- theme.bg_normal = "#222222" --- theme.bg_focus = "#535d6c" --- theme.bg_urgent = "#ff0000" --- theme.bg_minimize = "#444444" --- theme.bg_systray = theme.bg_normal --- --- theme.fg_normal = "#aaaaaa" --- theme.fg_focus = "#ffffff" --- theme.fg_urgent = "#ffffff" --- theme.fg_minimize = "#ffffff" --- --- theme.useless_gap = dpi(0) --- theme.border_width = dpi(1) --- theme.border_color_normal = "#000000" --- theme.border_color_active = "#535d6c" --- theme.border_color_marked = "#91231c" --- --- -- There are other variable sets --- -- overriding the default one when --- -- defined, the sets are: --- -- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] --- -- tasklist_[bg|fg]_[focus|urgent] --- -- titlebar_[bg|fg]_[normal|focus] --- -- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] --- -- prompt_[fg|bg|fg_cursor|bg_cursor|font] --- -- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] --- -- Example: --- --theme.taglist_bg_focus = "#ff0000" --- --- -- Generate taglist squares: --- local taglist_square_size = dpi(4) --- theme.taglist_squares_sel = theme_assets.taglist_squares_sel( --- taglist_square_size, theme.fg_normal --- ) --- theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( --- taglist_square_size, theme.fg_normal --- ) --- --- -- Variables set for theming notifications: --- -- notification_font --- -- notification_[bg|fg] --- -- notification_[width|height|margin] --- -- notification_[border_color|border_width|shape|opacity] --- --- -- Variables set for theming the menu: --- -- menu_[bg|fg]_[normal|focus] --- -- menu_[border_color|border_width] --- theme.menu_submenu_icon = themes_path.."default/submenu.png" --- theme.menu_height = dpi(15) --- theme.menu_width = dpi(100) --- --- -- You can add as many variables as --- -- you wish and access them by using --- -- `beautiful.variable` in your rc.lua --- --theme.bg_widget = "#cc0000" --- --- -- Define the image to load --- theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png" --- theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png" --- --- theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png" --- theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png" --- --- theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png" --- theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png" --- theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png" --- theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png" --- --- theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png" --- theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png" --- theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png" --- theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png" --- --- theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png" --- theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png" --- theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png" --- theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png" --- --- theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png" --- theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png" --- theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png" --- theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png" --- --- theme.wallpaper = themes_path.."default/background.png" --- --- -- You can use your own layout icons like this: --- theme.layout_fairh = themes_path.."default/layouts/fairhw.png" --- theme.layout_fairv = themes_path.."default/layouts/fairvw.png" --- theme.layout_floating = themes_path.."default/layouts/floatingw.png" --- theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png" --- theme.layout_max = themes_path.."default/layouts/maxw.png" --- theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png" --- theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png" --- theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png" --- theme.layout_tile = themes_path.."default/layouts/tilew.png" --- theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png" --- theme.layout_spiral = themes_path.."default/layouts/spiralw.png" --- theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png" --- theme.layout_cornernw = themes_path.."default/layouts/cornernww.png" --- theme.layout_cornerne = themes_path.."default/layouts/cornernew.png" --- theme.layout_cornersw = themes_path.."default/layouts/cornersww.png" --- theme.layout_cornerse = themes_path.."default/layouts/cornersew.png" --- --- -- Generate Awesome icon: --- theme.awesome_icon = theme_assets.awesome_icon( --- theme.menu_height, theme.bg_focus, theme.fg_focus --- ) --- --- -- Define the icon theme for application icons. If not set then the icons --- -- from /usr/share/icons and /usr/share/icons/hicolor will be used. --- theme.icon_theme = nil --- --- -- Set different colors for urgent notifications. --- rnotification.connect_signal('request::rules', function() --- rnotification.append_rule { --- rule = { urgency = 'critical' }, --- properties = { bg = '#ff0000', fg = '#ffffff' } --- } --- end) --- --- return theme --- --- -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 --- @script theme.lua \ No newline at end of file