Add a port of subtle, grid-based manual tiling window manager.

WWW: http://subtle.subforge.org/
This commit is contained in:
Alexey Dokuchaev 2016-12-28 07:25:34 +00:00
parent 3810d538c6
commit 7a12aee4f2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=429718
8 changed files with 171 additions and 0 deletions

View File

@ -106,6 +106,7 @@
SUBDIR += selectwm
SUBDIR += simple-ccsm
SUBDIR += spectrwm
SUBDIR += subtle
SUBDIR += swm
SUBDIR += tinywm
SUBDIR += transset

32
x11-wm/subtle/Makefile Normal file
View File

@ -0,0 +1,32 @@
# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
# $FreeBSD$
PORTNAME= subtle
PORTVERSION= 0.11.3224
CATEGORIES= x11-wm ruby
MASTER_SITES= http://subtle.subforge.org/attachments/download/81/
DISTNAME= ${PORTNAME}-${PORTVERSION}-xi
MAINTAINER= danfe@FreeBSD.org
COMMENT= Grid-based manual tiling window manager
LICENSE= GPLv2
BUILD_DEPENDS= rake:devel/rubygem-rake
USES= pkgconfig shebangfix tar:tbz2
USE_RUBY= yes
USE_XORG= x11 xft xinerama xpm xrandr xtst
MAKE_CMD= rake -v
MAKEFILE= Rakefile
ALL_TARGET= build
post-patch:
@${REINPLACE_CMD} -e 's,/etc/xdg,${LOCALBASE}&,' \
${WRKSRC}/src/subtle/ruby.c
do-configure:
@cd ${WRKSRC} && ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} config
.include <bsd.port.mk>

3
x11-wm/subtle/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1482831730
SHA256 (subtle-0.11.3224-xi.tbz2) = a22ee94a70c1105a018e1c0a754597b4e3a87d1b915301a0b22888920fa0f8a2
SIZE (subtle-0.11.3224-xi.tbz2) = 144607

View File

@ -0,0 +1,81 @@
--- Rakefile.orig 2012-06-20 11:29:55 UTC
+++ Rakefile
@@ -45,14 +45,14 @@ end
@options = {
"cc" => ENV["CC"] || "gcc",
"destdir" => ENV["DESTDIR"] || "",
- "prefix" => "/usr",
- "manprefix" => "$(prefix)/share/man",
- "bindir" => "$(destdir)/$(prefix)/bin",
- "sysconfdir" => "$(destdir)/etc",
+ "prefix" => ENV["PREFIX"] || "/usr",
+ "manprefix" => "%s/man" % (ENV["MANPREFIX"] || "$(prefix)/share"),
+ "bindir" => "$(destdir)$(prefix)/bin",
+ "sysconfdir" => "$(destdir)$(prefix)/etc",
"configdir" => "$(sysconfdir)/xdg/$(PKG_NAME)",
- "datadir" => "$(destdir)/$(prefix)/share/$(PKG_NAME)",
- "extdir" => "$(destdir)/$(sitelibdir)/$(PKG_NAME)",
- "mandir" => "$(destdir)/$(manprefix)/man1",
+ "datadir" => "$(destdir)$(prefix)/share/$(PKG_NAME)",
+ "extdir" => "$(destdir)$(sitelibdir)/$(PKG_NAME)",
+ "mandir" => "$(destdir)$(manprefix)/man1",
"debug" => "no",
"xpm" => "yes",
"xft" => "yes",
@@ -63,7 +63,7 @@ end
"hdrdir" => "",
"archdir" => "",
"revision" => "3224", #< Latest stable
- "cflags" => "-Wall -Werror -Wpointer-arith -Wstrict-prototypes -Wunused -Wshadow -std=gnu99",
+ "cflags" => "-Wall -Wpointer-arith -Wstrict-prototypes -Wunused -Wshadow -std=gnu99",
"cpppath" => "-I. -I$(builddir) -Isrc -Isrc/shared -Isrc/subtle -idirafter$(hdrdir) -idirafter$(archdir)",
"ldflags" => "-L$(libdir) $(rpath) $(LIBS) -l$(RUBY_SO_NAME)",
"extflags" => "$(LDFLAGS) $(rpath) $(LIBS) -l$(RUBY_SO_NAME)",
@@ -258,8 +258,8 @@ task(:config) do
make_config unless checksums
else
# Check version
- if 1 != RbConfig::CONFIG["MAJOR"].to_i or 9 != RbConfig::CONFIG["MINOR"].to_i
- fail("Ruby 1.9.0 or higher required")
+ if 2 > RbConfig::CONFIG["MAJOR"].to_i
+ fail("Ruby 2.0.0 (1.9.0 really) or higher required")
end
checksums
@@ -396,7 +396,10 @@ task(:config) do
checking_for("X11/Xft/Xft.h") do
ret = false
+ # Work around pkg_config()'s stupidity: obtain real (full) cflags
+ cutoff = $INCFLAGS.length
cflags, ldflags, libs = pkg_config("xft")
+ cflags << $INCFLAGS[cutoff..-1]
unless libs.nil?
# Update flags
@options["cpppath"] << " %s" % [ cflags ]
@@ -495,6 +498,7 @@ task(:config) do
-----------------
Binaries............: #{@options["bindir"]}
Configuration.......: #{@options["configdir"]}
+Manual pages........: #{@options["mandir"]}
Extension...........: #{@options["extdir"]}
Xpm support.........: #{@options["xpm"]}
@@ -503,6 +507,8 @@ Xinerama support....: #{@options["xinera
XRandR support......: #{@options["xrandr"]}
XTest support.......: #{@options["xtest"]}
Debugging messages..: #{@options["debug"]}
+Compiler............: #{@options["cc"]} (#{
+`#{@options["cc"]} -v 2>&1`[/\w+ version [\d.]+/]})
EOF
end
@@ -613,7 +619,7 @@ task(:install => [:config, :build]) do
)
# Update interpreter name
- `#{sed} -i -e 's#/usr/bin/ruby.*##{interpreter}#' \
+ `#{sed} -i '' -e 's#/usr/bin/ruby.*##{interpreter}#' \
#{File.join(@options["bindir"], File.basename(f))}`
end

View File

@ -0,0 +1,10 @@
--- src/shared/shared.h.orig 2012-06-20 11:29:55 UTC
+++ src/shared/shared.h
@@ -28,6 +28,7 @@
#include <X11/Xutil.h>
#include <X11/Xmd.h>
#include <X11/cursorfont.h>
+#include <ruby.h>
#include <ruby/oniguruma.h>
#include "config.h"

View File

@ -0,0 +1,12 @@
--- src/subtle/ruby.c.orig 2012-06-20 11:29:55 UTC
+++ src/subtle/ruby.c
@@ -2612,8 +2612,7 @@ RubyConfigLoadConfig(VALUE self,
if((dirs = getenv("XDG_CONFIG_DIRS")))
len += snprintf(tokens + len, sizeof(tokens), ":%s", dirs);
- else len += snprintf(tokens + len, sizeof(tokens), ":%s/%s",
- "/etc/xdg", PKG_NAME);
+ else len += snprintf(tokens + len, sizeof(tokens), ":%s", "/etc/xdg");
if((home = getenv("XDG_DATA_HOME")))
{

14
x11-wm/subtle/pkg-descr Normal file
View File

@ -0,0 +1,14 @@
subtle is a manual tiling window manager with a rather uncommon approach
of tiling: instead of relying on predefined layouts, subtle divides the
screen into a grid with customizeable slots (called gravities). For better
understanding, the default config uses a 3x3 grid and maps each gravity to
one key of the numpad. With those keys, windows can be moved directly to
the desired gravity -- the same can be done with tagging rules in the
config.
Another unique concept is the strict tagging: Unlike other tiling window
managers, subtle does not allow weak tagging and always maps windows to
virtual desktops (called views) with matching tags, regardless of the
current active view.
WWW: http://subtle.subforge.org/

18
x11-wm/subtle/pkg-plist Normal file
View File

@ -0,0 +1,18 @@
bin/subtle
bin/subtler
bin/sur
bin/surserver
etc/xdg/subtle/subtle.rb
%%RUBY_SITELIBDIR%%/subtle/subtler/runner.rb
%%RUBY_SITELIBDIR%%/subtle/subtlext.so
%%RUBY_SITELIBDIR%%/subtle/sur/client.rb
%%RUBY_SITELIBDIR%%/subtle/sur/runner.rb
%%RUBY_SITELIBDIR%%/subtle/sur/server.rb
%%RUBY_SITELIBDIR%%/subtle/sur/specification.rb
%%RUBY_SITELIBDIR%%/subtle/sur/test.rb
%%RUBY_SITELIBDIR%%/subtle/sur/version.rb
man/man1/subtle.1.gz
man/man1/subtler.1.gz
man/man1/subtlext.1.gz
man/man1/sur.1.gz
man/man1/surserver.1.gz