Compare commits

...

10 commits

23 changed files with 47097 additions and 343 deletions

3
.gitignore vendored
View file

@ -1 +1,4 @@
*.pkg.tar.zst
*.pkg.tar.gz
*.pkg.tar.xz
*.pkg.tar

View file

@ -14,7 +14,7 @@ pkgdesc='Automated suite of programs for configuring and maintaining Unix-like c
url='http://www.cfengine.org'
license=('GPL3')
arch=('i686' 'x86_64')
depends=('lmdb' 'openssl' 'pcre' 'libxml2' 'pam' 'tokyocabinet')
depends=('lmdb' 'openssl102-opt' 'pcre' 'libxml2' 'pam' 'tokyocabinet')
makedepends=('which')
optdepends=('libvirt' 'postgresql-libs' 'libmariadbclient' 'acl')
install=${pkgname}.install
@ -39,7 +39,7 @@ build() {
./configure \
--prefix=/usr \
--with-workdir=/var/${pkgname} \
--with-openssl \
--with-openssl=/opt/openssl102 \
--with-pcre \
--with-libacl=check \
--with-libxml2 \

257
mako/393.patch Normal file
View file

@ -0,0 +1,257 @@
From c8fc55b5dc5e4b3f3431e0c5786be94213f698a2 Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Tue, 23 Nov 2021 14:30:32 +0800
Subject: [PATCH 1/5] scale cursor too so the mouse pointer doesn't change
above notification
---
include/mako.h | 1 +
wayland.c | 33 +++++++++++++++++++++++++++------
2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/include/mako.h b/include/mako.h
index 9117011..b35bc74 100644
--- a/include/mako.h
+++ b/include/mako.h
@@ -63,6 +63,7 @@ struct mako_state {
struct wl_cursor_theme *cursor_theme;
const struct wl_cursor_image *cursor_image;
struct wl_surface *cursor_surface;
+ int32_t cursor_scale;
struct wl_list surfaces; // mako_surface::link
diff --git a/wayland.c b/wayland.c
index eacdc50..81e5b10 100644
--- a/wayland.c
+++ b/wayland.c
@@ -176,7 +176,8 @@ static void pointer_handle_enter(void *data, struct wl_pointer *wl_pointer,
// Change the mouse cursor to "left_ptr"
if (state->cursor_theme != NULL) {
wl_pointer_set_cursor(wl_pointer, serial, state->cursor_surface,
- state->cursor_image->hotspot_x, state->cursor_image->hotspot_y);
+ state->cursor_image->hotspot_x / state->cursor_scale,
+ state->cursor_image->hotspot_y / state->cursor_scale);
}
}
@@ -307,6 +308,7 @@ static const struct wl_surface_listener surface_listener = {
static void schedule_frame_and_commit(struct mako_surface *state);
static void send_frame(struct mako_surface *surface);
+void setup_cursor(struct mako_state *state, int scale);
static void layer_surface_handle_configure(void *data,
struct zwlr_layer_surface_v1 *surface,
@@ -452,6 +454,10 @@ bool init_wayland(struct mako_state *state) {
}
}
+ return true;
+}
+
+void setup_cursor(struct mako_state *state, int scale) {
// Set up the cursor. It needs a wl_surface with the cursor loaded into it.
// If one of these fail, mako will work fine without the cursor being able to change.
const char *cursor_size_env = getenv("XCURSOR_SIZE");
@@ -467,10 +473,13 @@ bool init_wayland(struct mako_state *state) {
fprintf(stderr, "Error: XCURSOR_SIZE is invalid\n");
}
}
- state->cursor_theme = wl_cursor_theme_load(NULL, cursor_size, state->shm);
+ if (state->cursor_theme) {
+ wl_cursor_theme_destroy(state->cursor_theme);
+ }
+ state->cursor_theme = wl_cursor_theme_load(NULL, cursor_size * scale, state->shm);
if (state->cursor_theme == NULL) {
fprintf(stderr, "couldn't find a cursor theme\n");
- return true;
+ return;
}
struct wl_cursor *cursor = wl_cursor_theme_get_cursor(state->cursor_theme, "left_ptr");
if (cursor == NULL) {
@@ -478,15 +487,15 @@ bool init_wayland(struct mako_state *state) {
wl_cursor_theme_destroy(state->cursor_theme);
// Set to NULL so it doesn't get free'd again
state->cursor_theme = NULL;
- return true;
+ return;
}
state->cursor_image = cursor->images[0];
struct wl_buffer *cursor_buffer = wl_cursor_image_get_buffer(cursor->images[0]);
state->cursor_surface = wl_compositor_create_surface(state->compositor);
wl_surface_attach(state->cursor_surface, cursor_buffer, 0, 0);
+ wl_surface_set_buffer_scale(state->cursor_surface, scale);
wl_surface_commit(state->cursor_surface);
-
- return true;
+ state->cursor_scale = scale;
}
void finish_wayland(struct mako_state *state) {
@@ -645,6 +654,9 @@ static void send_frame(struct mako_surface *surface) {
zwlr_layer_surface_v1_set_anchor(surface->layer_surface,
surface->anchor);
wl_surface_commit(surface->surface);
+ if (state->cursor_scale != scale) {
+ setup_cursor(state, scale);
+ }
// Now we're going to bail without drawing anything. This gives the
// compositor a chance to create the surface and tell us what size we
@@ -708,6 +720,15 @@ static void schedule_frame_and_commit(struct mako_surface *surface) {
surface->frame_callback = wl_surface_frame(surface->surface);
wl_callback_add_listener(surface->frame_callback, &frame_listener, surface);
wl_surface_commit(surface->surface);
+
+ struct mako_state *state = surface->state;
+ if (surface->surface_output != NULL) {
+ int scale = surface->surface_output->scale;
+ if (state->cursor_scale != scale) {
+ // output or output scale changed, update cursor
+ setup_cursor(state, scale);
+ }
+ }
}
void set_dirty(struct mako_surface *surface) {
From 47ac373d567a834fa92dc0e4d02be1b637a8ce0a Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Tue, 23 Nov 2021 14:12:08 +0800
Subject: [PATCH 2/5] make_surface.scale is unused
---
include/mako.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/mako.h b/include/mako.h
index b35bc74..9a08bc1 100644
--- a/include/mako.h
+++ b/include/mako.h
@@ -33,7 +33,6 @@ struct mako_surface {
struct wl_callback *frame_callback;
bool configured;
bool dirty; // Do we need to redraw?
- int32_t scale;
char *configured_output;
enum zwlr_layer_shell_v1_layer layer;
From 80f98d2a8693ef02f8cecbe9316c6291e7109962 Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Tue, 23 Nov 2021 18:22:46 +0800
Subject: [PATCH 3/5] use last_scale initially to avoid many redraws (which
cause flickering)
---
include/mako.h | 1 +
main.c | 1 +
wayland.c | 3 ++-
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/mako.h b/include/mako.h
index 9a08bc1..ece4ea0 100644
--- a/include/mako.h
+++ b/include/mako.h
@@ -70,6 +70,7 @@ struct mako_state {
struct wl_list notifications; // mako_notification::link
struct wl_list history; // mako_notification::link
char *current_mode;
+ uint32_t last_scale;
int argc;
char **argv;
diff --git a/main.c b/main.c
index 44f2094..b93c5e5 100644
--- a/main.c
+++ b/main.c
@@ -70,6 +70,7 @@ static bool init(struct mako_state *state) {
wl_list_init(&state->notifications);
wl_list_init(&state->history);
state->current_mode = strdup("default");
+ state->last_scale = 1;
return true;
}
diff --git a/wayland.c b/wayland.c
index 81e5b10..7620c21 100644
--- a/wayland.c
+++ b/wayland.c
@@ -571,9 +571,10 @@ static void schedule_frame_and_commit(struct mako_surface *surface);
static void send_frame(struct mako_surface *surface) {
struct mako_state *state = surface->state;
- int scale = 1;
+ int scale = state->last_scale;
if (surface->surface_output != NULL) {
scale = surface->surface_output->scale;
+ state->last_scale = scale;
}
surface->current_buffer =
From a9f17443a43b33fcea99155c227cd8b0ce4c548a Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Tue, 23 Nov 2021 19:10:24 +0800
Subject: [PATCH 4/5] don't redraw if the surface size isn't changed
---
wayland.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/wayland.c b/wayland.c
index 7620c21..e5e6534 100644
--- a/wayland.c
+++ b/wayland.c
@@ -315,11 +315,17 @@ static void layer_surface_handle_configure(void *data,
uint32_t serial, uint32_t width, uint32_t height) {
struct mako_surface *msurface = data;
+ zwlr_layer_surface_v1_ack_configure(surface, serial);
+
+ if (msurface->configured && msurface->width == (int)width
+ && msurface->height == (int)height) {
+ return;
+ }
+
msurface->configured = true;
msurface->width = width;
msurface->height = height;
- zwlr_layer_surface_v1_ack_configure(surface, serial);
send_frame(msurface);
}
From fe7f49463e29e3275f7183b5f8d44e080d9203a8 Mon Sep 17 00:00:00 2001
From: lilydjwg <lilydjwg@gmail.com>
Date: Tue, 23 Nov 2021 19:21:34 +0800
Subject: [PATCH 5/5] fix schedule_frame_and_commit declaration
---
wayland.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/wayland.c b/wayland.c
index e5e6534..228a1fe 100644
--- a/wayland.c
+++ b/wayland.c
@@ -306,7 +306,7 @@ static const struct wl_surface_listener surface_listener = {
};
-static void schedule_frame_and_commit(struct mako_surface *state);
+static void schedule_frame_and_commit(struct mako_surface *surface);
static void send_frame(struct mako_surface *surface);
void setup_cursor(struct mako_state *state, int scale);
@@ -571,8 +571,6 @@ static struct mako_output *get_configured_output(struct mako_surface *surface) {
return NULL;
}
-static void schedule_frame_and_commit(struct mako_surface *surface);
-
// Draw and commit a new frame.
static void send_frame(struct mako_surface *surface) {
struct mako_state *state = surface->state;

44
mako/PKGBUILD Normal file
View file

@ -0,0 +1,44 @@
# Maintainer: Brett Cornwall <ainola@archlinux.org>
# Maintainer: Maxim Baz <$pkgname at maximbaz dot com>
# Contributor: Drew DeVault
pkgname=mako
pkgver=1.6
pkgrel=4
license=('MIT')
pkgdesc='Lightweight notification daemon for Wayland'
makedepends=("meson" "scdoc" "systemd" "wayland-protocols")
depends=(
"gdk-pixbuf2"
"pango"
"systemd-libs"
"wayland"
)
optdepends=("jq: support for 'makoctl menu'")
arch=("x86_64")
url='https://mako-project.org'
options=(debug)
source=(
"$pkgname-$pkgver.tar.gz::https://github.com/emersion/mako/releases/download/v$pkgver/mako-$pkgver.tar.gz"
"systemd-dbus-activation.patch"
"https://patch-diff.githubusercontent.com/raw/emersion/mako/pull/393.patch"
)
sha256sums=('9f43cba9e1b43c69be8c9e4a79c358b3cd22153ca3ffb8bf0ee7aa30c59b2fc2'
'4579a2673dcf2114779e10ed52d771f3930c2192e8e35d3e145163d9e0b45c20'
'SKIP')
prepare() {
patch -Np1 -i "$srcdir/systemd-dbus-activation.patch" -d "$pkgname-$pkgver"
patch -Np1 -i "$srcdir/393.patch" -d "$pkgname-$pkgver"
}
build() {
arch-meson -Dzsh-completions=true -Dsd-bus-provider=libsystemd "$pkgname-$pkgver" build
ninja -C build
}
package() {
DESTDIR="$pkgdir" ninja -C build install
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname/" "$pkgname-$pkgver/LICENSE"
install -Dm644 -t "$pkgdir/usr/lib/systemd/user/" "$pkgname-$pkgver/contrib/systemd/mako.service"
}

View file

@ -0,0 +1,7 @@
--- a/fr.emersion.mako.service.in
+++ b/fr.emersion.mako.service.in
@@ -1,3 +1,4 @@
[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=@bindir@/mako
+SystemdService=mako.service

72
openssl102-opt/PKGBUILD Normal file
View file

@ -0,0 +1,72 @@
# Original maintainer: Pierre Schmitz <pierre@archlinux.de>
pkgname=openssl102-opt
_ver=1.0.2s
# use a pacman compatible version scheme
pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
#pkgver=$_ver
pkgrel=1
pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
arch=('x86_64')
url='https://www.openssl.org'
license=('custom:BSD')
depends=('perl')
optdepends=('ca-certificates')
options=('!makeflags')
source=("https://www.openssl.org/source/openssl-${_ver}.tar.gz"
"https://www.openssl.org/source/openssl-${_ver}.tar.gz.asc"
'no-rpath.patch'
'ssl3-test-failure.patch'
'openssl-1.0-versioned-symbols.patch')
sha256sums=('cabd5c9492825ce5bd23f3c3aeed6a97f8142f606d893df216411f07d1abab96'
'SKIP'
'754d6107a306311e15a1db6a1cc031b81691c8b9865e8809ac60ca6f184c957c'
'c54ae87c602eaa1530a336ab7c6e22e12898e1941012349c153e52553df64a13'
'353a84e4c92e36c379ebd9216b8f8fb9c271396583561eb84ac8c825979acaa6')
validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491'
'7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C')
prepare() {
cd $srcdir/openssl-$_ver
# remove rpath: http://bugs.archlinux.org/task/14367
patch -p0 -i $srcdir/no-rpath.patch
# disable a test that fails when ssl3 is disabled
patch -p1 -i $srcdir/ssl3-test-failure.patch
# add symbol versioning to prevent conflicts with openssl 1.1 symbols (Debian)
patch -p1 -i "$srcdir"/openssl-1.0-versioned-symbols.patch
}
build() {
cd "$srcdir/openssl-$_ver"
if [ "${CARCH}" == 'x86_64' ]; then
openssltarget='linux-x86_64'
optflags='enable-ec_nistp_64_gcc_128'
elif [ "${CARCH}" == 'i686' ]; then
openssltarget='linux-elf'
optflags=''
fi
# mark stack as non-executable: http://bugs.archlinux.org/task/12434
./Configure --prefix=/opt/openssl102 \
shared no-ssl3-method ${optflags} \
"${openssltarget}" \
"-Wa,--noexecstack ${CPPFLAGS} ${CFLAGS} ${LDFLAGS}"
make depend
make
}
check() {
cd "$srcdir/openssl-$_ver"
make test
}
package() {
cd "$srcdir/openssl-$_ver"
make INSTALL_PREFIX="$pkgdir" install_sw
}

View file

@ -0,0 +1,11 @@
--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
+++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
@@ -153,7 +153,7 @@
NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
+DO_GNU_APP=LDFLAGS="$(CFLAGS)"
#This is rather special. It's a special target with which one can link
#applications without bothering with any features that have anything to

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,26 @@
From: Kurt Roeckx <kurt@roeckx.be>
Date: Sun, 6 Sep 2015 16:04:11 +0200
Subject: Disable SSLv3 test in test suite
When testing SSLv3 the test program returns 0 for skip. The test for weak DH
expects a failure, but gets success.
It should probably be changed to return something other than 0 for a skipped
test.
---
test/testssl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/testssl b/test/testssl
index 747e4ba..1e4370b 100644
--- a/test/testssl
+++ b/test/testssl
@@ -160,7 +160,7 @@ test_cipher() {
}
echo "Testing ciphersuites"
-for protocol in TLSv1.2 SSLv3; do
+for protocol in TLSv1.2; do
echo "Testing ciphersuites for $protocol"
for cipher in `../util/shlib_wrap.sh ../apps/openssl ciphers "RSA+$protocol" | tr ':' ' '`; do
test_cipher $cipher $protocol

View file

@ -1,78 +0,0 @@
# Maintainer: Von Random <von@vdrandom.org>
# Contributor: Adriaan Zonnenberg <amz@adriaan.xyz>
# Contributor: Florian Bruhin (The-Compiler) <archlinux.org@the-compiler.org>
# Contributor: Daniel Micay <danielmicay@gmail.com>
# Contributor: Sébastien Luttringer
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: tobias <tobias@archlinux.org>
# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
_pkgname=rxvt-unicode
pkgname=rxvt-unicode-cvs-opt
pkgver=$(date +%Y%m%d)
pkgrel=1
pkgdesc='A unicode enabled rxvt-clone terminal emulator (urxvt) - latest cvs revision'
arch=('i686' 'x86_64')
url='http://software.schmorp.de/pkg/rxvt-unicode.html'
license=('GPL')
depends=('libxft' 'perl' 'startup-notification' 'rxvt-unicode-terminfo')
makedepends=('cvs')
optdepends=('gtk2-perl: to use the urxvt-tabbed')
source=(
'font-width-fix.patch'
'line-spacing-fix.patch'
'urxvt-sgr.patch'
)
sha256sums=(
'686770fe4e8d6bb0ba497ad2e1f217d17515f2544d80abe76496c63ead2bfaa4'
'546a388d0595404a59c71c3eaeba331031032a75f96c57e9a860f27bbd7ebfcc'
'f36110dce2dce4d6e275410de820f314b72a02dbad08f637c64b0da769c0c8f4'
)
prefix='/opt/rxvt-unicode'
prepare() {
cvs -z3 -d :pserver:anonymous@cvs.schmorp.de/schmorpforge co ${_pkgname}
cd ${_pkgname}
patch -p0 -i ../font-width-fix.patch
patch -p0 -i ../line-spacing-fix.patch
patch -p0 -i ../urxvt-sgr.patch
}
build() {
cd ${_pkgname}
# do not specify --with-terminfo (FS#46424)
./configure \
--prefix=${prefix} \
--enable-256-color \
--enable-combining \
--enable-fading \
--enable-font-styles \
--enable-iso14755 \
--enable-keepscrolling \
--enable-lastlog \
--enable-mousewheel \
--enable-next-scroll \
--enable-perl \
--enable-pointer-blank \
--enable-rxvt-scroll \
--enable-selectionscrolling \
--enable-slipwheeling \
--enable-smart-resize \
--enable-startup-notification \
--enable-transparency \
--enable-unicode3 \
--enable-utmp \
--enable-wtmp \
--enable-xft \
--enable-xim \
--enable-xterm-scroll \
--disable-frills
make
}
package() {
cd $_pkgname
make DESTDIR="$pkgdir" install
}

View file

@ -1,26 +0,0 @@
--- src/rxvtfont.C.bukind 2007-11-30 14:36:33.000000000 +0600
+++ src/rxvtfont.C 2007-11-30 14:39:29.000000000 +0600
@@ -1171,12 +1171,21 @@
XGlyphInfo g;
XftTextExtents16 (disp, f, &ch, 1, &g);
+/*
+ * bukind: don't use g.width as a width of a character!
+ * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial
+
g.width -= g.x;
int wcw = WCWIDTH (ch);
if (wcw > 0) g.width = (g.width + wcw - 1) / wcw;
if (width < g.width ) width = g.width;
+ */
+ int wcw = WCWIDTH (ch);
+ if (wcw > 1) g.xOff = g.xOff / wcw;
+ if (width < g.xOff) width = g.xOff;
+
if (height < g.height ) height = g.height;
if (glheight < g.height - g.y) glheight = g.height - g.y;
}

View file

@ -1,25 +0,0 @@
--- src/rxvtfont.C.orig 2011-07-20 22:19:29.878012201 -0300
+++ src/rxvtfont.C 2011-07-20 22:19:33.634671723 -0300
@@ -1237,11 +1237,22 @@
FT_Face face = XftLockFace (f);
+/*
+ * use ascent, descent and height from XftFont *f instead of FT_Face face.
+ * this somehow reproduces the behaviour of the line height as seen on xterm.
+
ascent = (face->size->metrics.ascender + 63) >> 6;
descent = (-face->size->metrics.descender + 63) >> 6;
height = max (ascent + descent, (face->size->metrics.height + 63) >> 6);
width = 0;
+ */
+
+ ascent = f->ascent;
+ descent = f->descent;
+ height = max (ascent + descent, f->height);
+ width = 0;
+
bool scalable = face->face_flags & FT_FACE_FLAG_SCALABLE;
XftUnlockFace (f);

View file

@ -1,90 +0,0 @@
--- src/command.C 2014-12-13 13:22:09.000000000 +0100
+++ src/command.C 2016-01-13 04:50:39.161862513 +0100
@@ -1280,6 +1280,8 @@
int x, y;
int code = 32;
+ if (priv_modes & PrivMode_ExtMouseSgr) code = 0;
+
x = Pixel2Col (ev.x) + 1;
y = Pixel2Row (ev.y) + 1;
@@ -1293,11 +1295,18 @@
code += 32;
}
- if (MEvent.button == AnyButton)
+ if (!(priv_modes & PrivMode_ExtMouseSgr) && MEvent.button == AnyButton)
button_number = 3;
else
{
- button_number = MEvent.button - Button1;
+ if (ev.type == MotionNotify) {
+ if (ev.state & Button1Mask) button_number = 0;
+ else if (ev.state & Button2Mask) button_number = 1;
+ else if (ev.state & Button3Mask) button_number = 2;
+ else return;
+ } else {
+ button_number = ev.button - Button1;
+ }
/* add 0x3D for wheel events, like xterm does */
if (button_number >= 3)
button_number += 64 - 3;
@@ -1347,16 +1356,22 @@
#endif
#if ENABLE_FRILLS
+ if (priv_modes & PrivMode_ExtMouseSgr)
+ tt_printf ("\033[<%d;%d;%d%c",
+ code + button_number + key_state,
+ x,
+ y,
+ (ev.type == ButtonRelease ? 'm' : 'M'));
- if (priv_modes & PrivMode_ExtMouseRight)
+ else if (priv_modes & PrivMode_ExtMouseRight)
tt_printf ("\033[%d;%d;%dM",
code + button_number + key_state,
x,
y);
else if (priv_modes & PrivMode_ExtModeMouse)
tt_printf ("\033[M%c%lc%lc",
code + button_number + key_state,
wint_t (32 + x),
wint_t (32 + y));
else
#endif
tt_printf ("\033[M%c%c%c",
@@ -2908,7 +2913,7 @@
scr_soft_reset ();
static const int pm_h[] = { 7, 25 };
- static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1005, 1015, 1049 };
+ static const int pm_l[] = { 1, 3, 4, 5, 6, 9, 66, 1000, 1001, 1002, 1003, 1005, 1006, 1015, 1049 };
process_terminal_mode ('h', 0, ecb_array_length (pm_h), pm_h);
process_terminal_mode ('l', 0, ecb_array_length (pm_l), pm_l);
@@ -3713,13 +3718,14 @@
{ 1003, PrivMode_MouseAnyEvent },
#if ENABLE_FRILLS
{ 1004, PrivMode_FocusEvent },
{ 1005, PrivMode_ExtModeMouse },
+ { 1006, PrivMode_ExtMouseSgr },
#endif
{ 1010, PrivMode_TtyOutputInh }, // rxvt extension
{ 1011, PrivMode_Keypress }, // rxvt extension
#if ENABLE_FRILLS
{ 1015, PrivMode_ExtMouseRight }, // urxvt extension of 1005
#endif
// 1035 enable modifiers for alt, numlock NYI
// 1036 send ESC for meta keys NYI
// 1037 send DEL for keypad delete NYI
--- src/rxvt.h 2014-12-17 16:33:08.000000000 +0100
+++ src/rxvt.h 2016-01-13 03:42:31.508911380 +0100
@@ -644,6 +644,7 @@
#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales
#define PrivMode_BlinkingCursor (1UL<<25)
#define PrivMode_FocusEvent (1UL<<26)
+#define PrivMode_ExtMouseSgr (1UL<<27) // sgr mouse extension
#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent)

View file

@ -30,18 +30,24 @@ sha256sums=(
ccd7c436e959bdc9ab4f15801a67c695b382565b31d8c352254362e67412afcb
686770fe4e8d6bb0ba497ad2e1f217d17515f2544d80abe76496c63ead2bfaa4
546a388d0595404a59c71c3eaeba331031032a75f96c57e9a860f27bbd7ebfcc
da1405889a660fe912a1d9cda9204d33daffa3de83140610fe227cca9fc4ea8e
f60d92d855530fd3f80138eb888a5b4205f6f444e5c41f2c30d9637b6b39c2a7
f36110dce2dce4d6e275410de820f314b72a02dbad08f637c64b0da769c0c8f4
)
prefix='/usr'
patches=(
font-width-fix.patch
line-spacing-fix.patch
urxvt-sgr.patch
terminfo-truecolor.patch
)
prepare() {
cvs -z3 -d :pserver:anonymous@cvs.schmorp.de/schmorpforge co ${_pkgname}
cd ${_pkgname}
patch -p0 -i ../font-width-fix.patch
patch -p0 -i ../line-spacing-fix.patch
patch -p0 -i ../urxvt-sgr.patch
patch -p0 -i ../terminfo-truecolor.patch
for patch in ${patches[@]}; do
patch -p0 -i ../$patch
done
}
build() {
@ -49,7 +55,7 @@ build() {
# we disable smart-resize (FS#34807)
# do not specify --with-terminfo (FS#46424)
./configure \
--prefix=/usr \
--prefix=$prefix \
--enable-256-color \
--enable-combining \
--enable-fading \

View file

@ -1,12 +1,25 @@
--- doc/etc/rxvt-unicode.terminfo.orig 2019-01-28 17:26:10.680252189 +0300
+++ doc/etc/rxvt-unicode.terminfo 2019-01-28 17:26:10.690252302 +0300
@@ -190,3 +190,4 @@
Index: doc/etc/rxvt-unicode.terminfo
===================================================================
RCS file: /schmorpforge/rxvt-unicode/doc/etc/rxvt-unicode.terminfo,v
retrieving revision 1.35
diff -u -r1.35 rxvt-unicode.terminfo
--- doc/etc/rxvt-unicode.terminfo 13 Oct 2015 08:00:07 -0000 1.35
+++ doc/etc/rxvt-unicode.terminfo 5 Apr 2019 09:44:59 -0000
@@ -185,6 +185,7 @@
tsl=\E]2;,
fsl=\007,
dsl=\E]2;\007,
+ RGB,
rxvt-unicode-256color|rxvt-unicode terminal with 256 colors (X Window System),
colors#256,
pairs#32767,
use=rxvt-unicode,
+ Tc,
--- doc/Makefile.in.orig 2019-01-28 17:24:07.168856085 +0300
+++ doc/Makefile.in 2019-01-28 17:24:10.458893241 +0300
Index: doc/Makefile.in
===================================================================
RCS file: /schmorpforge/rxvt-unicode/doc/Makefile.in,v
retrieving revision 1.59
diff -u -r1.59 Makefile.in
--- doc/Makefile.in 31 Dec 2014 14:12:44 -0000 1.59
+++ doc/Makefile.in 5 Apr 2019 09:44:59 -0000
@@ -98,7 +98,7 @@
$(INSTALL_DATA) rxvtc.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)c.$(man1ext)
$(INSTALL_DATA) rxvtd.1.man $(DESTDIR)$(man1dir)/$(RXVTNAME)d.$(man1ext)

View file

@ -12,42 +12,51 @@
# ij1 because и ≠ u, need a way to tell them apart
# ll2 because ilI1
# td1 because tilda should be in the middle
#
# boxdraw patch added to prevent box lines from being thick in terminals with bold font
pkgname=terminus-font-patched
_pkgname=terminus-font
pkgver=4.47
pkgver=4.49.1
pkgrel=1
pkgdesc='Monospace bitmap font (for X11 and console)'
url='http://terminus-font.sourceforge.net/'
arch=('any')
url='http://sourceforge.net/projects/terminus-font/'
license=('GPL2' 'custom:OFL')
makedepends=('xorg-bdftopcf' 'fontconfig' 'xorg-mkfontscale' 'xorg-mkfontdir' 'python3')
optdepends=('xorg-fonts-alias')
depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
install='terminus-font-patched.install'
source=("http://downloads.sourceforge.net/project/$_pkgname/$_pkgname-$pkgver/$_pkgname-$pkgver.tar.gz")
makedepends=('xorg-bdftopcf' 'python')
provides=($_pkgname)
conflicts=($_pkgname)
sha256sums=('0f1b205888e4e26a94878f746b8566a65c3e3742b33cf9a4e6517646d5651297')
install='terminus-font-patched.install'
source=("http://downloads.sourceforge.net/project/$_pkgname/$_pkgname-${pkgver%.1}/$_pkgname-$pkgver.tar.gz"
fix-75-yes-terminus.patch)
sha256sums=('d961c1b781627bf417f9b340693d64fc219e0113ad3a3af1a3424c7aa373ef79'
'ddd86485cf6d54e020e36f1c38c56e8b21b57c23a5d76250e15c1d16fed9caa5')
prepare() {
chmod +x "$_pkgname-$pkgver/configure"
cd "terminus-font-$pkgver"
patch -p1 <"$srcdir"/fix-75-yes-terminus.patch
}
build() {
cd "$_pkgname-$pkgver"
patch -p0 -i alt/br1.diff
patch -p0 -i alt/dv1.diff
patch -p0 -i alt/ij1.diff
patch -p0 -i alt/ll2.diff
patch -p0 -i alt/td1.diff
./configure --prefix=/usr --x11dir=/usr/share/fonts/misc \
./configure \
--prefix=/usr \
--x11dir=/usr/share/fonts/misc \
--otbdir=/usr/share/fonts/misc \
--psfdir=/usr/share/kbd/consolefonts
make
make all otb
}
package() {
make -C "$_pkgname-$pkgver" DESTDIR="$pkgdir" install
make -C "$_pkgname-$pkgver" DESTDIR="$pkgdir" install install-otb
install -Dm644 "$srcdir/$_pkgname-$pkgver/75-yes-terminus.conf" \
"$pkgdir/etc/fonts/conf.avail/75-yes-terminus.conf"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
--- a/75-yes-terminus.conf 2019-01-01 19:32:47.000000000 +0100
+++ b/75-yes-terminus.conf 2019-01-01 19:41:28.323308293 +0100
@@ -5,7 +5,7 @@
<selectfont>
<acceptfont>
<pattern>
- <patelt name="family"><string>Terminus</string></patelt>
+ <patelt name="family"><string>xos4 Terminus</string></patelt>
</pattern>
</acceptfont>
</selectfont>

View file

@ -8,8 +8,8 @@
_pkgname=xkeyboard-config
pkgname=xkeyboard-config-ducky
pkgver=2.26
pkgrel=2
pkgver=2.32
pkgrel=1
pkgdesc="X keyboard configuration files"
arch=(any)
license=('custom')
@ -19,21 +19,24 @@ provides=('xkbdata' "${_pkgname}")
replaces=('xkbdata' "${_pkgname}")
conflicts=('xkbdata' "${_pkgname}")
source=(https://xorg.freedesktop.org/archive/individual/data/${_pkgname}/${_pkgname}-${pkgver}.tar.bz2
pt-layout.patch
ducky_mini
ru.patch
us.patch)
sha512sums=('5c8a31f7a6ad5daed8a3fceb56230b2e2fc04a25f52a43b3b4ea81e4a6ab15c52869f749c4b747d855cd4b618c04bcbb40e85dec7eab31fbe3bd45e8c9b755ef'
'98c8b47e9a36ba3f130454fdd68c508f54b78eb65ddb071ca85bdcc3b324699e51155e3fc425ccae98350bb6430fea4771c0338024c1e06063a54b879bb707db'
'2f3561852475959e884a09662e248155d642e1e3ae3996020333dee0709907917f05a43f4351dffde898fd0a10954078fe998763a4df0a35167afaafa9abf600'
us.patch
base.xml.patch
evdev.xml.patch)
sha512sums=('c082a86efcf69ab50454875686b9b4c388cf48002de3728331de3c09c1349a38c9b9ad8ecace2215061c0c775e59c3dd230fffe3f24db63790aa71dc8eff8dea'
'cff98ba768a9fcb1f811c43978aa6e971f4582722994450581a83051f5c023ea5abf57bdf6f3fa9f95e905b89d83764694e3867886ffb3251d3e47d6b55d1dc7'
'854c52d168837a5c72559498d10dff7843275323c4082d1c741c832d068108be3a51e823c98a27ea47c5fe4f335499fdbcaa3698117740ef24c07c41161ad59b'
'7d9c692980c77a3b0658a5dd707ecdcd1e3fe47c2958f539f1f81dd04d5f204f779569d6b880c3f12872397d6171b2ec2caab9a4e79461c9f5828ca1c45acb08')
'7d9c692980c77a3b0658a5dd707ecdcd1e3fe47c2958f539f1f81dd04d5f204f779569d6b880c3f12872397d6171b2ec2caab9a4e79461c9f5828ca1c45acb08'
'fc7e4bce201538c828e44136ae2d3c39c4066a6d56413b229ad453eadd1d459aae22f218dde6f0e1afbddf3ebf995e6f8f56fd6406eff4ef6fa196207da9adb7'
'1ba6fe7aa471158b811fcb6a8efed29fb0c3685aaa373e106dc8c6b8c8e84503707ea1b71b19806351d7cae77691362f504738416ac2bfbcf7e904ff8d348247')
build() {
cd ${_pkgname}-${pkgver}
cp -v ${srcdir}/ducky_mini symbols
patch -p1 < ${srcdir}/ru.patch
patch -p1 < ${srcdir}/us.patch
patch -p1 < ${srcdir}/base.xml.patch
patch -p1 < ${srcdir}/evdev.xml.patch
./configure --prefix=/usr \
--with-xkb-base=/usr/share/X11/xkb \
--with-xkb-rules-symlink=xorg \
@ -47,6 +50,7 @@ build() {
make DESTDIR="${pkgdir}" install
rm -f "${pkgdir}/usr/share/X11/xkb/compiled"
install -m644 "${srcdir}/ducky_mini" "${pkgdir}/usr/share/X11/xkb/symbols"
install -m755 -d "${pkgdir}/var/lib/xkb"
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"

View file

@ -0,0 +1,28 @@
--- a/rules/base.xml 2021-02-16 03:04:08.000000000 +0300
+++ b/rules/base.xml 2021-04-19 23:13:37.689642897 +0300
@@ -1384,6 +1384,12 @@
</variant>
<variant>
<configItem>
+ <name>ducky</name>
+ <description>English (ducky emulation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>colemak</name>
<description>English (Colemak)</description>
</configItem>
@@ -4684,6 +4690,12 @@
<variantList>
<variant>
<configItem>
+ <name>ducky</name>
+ <description>Russian (ducky emulation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>phonetic</name>
<description>Russian (phonetic)</description>
</configItem>

View file

@ -89,6 +89,5 @@ partial modifier_keys
xkb_symbols "common" {
name[Group1] = "Common (layout mimicking the Ducky Shine Mini fn functionality)";
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ ISO_Level3_Shift ] };
replace key <RWIN> { [ ISO_Level3_Shift ] };
};

View file

@ -0,0 +1,28 @@
--- a/rules/evdev.xml 2021-04-19 23:13:26.982867056 +0300
+++ b/rules/evdev.xml 2021-04-19 23:12:43.442416463 +0300
@@ -1384,6 +1384,12 @@
</variant>
<variant>
<configItem>
+ <name>ducky</name>
+ <description>English (ducky emulation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>colemak</name>
<description>English (Colemak)</description>
</configItem>
@@ -4684,6 +4690,12 @@
<variantList>
<variant>
<configItem>
+ <name>ducky</name>
+ <description>Russian (ducky emulation)</description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
<name>phonetic</name>
<description>Russian (phonetic)</description>
</configItem>

View file

@ -1,85 +0,0 @@
From af6c0f29dbee1cc7b280eed891592797c2e31220 Mon Sep 17 00:00:00 2001
From: Sergey Udaltsov <sergey.udaltsov@gmail.com>
Date: Thu, 7 Feb 2019 20:40:35 +0000
Subject: [PATCH] Fixed broken pt layout
Backticks broke it, removed
---
symbols/pt | 62 +++++++++++++++++++++++++++---------------------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/symbols/pt b/symbols/pt
index 73a1b7b..3ec0981 100644
--- a/symbols/pt
+++ b/symbols/pt
@@ -221,35 +221,35 @@ xkb_symbols "colemak" {
name[Group1]="Portuguese (Colemak)";
- key `<AD01>` { [ q, Q, at, Greek_OMEGA ] };
- key `<AD02>` { [ w, W, lstroke, Lstroke ] };
- key `<AD03>` { [ f, F, dstroke, ordfeminine ] };
- key `<AD04>` { [ p, P, thorn, THORN ] };
- key `<AD05>` { [ g, G, eng, ENG ] };
- key `<AD06>` { [ j, J, dead_hook, dead_horn ] };
- key `<AD07>` { [ l, L, lstroke, Lstroke ] };
- key `<AD08>` { [ u, U, downarrow, uparrow ] };
- key `<AD09>` { [ y, Y, leftarrow, yen ] };
- key `<AD10>` { [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ] };
-
- key `<AC01>` { [ a, A, ae, AE ] };
- key `<AC02>` { [ r, R, paragraph, registered ] };
- key `<AC03>` { [ s, S, ssharp, section ] };
- key `<AC04>` { [ t, T, tslash, Tslash ] };
- key `<AC05>` { [ d, D, eth, ETH ] };
- key `<AC06>` { [ h, H, hstroke, Hstroke ] };
- key `<AC07>` { [ n, N, n, N ] };
- key `<AC08>` { [ e, E, EuroSign, cent ] };
- key `<AC09>` { [ i, I, rightarrow, idotless ] };
- key `<AC10>` { [ o, O, oslash, Ooblique ] };
-
- key `<AB01>` { [ z, Z, guillemotleft, less ] };
- key `<AB02>` { [ x, X, guillemotright, greater ] };
- key `<AB03>` { [ c, C, cent, copyright ] };
- key `<AB04>` { [ v, V, leftdoublequotemark, leftsinglequotemark ] };
- key `<AB05>` { [ b, B, rightdoublequotemark, rightsinglequotemark ] };
- key `<AB08>` { [ k, K, kra, ampersand ] };
- key `<AB07>` { [ m, M, mu, masculine ] };
-
- key `<CAPS>` { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
+ key <AD01> { [ q, Q, at, Greek_OMEGA ] };
+ key <AD02> { [ w, W, lstroke, Lstroke ] };
+ key <AD03> { [ f, F, dstroke, ordfeminine ] };
+ key <AD04> { [ p, P, thorn, THORN ] };
+ key <AD05> { [ g, G, eng, ENG ] };
+ key <AD06> { [ j, J, dead_hook, dead_horn ] };
+ key <AD07> { [ l, L, lstroke, Lstroke ] };
+ key <AD08> { [ u, U, downarrow, uparrow ] };
+ key <AD09> { [ y, Y, leftarrow, yen ] };
+ key <AD10> { [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ] };
+
+ key <AC01> { [ a, A, ae, AE ] };
+ key <AC02> { [ r, R, paragraph, registered ] };
+ key <AC03> { [ s, S, ssharp, section ] };
+ key <AC04> { [ t, T, tslash, Tslash ] };
+ key <AC05> { [ d, D, eth, ETH ] };
+ key <AC06> { [ h, H, hstroke, Hstroke ] };
+ key <AC07> { [ n, N, n, N ] };
+ key <AC08> { [ e, E, EuroSign, cent ] };
+ key <AC09> { [ i, I, rightarrow, idotless ] };
+ key <AC10> { [ o, O, oslash, Ooblique ] };
+
+ key <AB01> { [ z, Z, guillemotleft, less ] };
+ key <AB02> { [ x, X, guillemotright, greater ] };
+ key <AB03> { [ c, C, cent, copyright ] };
+ key <AB04> { [ v, V, leftdoublequotemark, leftsinglequotemark ] };
+ key <AB05> { [ b, B, rightdoublequotemark, rightsinglequotemark ] };
+ key <AB08> { [ k, K, kra, ampersand ] };
+ key <AB07> { [ m, M, mu, masculine ] };
+
+ key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
};
--
2.18.1