nixos/plotinus: add module to enable plotinus

This commit is contained in:
Sam Parkinson 2018-02-15 07:34:50 +11:00 committed by Jan Tojnar
parent 8f316ff398
commit 16fa6f59f7
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
5 changed files with 90 additions and 0 deletions

View file

@ -92,6 +92,7 @@
./programs/nano.nix
./programs/npm.nix
./programs/oblogout.nix
./programs/plotinus.nix
./programs/qt5ct.nix
./programs/rootston.nix
./programs/screen.nix

View file

@ -0,0 +1,36 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.plotinus;
in
{
meta = {
maintainers = pkgs.plotinus.meta.maintainers;
doc = ./plotinus.xml;
};
###### interface
options = {
programs.plotinus = {
enable = mkOption {
default = false;
description = ''
Whether to enable the Plotinus GTK+3 plugin. Plotinus provides a
popup (triggered by Ctrl-Shift-P) to search the menus of a
compatible application.
'';
type = types.bool;
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.variables.XDG_DATA_DIRS = [ "${pkgs.plotinus}/share/gsettings-schemas/${pkgs.plotinus.name}" ];
environment.variables.GTK3_MODULES = [ "${pkgs.plotinus}/lib/libplotinus.so" ];
};
}

View file

@ -0,0 +1,25 @@
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="module-program-plotinus">
<title>Plotinus</title>
<para><emphasis>Source:</emphasis> <filename>modules/programs/plotinus.nix</filename></para>
<para><emphasis>Upstream documentation:</emphasis> <link xlink:href="https://github.com/p-e-w/plotinus"/></para>
<para>Plotinus is a searchable command palette in every modern GTK+ application.</para>
<para>When in a GTK+3 application and Plotinus is enabled, you can press <literal>Ctrl+Shift+P</literal> to open the command palette. The command palette provides a searchable list of of all menu items in the application.</para>
<para>To enable Plotinus, add the following to your <filename>configuration.nix</filename>:
<programlisting>
programs.plotinus.enable = true;
</programlisting>
</para>
</chapter>

View file

@ -277,6 +277,7 @@ in rec {
tests.ipv6 = callTest tests/ipv6.nix {};
tests.jenkins = callTest tests/jenkins.nix {};
tests.plasma5 = callTest tests/plasma5.nix {};
tests.plotinus = callTest tests/plotinus.nix {};
tests.keymap = callSubTests tests/keymap.nix {};
tests.initrdNetwork = callTest tests/initrd-network.nix {};
tests.kafka_0_9 = callTest tests/kafka_0_9.nix {};

27
nixos/tests/plotinus.nix Normal file
View file

@ -0,0 +1,27 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "plotinus";
meta = {
maintainers = pkgs.plotinus.meta.maintainers;
};
machine =
{ config, pkgs, ... }:
{ imports = [ ./common/x11.nix ];
programs.plotinus.enable = true;
environment.systemPackages = [ pkgs.gnome3.gnome-calculator pkgs.xdotool ];
};
testScript =
''
$machine->waitForX;
$machine->execute("xterm -e 'gnome-calculator' &");
$machine->waitForWindow(qr/Calculator/);
$machine->execute("xdotool key ctrl+shift+p");
$machine->sleep(1); # wait for the popup
$machine->execute("xdotool key p r e f e r e n c e s Return");
$machine->waitForWindow(qr/Preferences/);
$machine->screenshot("screen");
'';
})