uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
57
pkgs/tools/X11/alttab/default.nix
Normal file
57
pkgs/tools/X11/alttab/default.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{ lib, stdenv, coreutils, fetchFromGitHub, autoconf, automake, pkg-config, procps, ronn,
|
||||
libpng, uthash , which, xnee, xorg, python3Packages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.6.1";
|
||||
|
||||
pname = "alttab";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sagb";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-g56207IGNDnBIqZmbpcgOLcfAGKwBE0DYu2Dq0bLS8o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
pkg-config
|
||||
ronn
|
||||
];
|
||||
|
||||
preConfigure = "./bootstrap.sh";
|
||||
|
||||
buildInputs = [
|
||||
libpng
|
||||
uthash
|
||||
xorg.libX11
|
||||
xorg.libXft
|
||||
xorg.libXmu
|
||||
xorg.libXpm
|
||||
xorg.libXrandr
|
||||
xorg.libXrender
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
checkInputs = [
|
||||
coreutils
|
||||
procps
|
||||
python3Packages.xvfbwrapper
|
||||
which
|
||||
xnee
|
||||
xorg.xeyes
|
||||
xorg.xprop
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/sagb/alttab";
|
||||
description = "X11 window switcher designed for minimalistic window managers or standalone X11 session";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.sgraf ];
|
||||
};
|
||||
}
|
||||
40
pkgs/tools/X11/arandr/default.nix
Normal file
40
pkgs/tools/X11/arandr/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ lib, fetchurl, python3Packages
|
||||
, gobject-introspection, gsettings-desktop-schemas, gtk3
|
||||
, wrapGAppsHook, xrandr
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (python3Packages) buildPythonApplication docutils pygobject3;
|
||||
pname = "arandr";
|
||||
version = "0.1.10";
|
||||
name = "${pname}-${version}";
|
||||
in buildPythonApplication rec {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://christian.amsuess.com/tools/arandr/files/${name}.tar.gz";
|
||||
sha256 = "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
rm -rf data/po/*
|
||||
'';
|
||||
|
||||
# no tests
|
||||
doCheck = false;
|
||||
|
||||
# hook for gobject-introspection doesn't like strictDeps
|
||||
# https://github.com/NixOS/nixpkgs/issues/56943
|
||||
strictDeps = false;
|
||||
|
||||
buildInputs = [ docutils gsettings-desktop-schemas gtk3 ];
|
||||
nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
|
||||
propagatedBuildInputs = [ xrandr pygobject3 ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://christian.amsuess.com/tools/arandr/";
|
||||
description = "A simple visual front end for XRandR";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = [ lib.maintainers.domenkozar ];
|
||||
};
|
||||
}
|
||||
24
pkgs/tools/X11/autocutsel/default.nix
Normal file
24
pkgs/tools/X11/autocutsel/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{lib, stdenv, fetchurl, libX11, libXaw}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.10.1";
|
||||
pname = "autocutsel";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/sigmike/autocutsel/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-8X4G1C90lENtSyb0vgtrDaOUgcBADJZ3jkuQW2NB6xc=";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXaw ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp autocutsel $out/bin/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.nongnu.org/autocutsel/";
|
||||
description = "Tracks changes in the server's cutbuffer and CLIPBOARD selection";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = with lib.platforms; all;
|
||||
};
|
||||
}
|
||||
27
pkgs/tools/X11/bgs/default.nix
Normal file
27
pkgs/tools/X11/bgs/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, libX11, libXinerama, imlib2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "bgs";
|
||||
version = "0.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gottox";
|
||||
repo = "bgs";
|
||||
rev = "v${version}";
|
||||
sha256 = "V8GP+xLSiCvaYZt8Bi3/3KlTBaGnMYQUeNCHwH6Ejzo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ libX11 libXinerama imlib2 ];
|
||||
|
||||
preConfigure = ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extremely fast and small background setter for X";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
};
|
||||
}
|
||||
141
pkgs/tools/X11/bumblebee/default.nix
Normal file
141
pkgs/tools/X11/bumblebee/default.nix
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
# The bumblebee package allows a program to be rendered on an
|
||||
# dedicated video card by spawning an additional X11 server and
|
||||
# streaming the results via VirtualGL or primus to the primary server.
|
||||
|
||||
# The package is rather chaotic; it's also quite recent.
|
||||
# As it may change a lot, some of the hacks in this nix expression
|
||||
# will hopefully not be needed in the future anymore.
|
||||
|
||||
# To test:
|
||||
# 1. make sure that the 'bbswitch' kernel module is installed,
|
||||
# 2. then run 'bumblebeed' as root
|
||||
# 3. Then either 'optirun glxinfo' or 'primusrun glxinfo' as user.
|
||||
#
|
||||
# The glxinfo output should indicate the NVidia driver is being used
|
||||
# and all expected extensions are supported.
|
||||
#
|
||||
# To use at startup, see hardware.bumblebee options.
|
||||
|
||||
{ stdenv, lib, fetchurl, fetchpatch, pkg-config, help2man, makeWrapper
|
||||
, glib, libbsd
|
||||
, libX11, xorgserver, kmod, xf86videonouveau
|
||||
, nvidia_x11, virtualgl, libglvnd
|
||||
, automake111x, autoconf
|
||||
# The below should only be non-null in a x86_64 system. On a i686
|
||||
# system the above nvidia_x11 and virtualgl will be the i686 packages.
|
||||
# TODO: Confusing. Perhaps use "SubArch" instead of i686?
|
||||
, nvidia_x11_i686 ? null
|
||||
, libglvnd_i686 ? null
|
||||
, useDisplayDevice ? false
|
||||
, extraNvidiaDeviceOptions ? ""
|
||||
, extraNouveauDeviceOptions ? ""
|
||||
, useNvidia ? true
|
||||
}:
|
||||
|
||||
let
|
||||
nvidia_x11s = [ nvidia_x11 ]
|
||||
++ lib.optional nvidia_x11.useGLVND libglvnd
|
||||
++ lib.optionals (nvidia_x11_i686 != null)
|
||||
([ nvidia_x11_i686 ] ++ lib.optional nvidia_x11_i686.useGLVND libglvnd_i686);
|
||||
|
||||
nvidiaLibs = lib.makeLibraryPath nvidia_x11s;
|
||||
|
||||
bbdPath = lib.makeBinPath [ kmod xorgserver ];
|
||||
|
||||
xmodules = lib.concatStringsSep "," (map (x: "${x.out or x}/lib/xorg/modules") ([ xorgserver ] ++ lib.optional (!useNvidia) xf86videonouveau));
|
||||
|
||||
modprobePatch = fetchpatch {
|
||||
url = "https://github.com/Bumblebee-Project/Bumblebee/commit/1ada79fe5916961fc4e4917f8c63bb184908d986.patch";
|
||||
sha256 = "02vq3vba6nx7gglpjdfchws9vjhs1x02a543yvqrxqpvvdfim2x2";
|
||||
};
|
||||
libkmodPatch = fetchpatch {
|
||||
url = "https://github.com/Bumblebee-Project/Bumblebee/commit/deceb14cdf2c90ff64ebd1010a674305464587da.patch";
|
||||
sha256 = "00c05i5lxz7vdbv445ncxac490vbl5g9w3vy3gd71qw1f0si8vwh";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "bumblebee";
|
||||
version = "3.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.bumblebee-project.org/${pname}-${version}.tar.gz";
|
||||
sha256 = "03p3gvx99lwlavznrpg9l7jnl1yfg2adcj8jcjj0gxp20wxp060h";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./nixos.patch
|
||||
|
||||
modprobePatch
|
||||
libkmodPatch
|
||||
];
|
||||
|
||||
# By default we don't want to use a display device
|
||||
nvidiaDeviceOptions = lib.optionalString (!useDisplayDevice) ''
|
||||
# Disable display device
|
||||
Option "UseEDID" "false"
|
||||
Option "UseDisplayDevice" "none"
|
||||
'' + extraNvidiaDeviceOptions;
|
||||
|
||||
nouveauDeviceOptions = extraNouveauDeviceOptions;
|
||||
|
||||
# the have() function is deprecated and not available to bash completions the
|
||||
# way they are currently loaded in NixOS, so use _have. See #10936
|
||||
postPatch = ''
|
||||
substituteInPlace scripts/bash_completion/bumblebee \
|
||||
--replace "have optirun" "_have optirun"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
# Don't use a special group, just reuse wheel.
|
||||
substituteInPlace configure \
|
||||
--replace 'CONF_GID="bumblebee"' 'CONF_GID="wheel"'
|
||||
|
||||
# Apply configuration options
|
||||
substituteInPlace conf/xorg.conf.nvidia \
|
||||
--subst-var nvidiaDeviceOptions
|
||||
|
||||
substituteInPlace conf/xorg.conf.nouveau \
|
||||
--subst-var nouveauDeviceOptions
|
||||
'';
|
||||
|
||||
# Build-time dependencies of bumblebeed and optirun.
|
||||
# Note that it has several runtime dependencies.
|
||||
buildInputs = [ libX11 glib libbsd kmod ];
|
||||
nativeBuildInputs = [ makeWrapper pkg-config help2man automake111x autoconf ];
|
||||
|
||||
# The order of LDPATH is very specific: First X11 then the host
|
||||
# environment then the optional sub architecture paths.
|
||||
#
|
||||
# The order for MODPATH is the opposite: First the environment that
|
||||
# includes the acceleration driver. As this is used for the X11
|
||||
# server, which runs under the host architecture, this does not
|
||||
# include the sub architecture components.
|
||||
configureFlags = [
|
||||
"--with-udev-rules=$out/lib/udev/rules.d"
|
||||
# see #10282
|
||||
#"CONF_PRIMUS_LD_PATH=${primusLibs}"
|
||||
] ++ lib.optionals useNvidia [
|
||||
"CONF_LDPATH_NVIDIA=${nvidiaLibs}"
|
||||
"CONF_MODPATH_NVIDIA=${nvidia_x11.bin}/lib/xorg/modules"
|
||||
];
|
||||
|
||||
CFLAGS = [
|
||||
"-DX_MODULE_APPENDS=\\\"${xmodules}\\\""
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/sbin/bumblebeed" \
|
||||
--prefix PATH : "${bbdPath}"
|
||||
|
||||
wrapProgram "$out/bin/optirun" \
|
||||
--prefix PATH : "${virtualgl}/bin"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Bumblebee-Project/Bumblebee";
|
||||
description = "Daemon for managing Optimus videocards (power-on/off, spawns xservers)";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
};
|
||||
}
|
||||
80
pkgs/tools/X11/bumblebee/nixos.patch
Normal file
80
pkgs/tools/X11/bumblebee/nixos.patch
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
diff --git a/conf/xorg.conf.nouveau b/conf/xorg.conf.nouveau
|
||||
index 87e48cb..60d6eaf 100644
|
||||
--- a/conf/xorg.conf.nouveau
|
||||
+++ b/conf/xorg.conf.nouveau
|
||||
@@ -15,4 +15,5 @@ Section "Device"
|
||||
# This Setting is needed on Ubuntu 13.04.
|
||||
# BusID "PCI:01:00:0"
|
||||
|
||||
+@nouveauDeviceOptions@
|
||||
EndSection
|
||||
diff --git a/conf/xorg.conf.nvidia b/conf/xorg.conf.nvidia
|
||||
index c3107f9..17072f4 100644
|
||||
--- a/conf/xorg.conf.nvidia
|
||||
+++ b/conf/xorg.conf.nvidia
|
||||
@@ -29,6 +29,6 @@ Section "Device"
|
||||
Option "ProbeAllGpus" "false"
|
||||
|
||||
Option "NoLogo" "true"
|
||||
- Option "UseEDID" "false"
|
||||
- Option "UseDisplayDevice" "none"
|
||||
+
|
||||
+@nvidiaDeviceOptions@
|
||||
EndSection
|
||||
diff --git a/src/bbsecondary.c b/src/bbsecondary.c
|
||||
index 71a6b73..a682d8a 100644
|
||||
--- a/src/bbsecondary.c
|
||||
+++ b/src/bbsecondary.c
|
||||
@@ -145,6 +145,23 @@ bool start_secondary(bool need_secondary) {
|
||||
}
|
||||
|
||||
bb_log(LOG_INFO, "Starting X server on display %s.\n", bb_config.x_display);
|
||||
+ const char mod_appends[] = X_MODULE_APPENDS;
|
||||
+
|
||||
+ char *mod_path;
|
||||
+ int pathlen = strlen(bb_config.mod_path);
|
||||
+ if (pathlen == 0) {
|
||||
+ mod_path = mod_appends;
|
||||
+ } else {
|
||||
+ mod_path = malloc(pathlen + 1 + sizeof(mod_appends));
|
||||
+ if (!mod_path) {
|
||||
+ set_bb_error("Could not allocate memory for modules path\n");
|
||||
+ return false;
|
||||
+ }
|
||||
+ strcpy(mod_path, bb_config.mod_path);
|
||||
+ mod_path[pathlen] = ',';
|
||||
+ strcpy(mod_path + pathlen + 1, mod_appends);
|
||||
+ }
|
||||
+
|
||||
char *x_argv[] = {
|
||||
XORG_BINARY,
|
||||
bb_config.x_display,
|
||||
@@ -153,24 +170,24 @@ bool start_secondary(bool need_secondary) {
|
||||
"-sharevts",
|
||||
"-nolisten", "tcp",
|
||||
"-noreset",
|
||||
+ "-logfile", "/var/log/X.bumblebee.log",
|
||||
"-verbose", "3",
|
||||
"-isolateDevice", pci_id,
|
||||
- "-modulepath", bb_config.mod_path, // keep last
|
||||
+ "-modulepath", mod_path,
|
||||
NULL
|
||||
};
|
||||
enum {n_x_args = sizeof(x_argv) / sizeof(x_argv[0])};
|
||||
- if (!*bb_config.mod_path) {
|
||||
- x_argv[n_x_args - 3] = 0; //remove -modulepath if not set
|
||||
- }
|
||||
//close any previous pipe, if it (still) exists
|
||||
if (bb_status.x_pipe[0] != -1){close(bb_status.x_pipe[0]); bb_status.x_pipe[0] = -1;}
|
||||
if (bb_status.x_pipe[1] != -1){close(bb_status.x_pipe[1]); bb_status.x_pipe[1] = -1;}
|
||||
//create a new pipe
|
||||
if (pipe2(bb_status.x_pipe, O_NONBLOCK | O_CLOEXEC)){
|
||||
set_bb_error("Could not create output pipe for X");
|
||||
+ if (pathlen > 0) free(mod_path);
|
||||
return false;
|
||||
}
|
||||
bb_status.x_pid = bb_run_fork_ld_redirect(x_argv, bb_config.ld_path, bb_status.x_pipe[1]);
|
||||
+ if (pathlen > 0) free(mod_path);
|
||||
//close the end of the pipe that is not ours
|
||||
if (bb_status.x_pipe[1] != -1){close(bb_status.x_pipe[1]); bb_status.x_pipe[1] = -1;}
|
||||
}
|
||||
54
pkgs/tools/X11/caffeine-ng/default.nix
Normal file
54
pkgs/tools/X11/caffeine-ng/default.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{ gdk-pixbuf, glib, gobject-introspection, gtk3, lib, libnotify,
|
||||
procps, xset, xautolock, xscreensaver, python3Packages, wrapGAppsHook
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "caffeine-ng";
|
||||
version = "3.5.1";
|
||||
|
||||
src = python3Packages.fetchPypi{
|
||||
inherit pname version;
|
||||
sha256="0akzldqvxnqngpj1s6y2phgj7ch8wfm02j6z2drqvsbvaadw0jbm";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook glib ];
|
||||
buildInputs = [
|
||||
gdk-pixbuf gobject-introspection libnotify gtk3
|
||||
python3Packages.setuptools-scm
|
||||
];
|
||||
pythonPath = with python3Packages; [
|
||||
dbus-python docopt ewmh pygobject3 pyxdg
|
||||
setproctitle pulsectl
|
||||
];
|
||||
|
||||
doCheck = false; # There are no tests.
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace caffeine/inhibitors.py \
|
||||
--replace 'os.system("xset' 'os.system("${xset}/bin/xset' \
|
||||
--replace 'os.system("xautolock' 'os.system("${xautolock}/bin/xautolock' \
|
||||
--replace 'os.system("pgrep' 'os.system("${procps}/bin/pgrep' \
|
||||
--replace 'os.system("xscreensaver-command' 'os.system("${xscreensaver}/bin/xscreensaver-command'
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp -r share $out/
|
||||
cp -r caffeine/assets/icons $out/share/icons
|
||||
# autostart file
|
||||
cp -r $out/lib/python*/site-packages/etc $out/etc/
|
||||
glib-compile-schemas --strict $out/share/glib-2.0/schemas
|
||||
for i in $(find $out -name "*.desktop"); do
|
||||
substituteInPlace $i --replace /usr $out
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
mainProgram = "caffeine";
|
||||
maintainers = with maintainers; [ marzipankaiser ];
|
||||
description = "Status bar application to temporarily inhibit screensaver and sleep mode";
|
||||
homepage = "https://github.com/caffeine-ng/caffeine-ng";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
36
pkgs/tools/X11/ckbcomp/default.nix
Normal file
36
pkgs/tools/X11/ckbcomp/default.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ lib, stdenv, fetchFromGitLab, perl, xkeyboard_config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ckbcomp";
|
||||
version = "1.207";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "salsa.debian.org";
|
||||
owner = "installer-team";
|
||||
repo = "console-setup";
|
||||
rev = version;
|
||||
sha256 = "sha256-pT9dA2sRTozVAYA8VKPlL+AU8r9FABHXp6Pbqa8aSTo=";
|
||||
};
|
||||
|
||||
buildInputs = [ perl ];
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace Keyboard/ckbcomp --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
|
||||
substituteInPlace Keyboard/ckbcomp --replace "rules = 'xorg'" "rules = 'base'"
|
||||
'';
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -Dm0555 -t $out/bin Keyboard/ckbcomp
|
||||
install -Dm0444 -t $out/share/man/man1 man/ckbcomp.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Compiles a XKB keyboard description to a keymap suitable for loadkeys";
|
||||
homepage = "https://salsa.debian.org/installer-team/console-setup";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ dezgeg ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
28
pkgs/tools/X11/devour/default.nix
Normal file
28
pkgs/tools/X11/devour/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "devour";
|
||||
version = "12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "salman-abedin";
|
||||
repo = "devour";
|
||||
rev = version;
|
||||
sha256 = "1qq5l6d0fn8azg7sj7a4m2jsmhlpswl5793clcxs1p34vy4wb2lp";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
install -Dm555 -t $out/bin devour
|
||||
'';
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Devour hides your current window when launching an external program";
|
||||
longDescription = "Devour hides your current window before launching an external program and unhides it after quitting";
|
||||
homepage = "https://github.com/salman-abedin/devour";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ mazurel ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
24
pkgs/tools/X11/dex/default.nix
Normal file
24
pkgs/tools/X11/dex/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchFromGitHub, python3 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dex";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jceb";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ python3 ];
|
||||
nativeBuildInputs = [ python3.pkgs.sphinx ];
|
||||
makeFlags = [ "PREFIX=$(out)" "VERSION=$(version)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A program to generate and execute DesktopEntry files of the Application type";
|
||||
homepage = "https://github.com/jceb/dex";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3Plus;
|
||||
};
|
||||
}
|
||||
23
pkgs/tools/X11/dispad/default.nix
Normal file
23
pkgs/tools/X11/dispad/default.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXi, libconfuse }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dispad";
|
||||
version = "0.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BlueDragonX";
|
||||
repo = "dispad";
|
||||
rev = "v${version}";
|
||||
sha256 = "0y0n9mf1hs3s706gkpmg1lh74m6vvkqc9rdbzgc6s2k7vdl2zp1y";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXi libconfuse ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A small daemon for disabling trackpads while typing";
|
||||
homepage = "https://github.com/BlueDragonX/dispad";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ zimbatm ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/ffcast/default.nix
Normal file
30
pkgs/tools/X11/ffcast/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, perl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ffcast";
|
||||
version = "2.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lolilolicon";
|
||||
repo = "FFcast";
|
||||
rev = version;
|
||||
sha256 = "047y32bixhc8ksr98vwpgd0k1xxgsv2vs0n3kc2xdac4krc9454h";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = [ perl libX11 ];
|
||||
|
||||
configureFlags = [ "--disable-xrectsel" ];
|
||||
|
||||
postBuild = ''
|
||||
make install
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Run commands on rectangular screen regions";
|
||||
homepage = "https://github.com/lolilolicon/FFcast";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.guyonvarch ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/find-cursor/default.nix
Normal file
26
pkgs/tools/X11/find-cursor/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXdamage, libXrender, libXcomposite, libXext, installShellFiles, git }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "find-cursor";
|
||||
version = "1.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "arp242";
|
||||
repo = "find-cursor";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-/Dw4bOTCnpCbeI0YJ5DJ9Q2AGBognylUk7xYGn0KIA8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles git ];
|
||||
buildInputs = [ libX11 libXdamage libXrender libXcomposite libXext ];
|
||||
preInstall = "mkdir -p $out/share/man/man1";
|
||||
installFlags = "PREFIX=${placeholder "out"}";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple XLib program to highlight the cursor position";
|
||||
homepage = "https://github.com/arp242/find-cursor";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.yanganto ];
|
||||
};
|
||||
}
|
||||
32
pkgs/tools/X11/go-sct/default.nix
Normal file
32
pkgs/tools/X11/go-sct/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, xorg, wayland }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "go-sct";
|
||||
version = "unstable-2022-01-32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "d4l3k";
|
||||
repo = "go-sct";
|
||||
rev = "4ae88a6bf50e0b917541ddbcec1ff10ab77a0b15";
|
||||
sha256 = "sha256-/0ilM1g3CNaseqV9i+cKWyzxvWnj+TFqazt+aYDtNVs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# Disable tests require network access
|
||||
rm -f geoip/geoip_test.go
|
||||
'';
|
||||
|
||||
vendorSha256 = "sha256-Rx5/oORink2QtRcD+JqbyFroWYhuYmuYDzZ391R4Jsw=";
|
||||
|
||||
buildInputs = [ xorg.libX11 xorg.libXrandr wayland.dev ];
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Color temperature setting library and CLI that operates in a similar way to f.lux and Redshift";
|
||||
homepage = "https://github.com/d4l3k/go-sct";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ cstrahan ];
|
||||
mainProgram = "sct";
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/grobi/default.nix
Normal file
30
pkgs/tools/X11/grobi/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, fetchFromGitHub, buildGoModule, fetchpatch }:
|
||||
|
||||
buildGoModule rec {
|
||||
version = "0.6.0";
|
||||
pname = "grobi";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "fd0";
|
||||
repo = "grobi";
|
||||
sha256 = "032lvnl2qq9258y6q1p60lfi7qir68zgq8zyh4khszd3wdih7y3s";
|
||||
};
|
||||
|
||||
vendorSha256 = "1ibwx5rbxkygfx78j3g364dmbwwa5b34qmzq3sqcbrsnv8rzrwvj";
|
||||
|
||||
patches = [
|
||||
# fix failing test on go 1.15
|
||||
(fetchpatch {
|
||||
url = "https://github.com/fd0/grobi/commit/176988ab087ff92d1408fbc454c77263457f3d7e.patch";
|
||||
sha256 = "0j8y3gns4lm0qxqxzmdn2ll0kq34mmfhf83lvsq13iqhp5bx3y31";
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/fd0/grobi";
|
||||
description = "Automatically configure monitors/outputs for Xorg via RANDR";
|
||||
license = with licenses; [ bsd2 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
44
pkgs/tools/X11/hsetroot/default.nix
Normal file
44
pkgs/tools/X11/hsetroot/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, imlib2
|
||||
, libX11
|
||||
, libXinerama
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hsetroot";
|
||||
version = "1.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "himdel";
|
||||
repo = "hsetroot";
|
||||
rev = version;
|
||||
sha256 = "1jbk5hlxm48zmjzkaq5946s58rqwg1v1ds2sdyd2ba029hmvr722";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
imlib2
|
||||
libX11
|
||||
libXinerama
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString (!stdenv.cc.isGNU) ''
|
||||
sed -i -e '/--no-as-needed/d' Makefile
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p "$out/bin"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Allows you to compose wallpapers ('root pixmaps') for X";
|
||||
homepage = "https://github.com/himdel/hsetroot";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ henrytill shamilton ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
29
pkgs/tools/X11/icon-slicer/default.nix
Normal file
29
pkgs/tools/X11/icon-slicer/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, gdk-pixbuf, popt }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "icon-slicer";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://freedesktop.org/software/icon-slicer/releases/icon-slicer-${version}.tar.gz";
|
||||
sha256 = "0kdnc08k2rs8llfg7xgvnrsk60x59pv5fqz6kn2ifnn2s1nj3w05";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes hotspot `y` coordinate. The `x` coordinate is used on the y-axis.
|
||||
(fetchurl {
|
||||
url = "https://aur.archlinux.org/cgit/aur.git/plain/hotspotfix.patch?h=icon-slicer";
|
||||
sha256 = "1l1dc1x5p4hys02arkmq3x6b1xdi510969d25g928zr4gf4an03h";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ popt pkg-config ];
|
||||
buildInputs = [ gdk-pixbuf ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Utility for generating icon themes and libXcursor cursor themes";
|
||||
homepage = "https://www.freedesktop.org/wiki/Software/icon-slicer/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ zaninime ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/X11/imwheel/default.nix
Normal file
31
pkgs/tools/X11/imwheel/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchurl, libX11, libXext, libXi, libXmu, libXt, libXtst }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "imwheel";
|
||||
version = "1.0.0pre12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/imwheel/imwheel-${version}.tar.gz";
|
||||
sha256 = "2320ed019c95ca4d922968e1e1cbf0c075a914e865e3965d2bd694ca3d57cfe3";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXext libXi libXmu libXt libXtst ];
|
||||
|
||||
makeFlags = [
|
||||
"sysconfdir=/etc"
|
||||
"ETCDIR=/etc"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"sysconfdir=${placeholder "out"}/etc"
|
||||
"ETCDIR=${placeholder "out"}/etc"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://imwheel.sourceforge.net/";
|
||||
description = "Mouse wheel configuration tool for XFree86/Xorg";
|
||||
maintainers = with maintainers; [ jhillyerd ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
}
|
||||
35
pkgs/tools/X11/inputplug/default.nix
Normal file
35
pkgs/tools/X11/inputplug/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ fetchCrate
|
||||
, installShellFiles
|
||||
, lib
|
||||
, libbsd
|
||||
, pkg-config
|
||||
, rustPlatform
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "inputplug";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "00gv2i2pxy56l6ysslbscxinr4r0mpk9p2ivkrnjnwhc8j3v8v7h";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ installShellFiles pkg-config ];
|
||||
|
||||
buildInputs = [ libbsd ];
|
||||
|
||||
cargoSha256 = "161kz47d4psfvh0vm98k8qappg50lpsw1ybyy7s3g3bp6ivfz8jv";
|
||||
|
||||
postInstall = ''
|
||||
installManPage inputplug.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Monitor XInput events and run arbitrary scripts on hierarchy change events";
|
||||
homepage = "https://github.com/andrewshadura/inputplug";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jecaro ];
|
||||
};
|
||||
}
|
||||
|
||||
31
pkgs/tools/X11/jumpapp/default.nix
Normal file
31
pkgs/tools/X11/jumpapp/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ stdenv, lib, perl, pandoc, fetchFromGitHub, xdotool, wmctrl, xprop, nettools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jumpapp";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mkropat";
|
||||
repo = "jumpapp";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-9sh0+zpDxwqRGC1jUgGTDdSDRdAFsL12mQ/Opwh/UBc=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
nativeBuildInputs = [ pandoc perl ];
|
||||
buildInputs = [ xdotool wmctrl xprop nettools perl ];
|
||||
postFixup = let
|
||||
runtimePath = lib.makeBinPath buildInputs;
|
||||
in
|
||||
''
|
||||
sed -i "2 i export PATH=${runtimePath}:\$PATH" $out/bin/jumpapp
|
||||
sed -i "2 i export PATH=${perl}/bin:\$PATH" $out/bin/jumpappify-desktop-entry
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mkropat/jumpapp";
|
||||
description = "A run-or-raise application switcher for any X11 desktop";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.matklad ];
|
||||
};
|
||||
}
|
||||
62
pkgs/tools/X11/keynav/default.nix
Normal file
62
pkgs/tools/X11/keynav/default.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libX11
|
||||
, xorgproto
|
||||
, libXtst
|
||||
, libXi
|
||||
, libXext
|
||||
, libXinerama
|
||||
, libXrandr
|
||||
, glib
|
||||
, cairo
|
||||
, xdotool
|
||||
}:
|
||||
|
||||
let release = "20180821"; in
|
||||
stdenv.mkDerivation {
|
||||
pname = "keynav";
|
||||
version = "0.${release}.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jordansissel";
|
||||
repo = "keynav";
|
||||
rev = "78f9e076a5618aba43b030fbb9344c415c30c1e5";
|
||||
sha256 = "0hmc14fj612z5h7gjgk95zyqab3p35c4a99snnblzxfg0p3x2f1d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
libX11
|
||||
xorgproto
|
||||
libXtst
|
||||
libXi
|
||||
libXext
|
||||
libXinerama
|
||||
libXrandr
|
||||
glib
|
||||
cairo
|
||||
xdotool
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
echo >>VERSION MAJOR=0
|
||||
echo >>VERSION RELEASE=${release}
|
||||
echo >>VERSION REVISION=0
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/keynav/doc
|
||||
cp keynav $out/bin
|
||||
cp keynavrc $out/share/keynav/doc
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Generate X11 mouse clicks from keyboard";
|
||||
homepage = "https://www.semicomplete.com/projects/keynav/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/ksuperkey/default.nix
Normal file
26
pkgs/tools/X11/ksuperkey/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXtst, pkg-config, xorgproto, libXi }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ksuperkey";
|
||||
version = "0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hanschen";
|
||||
repo = "ksuperkey";
|
||||
rev = "v${version}";
|
||||
sha256 = "1dvgf356fihfav8pjzww1q6vgd96c5h18dh8vpv022g9iipiwq8a";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 libXtst xorgproto libXi ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A tool to be able to bind the super key as a key rather than a modifier";
|
||||
homepage = "https://github.com/hanschen/ksuperkey";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
35
pkgs/tools/X11/libstrangle/default.nix
Normal file
35
pkgs/tools/X11/libstrangle/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchFromGitLab, libGL, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libstrangle";
|
||||
version = "unstable-202202022";
|
||||
|
||||
buildInputs = [ libGL libX11 ];
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "torkel104";
|
||||
repo = pname;
|
||||
rev = "0273e318e3b0cc759155db8729ad74266b74cb9b";
|
||||
sha256 = "sha256-h10QA7m7hIQHq1g/vCYuZsFR2NVbtWBB46V6OWP5wgM=";
|
||||
};
|
||||
|
||||
makeFlags = [ "prefix=" "DESTDIR=$(out)" ];
|
||||
|
||||
patches = [
|
||||
./nixos.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteAllInPlace src/strangle.sh
|
||||
substituteAllInPlace src/stranglevk.sh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.com/torkel104/libstrangle";
|
||||
description = "Frame rate limiter for Linux/OpenGL";
|
||||
license = licenses.gpl3;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ aske ];
|
||||
mainProgram = "strangle";
|
||||
};
|
||||
}
|
||||
43
pkgs/tools/X11/libstrangle/nixos.patch
Normal file
43
pkgs/tools/X11/libstrangle/nixos.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
diff --git a/makefile b/makefile
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -86,10 +86,6 @@ install-common:
|
||||
install -m 0755 -D -T $(SOURCEDIR)/stranglevk.sh $(DESTDIR)$(bindir)/stranglevk
|
||||
install -m 0644 -D -T $(SOURCEDIR)/vulkan/libstrangle_vk.json $(DESTDIR)$(datarootdir)/vulkan/implicit_layer.d/libstrangle_vk.json
|
||||
|
||||
-install-ld: ld
|
||||
- install -m 0644 -D -T $(BUILDDIR)/libstrangle.conf $(DESTDIR)/etc/ld.so.conf.d/libstrangle.conf
|
||||
- if [ -z "$(DESTDIR)" ]; then ldconfig; fi
|
||||
-
|
||||
install-32: 32-bit
|
||||
install -m 0755 -D -T $(BUILDDIR)/libstrangle32.so $(DESTDIR)$(LIB32_PATH)/libstrangle.so
|
||||
install -m 0755 -D -T $(BUILDDIR)/libstrangle32_nodlsym.so $(DESTDIR)$(LIB32_PATH)/libstrangle_nodlsym.so
|
||||
@@ -109,8 +105,7 @@ install: \
|
||||
all \
|
||||
install-common \
|
||||
install-32 \
|
||||
- install-64 \
|
||||
- install-ld
|
||||
+ install-64
|
||||
|
||||
clean:
|
||||
rm -f $(BUILDDIR)/libstrangle64.so
|
||||
diff --git a/src/strangle.sh b/src/strangle.sh
|
||||
--- a/src/strangle.sh
|
||||
+++ b/src/strangle.sh
|
||||
@@ -130,6 +130,5 @@ if [ "$STRANGLE_VKONLY" != "1" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
-# Execute the strangled program under a clean environment
|
||||
# pass through the FPS and overriden LD_PRELOAD environment variables
|
||||
-exec env ENABLE_VK_LAYER_TORKEL104_libstrangle=1 LD_PRELOAD="${LD_PRELOAD}" "$@"
|
||||
+ENABLE_VK_LAYER_TORKEL104_libstrangle=1 XDG_DATA_DIRS="${XDG_DATA_DIRS}${XDG_DATA_DIRS:+:}@out@/share" LD_LIBRARY_PATH="${LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:}@out@/lib/libstrangle/lib64:@out@/lib/libstrangle/lib32" LD_PRELOAD="${LD_PRELOAD}" exec "$@"
|
||||
diff --git a/src/stranglevk.sh b/src/stranglevk.sh
|
||||
--- a/src/stranglevk.sh
|
||||
+++ b/src/stranglevk.sh
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
-ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_VKONLY=1 strangle "$@"
|
||||
+ENABLE_VK_LAYER_TORKEL104_libstrangle=1 STRANGLE_VKONLY=1 @out@/bin/strangle "$@"
|
||||
24
pkgs/tools/X11/mmutils/default.nix
Normal file
24
pkgs/tools/X11/mmutils/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxcb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wmutils";
|
||||
version = "1.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pockata";
|
||||
repo = "mmutils";
|
||||
rev = "v${version}";
|
||||
sha256 = "08wlb278m5lr218c87yqashk7farzny51ybl5h6j60i7pbpm01ml";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A set of utilities for querying xrandr monitor information";
|
||||
homepage = "https://github.com/pockata/mmutils";
|
||||
license = licenses.isc;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
25
pkgs/tools/X11/ncview/default.nix
Normal file
25
pkgs/tools/X11/ncview/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchurl
|
||||
, netcdf, xlibsWrapper, xorg, udunits, expat
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "ncview";
|
||||
version = "2.1.8";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.8.tar.gz";
|
||||
sha256 = "1gliziyxil2fcz85hj6z0jq33avrxdcjs74d500lhxwvgd8drfp8";
|
||||
};
|
||||
|
||||
buildInputs = [ netcdf xlibsWrapper xorg.libXaw udunits expat ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Visual browser for netCDF format files";
|
||||
homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ jmettes ];
|
||||
};
|
||||
}
|
||||
33
pkgs/tools/X11/nitrogen/default.nix
Normal file
33
pkgs/tools/X11/nitrogen/default.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, glib, gtkmm2 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nitrogen";
|
||||
version = "1.6.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://projects.l3ib.org/nitrogen/files/${pname}-${version}.tar.gz";
|
||||
sha256 = "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ glib gtkmm2 ];
|
||||
|
||||
patchPhase = ''
|
||||
patchShebangs data/icon-theme-installer
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A wallpaper browser and setter for X11";
|
||||
longDescription = ''
|
||||
nitrogen is a lightweight utility that can set the root background on X11.
|
||||
It operates independently of any desktop environment, and supports
|
||||
multi-head with Xinerama. Wallpapers are browsable with a convenient GUI,
|
||||
and settings are stored in a human-readable config file.
|
||||
'';
|
||||
homepage = "https://github.com/l3ib/nitrogen";
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.auntie ];
|
||||
};
|
||||
}
|
||||
21
pkgs/tools/X11/numlockx/default.nix
Normal file
21
pkgs/tools/X11/numlockx/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXext, autoconf }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.2";
|
||||
pname = "numlockx";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rg3";
|
||||
repo = pname;
|
||||
rev = "9159fd3c5717c595dadfcb33b380a85c88406185";
|
||||
sha256 = "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXext autoconf ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Allows to start X with NumLock turned on";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
63
pkgs/tools/X11/nx-libs/default.nix
Normal file
63
pkgs/tools/X11/nx-libs/default.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ lib, stdenv, autoconf, automake, fetchFromGitHub, fetchpatch
|
||||
, libgcc, libjpeg_turbo
|
||||
, libpng, libtool, libxml2, pkg-config, which, xorg
|
||||
, libtirpc
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nx-libs";
|
||||
version = "3.5.99.26";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ArcticaProject";
|
||||
repo = "nx-libs";
|
||||
rev = version;
|
||||
sha256 = "sha256-qVOdD85sBMxKYx1cSLAGKeODsKKAm9UPBmYzPBbBOzQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "binutils-2.36.patch";
|
||||
url = "https://github.com/ArcticaProject/nx-libs/commit/605a266911b50ababbb3f8a8b224efb42743379c.patch";
|
||||
sha256 = "sha256-kk5ms3i0PrHL74I4OlsqDrdDcCJ0us03cQcBy4zjAoQ=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoconf automake libtool pkg-config which
|
||||
xorg.gccmakedep xorg.imake ];
|
||||
buildInputs = [ libgcc libjpeg_turbo libpng libxml2 xorg.fontutil
|
||||
xorg.libXcomposite xorg.libXdamage xorg.libXdmcp xorg.libXext xorg.libXfont2
|
||||
xorg.libXinerama xorg.libXpm xorg.libXrandr xorg.libXtst xorg.pixman
|
||||
xorg.xkbcomp xorg.xkeyboardconfig libtirpc
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
|
||||
NIX_LDFLAGS = [ "-ltirpc" ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
find . -type f -name Makefile -exec sed -i 's|^\(SHELL:=\)/bin/bash$|\1${stdenv.shell}|g' {} \;
|
||||
ln -s libNX_X11.so.6.3.0
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
# binutils 2.37 fix
|
||||
# https://github.com/ArcticaProject/nx-libs/issues/1003
|
||||
substituteInPlace nx-X11/config/cf/Imake.tmpl --replace "clq" "cq"
|
||||
'';
|
||||
|
||||
PREFIX=""; # Don't install to $out/usr/local
|
||||
installPhase = ''
|
||||
make DESTDIR="$out" install
|
||||
# See:
|
||||
# - https://salsa.debian.org/debian-remote-team/nx-libs/blob/bcc152100617dc59156015a36603a15db530a64f/debian/rules#L66-72
|
||||
# - https://github.com/ArcticaProject/nx-libs/issues/652
|
||||
patchelf --remove-needed "libX11.so.6" $out/bin/nxagent
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "NX X server based on Xnest";
|
||||
homepage = "https://github.com/ArcticaProject/nx-libs";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
44
pkgs/tools/X11/obconf/default.nix
Normal file
44
pkgs/tools/X11/obconf/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, gtk3, openbox,
|
||||
imlib2, libxml2, libstartup_notification, makeWrapper, libSM }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obconf";
|
||||
version = "unstable-2015-02-13";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://git.openbox.org/dana/obconf";
|
||||
rev = "63ec47c5e295ad4f09d1df6d92afb7e10c3fec39";
|
||||
sha256 = "sha256-qwm66VA/ueRMFtSUcrmuObNkz+KYgWRnmR7TnQwpxiE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
makeWrapper
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
imlib2
|
||||
libSM
|
||||
libstartup_notification
|
||||
libxml2
|
||||
openbox
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace configure.ac --replace 2.0.4 ${version}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/obconf --prefix XDG_DATA_DIRS : ${openbox}/share/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "GUI configuration tool for openbox";
|
||||
homepage = "http://openbox.org/wiki/ObConf";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = [ lib.maintainers.sfrijters ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
119
pkgs/tools/X11/opentabletdriver/default.nix
Normal file
119
pkgs/tools/X11/opentabletdriver/default.nix
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
{ lib
|
||||
, buildDotnetModule
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, dotnetCorePackages
|
||||
, gtk3
|
||||
, libX11
|
||||
, libXrandr
|
||||
, libappindicator
|
||||
, libevdev
|
||||
, libnotify
|
||||
, udev
|
||||
, copyDesktopItems
|
||||
, makeDesktopItem
|
||||
, nixosTests
|
||||
, wrapGAppsHook
|
||||
, dpkg
|
||||
}:
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "OpenTabletDriver";
|
||||
version = "0.6.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenTabletDriver";
|
||||
repo = "OpenTabletDriver";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-VvxW8Ck+XC4nXSUyDhcbGoeSr5uSAZ66jtZNoADuVR8=";
|
||||
};
|
||||
|
||||
debPkg = fetchurl {
|
||||
url = "https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb";
|
||||
sha256 = "sha256-LJqH3+JckPF7S/1uBE2X81jxWg0MF9ff92Ei8WPEA2w=";
|
||||
};
|
||||
|
||||
dotnetInstallFlags = [ "--framework=net6.0" ];
|
||||
|
||||
projectFile = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
executables = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyDesktopItems
|
||||
wrapGAppsHook
|
||||
dpkg
|
||||
];
|
||||
|
||||
runtimeDeps = [
|
||||
gtk3
|
||||
libX11
|
||||
libXrandr
|
||||
libappindicator
|
||||
libevdev
|
||||
libnotify
|
||||
udev
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
testProjectFile = "OpenTabletDriver.Tests/OpenTabletDriver.Tests.csproj";
|
||||
|
||||
disabledTests = [
|
||||
# Require networking
|
||||
"OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarballFork"
|
||||
"OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarball"
|
||||
# Require networking & unused in Linux build
|
||||
"OpenTabletDriver.Tests.UpdaterTests.UpdaterBase_ProperlyChecks_Version_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_PreventsUpdate_WhenAlreadyUpToDate_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_AllowsReupdate_WhenInstallFailed_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_HasUpdateReturnsFalse_During_UpdateInstall_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_HasUpdateReturnsFalse_After_UpdateInstall_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_Prevents_ConcurrentAndConsecutive_Updates_Async"
|
||||
"OpenTabletDriver.Tests.UpdaterTests.Updater_ProperlyBackups_BinAndAppDataDirectory_Async"
|
||||
# Intended only to be run in continuous integration, unnecessary for functionality
|
||||
"OpenTabletDriver.Tests.ConfigurationTest.Configurations_DeviceIdentifier_IsNotConflicting"
|
||||
# Depends on processor load
|
||||
"OpenTabletDriver.Tests.TimerTests.TimerAccuracy"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
# Give a more "*nix" name to the binaries
|
||||
mv $out/bin/OpenTabletDriver.Console $out/bin/otd
|
||||
mv $out/bin/OpenTabletDriver.Daemon $out/bin/otd-daemon
|
||||
mv $out/bin/OpenTabletDriver.UX.Gtk $out/bin/otd-gui
|
||||
|
||||
install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
|
||||
|
||||
# TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
|
||||
dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules
|
||||
install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
desktopName = "OpenTabletDriver";
|
||||
name = "OpenTabletDriver";
|
||||
exec = "otd-gui";
|
||||
icon = "otd";
|
||||
comment = meta.description;
|
||||
categories = [ "Utility" ];
|
||||
})
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
tests = {
|
||||
otd-runs = nixosTests.opentabletdriver;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Open source, cross-platform, user-mode tablet driver";
|
||||
homepage = "https://github.com/OpenTabletDriver/OpenTabletDriver";
|
||||
license = licenses.lgpl3Plus;
|
||||
maintainers = with maintainers; [ thiagokokada ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "otd";
|
||||
};
|
||||
}
|
||||
196
pkgs/tools/X11/opentabletdriver/deps.nix
generated
Normal file
196
pkgs/tools/X11/opentabletdriver/deps.nix
generated
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
{ fetchNuGet }: [
|
||||
(fetchNuGet { pname = "AtkSharp"; version = "3.24.24.34"; sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs"; })
|
||||
(fetchNuGet { pname = "CairoSharp"; version = "3.24.24.34"; sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz"; })
|
||||
(fetchNuGet { pname = "Castle.Core"; version = "4.4.0"; sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf"; })
|
||||
(fetchNuGet { pname = "coverlet.collector"; version = "3.0.2"; sha256 = "1xf6z6izmsl4g8w3z1wbp4pa8f8qsf6sil4mf1c9fb22hq8c5hkg"; })
|
||||
(fetchNuGet { pname = "Eto.Forms"; version = "2.5.10"; sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7"; })
|
||||
(fetchNuGet { pname = "Eto.Forms"; version = "2.5.11"; sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s"; })
|
||||
(fetchNuGet { pname = "Eto.Platform.Gtk"; version = "2.5.11"; sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j"; })
|
||||
(fetchNuGet { pname = "GdkSharp"; version = "3.24.24.34"; sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5"; })
|
||||
(fetchNuGet { pname = "GioSharp"; version = "3.24.24.34"; sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx"; })
|
||||
(fetchNuGet { pname = "GLibSharp"; version = "3.24.24.34"; sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq"; })
|
||||
(fetchNuGet { pname = "GtkSharp"; version = "3.24.24.34"; sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb"; })
|
||||
(fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
|
||||
(fetchNuGet { pname = "MessagePack"; version = "2.1.194"; sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; })
|
||||
(fetchNuGet { pname = "MessagePack.Annotations"; version = "2.1.194"; sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
|
||||
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.4"; sha256 = "11wiyy3ykgk1sa9amy3lgcsg2v7d1sz59ggw647vx8ibpjxijjpp"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0-rc.1.21451.13"; sha256 = "0r6945jq7c2f1wjifq514zvngicndjqfnsjya6hqw0yzah0jr56c"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0-rc.1.21451.13"; sha256 = "11dg16x6g0gssb143qpghxz1s41himvhr7yhjwxs9hacx4ij2dm1"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.4"; sha256 = "1jdx05zmrqj1s7xfgn3wgy10qb5cl1n1jcj5kz43zvkw1amc7ra4"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.4"; sha256 = "1jizkbrnm4pv60zch29ki7gj8m7j5whk141x9cwx4kwsd6cfzwi6"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.4"; sha256 = "14110qzmypr72ywvx3npq7mf4n0gvdr4536v91z1xbapms65am6x"; })
|
||||
(fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
|
||||
(fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
|
||||
(fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
|
||||
(fetchNuGet { pname = "Moq"; version = "4.16.1"; sha256 = "1m2gwbx0gsy84rl9c3hgdaw9gz8d08ffg19nwg0idsdqmmiq887l"; })
|
||||
(fetchNuGet { pname = "Nerdbank.Streams"; version = "2.6.77"; sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; })
|
||||
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
|
||||
(fetchNuGet { pname = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
|
||||
(fetchNuGet { pname = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
|
||||
(fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
|
||||
(fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
|
||||
(fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
|
||||
(fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
|
||||
(fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
|
||||
(fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
|
||||
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
|
||||
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
|
||||
(fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
|
||||
(fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
|
||||
(fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
|
||||
(fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
|
||||
(fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; })
|
||||
(fetchNuGet { pname = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; })
|
||||
(fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
|
||||
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
|
||||
(fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
|
||||
(fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
|
||||
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
|
||||
(fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
|
||||
(fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
|
||||
(fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta1.20253.1"; sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; })
|
||||
(fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
|
||||
(fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
|
||||
(fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
|
||||
(fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
|
||||
(fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
|
||||
(fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
|
||||
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
|
||||
(fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
|
||||
(fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
|
||||
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
|
||||
(fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
|
||||
(fetchNuGet { pname = "System.IO.Pipelines"; version = "4.7.2"; sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; })
|
||||
(fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
|
||||
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
|
||||
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
|
||||
(fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
|
||||
(fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
|
||||
(fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
|
||||
(fetchNuGet { pname = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
|
||||
(fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
|
||||
(fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
|
||||
(fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
|
||||
(fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
|
||||
(fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
|
||||
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
|
||||
(fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
|
||||
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
|
||||
(fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
|
||||
(fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
|
||||
(fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
|
||||
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0-rc.1.21451.13"; sha256 = "0v5bc80p35jj5b5xdgsn5r1v4w68gqz0sahi214rprrrlr3sl206"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
|
||||
(fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
|
||||
(fetchNuGet { pname = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
|
||||
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
|
||||
(fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
|
||||
(fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
|
||||
(fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.11.1"; sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
|
||||
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
|
||||
(fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
|
||||
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
|
||||
(fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
|
||||
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
|
||||
(fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
|
||||
(fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
|
||||
(fetchNuGet { pname = "WaylandNET"; version = "0.2.0"; sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; })
|
||||
(fetchNuGet { pname = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
|
||||
(fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
|
||||
(fetchNuGet { pname = "xunit.analyzers"; version = "0.10.0"; sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j"; })
|
||||
(fetchNuGet { pname = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
|
||||
(fetchNuGet { pname = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
|
||||
(fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
|
||||
(fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
|
||||
(fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.4.3"; sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3"; })
|
||||
]
|
||||
42
pkgs/tools/X11/opentabletdriver/update.sh
Executable file
42
pkgs/tools/X11/opentabletdriver/update.sh
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_6 dotnet-sdk_5
|
||||
set -eo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
deps_file="$(realpath "./deps.nix")"
|
||||
|
||||
new_version="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r 'map(select(.prerelease == false)) | .[0].tag_name' | cut -c2-)"
|
||||
old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
|
||||
|
||||
if [[ "$new_version" == "$old_version" ]]; then
|
||||
echo "Already up to date!"
|
||||
[[ "${1}" != "--force" ]] && exit 0
|
||||
fi
|
||||
|
||||
# Updating the hash of deb package manually since there seems to be no way to do it automatically
|
||||
oldDebPkgUrl="https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${old_version}/OpenTabletDriver.deb";
|
||||
newDebPkgUrl="https://github.com/OpenTabletDriver/OpenTabletDriver/releases/download/v${new_version}/OpenTabletDriver.deb";
|
||||
oldDebSha256=$(nix-prefetch-url "$oldDebPkgUrl")
|
||||
newDebSha256=$(nix-prefetch-url "$newDebPkgUrl")
|
||||
echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256"
|
||||
sed -i ./default.nix -re "s|\"$oldDebSha256\"|\"$newDebSha256\"|"
|
||||
|
||||
pushd ../../../..
|
||||
update-source-version opentabletdriver "$new_version"
|
||||
store_src="$(nix-build -A opentabletdriver.src --no-out-link)"
|
||||
src="$(mktemp -d /tmp/opentabletdriver-src.XXX)"
|
||||
cp -rT "$store_src" "$src"
|
||||
chmod -R +w "$src"
|
||||
|
||||
pushd "$src"
|
||||
trap "rm -rf $src" EXIT
|
||||
|
||||
export DOTNET_NOLOGO=1
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
mkdir ./nuget_pkgs
|
||||
for project in OpenTabletDriver.{Console,Daemon,UX.Gtk,Tests}; do
|
||||
dotnet restore $project --packages ./nuget_pkgs
|
||||
done
|
||||
|
||||
nuget-to-nix ./nuget_pkgs > "$deps_file"
|
||||
34
pkgs/tools/X11/primus/default.nix
Normal file
34
pkgs/tools/X11/primus/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# For a 64bit + 32bit system the LD_LIBRARY_PATH must contain both the 32bit and 64bit primus
|
||||
# libraries. Providing a different primusrun for each architecture will not work as expected. EG:
|
||||
# Using steam under wine can involve both 32bit and 64bit process. All of which inherit the
|
||||
# same LD_LIBRARY_PATH.
|
||||
# Other distributions do the same.
|
||||
{ stdenv
|
||||
, stdenv_i686
|
||||
, lib
|
||||
, primusLib
|
||||
, writeScriptBin
|
||||
, runtimeShell
|
||||
, primusLib_i686 ? null
|
||||
, useNvidia ? true
|
||||
}:
|
||||
|
||||
let
|
||||
# We override stdenv in case we need different ABI for libGL
|
||||
primusLib_ = primusLib.override { inherit stdenv; };
|
||||
primusLib_i686_ = primusLib_i686.override { stdenv = stdenv_i686; };
|
||||
|
||||
primus = if useNvidia then primusLib_ else primusLib_.override { nvidia_x11 = null; };
|
||||
primus_i686 = if useNvidia then primusLib_i686_ else primusLib_i686_.override { nvidia_x11 = null; };
|
||||
ldPath = lib.makeLibraryPath (lib.filter (x: x != null) (
|
||||
[ primus primus.glvnd ]
|
||||
++ lib.optionals (primusLib_i686 != null) [ primus_i686 primus_i686.glvnd ]
|
||||
));
|
||||
|
||||
in writeScriptBin "primusrun" ''
|
||||
#!${runtimeShell}
|
||||
export LD_LIBRARY_PATH=${ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
|
||||
# https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/1758243
|
||||
export __GLVND_DISALLOW_PATCHING=1
|
||||
exec "$@"
|
||||
''
|
||||
60
pkgs/tools/X11/primus/lib.nix
Normal file
60
pkgs/tools/X11/primus/lib.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, libX11
|
||||
, libGL
|
||||
, mesa
|
||||
, nvidia_x11 ? null
|
||||
, libglvnd
|
||||
}:
|
||||
|
||||
let
|
||||
aPackage =
|
||||
if nvidia_x11 == null then libGL
|
||||
else if nvidia_x11.useGLVND then libglvnd
|
||||
else nvidia_x11;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "primus-lib";
|
||||
version = "unstable-2015-04-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amonakov";
|
||||
repo = "primus";
|
||||
rev = "d1afbf6fce2778c0751eddf19db9882e04f18bfd";
|
||||
sha256 = "118jm57ccawskb8vjq3a9dpa2gh72nxzvx2zk7zknpy0arrdznj1";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Bump buffer size for long library paths.
|
||||
(fetchpatch {
|
||||
url = "https://github.com/abbradar/primus/commit/2f429e232581c556df4f4bf210aee8a0c99c60b7.patch";
|
||||
sha256 = "1da6ynz7r7x98495i329sf821308j1rpy8prcdraqahz7p4c89nc";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ libX11 libGL ];
|
||||
|
||||
makeFlags = [
|
||||
"LIBDIR=$(out)/lib"
|
||||
"PRIMUS_libGLa=${aPackage}/lib/libGL.so"
|
||||
"PRIMUS_libGLd=${libGL}/lib/libGL.so"
|
||||
"PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
ln -s $out/lib/libGL.so.1 $out/lib/libGL.so
|
||||
'';
|
||||
|
||||
passthru.glvnd = if nvidia_x11 != null && nvidia_x11.useGLVND then nvidia_x11 else null;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Low-overhead client-side GPU offloading";
|
||||
homepage = "https://github.com/amonakov/primus";
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/ratmen/default.nix
Normal file
26
pkgs/tools/X11/ratmen/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchurl, perl, xorgproto, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ratmen";
|
||||
version = "2.2.3";
|
||||
src = fetchurl {
|
||||
url = "http://www.update.uu.se/~zrajm/programs/ratmen/ratmen-${version}.tar.gz";
|
||||
sha256 = "0gnfqhnch9x8jhr87gvdjcp1wsqhchfjilpnqcwx5j0nlqyz6wi6";
|
||||
};
|
||||
buildInputs = [
|
||||
perl
|
||||
xorgproto
|
||||
libX11
|
||||
];
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
meta = with lib; {
|
||||
description = "A minimalistic X11 menu creator";
|
||||
license = licenses.free; # 9menu derivative with 9menu license
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
homepage = "http://www.update.uu.se/~zrajm/programs/";
|
||||
downloadPage = "http://www.update.uu.se/~zrajm/programs/ratmen/";
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/run-scaled/default.nix
Normal file
30
pkgs/tools/X11/run-scaled/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, makeWrapper, bc, xorgserver, xpra, xrandr }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
version = "unstable-2018-06-03";
|
||||
pname = "run-scaled";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kaueraal";
|
||||
repo = "run_scaled";
|
||||
rev = "fa71b3c17e627a96ff707ad69f1def5361f2245c";
|
||||
sha256 = "1ma4ax7ydq4xvyzrc4zapihmf7v3d9zl9mbi8bgpps7nlgz544ys";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp run_scaled $out/bin
|
||||
wrapProgram $out/bin/run_scaled --prefix PATH ":" \
|
||||
${lib.makeBinPath [ bc xorgserver xpra xrandr ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Run an X application scaled via xpra";
|
||||
homepage = "https://github.com/kaueraal/run_scaled";
|
||||
maintainers = [ maintainers.snaar ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
35
pkgs/tools/X11/runningx/default.nix
Normal file
35
pkgs/tools/X11/runningx/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libX11 }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "runningx";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.fiction.net/blong/programs/mutt/autoview/RunningX.c";
|
||||
sha256 = "1mikkhrx6jsx716041qdy3nwjac08pxxvxyq2yablm8zg9hrip0d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
buildPhase = ''
|
||||
cc -O2 -o RunningX $(pkg-config --cflags --libs x11) $src
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out"/bin
|
||||
cp -vai RunningX "$out/bin"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.fiction.net/blong/programs/mutt/";
|
||||
description = "A program for testing if X is running";
|
||||
license = lib.licenses.free;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.romildo ];
|
||||
mainProgram = "RunningX";
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/screen-message/default.nix
Normal file
26
pkgs/tools/X11/screen-message/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, gtk3 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "screen-message";
|
||||
version = "0.26";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/s/screen-message/screen-message_${version}.orig.tar.gz";
|
||||
sha256 = "sha256-vBKnuXOEQZDACmlNP9wjJ3NbIdixIx7I72a6Nj6pjzc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ gtk3 ];
|
||||
|
||||
# screen-message installs its binary in $(prefix)/games per default
|
||||
makeFlags = [ "execgamesdir=$(out)/bin" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.joachim-breitner.de/en/projects#screen-message";
|
||||
description = "Displays a short text fullscreen in an X11 window";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = [ lib.maintainers.fpletz ];
|
||||
mainProgram = "sm";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
27
pkgs/tools/X11/sct/default.nix
Normal file
27
pkgs/tools/X11/sct/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchzip, libX11, libXrandr, xorgproto }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sct";
|
||||
version = "0.5";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://www.umaxx.net/dl/sct-0.5.tar.gz";
|
||||
sha256 = "sha256-nyYcdnCq8KcSUpc0HPCGzJI6NNrrTJLAHqPawfwPR/Q=";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXrandr xorgproto ];
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $out/bin $out/share/man/man1
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.umaxx.net/";
|
||||
description = "A minimal utility to set display colour temperature";
|
||||
maintainers = with maintainers; [ raskin somasis ];
|
||||
license = licenses.publicDomain;
|
||||
platforms = with platforms; linux ++ freebsd ++ openbsd;
|
||||
};
|
||||
}
|
||||
39
pkgs/tools/X11/setroot/default.nix
Normal file
39
pkgs/tools/X11/setroot/default.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, imlib2, pkg-config, fetchpatch
|
||||
, enableXinerama ? true, libXinerama
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.0.2";
|
||||
pname = "setroot";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ttzhou";
|
||||
repo = "setroot";
|
||||
rev = "v${version}";
|
||||
sha256 = "0w95828v0splk7bj5kfacp4pq6wxpyamvyjmahyvn5hc3ycq21mq";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ttzhou/setroot/commit/d8ff8edd7d7594d276d741186bf9ccf0bce30277.patch";
|
||||
sha256 = "sha256-e0iMSpiOmTOpQnp599fjH2UCPU4Oq1VKXcVypVoR9hw=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ libX11 imlib2 ]
|
||||
++ lib.optionals enableXinerama [ libXinerama ];
|
||||
|
||||
buildFlags = [ (if enableXinerama then "xinerama=1" else "xinerama=0") ] ;
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple X background setter inspired by imlibsetroot and feh";
|
||||
homepage = "https://github.com/ttzhou/setroot";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = [ maintainers.vyp ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
46
pkgs/tools/X11/skippy-xd/default.nix
Normal file
46
pkgs/tools/X11/skippy-xd/default.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, xorgproto
|
||||
, libX11
|
||||
, libXft
|
||||
, libXcomposite
|
||||
, libXdamage
|
||||
, libXext
|
||||
, libXinerama
|
||||
, libjpeg
|
||||
, giflib
|
||||
, pkg-config
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "skippy-xd";
|
||||
version = "unstable-2015-03-01";
|
||||
src = fetchFromGitHub {
|
||||
owner = "richardgv";
|
||||
repo = "skippy-xd";
|
||||
rev = "397216ca67074c71314f5e9a6e3f1710ccabc29e";
|
||||
sha256 = "sha256-iP6g3iS1aPPkauBLHbgZH/l+TXbWyIJ2TmbrSiNTkn0=";
|
||||
};
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
xorgproto
|
||||
libX11
|
||||
libXft
|
||||
libXcomposite
|
||||
libXdamage
|
||||
libXext
|
||||
libXinerama
|
||||
libjpeg
|
||||
giflib
|
||||
];
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
preInstall = ''
|
||||
sed -e "s@/etc/xdg@$out&@" -i Makefile
|
||||
'';
|
||||
meta = with lib; {
|
||||
description = "Expose-style compositing-based standalone window switcher";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/X11/srandrd/default.nix
Normal file
31
pkgs/tools/X11/srandrd/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv
|
||||
, fetchFromGitHub
|
||||
, libX11
|
||||
, libXrandr
|
||||
, libXinerama
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "srandrd";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jceb";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "07r1ck2ijj30n19ylndgw75ly9k3815kj9inpxblfnjpwbbw6ic0";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXrandr libXinerama ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jceb/srandrd";
|
||||
description = "Simple randr daemon";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.utdemir ];
|
||||
};
|
||||
|
||||
}
|
||||
27
pkgs/tools/X11/sselp/default.nix
Normal file
27
pkgs/tools/X11/sselp/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchurl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.2";
|
||||
pname = "sselp";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.suckless.org/tools/${pname}-${version}.tar.gz";
|
||||
sha256 = "08mqp00lrh1chdrbs18qr0xv63h866lkmfj87kfscwdm1vn9a3yd";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i "s@/usr/local@$out@g" config.mk
|
||||
sed -i "s@/usr/X11R6/include@${libX11}/include@g" config.mk
|
||||
sed -i "s@/usr/X11R6/lib@${libX11}/lib@g" config.mk
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://tools.suckless.org/sselp";
|
||||
description = "Prints the X selection to stdout, useful in scripts";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [lib.maintainers.magnetophon ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/sx/default.nix
Normal file
30
pkgs/tools/X11/sx/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ coreutils, fetchFromGitHub, lib, makeWrapper, stdenv, util-linux, xauth, xorgserver }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sx";
|
||||
version = "2.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "earnestly";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0xv15m30nhcknasqiybj5wwf7l91q4a4jf6xind8x5x00c6br6nl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/sx \
|
||||
--prefix PATH : ${lib.makeBinPath [ coreutils util-linux xorgserver xauth ]}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple alternative to both xinit and startx for starting a Xorg server";
|
||||
homepage = "https://github.com/earnestly/sx";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
};
|
||||
}
|
||||
22
pkgs/tools/X11/vdpauinfo/default.nix
Normal file
22
pkgs/tools/X11/vdpauinfo/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libvdpau }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vdpauinfo";
|
||||
version = "1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.freedesktop.org/vdpau/vdpauinfo/uploads/6fa9718c507ef0fb6966170ef55344bf/${pname}-${version}.tar.gz";
|
||||
sha256 = "0s6jdadnycyd1agsnfx7hrf17hmipasx1fpmppd4m1z6i9sp1i6g";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libvdpau ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://people.freedesktop.org/~aplattner/vdpau/";
|
||||
description = "Tool to query the Video Decode and Presentation API for Unix (VDPAU) abilities of the system";
|
||||
license = licenses.mit; # expat version
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
};
|
||||
}
|
||||
25
pkgs/tools/X11/virtualgl/default.nix
Normal file
25
pkgs/tools/X11/virtualgl/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ stdenv, lib
|
||||
, virtualglLib
|
||||
, virtualglLib_i686 ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "virtualgl";
|
||||
version = lib.getVersion virtualglLib;
|
||||
|
||||
paths = [ virtualglLib ];
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
for i in ${virtualglLib}/bin/* ${virtualglLib}/bin/.vglrun*; do
|
||||
ln -s "$i" $out/bin
|
||||
done
|
||||
'' + lib.optionalString (virtualglLib_i686 != null) ''
|
||||
ln -sf ${virtualglLib_i686}/bin/.vglrun.vars32 $out/bin
|
||||
'';
|
||||
|
||||
meta = {
|
||||
platforms = lib.platforms.linux;
|
||||
inherit (virtualglLib.meta) license;
|
||||
};
|
||||
}
|
||||
41
pkgs/tools/X11/virtualgl/lib.nix
Normal file
41
pkgs/tools/X11/virtualgl/lib.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, stdenv, fetchurl, cmake
|
||||
, libGL, libGLU, libXv, libXtst, libXi, libjpeg_turbo, fltk
|
||||
, xorg
|
||||
, opencl-headers, opencl-clhpp, ocl-icd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "virtualgl-lib";
|
||||
version = "2.6.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/virtualgl/VirtualGL-${version}.tar.gz";
|
||||
sha256 = "1giin3jmcs6y616bb44bpz30frsmj9f8pz2vg7jvb9vcfc9456rr";
|
||||
};
|
||||
|
||||
cmakeFlags = [ "-DVGL_SYSTEMFLTK=1" "-DTJPEG_LIBRARY=${libjpeg_turbo.out}/lib/libturbojpeg.so" ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
buildInputs = [ libjpeg_turbo libGL libGLU fltk
|
||||
libXv libXtst libXi xorg.xcbutilkeysyms
|
||||
opencl-headers opencl-clhpp ocl-icd
|
||||
];
|
||||
|
||||
fixupPhase = ''
|
||||
substituteInPlace $out/bin/vglrun \
|
||||
--replace "LD_PRELOAD=libvglfaker" "LD_PRELOAD=$out/lib/libvglfaker" \
|
||||
--replace "LD_PRELOAD=libdlfaker" "LD_PRELOAD=$out/lib/libdlfaker" \
|
||||
--replace "LD_PRELOAD=libgefaker" "LD_PRELOAD=$out/lib/libgefaker"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.virtualgl.org/";
|
||||
description = "X11 GL rendering in a remote computer with full 3D hw acceleration";
|
||||
license = licenses.wxWindows;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ abbradar ];
|
||||
};
|
||||
}
|
||||
41
pkgs/tools/X11/wayv/default.nix
Normal file
41
pkgs/tools/X11/wayv/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{lib, stdenv, fetchFromGitHub, fetchpatch, libX11}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wayv";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mikemb";
|
||||
repo = pname;
|
||||
rev = "b716877603250f690f08b593bf30fd5e8a93a872";
|
||||
sha256 = "046dvaq6na1fyxz5nrjg13aaz6ific9wbygck0dknqqfmmjrsv3b";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull patch pending upstream inclusion for -fno-common toolchain support:
|
||||
# https://github.com/mikemb/wayV/pull/1
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/mikemb/wayV/commit/b927793e2a2c92ff1f97b9df9e58c26e73e72012.patch";
|
||||
sha256 = "19i10966b0n710dic64p5ajsllkjnz16bp0crxfy9vv08hj1xygi";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
postInstall = ''
|
||||
make -C doc install
|
||||
mkdir -p "$out"/share/doc/wayv
|
||||
cp [A-Z][A-Z]* "$out"/share/doc/wayv
|
||||
cp doc/[A-Z][A-Z]* "$out"/share/doc/wayv
|
||||
cp doc/*.txt "$out"/share/doc/wayv
|
||||
cp doc/*.jpg "$out"/share/doc/wayv
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "A gesture control for X11";
|
||||
license = lib.licenses.gpl2Plus ;
|
||||
maintainers = [lib.maintainers.raskin];
|
||||
platforms = lib.platforms.linux;
|
||||
homepage = "https://github.com/mikemb/wayV";
|
||||
};
|
||||
}
|
||||
32
pkgs/tools/X11/wmctrl/64-bit-data.patch
Normal file
32
pkgs/tools/X11/wmctrl/64-bit-data.patch
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Description: Correct 64 Architecture implementation of 32 bit data
|
||||
Author: Chris Donoghue <cdonoghu@gmail.com>
|
||||
Bug-Debian: http://bugs.debian.org/362068
|
||||
|
||||
--- wmctrl-1.07.orig/main.c
|
||||
+++ wmctrl-1.07/main.c
|
||||
@@ -1425,6 +1425,16 @@ static gchar *get_property (Display *dis
|
||||
*
|
||||
* long_length = Specifies the length in 32-bit multiples of the
|
||||
* data to be retrieved.
|
||||
+ *
|
||||
+ * NOTE: see
|
||||
+ * http://mail.gnome.org/archives/wm-spec-list/2003-March/msg00067.html
|
||||
+ * In particular:
|
||||
+ *
|
||||
+ * When the X window system was ported to 64-bit architectures, a
|
||||
+ * rather peculiar design decision was made. 32-bit quantities such
|
||||
+ * as Window IDs, atoms, etc, were kept as longs in the client side
|
||||
+ * APIs, even when long was changed to 64 bits.
|
||||
+ *
|
||||
*/
|
||||
if (XGetWindowProperty(disp, win, xa_prop_name, 0, MAX_PROPERTY_VALUE_LEN / 4, False,
|
||||
xa_prop_type, &xa_ret_type, &ret_format,
|
||||
@@ -1441,6 +1451,8 @@ static gchar *get_property (Display *dis
|
||||
|
||||
/* null terminate the result to make string handling easier */
|
||||
tmp_size = (ret_format / 8) * ret_nitems;
|
||||
+ /* Correct 64 Architecture implementation of 32 bit data */
|
||||
+ if(ret_format==32) tmp_size *= sizeof(long)/4;
|
||||
ret = g_malloc(tmp_size + 1);
|
||||
memcpy(ret, ret_prop, tmp_size);
|
||||
ret[tmp_size] = '\0';
|
||||
35
pkgs/tools/X11/wmctrl/default.nix
Normal file
35
pkgs/tools/X11/wmctrl/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, libX11
|
||||
, glib
|
||||
, pkg-config
|
||||
, libXmu
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
pname = "wmctrl";
|
||||
version = "1.07";
|
||||
|
||||
src = fetchurl {
|
||||
# NOTE: 2019-04-11: There is also a semi-official mirror: http://tripie.sweb.cz/utils/wmctrl/
|
||||
url = "https://sites.google.com/site/tstyblo/wmctrl/${pname}-${version}.tar.gz";
|
||||
sha256 = "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
nativeBuildInputs = [ glib.dev ];
|
||||
buildInputs = [ libX11 libXmu glib ];
|
||||
|
||||
patches = [ ./64-bit-data.patch ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://sites.google.com/site/tstyblo/wmctrl";
|
||||
description = "CLI tool to interact with EWMH/NetWM compatible X Window Managers";
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = with lib.platforms; all;
|
||||
maintainers = [ lib.maintainers.Anton-Latukha ];
|
||||
};
|
||||
|
||||
}
|
||||
24
pkgs/tools/X11/wmutils-core/default.nix
Normal file
24
pkgs/tools/X11/wmutils-core/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxcb, xcbutil, xcb-util-cursor }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wmutils-core";
|
||||
version = "1.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wmutils";
|
||||
repo = "core";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Nv8ZTi3qVQyOkwyErjtE6/lLCubcLM2BRTY48r1HhHo=";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb xcbutil xcb-util-cursor ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Set of window manipulation tools";
|
||||
homepage = "https://github.com/wmutils/core";
|
||||
license = licenses.isc;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
25
pkgs/tools/X11/wmutils-libwm/default.nix
Normal file
25
pkgs/tools/X11/wmutils-libwm/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxcb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wmutils-libwm";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wmutils";
|
||||
repo = "libwm";
|
||||
rev = "v${version}";
|
||||
sha256 = "1lpbqrilhffpzc0b7vnp08jr1wr96lndwc7y0ck8hlbzlvm662l0";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A small library for X window manipulation";
|
||||
homepage = "https://github.com/wmutils/libwm";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ bhougland ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
25
pkgs/tools/X11/wmutils-opt/default.nix
Normal file
25
pkgs/tools/X11/wmutils-opt/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libxcb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wmutils-opt";
|
||||
version = "1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wmutils";
|
||||
repo = "opt";
|
||||
rev = "v${version}";
|
||||
sha256 = "0gd05qsir1lnzfrbnfh08qwsryz7arwj20f886nqh41m87yqaljz";
|
||||
};
|
||||
|
||||
buildInputs = [ libxcb ];
|
||||
|
||||
installFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Optional addons to wmutils";
|
||||
homepage = "https://github.com/wmutils/opt";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ vifino ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
51
pkgs/tools/X11/wpgtk/default.nix
Normal file
51
pkgs/tools/X11/wpgtk/default.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ lib, python3Packages, fetchFromGitHub, libxslt,
|
||||
gobject-introspection, gtk3, wrapGAppsHook, gnome }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "wpgtk";
|
||||
version = "6.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deviantfero";
|
||||
repo = "wpgtk";
|
||||
rev = version;
|
||||
sha256 = "0gv607jrdfbmadjyy3pbrj5ksh1dmaw5hz7l8my2z7sh0ifds0n2";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
wrapGAppsHook
|
||||
gtk3
|
||||
gobject-introspection
|
||||
gnome.adwaita-icon-theme
|
||||
libxslt
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
pygobject3
|
||||
pillow
|
||||
pywal
|
||||
];
|
||||
|
||||
# The $HOME variable must be set to build the package. A "permission denied" error will occur otherwise
|
||||
preBuild = ''
|
||||
export HOME=$(pwd)
|
||||
'';
|
||||
|
||||
# No test exist
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Template based wallpaper/colorscheme generator and manager";
|
||||
longDescription = ''
|
||||
In short, wpgtk is a colorscheme/wallpaper manager with a template system attached which lets you create templates from any textfile and will replace keywords on it on the fly, allowing for great styling and theming possibilities.
|
||||
|
||||
wpgtk uses pywal as its colorscheme generator, but builds upon it with a UI and other features, such as the abilty to mix and edit the colorschemes generated and save them with their respective wallpapers, having light and dark themes, hackable and fast GTK theme made specifically for wpgtk and custom keywords and values to replace in templates.
|
||||
|
||||
INFO: To work properly, this tool needs "programs.dconf.enable = true" on nixos or dconf installed. A reboot may be required after installing dconf.
|
||||
'';
|
||||
homepage = "https://github.com/deviantfero/wpgtk";
|
||||
license = licenses.gpl2Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.melkor333 ];
|
||||
};
|
||||
}
|
||||
33
pkgs/tools/X11/x11spice/default.nix
Normal file
33
pkgs/tools/X11/x11spice/default.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config
|
||||
, xorg, gtk2, spice, spice-protocol
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x11spice";
|
||||
version = "2019-08-20";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "spice";
|
||||
repo = "x11spice";
|
||||
rev = "51d2a8ba3813469264959bb3ba2fc6fe08097be6";
|
||||
sha256 = "0va5ix14vnqch59gq8wvrhw6q0w0n27sy70xx5kvfj2cl0h1xpg8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
xorg.libxcb xorg.xcbutil xorg.utilmacros
|
||||
gtk2 spice spice-protocol
|
||||
];
|
||||
|
||||
NIX_LDFLAGS = "-lpthread";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Enable a running X11 desktop to be available via a Spice server";
|
||||
homepage = "https://gitlab.freedesktop.org/spice/x11spice";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ rnhmjoj ];
|
||||
};
|
||||
}
|
||||
65
pkgs/tools/X11/x11vnc/default.nix
Normal file
65
pkgs/tools/X11/x11vnc/default.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch,
|
||||
openssl, zlib, libjpeg, xorg, coreutils, libvncserver,
|
||||
autoreconfHook, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x11vnc";
|
||||
version = "0.9.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LibVNC";
|
||||
repo = "x11vnc";
|
||||
rev = version;
|
||||
sha256 = "1g652mmi79pfq4p5p7spaswa164rpzjhc5rn2phy5pm71lm0vib1";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "CVE-2020-29074.patch";
|
||||
url = "https://github.com/LibVNC/x11vnc/commit/69eeb9f7baa14ca03b16c9de821f9876def7a36a.patch";
|
||||
sha256 = "0hdhp32g2i5m0ihmaxkxhsn3d5f2qasadvwpgxify4xnzabmyb2d";
|
||||
})
|
||||
|
||||
# Pull upstream fix for -fno-common toolchains:
|
||||
# https://github.com/LibVNC/x11vnc/pull/121
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/LibVNC/x11vnc/commit/a48b0b1cd887d7f3ae67f525d7d334bd2feffe60.patch";
|
||||
sha256 = "046gjsmg0vm0m4y9ny17y2jayc4ba7vib2whw71l5x1hjp6pksjs";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
||||
buildInputs =
|
||||
[ xorg.libXfixes xorg.xorgproto openssl xorg.libXdamage
|
||||
zlib xorg.libX11 libjpeg
|
||||
xorg.libXtst xorg.libXinerama xorg.libXrandr
|
||||
xorg.libXext
|
||||
xorg.libXi xorg.libXrender
|
||||
libvncserver
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/unixpw.c \
|
||||
--replace '"/bin/su"' '"/run/wrappers/bin/su"' \
|
||||
--replace '"/bin/true"' '"${coreutils}/bin/true"'
|
||||
|
||||
sed -i -e '/#!\/bin\/sh/a"PATH=${xorg.xdpyinfo}\/bin:${xorg.xauth}\/bin:$PATH\\n"' -e 's|/bin/su|/run/wrappers/bin/su|g' src/ssltools.h
|
||||
|
||||
# Xdummy script is currently broken, so we avoid building it. This removes everything Xdummy-related from the affected Makefile
|
||||
sed -i -e '/^\tXdummy.c\ \\$/,$d' -e 's/\tx11vnc_loop\ \\/\tx11vnc_loop/' misc/Makefile.am
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
configureFlags="--mandir=$out/share/man"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A VNC server connected to a real X11 screen";
|
||||
homepage = "https://github.com/LibVNC/x11vnc/";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
};
|
||||
}
|
||||
24
pkgs/tools/X11/x2vnc/default.nix
Normal file
24
pkgs/tools/X11/x2vnc/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchurl, xorg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x2vnc";
|
||||
version = "1.7.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://fredrik.hubbe.net/x2vnc/x2vnc-${version}.tar.gz";
|
||||
sha256 = "00bh9j3m6snyd2fgnzhj5vlkj9ibh69gfny9bfzlxbnivb06s1yw";
|
||||
};
|
||||
|
||||
buildInputs = with xorg; [
|
||||
libX11 xorgproto libXext libXrandr
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://fredrik.hubbe.net/x2vnc.html";
|
||||
description = "A program to control a remote VNC server";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.gpl2;
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/x2x/default.nix
Normal file
30
pkgs/tools/X11/x2x/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchurl, imake, libX11, libXtst, libXext, gccmakedep }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x2x";
|
||||
version = "1.27";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/downloads/dottedmag/x2x/x2x-${version}.tar.gz";
|
||||
sha256 = "0dha0kn1lbc4as0wixsvk6bn4innv49z9a0sm5wlx4q1v0vzqzyj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ imake gccmakedep ];
|
||||
buildInputs = [ libX11 libXtst libXext ];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
buildFlags = [ "x2x" ];
|
||||
|
||||
installPhase = ''
|
||||
install -D x2x $out/bin/x2x
|
||||
install -D x2x.1 $out/man/man1/x2x.1
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Allows the keyboard, mouse on one X display to be used to control another X display";
|
||||
homepage = "https://github.com/dottedmag/x2x";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
32
pkgs/tools/X11/xannotate/default.nix
Normal file
32
pkgs/tools/X11/xannotate/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{lib, stdenv, fetchFromBitbucket, fetchpatch, libX11}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xannotate";
|
||||
version = "20150301";
|
||||
|
||||
src = fetchFromBitbucket {
|
||||
owner = "blais";
|
||||
repo = pname;
|
||||
rev = "e5591c2ec67ca39988f1fb2966e94f0f623f9aa7";
|
||||
sha256 = "02jy19if0rnbxvs6b0l5mi9ifvdj2qmv0pv278v9kfs0kvir68ik";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull patch pending upstream inclusion for -gno-common tollchains:
|
||||
# https://github.com/blais/xannotate/pull/1
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://github.com/blais/xannotate/commit/ee637e2dee103d0e654865c2202ea1b3af2a20d6.patch";
|
||||
sha256 = "1lw22d5qs1bwp53l332yl3yypfvwrbi750wp7yv90nfn3ia0xhni";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
meta = {
|
||||
description = "A tool to scribble over X windows";
|
||||
license = lib.licenses.gpl2Plus ;
|
||||
maintainers = [lib.maintainers.raskin];
|
||||
platforms = lib.platforms.linux;
|
||||
homepage = "https://github.com/blais/xannotate";
|
||||
};
|
||||
}
|
||||
21
pkgs/tools/X11/xautomation/default.nix
Normal file
21
pkgs/tools/X11/xautomation/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libpng, libX11, libXext, libXi, libXtst }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xautomation";
|
||||
version = "1.09";
|
||||
src = fetchurl {
|
||||
url = "https://www.hoopajoo.net/static/projects/xautomation-${version}.tar.gz";
|
||||
sha256 = "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libpng libX11 libXext libXi libXtst ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.hoopajoo.net/projects/xautomation.html";
|
||||
description = "Control X from the command line for scripts, and do \"visual scraping\" to find things on the screen";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ vaibhavsagar ];
|
||||
platforms = with lib.platforms; linux;
|
||||
};
|
||||
}
|
||||
42
pkgs/tools/X11/xbanish/default.nix
Normal file
42
pkgs/tools/X11/xbanish/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{lib, stdenv, fetchFromGitHub, libX11, libXi, libXt, libXfixes, libXext}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.8";
|
||||
pname = "xbanish";
|
||||
|
||||
buildInputs = [
|
||||
libX11 libXi libXt libXfixes libXext
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jcs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jwCoJ2shFGuJHhmXmlw/paFpMl5ARD6e5zDnDZHlsoo=";
|
||||
};
|
||||
|
||||
makeFlags=[ "PREFIX=$(out)" ];
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $out/bin $out/man/man1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Hides mouse pointer while not in use";
|
||||
longDescription = ''
|
||||
xbanish hides the mouse cursor when you start typing, and shows it again when
|
||||
the mouse cursor moves or a mouse button is pressed. This is similar to
|
||||
xterm's pointerMode setting, but xbanish works globally in the X11 session.
|
||||
|
||||
unclutter's -keystroke mode is supposed to do this, but it's broken[0]. I
|
||||
looked into fixing it, but the unclutter source code is terrible, so I wrote
|
||||
xbanish.
|
||||
|
||||
The name comes from ratpoison's "banish" command that sends the cursor to the
|
||||
corner of the screen.
|
||||
'';
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = [lib.maintainers.choochootrain];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
42
pkgs/tools/X11/xbindkeys-config/default.nix
Normal file
42
pkgs/tools/X11/xbindkeys-config/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ lib, stdenv, fetchurl, gtk, pkg-config, procps, makeWrapper, ... }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xbindkeys-config";
|
||||
version = "0.1.3";
|
||||
|
||||
# Workaround build failure on -fno-common toolchains like upstream
|
||||
# gcc-10.
|
||||
NIX_CFLAGS_COMPILE = "-fcommon";
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
buildInputs = [ gtk ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/x/xbindkeys-config/xbindkeys-config_${version}.orig.tar.gz";
|
||||
sha256 = "1rs3li2hyig6cdzvgqlbz0vw6x7rmgr59qd6m0cvrai8xhqqykda";
|
||||
};
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://packages.debian.org/source/xbindkeys-config";
|
||||
description = "Graphical interface for configuring xbindkeys";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [benley];
|
||||
platforms = with lib.platforms; linux;
|
||||
};
|
||||
|
||||
patches = [ ./xbindkeys-config-patch1.patch ];
|
||||
|
||||
# killall is dangerous on non-gnu platforms. Use pkill instead.
|
||||
postPatch = ''
|
||||
substituteInPlace middle.c --replace "killall" "pkill -x"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/share/man/man1
|
||||
gzip -c ${./xbindkeys-config.1} > $out/share/man/man1/xbindkeys-config.1.gz
|
||||
cp xbindkeys_config $out/bin/xbindkeys-config
|
||||
wrapProgram $out/bin/xbindkeys-config --prefix PATH ":" "${procps}/bin"
|
||||
'';
|
||||
}
|
||||
108
pkgs/tools/X11/xbindkeys-config/xbindkeys-config-patch1.patch
Normal file
108
pkgs/tools/X11/xbindkeys-config/xbindkeys-config-patch1.patch
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
---
|
||||
Makefile | 6 +++---
|
||||
menu.c | 11 ++++++++---
|
||||
middle.c | 9 +++++++--
|
||||
xbindkeys_config.c | 3 ++-
|
||||
4 files changed, 20 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 602875c..28e46cd 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,9 +1,9 @@
|
||||
# makefile crée par Laurent VUIBERT
|
||||
|
||||
-CC= gcc -O3 -Wall
|
||||
+CC= gcc $(CFLAGS)
|
||||
STD= _GNU_SOURCE
|
||||
-GTK= `gtk-config --cflags --libs`
|
||||
-GTK2= `gtk-config --cflags`
|
||||
+GTK= `pkg-config --cflags --libs gtk+-2.0`
|
||||
+GTK2= `pkg-config --cflags gtk+-2.0`
|
||||
OBJS= xbindkeys_config.o menu.o middle.o speedc.o
|
||||
NOM= xbindkeys_config
|
||||
|
||||
diff --git a/menu.c b/menu.c
|
||||
index ed3e7ec..f11526d 100644
|
||||
--- a/menu.c
|
||||
+++ b/menu.c
|
||||
@@ -283,6 +283,8 @@ void menu_manual (GtkMenuItem *menuitem, gpointer user_data)
|
||||
GtkWidget *window;
|
||||
GtkWidget *text;
|
||||
GtkWidget *vbox;
|
||||
+ GtkTextBuffer *textbuffer;
|
||||
+ GtkTextIter iter;
|
||||
|
||||
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
|
||||
gtk_window_set_title(GTK_WINDOW(window),
|
||||
@@ -293,10 +295,13 @@ void menu_manual (GtkMenuItem *menuitem, gpointer user_data)
|
||||
text = gtk_label_new("\nManual\n");
|
||||
gtk_box_pack_start(GTK_BOX(vbox), text, FALSE, FALSE, 0);
|
||||
|
||||
- text = gtk_text_new(NULL,NULL);
|
||||
+/* BDD - FIXME */
|
||||
+/* text = gtk_text_new(NULL,NULL); */
|
||||
+ text = gtk_text_view_new();
|
||||
+ textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
|
||||
+ gtk_text_buffer_get_iter_at_offset (textbuffer, &iter, 0);
|
||||
|
||||
-
|
||||
- gtk_text_insert (GTK_TEXT(text), NULL, NULL, NULL,
|
||||
+ gtk_text_buffer_insert (textbuffer, &iter,
|
||||
MANUAL_TEXT, sizeof(MANUAL_TEXT)-1);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 0);
|
||||
gtk_widget_set_usize(text,300,250);
|
||||
diff --git a/middle.c b/middle.c
|
||||
index daa61aa..605ab10 100644
|
||||
--- a/middle.c
|
||||
+++ b/middle.c
|
||||
@@ -551,6 +551,8 @@ void view_generated_file()
|
||||
GtkWidget *window;
|
||||
GtkWidget *text;
|
||||
GtkWidget *src;
|
||||
+ GtkTextBuffer *textbuffer;
|
||||
+ GtkTextIter iter;
|
||||
char line [1024];
|
||||
|
||||
unlink(TEMP_FILE);
|
||||
@@ -561,11 +563,13 @@ void view_generated_file()
|
||||
gtk_window_set_title(GTK_WINDOW(window), "Generated File");
|
||||
src = gtk_scrolled_window_new ( NULL, NULL );
|
||||
gtk_widget_set_usize(src,500,400);
|
||||
- text = gtk_text_new (NULL, NULL);
|
||||
+ text = gtk_text_view_new ();
|
||||
+ textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
|
||||
+ gtk_text_buffer_get_iter_at_offset (textbuffer, &iter, 0);
|
||||
gtk_container_add (GTK_CONTAINER(src), text);
|
||||
|
||||
while (fgets (line, sizeof(line), f))
|
||||
- gtk_text_insert (GTK_TEXT(text), NULL, NULL, NULL,
|
||||
+ gtk_text_buffer_insert (textbuffer, &iter,
|
||||
line, strlen(line));
|
||||
|
||||
gtk_container_add(GTK_CONTAINER(window),src);
|
||||
@@ -610,6 +614,7 @@ void save_file(char file_out[])
|
||||
fprintf(f, "# m:xxx + c:xxx \n");
|
||||
fprintf(f, "# Shift+... \n\n\n\n\n");
|
||||
|
||||
+
|
||||
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Flag_NumLock)))
|
||||
fprintf(f,"keystate_numlock = enable\n");
|
||||
else
|
||||
diff --git a/xbindkeys_config.c b/xbindkeys_config.c
|
||||
index 75bad30..3c02a2b 100644
|
||||
--- a/xbindkeys_config.c
|
||||
+++ b/xbindkeys_config.c
|
||||
@@ -95,7 +95,8 @@ int main (int argc, char *argv[])
|
||||
accel_group = gtk_accel_group_new();
|
||||
menu=xbindkeys_config_menu(accel_group);
|
||||
gtk_box_pack_start(GTK_BOX(vbox),menu,FALSE,FALSE,0);
|
||||
- gtk_accel_group_attach(accel_group, GTK_OBJECT(window));
|
||||
+/* BDD - FIXME - Don't need this? */
|
||||
+/* gtk_accel_group_attach(accel_group, GTK_OBJECT(window)); */
|
||||
|
||||
middle= xbindkeys_config_middle();
|
||||
gtk_box_pack_start(GTK_BOX(vbox),middle,TRUE,TRUE,0);
|
||||
--
|
||||
2.1.3
|
||||
|
||||
21
pkgs/tools/X11/xbindkeys-config/xbindkeys-config.1
Normal file
21
pkgs/tools/X11/xbindkeys-config/xbindkeys-config.1
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27.
|
||||
.TH XBINDKEYS_CONFIG "1" "April 2002" "xbindkeys-config" "User Commands"
|
||||
.SH NAME
|
||||
xbindkeys-config \- GTK+ configuration tool for xbindkeys
|
||||
.SH "SYNOPSIS"
|
||||
xbindkeys-config
|
||||
[\-\-file|\-f file]
|
||||
[\-\-help|\-h]
|
||||
[\-\-show|\-s]
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
This Help
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-file\fR
|
||||
Use an alternative rc file
|
||||
.TP
|
||||
\fB\-s\fR, \fB\-\-show\fR
|
||||
show only the rc file
|
||||
.SH AUTHOR
|
||||
This manual page was written by Joerg Jaspert <joerg@debian.org>,
|
||||
for the Debian GNU/Linux system (but may be used by others).
|
||||
21
pkgs/tools/X11/xbindkeys/default.nix
Normal file
21
pkgs/tools/X11/xbindkeys/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, libX11, guile }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xbindkeys";
|
||||
version = "1.8.7";
|
||||
src = fetchurl {
|
||||
url = "https://www.nongnu.org/xbindkeys/xbindkeys-${version}.tar.gz";
|
||||
sha256 = "1wl2vc5alisiwyk8m07y1ryq8w3ll9ym83j27g4apm4ixjl8d6x2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 guile ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.nongnu.org/xbindkeys/xbindkeys.html";
|
||||
description = "Launch shell commands with your keyboard or your mouse under X Window";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [viric];
|
||||
platforms = with lib.platforms; linux;
|
||||
};
|
||||
}
|
||||
25
pkgs/tools/X11/xbrightness/default.nix
Normal file
25
pkgs/tools/X11/xbrightness/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchurl, imake, gccmakedep
|
||||
, libX11, libXaw, libXext, libXmu, libXpm, libXxf86vm }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xbrightness";
|
||||
version = "0.3-mika-akk";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://shallowsky.com/software/xbrightness/xbrightness-${version}.tar.gz";
|
||||
sha256 = "2564dbd393544657cdabe4cbf535d9cfb9abe8edddb1b8cdb1ed4d12f358626e";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ imake gccmakedep ];
|
||||
buildInputs = [ libX11 libXaw libXext libXmu libXpm libXxf86vm ];
|
||||
|
||||
makeFlags = [ "BINDIR=$(out)/bin" "MANPATH=$(out)/share/man" ];
|
||||
installTargets = [ "install" "install.man" ];
|
||||
|
||||
meta = {
|
||||
description = "X11 brigthness and gamma software control";
|
||||
homepage = "http://shallowsky.com/software";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
28
pkgs/tools/X11/xcalib/default.nix
Normal file
28
pkgs/tools/X11/xcalib/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11, libXxf86vm, libXext, libXrandr }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xcalib";
|
||||
version = "0.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenICC";
|
||||
repo = "xcalib";
|
||||
rev = version;
|
||||
sha256 = "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 libXxf86vm libXext libXrandr ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp xcalib $out/bin/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "A tiny monitor calibration loader for X and MS-Windows";
|
||||
license = licenses.gpl2;
|
||||
maintainers = [];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
41
pkgs/tools/X11/xcape/default.nix
Normal file
41
pkgs/tools/X11/xcape/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, libX11, libXtst, xorgproto,
|
||||
libXi }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xcape";
|
||||
version = "unstable-2018-03-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alols";
|
||||
repo = pname;
|
||||
rev = "a34d6bae27bbd55506852f5ed3c27045a3c0bd9e";
|
||||
sha256 = "04grs4w9kpfzz25mqw82zdiy51g0w355gpn5b170p7ha5972ykc8";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [ libX11 libXtst xorgproto libXi ];
|
||||
|
||||
makeFlags = [
|
||||
"PREFIX=$(out)"
|
||||
"MANDIR=/share/man/man1"
|
||||
];
|
||||
|
||||
postInstall = "install -Dm444 --target-directory $out/share/doc README.md";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Utility to configure modifier keys to act as other keys";
|
||||
longDescription = ''
|
||||
xcape allows you to use a modifier key as another key when
|
||||
pressed and released on its own. Note that it is slightly
|
||||
slower than pressing the original key, because the pressed event
|
||||
does not occur until the key is released. The default behaviour
|
||||
is to generate the Escape key when Left Control is pressed and
|
||||
released on its own.
|
||||
'';
|
||||
homepage = "https://github.com/alols/xcape";
|
||||
license = licenses.gpl3 ;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
20
pkgs/tools/X11/xchainkeys/default.nix
Normal file
20
pkgs/tools/X11/xchainkeys/default.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ lib, stdenv, fetchurl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xchainkeys";
|
||||
version = "0.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://henning-bekel.de/download/xchainkeys/xchainkeys-${version}.tar.gz";
|
||||
sha256 = "1rpqs7h5krral08vqxwb0imy33z17v5llvrg5hy8hkl2ap7ya0mn";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://henning-bekel.de/xchainkeys/";
|
||||
description = "A standalone X11 program to create chained key bindings";
|
||||
license = lib.licenses.gpl3;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/X11/xcwd/default.nix
Normal file
31
pkgs/tools/X11/xcwd/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libX11 }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
version = "2019-05-09";
|
||||
pname = "xcwd";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "schischi";
|
||||
repo = "xcwd";
|
||||
rev = "99738e1176acf3f39c2e709236c3fd87b806f2ed";
|
||||
sha256 = "1wvhj5x8ysi1q73f9cw1f6znvp2zivd8pp6z1p3znw732h4zlv6v";
|
||||
};
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
makeFlags = [ "prefix=$(out)" ];
|
||||
|
||||
installPhase = ''
|
||||
install -D xcwd "$out/bin/xcwd"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = ''
|
||||
A simple tool which print the current working directory of the currently focused window
|
||||
'';
|
||||
homepage = "https://github.com/schischi/xcwd";
|
||||
maintainers = [ maintainers.grburst ];
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
27
pkgs/tools/X11/xdg-user-dirs/default.nix
Normal file
27
pkgs/tools/X11/xdg-user-dirs/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchurl, libxslt, docbook_xsl, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdg-user-dirs";
|
||||
version = "0.17";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://user-dirs.freedesktop.org/releases/xdg-user-dirs-${version}.tar.gz";
|
||||
sha256 = "13216b8rfkzak5k6bvpx6jvqv3cnbgpijnjwj8a8d3kq4cl0a1ra";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper libxslt docbook_xsl ];
|
||||
|
||||
preFixup = ''
|
||||
# fallback values need to be last
|
||||
wrapProgram "$out/bin/xdg-user-dirs-update" \
|
||||
--suffix XDG_CONFIG_DIRS : "$out/etc/xdg"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://freedesktop.org/wiki/Software/xdg-user-dirs";
|
||||
description = "A tool to help manage well known user directories like the desktop folder and the music folder";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
70
pkgs/tools/X11/xdg-utils/default.nix
Normal file
70
pkgs/tools/X11/xdg-utils/default.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{ lib, stdenv, fetchFromGitLab, fetchFromGitHub
|
||||
, file, libxslt, docbook_xml_dtd_412, docbook_xsl, xmlto
|
||||
, w3m, gnugrep, gnused, coreutils, xset, perlPackages
|
||||
, mimiSupport ? false, gawk }:
|
||||
|
||||
let
|
||||
# A much better xdg-open
|
||||
mimisrc = fetchFromGitHub {
|
||||
owner = "march-linux";
|
||||
repo = "mimi";
|
||||
rev = "8e0070f17bcd3612ee83cb84e663e7c7fabcca3d";
|
||||
sha256 = "15gw2nyrqmdsdin8gzxihpn77grhk9l97jp7s7pr7sl4n9ya2rpj";
|
||||
};
|
||||
|
||||
perlPath = with perlPackages; makePerlPath [
|
||||
NetDBus XMLTwig XMLParser X11Protocol
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdg-utils";
|
||||
version = "unstable-2020-10-21";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "xdg";
|
||||
repo = "xdg-utils";
|
||||
rev = "d11b33ec7f24cfb1546f6b459611d440013bdc72";
|
||||
sha256 = "sha256-8PtXfI8hRneEpnUvIV3M+6ACjlkx0w/NEiJFdGbbHnQ=";
|
||||
};
|
||||
|
||||
# just needed when built from git
|
||||
buildInputs = [ libxslt docbook_xml_dtd_412 docbook_xsl xmlto w3m ];
|
||||
|
||||
postInstall = lib.optionalString mimiSupport ''
|
||||
cp ${mimisrc}/xdg-open $out/bin/xdg-open
|
||||
'' + ''
|
||||
sed '2s#.#\
|
||||
sed() { ${gnused}/bin/sed "$@"; }\
|
||||
grep() { ${gnugrep}/bin/grep "$@"; }\
|
||||
egrep() { ${gnugrep}/bin/egrep "$@"; }\
|
||||
file() { ${file}/bin/file "$@"; }\
|
||||
awk() { ${gawk}/bin/awk "$@"; }\
|
||||
xset() { ${xset}/bin/xset "$@"; }\
|
||||
perl() { PERL5LIB=${perlPath} ${perlPackages.perl}/bin/perl "$@"; }\
|
||||
mimetype() { ${perlPackages.FileMimeInfo}/bin/mimetype "$@"; }\
|
||||
PATH=$PATH:'$out'/bin:${coreutils}/bin\
|
||||
&#' -i "$out"/bin/*
|
||||
|
||||
substituteInPlace $out/bin/xdg-open \
|
||||
--replace "/usr/bin/printf" "${coreutils}/bin/printf"
|
||||
|
||||
substituteInPlace $out/bin/xdg-mime \
|
||||
--replace "/usr/bin/file" "${file}/bin/file"
|
||||
|
||||
substituteInPlace $out/bin/xdg-email \
|
||||
--replace "/bin/echo" "${coreutils}/bin/echo"
|
||||
|
||||
sed 's|\bwhich\b|type -P|g' -i "$out"/bin/*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.freedesktop.org/wiki/Software/xdg-utils/";
|
||||
description = "A set of command line tools that assist applications with a variety of desktop integration tasks";
|
||||
license = if mimiSupport then licenses.gpl2 else licenses.free;
|
||||
maintainers = [ maintainers.eelco ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/xdotool/default.nix
Normal file
30
pkgs/tools/X11/xdotool/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, libX11, perl, libXtst, xorgproto, libXi, libXinerama, libxkbcommon, libXext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdotool";
|
||||
version = "3.20211022.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jordansissel";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-XFiaiHHtUSNFw+xhUR29+2RUHOa+Eyj1HHfjCUjwd9k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config perl ];
|
||||
buildInputs = [ libX11 libXtst xorgproto libXi libXinerama libxkbcommon libXext ];
|
||||
|
||||
preBuild = ''
|
||||
mkdir -p $out/lib
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.semicomplete.com/projects/xdotool/";
|
||||
description = "Fake keyboard/mouse input, window management, and more";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [viric];
|
||||
platforms = with lib.platforms; linux;
|
||||
};
|
||||
}
|
||||
28
pkgs/tools/X11/xdragon/default.nix
Normal file
28
pkgs/tools/X11/xdragon/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, gtk3 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdragon";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mwh";
|
||||
repo = "dragon";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wqG6idlVvdN+sPwYgWu3UL0la5ssvymZibiak3KeV7M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gtk3 ];
|
||||
|
||||
installFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
postInstall = ''
|
||||
ln -s $out/bin/dragon $out/bin/xdragon
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple drag-and-drop source/sink for X (called dragon in upstream)";
|
||||
homepage = "https://github.com/mwh/dragon";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ das_j ];
|
||||
};
|
||||
}
|
||||
31
pkgs/tools/X11/xgeometry-select/default.nix
Normal file
31
pkgs/tools/X11/xgeometry-select/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ lib, stdenv, fetchurl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xgeometry-select";
|
||||
version = "0.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gist.githubusercontent.com/obadz/7e008b1f803c4cdcfaf7321c78bcbe92/raw/7e7361e71ff0f74655ee92bd6d2c042f8586f2ae/xgeometry-select.c";
|
||||
sha256 = "0s7kirgh5iz91m3qy8xiq0j4gljy8zrcnylf4szl5h0lrsaqj7ya";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
buildPhase = ''
|
||||
gcc -Wall -lX11 ${src} -o xgeometry-select
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mv -v xgeometry-select $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Select a region with mouse and prints geometry information (x/y/w/h)";
|
||||
homepage = "https://bbs.archlinux.org/viewtopic.php?pid=660837";
|
||||
maintainers = with maintainers; [ obadz ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
49
pkgs/tools/X11/xidlehook/default.nix
Normal file
49
pkgs/tools/X11/xidlehook/default.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, rustPlatform
|
||||
, fetchFromGitLab
|
||||
, python3
|
||||
, xlibsWrapper
|
||||
, xorg
|
||||
, libpulseaudio
|
||||
, pkg-config
|
||||
, patchelf
|
||||
, Security
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "xidlehook";
|
||||
version = "0.10.0";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "jD91mZM2";
|
||||
repo = "xidlehook";
|
||||
rev = version;
|
||||
|
||||
sha256 = "1pl7f8fhxfcy0c6c08vkagp0x1ak96vc5wgamigrk1nkd6l371lb";
|
||||
};
|
||||
|
||||
cargoSha256 = "1y7m61j07gvqfqz97mda39nc602sv7a826c06m8l22i7z380xfms";
|
||||
|
||||
buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
|
||||
nativeBuildInputs = [ pkg-config patchelf python3 ];
|
||||
|
||||
buildNoDefaultFeatures = !stdenv.isLinux;
|
||||
buildFeatures = lib.optional (!stdenv.isLinux) "pulse";
|
||||
|
||||
postFixup = lib.optionalString stdenv.isLinux ''
|
||||
RPATH="$(patchelf --print-rpath $out/bin/xidlehook)"
|
||||
patchelf --set-rpath "$RPATH:${libpulseaudio}/lib" $out/bin/xidlehook
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "xautolock rewrite in Rust, with a few extra features";
|
||||
homepage = "https://github.com/jD91mZM2/xidlehook";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.unix;
|
||||
badPlatforms = platforms.darwin;
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/xinput_calibrator/default.nix
Normal file
26
pkgs/tools/X11/xinput_calibrator/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchFromGitHub, libXi, xorgproto, autoconf, automake, libtool, m4, xlibsWrapper, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xinput_calibrator";
|
||||
version = "0.7.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tias";
|
||||
repo = "xinput_calibrator";
|
||||
rev = "v${version}";
|
||||
sha256 = "5ZkNw+CKNUcPt1PY5PLzB/OT2wcf5n3UcaQlmMcwRVE=";
|
||||
};
|
||||
|
||||
preConfigure = "./autogen.sh --with-gui=X11";
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoconf automake ];
|
||||
buildInputs = [ xorgproto libXi libtool m4 xlibsWrapper ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/tias/xinput_calibrator";
|
||||
description = "A generic touchscreen calibration program for X.Org";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.flosse ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
34
pkgs/tools/X11/xkb-switch-i3/default.nix
Normal file
34
pkgs/tools/X11/xkb-switch-i3/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv
|
||||
, cmake
|
||||
, fetchFromGitHub
|
||||
, i3
|
||||
, jsoncpp
|
||||
, libsigcxx
|
||||
, libX11
|
||||
, libxkbfile
|
||||
, pkg-config
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xkb-switch-i3";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Zebradil";
|
||||
repo = "xkb-switch-i3";
|
||||
rev = version;
|
||||
sha256 = "15c19hp0n1k3w15qn97j6wp5b8hbk0mq6x3xjfn6dkkjfz1fl6cn";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
buildInputs = [ i3 jsoncpp libsigcxx libX11 libxkbfile ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Switch your X keyboard layouts from the command line(i3 edition)";
|
||||
homepage = "https://github.com/Zebradil/xkb-switch-i3";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ ewok ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
24
pkgs/tools/X11/xkb-switch/default.nix
Normal file
24
pkgs/tools/X11/xkb-switch/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, libX11, libxkbfile }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xkb-switch";
|
||||
version = "1.8.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ierton";
|
||||
repo = "xkb-switch";
|
||||
rev = version;
|
||||
sha256 = "sha256-DZAIL6+D+Hgs+fkJwRaQb9BHrEjAkxiqhOZyrR+Mpuk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ libX11 libxkbfile ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Switch your X keyboard layouts from the command line";
|
||||
homepage = "https://github.com/ierton/xkb-switch";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ smironov ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
34
pkgs/tools/X11/xkbset/default.nix
Normal file
34
pkgs/tools/X11/xkbset/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchurl, perl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xkbset";
|
||||
version = "0.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://faculty.missouri.edu/~stephen/software/xkbset/xkbset-${version}.tar.gz";
|
||||
sha256 = "sha256-rAMv7EnExPDyMY0/RhiXDFFBkbFC4GxRpmH+I0KlNaU=";
|
||||
};
|
||||
|
||||
buildInputs = [ perl libX11 ];
|
||||
|
||||
postPatch = ''
|
||||
sed "s:^X11PREFIX=.*:X11PREFIX=$out:" -i Makefile
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/man/man1
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -f $out/bin/xkbset-gui
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://faculty.missouri.edu/~stephen/software/#xkbset";
|
||||
description = "Program to help manage many of XKB features of X window";
|
||||
maintainers = with maintainers; [ drets ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
15
pkgs/tools/X11/xkbvalidate/default.nix
Normal file
15
pkgs/tools/X11/xkbvalidate/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ lib, runCommandCC, libxkbcommon }:
|
||||
|
||||
runCommandCC "xkbvalidate" {
|
||||
buildInputs = [ libxkbcommon ];
|
||||
meta = {
|
||||
description = "NixOS tool to validate X keyboard configuration";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = [ lib.maintainers.aszlig ];
|
||||
};
|
||||
} ''
|
||||
mkdir -p "$out/bin"
|
||||
$CC -std=c11 -Wall -pedantic -lxkbcommon ${./xkbvalidate.c} \
|
||||
-o "$out/bin/xkbvalidate"
|
||||
''
|
||||
150
pkgs/tools/X11/xkbvalidate/xkbvalidate.c
Normal file
150
pkgs/tools/X11/xkbvalidate/xkbvalidate.c
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
|
||||
static char **log_buffer = NULL;
|
||||
static int log_buffer_size = 0;
|
||||
static bool log_alloc_success = true;
|
||||
|
||||
static void add_log(struct xkb_context *ctx, enum xkb_log_level level,
|
||||
const char *fmt, va_list args)
|
||||
{
|
||||
size_t buflen;
|
||||
va_list tmpargs;
|
||||
|
||||
log_buffer_size++;
|
||||
|
||||
if (log_buffer == NULL)
|
||||
log_buffer = malloc(sizeof(char *));
|
||||
else
|
||||
log_buffer = realloc(log_buffer, sizeof(char *) * log_buffer_size);
|
||||
|
||||
if (log_buffer == NULL) {
|
||||
perror("buffer alloc");
|
||||
log_alloc_success = false;
|
||||
log_buffer_size--;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Unfortunately, vasprintf() is a GNU extension and thus not very
|
||||
* portable, so let's first get the required buffer size using a dummy
|
||||
* vsnprintf and afterwards allocate the returned amount of bytes.
|
||||
*
|
||||
* We also need to make a copy of the args, because the value of the args
|
||||
* will be indeterminate after the return.
|
||||
*/
|
||||
va_copy(tmpargs, args);
|
||||
buflen = vsnprintf(NULL, 0, fmt, tmpargs);
|
||||
va_end(tmpargs);
|
||||
|
||||
log_buffer[log_buffer_size - 1] = malloc(++buflen);
|
||||
|
||||
if (vsnprintf(log_buffer[log_buffer_size - 1], buflen, fmt, args) == -1) {
|
||||
perror("log line alloc");
|
||||
log_alloc_success = false;
|
||||
}
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
static void print_logs(void)
|
||||
{
|
||||
for (int i = 0; i < log_buffer_size; ++i)
|
||||
fprintf(stderr, " %s", log_buffer[i]);
|
||||
}
|
||||
|
||||
static void free_logs(void)
|
||||
{
|
||||
if (log_buffer == NULL)
|
||||
return;
|
||||
for (int i = 0; i < log_buffer_size; ++i)
|
||||
free(log_buffer[i]);
|
||||
free(log_buffer);
|
||||
log_buffer = NULL;
|
||||
log_buffer_size = 0;
|
||||
}
|
||||
|
||||
static bool try_keymap(struct xkb_context *ctx, struct xkb_rule_names *rdef)
|
||||
{
|
||||
struct xkb_keymap *keymap;
|
||||
bool result = true;
|
||||
|
||||
if ((keymap = xkb_keymap_new_from_names(ctx, rdef, 0)) == NULL)
|
||||
result = false;
|
||||
else
|
||||
xkb_keymap_unref(keymap);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static void print_error(const char *name, const char *value,
|
||||
const char *nixos_option)
|
||||
{
|
||||
fprintf(stderr, "\nThe value `%s' for keyboard %s is invalid.\n\n"
|
||||
"Please check the definition in `services.xserver.%s'.\n",
|
||||
value, name, nixos_option);
|
||||
fputs("\nDetailed XKB compiler errors:\n\n", stderr);
|
||||
print_logs();
|
||||
putc('\n', stderr);
|
||||
}
|
||||
|
||||
#define TRY_KEYMAP(name, value, nixos_option) \
|
||||
*rdef = (struct xkb_rule_names) {0}; \
|
||||
free_logs(); \
|
||||
rdef->name = value; \
|
||||
result = try_keymap(ctx, rdef); \
|
||||
if (!log_alloc_success) \
|
||||
goto out; \
|
||||
if (!result) { \
|
||||
print_error(#name, value, nixos_option); \
|
||||
exit_code = EXIT_FAILURE; \
|
||||
goto out; \
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int exit_code = EXIT_SUCCESS;
|
||||
bool result;
|
||||
struct xkb_context *ctx;
|
||||
struct xkb_rule_names *rdef;
|
||||
|
||||
if (argc != 5) {
|
||||
fprintf(stderr, "Usage: %s model layout variant options\n", argv[0]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
ctx = xkb_context_new(XKB_CONTEXT_NO_ENVIRONMENT_NAMES);
|
||||
xkb_context_set_log_fn(ctx, add_log);
|
||||
|
||||
rdef = malloc(sizeof(struct xkb_rule_names));
|
||||
|
||||
TRY_KEYMAP(model, argv[1], "xkbModel");
|
||||
TRY_KEYMAP(layout, argv[2], "layout");
|
||||
TRY_KEYMAP(variant, argv[3], "xkbVariant");
|
||||
TRY_KEYMAP(options, argv[4], "xkbOptions");
|
||||
|
||||
free_logs();
|
||||
rdef->model = argv[1];
|
||||
rdef->layout = argv[2];
|
||||
rdef->variant = argv[3];
|
||||
rdef->options = argv[4];
|
||||
|
||||
result = try_keymap(ctx, rdef);
|
||||
if (!log_alloc_success)
|
||||
goto out;
|
||||
|
||||
if (!result) {
|
||||
fputs("The XKB keyboard definition failed to compile:\n", stderr);
|
||||
print_logs();
|
||||
exit_code = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
out:
|
||||
free_logs();
|
||||
free(rdef);
|
||||
xkb_context_unref(ctx);
|
||||
return exit_code;
|
||||
}
|
||||
53
pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py
Normal file
53
pkgs/tools/X11/xkeysnail/browser-emacs-bindings.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
from xkeysnail.transform import *
|
||||
|
||||
aa = False
|
||||
def aa_setvar(v):
|
||||
def _aa_setvar():
|
||||
transform._mark_set = False
|
||||
global aa; aa = v
|
||||
return _aa_setvar
|
||||
def aa_ifvar():
|
||||
def _aa_ifvar():
|
||||
transform._mark_set = False
|
||||
global aa
|
||||
if aa: aa = False; return K("esc")
|
||||
return K("enter")
|
||||
return _aa_ifvar
|
||||
def aa_flipmark():
|
||||
def _aa_flipmark():
|
||||
transform._mark_set = not transform._mark_set;
|
||||
return _aa_flipmark
|
||||
|
||||
define_keymap(re.compile("Google-chrome|Chromium-browser|firefox"), {
|
||||
K("C-b"): with_mark(K("left")),
|
||||
K("C-f"): with_mark(K("right")),
|
||||
K("C-p"): with_mark(K("up")),
|
||||
K("C-n"): with_mark(K("down")),
|
||||
K("M-b"): with_mark(K("C-left")),
|
||||
K("M-f"): with_mark(K("C-right")),
|
||||
K("C-a"): with_mark(K("home")),
|
||||
K("C-e"): with_mark(K("end")),
|
||||
|
||||
K("C-w"): [K("C-x"), set_mark(False)],
|
||||
K("M-w"): [K("C-c"), K("right"), set_mark(False)],
|
||||
K("C-y"): [K("C-v"), set_mark(False)],
|
||||
K("C-k"): [K("Shift-end"), K("C-x"), set_mark(False)],
|
||||
K("C-d"): [K("delete"), set_mark(False)],
|
||||
K("M-d"): [K("C-delete"), set_mark(False)],
|
||||
K("M-backspace"): [K("C-backspace"), set_mark(False)],
|
||||
|
||||
K("C-slash"): [K("C-z"), set_mark(False)],
|
||||
K("C-space"): aa_flipmark(),
|
||||
K("C-M-space"): with_or_set_mark(K("C-right")),
|
||||
|
||||
# K("C-s"): K("F3"),
|
||||
# K("C-r"): K("Shift-F3"),
|
||||
# K("C-g"): [K("esc"), set_mark(False)]
|
||||
|
||||
K("C-s"): [K("F3"), aa_setvar(True)],
|
||||
K("C-r"): [K("Shift-F3"), aa_setvar(True)],
|
||||
K("C-g"): [K("esc"), aa_setvar(False)],
|
||||
K("enter"): aa_ifvar()
|
||||
})
|
||||
42
pkgs/tools/X11/xkeysnail/default.nix
Normal file
42
pkgs/tools/X11/xkeysnail/default.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ lib, fetchFromGitHub, makeWrapper, python3Packages }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "xkeysnail";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mooz";
|
||||
repo = pname;
|
||||
rev = "bf3c93b4fe6efd42893db4e6588e5ef1c4909cfb";
|
||||
sha256 = "0plcpb4ndzfsd5hj32m0g32swnhyph9sd759cdhhzmjvlq3j8q6p";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
evdev
|
||||
xlib
|
||||
inotify-simple
|
||||
appdirs
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp ./example/config.py $out/share/example.py
|
||||
cp ${./browser-emacs-bindings.py} $out/share/browser.py
|
||||
|
||||
makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-example \
|
||||
--add-flags "-q" --add-flags "$out/share/example.py"
|
||||
makeWrapper $out/bin/xkeysnail $out/bin/xkeysnail-browser \
|
||||
--add-flags "-q" --add-flags "$out/share/browser.py"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Yet another keyboard remapping tool for X environment";
|
||||
homepage = "https://github.com/mooz/xkeysnail";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl1Only;
|
||||
maintainers = with maintainers; [ bb2020 ];
|
||||
};
|
||||
}
|
||||
35
pkgs/tools/X11/xlayoutdisplay/default.nix
Normal file
35
pkgs/tools/X11/xlayoutdisplay/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchFromGitHub, xorg, boost, gtest }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xlayoutdisplay";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alex-courtis";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-8K9SoZToJTk/sL4PC4Fcsu9XzGLYfNIZlbIyxc9jf84=";
|
||||
};
|
||||
|
||||
buildInputs = with xorg; [ libX11 libXrandr libXcursor boost ];
|
||||
checkInputs = [ gtest ];
|
||||
|
||||
doCheck = true;
|
||||
checkTarget = "gtest";
|
||||
|
||||
# Fixup reference to hardcoded boost path, dynamically link as seems fine and we don't have static for this
|
||||
postPatch = ''
|
||||
substituteInPlace config.mk --replace '/usr/lib/libboost_program_options.a' '-lboost_program_options'
|
||||
'';
|
||||
|
||||
makeFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Detects and arranges linux display outputs, using XRandR for detection and xrandr for arrangement";
|
||||
homepage = "https://github.com/alex-courtis/xlayoutdisplay";
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
88
pkgs/tools/X11/xloadimage/default.nix
Normal file
88
pkgs/tools/X11/xloadimage/default.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, libX11
|
||||
, libXt
|
||||
|
||||
, libjpeg ? null
|
||||
, libpng ? null
|
||||
, libtiff ? null
|
||||
|
||||
, withJpegSupport ? true
|
||||
, withPngSupport ? true
|
||||
, withTiffSupport ? true
|
||||
}:
|
||||
|
||||
assert withJpegSupport -> libjpeg != null;
|
||||
assert withPngSupport -> libpng != null;
|
||||
assert withTiffSupport -> libtiff != null;
|
||||
|
||||
let
|
||||
deb_patch = "25";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.1";
|
||||
pname = "xloadimage";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://debian/pool/main/x/xloadimage/xloadimage_${version}.orig.tar.gz";
|
||||
sha256 = "1i7miyvk5ydhi6yi8593vapavhwxcwciir8wg9d2dcyg9pccf2s0";
|
||||
};
|
||||
|
||||
patches = fetchurl {
|
||||
url = "mirror://debian/pool/main/x/xloadimage/xloadimage_${version}-${deb_patch}.debian.tar.xz";
|
||||
sha256 = "17k518vrdrya5c9dqhpmm4g0h2vlkq1iy87sg2ngzygypbli1xvn";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
libX11 libXt
|
||||
] ++ lib.optionals withJpegSupport [
|
||||
libjpeg
|
||||
] ++ lib.optionals withPngSupport [
|
||||
libpng
|
||||
] ++ lib.optionals withTiffSupport [
|
||||
libtiff
|
||||
];
|
||||
|
||||
# NOTE: we patch the build-info script so that it never detects the utilities
|
||||
# it's trying to find; one of the Debian patches adds support for
|
||||
# $SOURCE_DATE_EPOCH, but we want to make sure we don't even call these.
|
||||
preConfigure = ''
|
||||
substituteInPlace build-info \
|
||||
--replace '[ -x /bin/date ]' 'false' \
|
||||
--replace '[ -x /bin/id ]' 'false' \
|
||||
--replace '[ -x /bin/uname ]' 'false' \
|
||||
--replace '[ -x /usr/bin/id ]' 'false'
|
||||
|
||||
chmod +x build-info configure
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# NOTE: we're not installing the `uufilter` binary; if needed, the standard
|
||||
# `uudecode` tool should work just fine.
|
||||
installPhase = ''
|
||||
install -Dm755 xloadimage $out/bin/xloadimage
|
||||
ln -sv $out/bin/{xloadimage,xsetbg}
|
||||
|
||||
install -D -m644 xloadimagerc $out/etc/xloadimagerc.example
|
||||
install -D -m644 xloadimage.man $out/share/man/man1/xloadimage.1x
|
||||
ln -sv $out/share/man/man1/{xloadimage,xsetbg}.1x
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Graphics file viewer under X11";
|
||||
|
||||
longDescription = ''
|
||||
Can view png, jpeg, gif, tiff, niff, sunraster, fbm, cmuraster, pbm,
|
||||
faces, rle, xwd, vff, mcidas, vicar, pcx, gem, macpaint, xpm and xbm
|
||||
files. Can view images, put them on the root window, or dump them. Does a
|
||||
variety of processing, including: clipping, dithering, depth reduction,
|
||||
zoom, brightening/darkening and merging.
|
||||
'';
|
||||
|
||||
license = lib.licenses.gpl2Plus;
|
||||
|
||||
maintainers = with lib.maintainers; [ andrew-d ];
|
||||
platforms = lib.platforms.linux; # arbitrary choice
|
||||
};
|
||||
}
|
||||
20
pkgs/tools/X11/xmacro/default.nix
Normal file
20
pkgs/tools/X11/xmacro/default.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ lib, stdenv, fetchurl, libX11, libXtst, xorgproto, libXi }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmacro";
|
||||
version = "0.4.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://download.sarine.nl/xmacro/${pname}-${version}.tar.gz";
|
||||
sha256 = "1p9jljxyn4j6piljiyi2xv6f8jhjbzhabprp8p0qmqxaxgdipi61";
|
||||
};
|
||||
|
||||
preInstall = "echo -e 'install:\n mkdir \${out}/bin;\n cp xmacrorec2 xmacroplay \${out}/bin;' >>Makefile; ";
|
||||
|
||||
buildInputs = [ libX11 libXtst xorgproto libXi ];
|
||||
|
||||
meta = {
|
||||
platforms = lib.platforms.linux;
|
||||
license = lib.licenses.gpl2;
|
||||
};
|
||||
}
|
||||
26
pkgs/tools/X11/xmagnify/default.nix
Normal file
26
pkgs/tools/X11/xmagnify/default.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ lib, stdenv, fetchFromGitLab, libX11, xorgproto }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmagnify";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "amiloradovsky";
|
||||
repo = "magnify";
|
||||
rev = version;
|
||||
sha256 = "1ngnp5f5zl3v35vhbdyjpymy6mwrs0476fm5nd7dzkba7n841jdh";
|
||||
};
|
||||
|
||||
prePatch = "substituteInPlace ./Makefile --replace /usr $out";
|
||||
|
||||
buildInputs = [ libX11 xorgproto ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tiny screen magnifier for X11";
|
||||
homepage = "https://gitlab.com/amiloradovsky/magnify";
|
||||
license = licenses.mit; # or GPL2+, optionally
|
||||
maintainers = with maintainers; [ amiloradovsky ];
|
||||
mainProgram = "magnify";
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
21
pkgs/tools/X11/xmousepasteblock/default.nix
Normal file
21
pkgs/tools/X11/xmousepasteblock/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ xorg, lib, stdenv, libev, fetchFromGitHub, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmousepasteblock";
|
||||
version = "1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "milaq";
|
||||
repo = "XMousePasteBlock";
|
||||
sha256 = "0vidckfp277cg2gsww8a8q5b18m10iy4ppyp2qipr89771nrcmns";
|
||||
rev = version;
|
||||
};
|
||||
makeFlags = "PREFIX=$(out)";
|
||||
buildInputs = with xorg; [ libX11 libXext libXi libev ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
meta = with lib; {
|
||||
description = "Middle mouse button primary X selection/clipboard paste disabler";
|
||||
homepage = "https://github.com/milaq/XMousePasteBlock";
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = [ maintainers.petercommand ];
|
||||
};
|
||||
}
|
||||
71
pkgs/tools/X11/xnee/default.nix
Normal file
71
pkgs/tools/X11/xnee/default.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{ fetchurl, fetchpatch, lib, stdenv, libX11, xorgproto, libXext, libXtst
|
||||
, gtk2, libXi, pkg-config, texinfo }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.19";
|
||||
pname = "xnee";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/xnee/${pname}-${version}.tar.gz";
|
||||
sha256 = "04n2lac0vgpv8zsn7nmb50hf3qb56pmj90dmwnivg09gyrf1x92j";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Pull fix pending upstream inclusion for -fno-common
|
||||
# toolchain support: https://savannah.gnu.org/bugs/?58810
|
||||
(fetchpatch {
|
||||
name = "fno-common.patch";
|
||||
url = "https://savannah.gnu.org/bugs/download.php?file_id=49534";
|
||||
sha256 = "04j2cjy2yaiigg31a6k01vw0fq19yj3zpriikkjcz9q4ab4m5gh2";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch =
|
||||
'' for i in `find cnee/test -name \*.sh`
|
||||
do
|
||||
sed -i "$i" -e's|/bin/bash|${stdenv.shell}|g ; s|/usr/bin/env bash|${stdenv.shell}|g'
|
||||
done
|
||||
|
||||
# Fix for glibc-2.34. For some reason, `LIBSEMA="CCC"` is added
|
||||
# if `sem_init` is part of libc which causes errors like
|
||||
# `gcc: error: CCC: No such file or directory` during the build.
|
||||
substituteInPlace configure \
|
||||
--replace 'LIBSEMA="CCC"' 'LIBSEMA=""'
|
||||
'';
|
||||
|
||||
buildInputs =
|
||||
[ libX11 xorgproto libXext libXtst gtk2
|
||||
libXi pkg-config
|
||||
texinfo
|
||||
];
|
||||
|
||||
configureFlags =
|
||||
# Do a static build because `libxnee' doesn't get installed anyway.
|
||||
[ "--disable-gnome-applet" "--enable-static" ];
|
||||
|
||||
# `cnee' is linked without `-lXi' and as a consequence has a RUNPATH that
|
||||
# lacks libXi.
|
||||
makeFlags = [ "LDFLAGS=-lXi" ];
|
||||
|
||||
# XXX: Actually tests require an X server.
|
||||
doCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "X11 event recording and replay tool";
|
||||
|
||||
longDescription =
|
||||
'' Xnee is a suite of programs that can record, replay and distribute
|
||||
user actions under the X11 environment. Think of it as a robot that
|
||||
can imitate the job you just did. Xnee can be used to automate
|
||||
tests, demonstrate programs, distribute actions, record & replay
|
||||
"macros", retype a file.
|
||||
'';
|
||||
|
||||
license = lib.licenses.gpl3Plus;
|
||||
|
||||
homepage = "https://www.gnu.org/software/xnee/";
|
||||
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
|
||||
};
|
||||
}
|
||||
35
pkgs/tools/X11/xob/default.nix
Normal file
35
pkgs/tools/X11/xob/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchFromGitHub, pkg-config, xorg, libconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xob";
|
||||
version = "0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "florentc";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1x4aafiyd9k4y8cmvn7rgfif3g5s5hhlbj5nz71qsyqg21nn7hrw";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ xorg.libX11 xorg.libXrender libconfig ];
|
||||
|
||||
makeFlags = [ "prefix=$(out)" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A lightweight overlay bar for the X Window System";
|
||||
longDescription = ''
|
||||
A lightweight configurable overlay volume/backlight/progress/anything bar
|
||||
for the X Window System (and Wayland compositors with XWayland). Each
|
||||
time a new value is read on the standard input, it is displayed as a
|
||||
tv-like bar over other windows. It then vanishes after a configurable
|
||||
amount of time. A value followed by a bang '!' is displayed using an
|
||||
alternate color to account for special states (e.g. muted audio). There
|
||||
is also support for overflows (when the value exceeds the maximum).
|
||||
'';
|
||||
inherit (src.meta) homepage;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ florentc ];
|
||||
};
|
||||
}
|
||||
41
pkgs/tools/X11/xosview2/default.nix
Normal file
41
pkgs/tools/X11/xosview2/default.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, stdenv, fetchurl, libX11 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xosview2";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/xosview/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-ex1GDBgx9Zzx5tOkZ2IRYskmBh/bUYpRTXHWRoE30vA=";
|
||||
};
|
||||
|
||||
# The software failed to buid with this enabled; it seemed tests were not implemented
|
||||
doCheck = false;
|
||||
|
||||
buildInputs = [ libX11 ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Lightweight program that gathers information from your operating system and displays it in graphical form";
|
||||
longDescription = ''
|
||||
xosview is a lightweight program that gathers information from your
|
||||
operating system and displays it in graphical form. It attempts to show
|
||||
you in a quick glance an overview of how your system resources are being
|
||||
utilized.
|
||||
|
||||
It can be configured to be nothing more than a small strip showing a
|
||||
couple of parameters on a desktop task bar. Or it can display dozens of
|
||||
meters and rolling graphical charts over your entire screen.
|
||||
|
||||
Since xosview renders all graphics with core X11 drawing methods, you can
|
||||
run it on one machine and display it on another. This works even if your
|
||||
other host is an operating system not running an X server inside a
|
||||
virtual machine running on a physically different host. If you can
|
||||
connect to it on a network, then you can popup an xosview instance and
|
||||
monitor what is going on.
|
||||
'';
|
||||
homepage = "http://xosview.sourceforge.net/index.html";
|
||||
license = with licenses; [ gpl2 bsdOriginal ];
|
||||
maintainers = [ maintainers.SeanZicari ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
30
pkgs/tools/X11/xplugd/default.nix
Normal file
30
pkgs/tools/X11/xplugd/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, xorg
|
||||
, pkg-config
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xplugd";
|
||||
version = "1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "troglobit";
|
||||
repo = "xplugd";
|
||||
rev = "v${version}";
|
||||
sha256 = "11vjr69prrs4ir9c267zwq4g9liipzrqi0kmw1zg95dbn7r7zmql";
|
||||
};
|
||||
|
||||
buildInputs = with xorg; [ libX11 libXi libXrandr libXext ];
|
||||
nativeBuildInputs = [ pkg-config autoreconfHook ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/troglobit/xplugd";
|
||||
description = "A UNIX daemon that executes a script on X input and RandR changes";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ akho ];
|
||||
};
|
||||
}
|
||||
22
pkgs/tools/X11/xpointerbarrier/default.nix
Normal file
22
pkgs/tools/X11/xpointerbarrier/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ lib, stdenv, xorg, fetchgit }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xpointerbarrier";
|
||||
version = "18.06";
|
||||
src = fetchgit {
|
||||
url = "https://www.uninformativ.de/git/xpointerbarrier.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "1k7i641x18qhjm0llsaqn2h2g9k31kgv6p8sildllmbvgxyrgvq7";
|
||||
};
|
||||
|
||||
buildInputs = [ xorg.libX11 xorg.libXfixes xorg.libXrandr ];
|
||||
|
||||
makeFlags = [ "prefix=$(out)" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://uninformativ.de/git/xpointerbarrier";
|
||||
description = "Create X11 pointer barriers around your working area";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.xzfc ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
96
pkgs/tools/X11/xpra/0002-Constant-DPI.patch
Normal file
96
pkgs/tools/X11/xpra/0002-Constant-DPI.patch
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
--- a/src/dummy.h 2016-12-17 23:02:53.396287041 +0100
|
||||
+++ b/src/dummy.h 2016-12-17 23:03:30.319616550 +0100
|
||||
@@ -51,6 +51,7 @@
|
||||
/* options */
|
||||
OptionInfoPtr Options;
|
||||
Bool swCursor;
|
||||
+ Bool constantDPI;
|
||||
/* proc pointer */
|
||||
CloseScreenProcPtr CloseScreen;
|
||||
xf86CursorInfoPtr CursorInfo;
|
||||
--- a/src/dummy_driver.c 2016-12-14 21:54:20.000000000 +0100
|
||||
+++ b/src/dummy_driver.c 2016-12-17 23:04:59.916416126 +0100
|
||||
@@ -17,6 +17,12 @@
|
||||
/* All drivers using the mi colormap manipulation need this */
|
||||
#include "micmap.h"
|
||||
|
||||
+#ifdef RANDR
|
||||
+#include "randrstr.h"
|
||||
+#endif
|
||||
+
|
||||
+#include "windowstr.h"
|
||||
+
|
||||
/* identifying atom needed by magnifiers */
|
||||
#include <X11/Xatom.h>
|
||||
#include "property.h"
|
||||
@@ -115,11 +121,15 @@
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
- OPTION_SW_CURSOR
|
||||
+ OPTION_SW_CURSOR,
|
||||
+ OPTION_CONSTANT_DPI
|
||||
} DUMMYOpts;
|
||||
|
||||
static const OptionInfoRec DUMMYOptions[] = {
|
||||
{ OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE },
|
||||
+#ifdef RANDR
|
||||
+ { OPTION_CONSTANT_DPI, "ConstantDPI", OPTV_BOOLEAN, {0}, FALSE },
|
||||
+#endif
|
||||
{ -1, NULL, OPTV_NONE, {0}, FALSE }
|
||||
};
|
||||
|
||||
@@ -359,6 +369,7 @@
|
||||
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, dPtr->Options);
|
||||
|
||||
xf86GetOptValBool(dPtr->Options, OPTION_SW_CURSOR,&dPtr->swCursor);
|
||||
+ xf86GetOptValBool(dPtr->Options, OPTION_CONSTANT_DPI, &dPtr->constantDPI);
|
||||
|
||||
if (device->videoRam != 0) {
|
||||
pScrn->videoRam = device->videoRam;
|
||||
@@ -639,10 +650,45 @@
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+const char *XDPY_PROPERTY = "dummy-constant-xdpi";
|
||||
+const char *YDPY_PROPERTY = "dummy-constant-ydpi";
|
||||
+static int get_dpi_value(WindowPtr root, const char *property_name, int default_dpi)
|
||||
+{
|
||||
+ PropertyPtr prop;
|
||||
+ Atom type_atom = MakeAtom("CARDINAL", 8, TRUE);
|
||||
+ Atom prop_atom = MakeAtom(property_name, strlen(property_name), FALSE);
|
||||
+
|
||||
+ for (prop = wUserProps(root); prop; prop = prop->next) {
|
||||
+ if (prop->propertyName == prop_atom && prop->type == type_atom && prop->data) {
|
||||
+ int v = (int) (*((CARD32 *) prop->data));
|
||||
+ if ((v>0) && (v<4096)) {
|
||||
+ xf86DrvMsg(0, X_INFO, "get_constant_dpi_value() found property \"%s\" with value=%i\n", property_name, (int) v);
|
||||
+ return (int) v;
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ return default_dpi;
|
||||
+}
|
||||
+
|
||||
/* Mandatory */
|
||||
Bool
|
||||
DUMMYSwitchMode(SWITCH_MODE_ARGS_DECL)
|
||||
{
|
||||
+ SCRN_INFO_PTR(arg);
|
||||
+#ifdef RANDR
|
||||
+ DUMMYPtr dPtr = DUMMYPTR(pScrn);
|
||||
+ if (dPtr->constantDPI) {
|
||||
+ int xDpi = get_dpi_value(pScrn->pScreen->root, XDPY_PROPERTY, pScrn->xDpi);
|
||||
+ int yDpi = get_dpi_value(pScrn->pScreen->root, YDPY_PROPERTY, pScrn->yDpi);
|
||||
+ //25.4 mm per inch: (254/10)
|
||||
+ pScrn->pScreen->mmWidth = mode->HDisplay * 254 / xDpi / 10;
|
||||
+ pScrn->pScreen->mmHeight = mode->VDisplay * 254 / yDpi / 10;
|
||||
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "mm(dpi %ix%i)=%ix%i\n", xDpi, yDpi, pScrn->pScreen->mmWidth, pScrn->pScreen->mmHeight);
|
||||
+ RRScreenSizeNotify(pScrn->pScreen);
|
||||
+ RRTellChanged(pScrn->pScreen);
|
||||
+ }
|
||||
+#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
39
pkgs/tools/X11/xpra/0003-fix-pointer-limits.patch
Normal file
39
pkgs/tools/X11/xpra/0003-fix-pointer-limits.patch
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
--- xf86-video-dummy-0.3.6/src/dummy_driver.c 2014-11-05 19:24:02.668656601 +0700
|
||||
+++ xf86-video-dummy-0.3.6.new/src/dummy_driver.c 2014-11-05 19:37:53.076061853 +0700
|
||||
@@ -55,6 +55,9 @@
|
||||
#include <X11/extensions/xf86dgaproto.h>
|
||||
#endif
|
||||
|
||||
+/* Needed for fixing pointer limits on resize */
|
||||
+#include "inputstr.h"
|
||||
+
|
||||
/* Mandatory functions */
|
||||
static const OptionInfoRec * DUMMYAvailableOptions(int chipid, int busid);
|
||||
static void DUMMYIdentify(int flags);
|
||||
@@ -713,6 +716,26 @@
|
||||
RRTellChanged(pScrn->pScreen);
|
||||
}
|
||||
#endif
|
||||
+ //ensure the screen dimensions are also updated:
|
||||
+ pScrn->pScreen->width = mode->HDisplay;
|
||||
+ pScrn->pScreen->height = mode->VDisplay;
|
||||
+ pScrn->virtualX = mode->HDisplay;
|
||||
+ pScrn->virtualY = mode->VDisplay;
|
||||
+ pScrn->frameX1 = mode->HDisplay;
|
||||
+ pScrn->frameY1 = mode->VDisplay;
|
||||
+
|
||||
+ //ensure the pointer uses the new limits too:
|
||||
+ DeviceIntPtr pDev;
|
||||
+ SpritePtr pSprite;
|
||||
+ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
|
||||
+ if (pDev->spriteInfo!=NULL && pDev->spriteInfo->sprite!=NULL) {
|
||||
+ pSprite = pDev->spriteInfo->sprite;
|
||||
+ pSprite->hotLimits.x2 = mode->HDisplay;
|
||||
+ pSprite->hotLimits.y2 = mode->VDisplay;
|
||||
+ pSprite->physLimits.x2 = mode->HDisplay;
|
||||
+ pSprite->physLimits.y2 = mode->VDisplay;
|
||||
+ }
|
||||
+ }
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
--- a/src/dummy.h 2016-12-17 23:33:33.279533389 +0100
|
||||
+++ b/src/dummy.h 2016-12-17 23:33:56.695739166 +0100
|
||||
@@ -69,7 +69,7 @@
|
||||
int overlay_offset;
|
||||
int videoKey;
|
||||
int interlace;
|
||||
- dummy_colors colors[256];
|
||||
+ dummy_colors colors[1024];
|
||||
pointer* FBBase;
|
||||
Bool (*CreateWindow)() ; /* wrapped CreateWindow */
|
||||
Bool prop;
|
||||
--- a/src/dummy_driver.c 2016-12-17 23:33:47.446657886 +0100
|
||||
+++ b/src/dummy_driver.c 2016-12-17 23:33:56.696739175 +0100
|
||||
@@ -317,6 +317,7 @@
|
||||
case 15:
|
||||
case 16:
|
||||
case 24:
|
||||
+ case 30:
|
||||
break;
|
||||
default:
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
|
||||
@@ -331,8 +332,8 @@
|
||||
pScrn->rgbBits = 8;
|
||||
|
||||
/* Get the depth24 pixmap format */
|
||||
- if (pScrn->depth == 24 && pix24bpp == 0)
|
||||
- pix24bpp = xf86GetBppFromDepth(pScrn, 24);
|
||||
+ if (pScrn->depth >= 24 && pix24bpp == 0)
|
||||
+ pix24bpp = xf86GetBppFromDepth(pScrn, pScrn->depth);
|
||||
|
||||
/*
|
||||
* This must happen after pScrn->display has been set because
|
||||
@@ -623,7 +624,7 @@
|
||||
if(!miCreateDefColormap(pScreen))
|
||||
return FALSE;
|
||||
|
||||
- if (!xf86HandleColormaps(pScreen, 256, pScrn->rgbBits,
|
||||
+ if (!xf86HandleColormaps(pScreen, 1024, pScrn->rgbBits,
|
||||
DUMMYLoadPalette, NULL,
|
||||
CMAP_PALETTED_TRUECOLOR
|
||||
| CMAP_RELOAD_ON_MODE_SWITCH))
|
||||
211
pkgs/tools/X11/xpra/default.nix
Normal file
211
pkgs/tools/X11/xpra/default.nix
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
{ lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, pkg-config
|
||||
, runCommand
|
||||
, writeText
|
||||
, wrapGAppsHook
|
||||
, withNvenc ? false
|
||||
, atk
|
||||
, cairo
|
||||
, cudatoolkit
|
||||
, ffmpeg
|
||||
, gdk-pixbuf
|
||||
, getopt
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gst_all_1
|
||||
, gtk3
|
||||
, libfakeXinerama
|
||||
, librsvg
|
||||
, libvpx
|
||||
, libwebp
|
||||
, nv-codec-headers-10
|
||||
, nvidia_x11 ? null
|
||||
, pam
|
||||
, pandoc
|
||||
, pango
|
||||
, pulseaudio
|
||||
, python3
|
||||
, util-linux
|
||||
, which
|
||||
, x264
|
||||
, x265
|
||||
, xauth
|
||||
, xorg
|
||||
, xorgserver
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (python3.pkgs) cython buildPythonApplication;
|
||||
|
||||
xf86videodummy = xorg.xf86videodummy.overrideDerivation (p: {
|
||||
patches = [
|
||||
# patch provided by Xpra upstream
|
||||
./0002-Constant-DPI.patch
|
||||
# https://github.com/Xpra-org/xpra/issues/349
|
||||
./0003-fix-pointer-limits.patch
|
||||
# patch provided by Xpra upstream
|
||||
./0005-support-for-30-bit-depth-in-dummy-driver.patch
|
||||
];
|
||||
});
|
||||
|
||||
xorgModulePaths = writeText "module-paths" ''
|
||||
Section "Files"
|
||||
ModulePath "${xorgserver}/lib/xorg/modules"
|
||||
ModulePath "${xorgserver}/lib/xorg/modules/extensions"
|
||||
ModulePath "${xorgserver}/lib/xorg/modules/drivers"
|
||||
ModulePath "${xf86videodummy}/lib/xorg/modules/drivers"
|
||||
EndSection
|
||||
'';
|
||||
|
||||
nvencHeaders = runCommand "nvenc-headers" {
|
||||
inherit nvidia_x11;
|
||||
} ''
|
||||
mkdir -p $out/include $out/lib/pkgconfig
|
||||
cp ${nv-codec-headers-10}/include/ffnvcodec/nvEncodeAPI.h $out/include
|
||||
substituteAll ${./nvenc.pc} $out/lib/pkgconfig/nvenc.pc
|
||||
'';
|
||||
in buildPythonApplication rec {
|
||||
pname = "xpra";
|
||||
version = "4.3.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://xpra.org/src/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-J6zzkho0A1faCVzS/0wDlbgLtJmyPrnBkEcR7kDld7A=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll { # correct hardcoded paths
|
||||
src = ./fix-paths.patch;
|
||||
inherit libfakeXinerama;
|
||||
})
|
||||
./fix-41106.patch # https://github.com/NixOS/nixpkgs/issues/41106
|
||||
./fix-122159.patch # https://github.com/NixOS/nixpkgs/issues/122159
|
||||
];
|
||||
|
||||
INCLUDE_DIRS = "${pam}/include";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
pandoc
|
||||
] ++ lib.optional withNvenc cudatoolkit;
|
||||
|
||||
buildInputs = with xorg; [
|
||||
libX11
|
||||
libXcomposite
|
||||
libXdamage
|
||||
libXfixes
|
||||
libXi
|
||||
libxkbfile
|
||||
libXrandr
|
||||
libXrender
|
||||
libXres
|
||||
libXtst
|
||||
xorgproto
|
||||
] ++ (with gst_all_1; [
|
||||
gst-libav
|
||||
gst-plugins-bad
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
]) ++ [
|
||||
atk.out
|
||||
cairo
|
||||
cython
|
||||
ffmpeg
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gobject-introspection
|
||||
gtk3
|
||||
librsvg
|
||||
libvpx
|
||||
libwebp
|
||||
pam
|
||||
pango
|
||||
x264
|
||||
x265
|
||||
] ++ lib.optional withNvenc nvencHeaders;
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; ([
|
||||
cryptography
|
||||
dbus-python
|
||||
gst-python
|
||||
idna
|
||||
lz4
|
||||
netifaces
|
||||
numpy
|
||||
opencv4
|
||||
pam
|
||||
paramiko
|
||||
pillow
|
||||
pycairo
|
||||
pycrypto
|
||||
pycups
|
||||
pygobject3
|
||||
pyinotify
|
||||
pyopengl
|
||||
python-uinput
|
||||
pyxdg
|
||||
rencode
|
||||
] ++ lib.optionals withNvenc [
|
||||
pycuda
|
||||
pynvml
|
||||
]);
|
||||
|
||||
# error: 'import_cairo' defined but not used
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
|
||||
|
||||
setupPyBuildFlags = [
|
||||
"--with-Xdummy"
|
||||
"--without-Xdummy_wrapper"
|
||||
"--without-strict"
|
||||
"--with-gtk3"
|
||||
# Override these, setup.py checks for headers in /usr/* paths
|
||||
"--with-pam"
|
||||
"--with-vsock"
|
||||
] ++ lib.optional withNvenc "--with-nvenc";
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=(
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
--set XPRA_INSTALL_PREFIX "$out"
|
||||
--set XPRA_COMMAND "$out/bin/xpra"
|
||||
--set XPRA_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb"
|
||||
--set XORG_CONFIG_PREFIX ""
|
||||
--prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib
|
||||
--prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux pulseaudio ]}
|
||||
'' + lib.optionalString withNvenc ''
|
||||
--prefix LD_LIBRARY_PATH : ${nvidia_x11}/lib
|
||||
'' + ''
|
||||
)
|
||||
'';
|
||||
|
||||
# append module paths to xorg.conf
|
||||
postInstall = ''
|
||||
cat ${xorgModulePaths} >> $out/etc/xpra/xorg.conf
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
inherit xf86videodummy;
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://xpra.org/";
|
||||
downloadPage = "https://xpra.org/src/";
|
||||
description = "Persistent remote applications for X";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ tstrobel offline numinit mvnetbiz ];
|
||||
};
|
||||
}
|
||||
16
pkgs/tools/X11/xpra/fix-122159.patch
Normal file
16
pkgs/tools/X11/xpra/fix-122159.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py
|
||||
index 6def9e0ad..031f8aba9 100755
|
||||
--- a/xpra/scripts/main.py
|
||||
+++ b/xpra/scripts/main.py
|
||||
@@ -364,11 +364,7 @@ def run_mode(script_file, cmdline, error_cb, options, args, mode, defaults):
|
||||
"shadow",
|
||||
) and not display_is_remote:
|
||||
if use_systemd_run(options.systemd_run):
|
||||
- #make sure we run via the same interpreter,
|
||||
- #inject it into the command line if we have to:
|
||||
argv = list(cmdline)
|
||||
- if argv[0].find("python")<0:
|
||||
- argv.insert(0, "python%i.%i" % (sys.version_info.major, sys.version_info.minor))
|
||||
return systemd_run_wrap(mode, argv, options.systemd_run_args)
|
||||
configure_env(options.env)
|
||||
configure_logging(options, mode)
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue