some lua thing. lists windows okay. notsure

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-12-23 00:45:14 -06:00
parent 78cbaac691
commit 60d8edcb03
7 changed files with 162 additions and 1 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ go.sum
files/ files/
xstartplacement xstartplacement
devilspie/devilspie2

36
devilspie/Makefile Normal file
View File

@ -0,0 +1,36 @@
PKGINC = $(shell pkg-config --cflags --libs glib-2.0 libwnck-3.0 lua5.1)
all: worked1
# gcc *.c -o test
run:
# lists out windows found?
echo apt install lua-posix
./devilspie2 -l
./devilspie2 -w
sleep 3
./devilspie2 -d -e -f scripts
worked1:
# gcc *.c -o test $(pkg-config --cflags --libs glib-2.0 libwnck-3.0 lua5.1)
gcc *.c -o devilspie2 ${PKGINC} \
-lwnck-3 -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -llua5.1 -lX11 -lXinerama
# -lwnck-3 -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -llua5.1 -lX11
try2:
gcc *.c -o test $(pkg-config --cflags --libs glib-2.0 libwnck-3.0)
try1:
gcc *.c -o test \
-I . \
-I /usr/include/glib-2.0/ \
-I /usr/lib/x86_64-linux-gnu/glib-2.0/include/ \
-I /usr/include/gtk-3.0/ \
-I /usr/include/pango-1.0/ \
-I /usr/include/libwnck-3.0/ \
-I /usr/include/harfbuzz/ \
-I /usr/include/cairo \
-I /usr/include/gdk-pixbuf-2.0/ \
-I /usr/include/atk-1.0/ \
-I /usr/include/lua5.1/

View File

@ -47,6 +47,10 @@
#define HAVE_GTK3 #define HAVE_GTK3
#endif #endif
#define PACKAGE "jcarr"
#define LOCALEDIR "/tmp/jcarr"
#define DEVILSPIE2_VERSION "jwc"
/** /**
* *
*/ */
@ -237,7 +241,6 @@ void print_list(GSList *list)
} }
} }
/** /**
* *
*/ */

46
devilspie/devilspie2.lua Normal file
View File

@ -0,0 +1,46 @@
-- Support Awesome 3.5 WM
local posix = require("posix");
local os = require("os");
local awesome = "/usr/bin/awesome-client"
if not posix.stat(awesome, "type") == "file" then
awesome = nil;
end
-- Check for tiling mode
function is_tiling()
if awesome then
return true;
end
return false;
end
-- Make window floating
-- Parameters: state - true to make window floating, else make window tiled
function set_tile_floating( state )
if not awesome then
return nil;
end
if state then state = "true" else state = "false" end
local xid = get_window_xid();
local command = "echo ";
command = command .. "'";
command = command .. " local naughty = require(\"naughty\");";
command = command .. " local awcl = require(\"awful.client\");";
command = command .. " local client = require(\"client\");";
command = command .. " for k, c in pairs( client.get() ) do";
command = command .. " if c.window == " .. xid .. " then";
command = command .. " awcl.floating.set(c, " .. state .. ");";
command = command .. " end";
command = command .. " end";
command = command .. "'";
command = command .. " | ";
command = command .. awesome;
debug_print("Awesome floating: " .. command);
return os.execute( command );
end

0
devilspie/lauxlib.h Normal file
View File

View File

@ -0,0 +1,46 @@
-- Support Awesome 3.5 WM
local posix = require("posix");
local os = require("os");
local awesome = "/usr/bin/awesome-client"
if not posix.stat(awesome, "type") == "file" then
awesome = nil;
end
-- Check for tiling mode
function is_tiling()
if awesome then
return true;
end
return false;
end
-- Make window floating
-- Parameters: state - true to make window floating, else make window tiled
function set_tile_floating( state )
if not awesome then
return nil;
end
if state then state = "true" else state = "false" end
local xid = get_window_xid();
local command = "echo ";
command = command .. "'";
command = command .. " local naughty = require(\"naughty\");";
command = command .. " local awcl = require(\"awful.client\");";
command = command .. " local client = require(\"client\");";
command = command .. " for k, c in pairs( client.get() ) do";
command = command .. " if c.window == " .. xid .. " then";
command = command .. " awcl.floating.set(c, " .. state .. ");";
command = command .. " end";
command = command .. " end";
command = command .. "'";
command = command .. " | ";
command = command .. awesome;
debug_print("Awesome floating: " .. command);
return os.execute( command );
end

View File

@ -0,0 +1,29 @@
--[[
This file is part of devilspie2
Copyright (C) 2023 Darren Salt
This is an example primarily intended for use in your own
configuration files etc. without causing licence contamination.
As such, no licence conditions are attached; it may be modified and
redistributed freely. Essentially, do what you want with it.
That said, retaining proper attribution would be appreciated.
]]
-- Optional, but probably useful. (Technical feedback would be helpful.)
set_adjust_for_decoration(true)
-- Set up some variables containing likely-to-be-referenced values
win_class = get_window_class()
win_role = get_window_role()
win_name = get_window_name()
app_name = get_application_name()
ins_name = get_class_instance_name()
if ins_name == nil then ins_name = '[nil]' end
grp_name = get_class_group_name()
if grp_name == nil then grp_name = '[nil]' end
-- Debug output ("devilspie2 -d")
decorated = get_window_is_decorated() and "yes" or "no"
debug_print("\nName: '" .. win_name .. "'\nApp: '" .. app_name .. "'\nClass: " .. win_class .. "\nRole: <" .. win_role .. ">")
debug_print ("Process: '" .. get_process_name() .. "'\nDecorated: " .. decorated)
debug_print ("Instance: '" .. ins_name .. "' & '" .. grp_name .. "'")
-- Add your stuff here!