Skip to content
This repository was archived by the owner on Apr 12, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6dfd13ab34de
Choose a base ref
...
head repository: NixOS/nixpkgs-channels
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 5f9145d56ca5
Choose a head ref
  • 11 commits
  • 16 files changed
  • 6 contributors

Commits on Jun 29, 2019

  1. orbment: remove obsoleted package

    gnidorah committed Jun 29, 2019
    Copy the full SHA
    7581301 View commit details
  2. velox: remove obsoleted package

    gnidorah committed Jun 29, 2019
    Copy the full SHA
    bc84961 View commit details
  3. wlc: put under way-cooler

    gnidorah committed Jun 29, 2019
    Copy the full SHA
    dccd2ca View commit details

Commits on Jul 26, 2019

  1. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    rnhmjoj Michele Guerini Rocco
    Copy the full SHA
    171d5c9 View commit details
  2. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    rnhmjoj Michele Guerini Rocco
    Copy the full SHA
    3effc55 View commit details
  3. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    rnhmjoj Michele Guerini Rocco
    Copy the full SHA
    e91f0c3 View commit details
  4. ethtool: 5.1 -> 5.2

    dtzWill authored and bjornfor committed Jul 26, 2019
    Copy the full SHA
    4ad627e View commit details
  5. nixos/xserver: add option to install custom xkb layouts (#47764)

    nixos/xserver: add option to install custom xkb layouts
    infinisil authored Jul 26, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    d3dfe06 View commit details
  6. x2goclient: unstable-2018-11-30 -> unstable-2019-07-24

    Averell Dalton authored and bjornfor committed Jul 26, 2019
    Copy the full SHA
    3034859 View commit details
  7. x2goclient: fix startup

    Fixes the following error:
    ```
    qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
    This application failed to start because no Qt platform plugin could be initialized.
    Reinstalling the application may fix this problem.
    ```
    
    See also #54484 and others.
    Averell Dalton authored and bjornfor committed Jul 26, 2019
    Copy the full SHA
    289c607 View commit details
  8. Merge pull request #63195 from gnidorah/wlc

    Drop obsolete Wayland compositors
    primeos authored Jul 26, 2019

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    5f9145d View commit details
134 changes: 133 additions & 1 deletion nixos/doc/manual/configuration/x-windows.xml
Original file line number Diff line number Diff line change
@@ -125,10 +125,12 @@
You will need to reboot after enabling this driver to prevent a clash with
other kernel modules.
</para>
<note>
<para>
Note: for recent AMD GPUs you most likely want to keep either the defaults
For recent AMD GPUs you most likely want to keep either the defaults
or <literal>"amdgpu"</literal> (both free).
</para>
</note>
</simplesect>
<simplesect xml:id="sec-x11-touchpads">
<title>Touchpads</title>
@@ -157,4 +159,134 @@
versions.
</para>
</simplesect>
<simplesect xml:id="custom-xkb-layouts">
<title>Custom XKB layouts</title>
<para>
It is possible to install custom
<link xlink:href="https://en.wikipedia.org/wiki/X_keyboard_extension">
XKB
</link>
keyboard layouts using the option
<option>
<link linkend="opt-services.xserver.extraLayouts">
services.xserver.extraLayouts
</link>
</option>.
As a first example, we are going to create a layout based on the basic US
layout, with an additional layer to type some greek symbols by pressing the
right-alt key.
</para>
<para>
To do this we are going to create a <literal>us-greek</literal> file
with a <literal>xkb_symbols</literal> section.
</para>
<programlisting>
xkb_symbols &quot;us-greek&quot;
{
include &quot;us(basic)&quot; // includes the base US keys
include &quot;level3(ralt_switch)&quot; // configures right alt as a third level switch

key &lt;LatA&gt; { [ a, A, Greek_alpha ] };
key &lt;LatB&gt; { [ b, B, Greek_beta ] };
key &lt;LatG&gt; { [ g, G, Greek_gamma ] };
key &lt;LatD&gt; { [ d, D, Greek_delta ] };
key &lt;LatZ&gt; { [ z, Z, Greek_zeta ] };
};
</programlisting>
<para>
To install the layout, the filepath, a description and the list of
languages must be given:
</para>
<programlisting>
<xref linkend="opt-services.xserver.extraLayouts"/>.us-greek = {
description = "US layout with alt-gr greek";
languages = [ "eng" ];
symbolsFile = /path/to/us-greek;
}
</programlisting>
<note>
<para>
The name should match the one given to the
<literal>xkb_symbols</literal> block.
</para>
</note>
<para>
The layout should now be installed and ready to use: try it by
running <literal>setxkbmap us-greek</literal> and type
<literal>&lt;alt&gt;+a</literal>. To change the default the usual
<option>
<link linkend="opt-services.xserver.layout">
services.xserver.layout
</link>
</option>
option can still be used.
</para>
<para>
A layout can have several other components besides
<literal>xkb_symbols</literal>, for example we will define new
keycodes for some multimedia key and bind these to some symbol.
</para>
<para>
Use the <emphasis>xev</emphasis> utility from
<literal>pkgs.xorg.xev</literal> to find the codes of the keys of
interest, then create a <literal>media-key</literal> file to hold
the keycodes definitions
</para>
<programlisting>
xkb_keycodes &quot;media&quot;
{
&lt;volUp&gt; = 123;
&lt;volDown&gt; = 456;
}
</programlisting>
<para>
Now use the newly define keycodes in <literal>media-sym</literal>:
</para>
<programlisting>
xkb_symbols &quot;media&quot;
{
key.type = &quot;ONE_LEVEL&quot;;
key &lt;volUp&gt; { [ XF86AudioLowerVolume ] };
key &lt;volDown&gt; { [ XF86AudioRaiseVolume ] };
}
</programlisting>
<para>
As before, to install the layout do
</para>
<programlisting>
<xref linkend="opt-services.xserver.extraLayouts"/>.media = {
description = "Multimedia keys remapping";
languages = [ "eng" ];
symbolsFile = /path/to/media-key;
keycodesFile = /path/to/media-sym;
};
</programlisting>
<note>
<para>
The function <literal>pkgs.writeText &lt;filename&gt; &lt;content&gt;
</literal> can be useful if you prefer to keep the layout definitions
inside the NixOS configuration.
</para>
</note>
<para>
Unfortunately, the Xorg server does not (currently) support setting a
keymap directly but relies instead on XKB rules to select the matching
components (keycodes, types, ...) of a layout. This means that components
other than symbols won't be loaded by default. As a workaround, you
can set the keymap using <literal>setxkbmap</literal> at the start of the
session with:
</para>
<programlisting>
<xref linkend="opt-services.xserver.displayManager.sessionCommands"/> = "setxkbmap -keycodes media";
</programlisting>
<para>
To learn how to write layouts take a look at the XKB
<link xlink:href="https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Enhancing.html#Defining_New_Layouts">
documentation
</link>. More example layouts can also be found
<link xlink:href="https://wiki.archlinux.org/index.php/X_KeyBoard_extension#Basic_examples">
here
</link>.
</para>
</simplesect>
</chapter>
1 change: 1 addition & 0 deletions nixos/modules/module-list.nix
Original file line number Diff line number Diff line change
@@ -815,6 +815,7 @@
./services/web-servers/uwsgi.nix
./services/web-servers/varnish/default.nix
./services/web-servers/zope2.nix
./services/x11/extra-layouts.nix
./services/x11/colord.nix
./services/x11/compton.nix
./services/x11/unclutter.nix
165 changes: 165 additions & 0 deletions nixos/modules/services/x11/extra-layouts.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
{ config, lib, pkgs, ... }:

with lib;

let
layouts = config.services.xserver.extraLayouts;

layoutOpts = {
options = {
description = mkOption {
type = types.str;
description = "A short description of the layout.";
};

languages = mkOption {
type = types.listOf types.str;
description =
''
A list of languages provided by the layout.
(Use ISO 639-2 codes, for example: "eng" for english)
'';
};

compatFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the xkb compat file.
This file sets the compatibility state, used to preserve
compatibility with xkb-unaware programs.
It must contain a <literal>xkb_compat "name" { ... }</literal> block.
'';
};

geometryFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the xkb geometry file.
This (completely optional) file describes the physical layout of
keyboard, which maybe be used by programs to depict it.
It must contain a <literal>xkb_geometry "name" { ... }</literal> block.
'';
};

keycodesFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the xkb keycodes file.
This file specifies the range and the interpretation of the raw
keycodes sent by the keyboard.
It must contain a <literal>xkb_keycodes "name" { ... }</literal> block.
'';
};

symbolsFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the xkb symbols file.
This is the most important file: it defines which symbol or action
maps to each key and must contain a
<literal>xkb_symbols "name" { ... }</literal> block.
'';
};

typesFile = mkOption {
type = types.nullOr types.path;
default = null;
description = ''
The path to the xkb types file.
This file specifies the key types that can be associated with
the various keyboard keys.
It must contain a <literal>xkb_types "name" { ... }</literal> block.
'';
};

};
};

in

{

###### interface

options.services.xserver = {
extraLayouts = mkOption {
type = types.attrsOf (types.submodule layoutOpts);
default = {};
example = literalExample
''
{
mine = {
description = "My custom xkb layout.";
languages = [ "eng" ];
symbolsFile = /path/to/my/layout;
};
}
'';
description = ''
Extra custom layouts that will be included in the xkb configuration.
Information on how to create a new layout can be found here:
<link xlink:href="https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Enhancing.html#Defining_New_Layouts"></link>.
For more examples see
<link xlink:href="https://wiki.archlinux.org/index.php/X_KeyBoard_extension#Basic_examples"></link>
'';
};

};

###### implementation

config = mkIf (layouts != { }) {

# We don't override xkeyboard_config directly to
# reduce the amount of packages to be recompiled.
# Only the following packages are necessary to set
# a custom layout anyway:
nixpkgs.overlays = lib.singleton (self: super: {

xkb_patched = self.xorg.xkeyboardconfig_custom {
layouts = config.services.xserver.extraLayouts;
};

xorg = super.xorg // {
xorgserver = super.xorg.xorgserver.overrideAttrs (old: {
configureFlags = old.configureFlags ++ [
"--with-xkb-bin-directory=${self.xorg.xkbcomp}/bin"
"--with-xkb-path=${self.xkb_patched}/share/X11/xkb"
];
});

setxkbmap = super.xorg.setxkbmap.overrideAttrs (old: {
postInstall =
''
mkdir -p $out/share
ln -sfn ${self.xkb_patched}/etc/X11 $out/share/X11
'';
});

xkbcomp = super.xorg.xkbcomp.overrideAttrs (old: {
configureFlags = "--with-xkb-config-root=${self.xkb_patched}/share/X11/xkb";
});

};

ckbcomp = super.ckbcomp.override {
xkeyboard_config = self.xkb_patched;
};

xkbvalidate = super.xkbvalidate.override {
libxkbcommon = self.libxkbcommon.override {
xkeyboard_config = self.xkb_patched;
};
};

});

services.xserver.xkbDir = "${pkgs.xkb_patched}/etc/X11/xkb";

};

}
16 changes: 7 additions & 9 deletions pkgs/applications/networking/remote/x2goclient/default.nix
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
{ stdenv, fetchgit, cups, libssh, libXpm, nx-libs, openldap, openssh
, makeWrapper, qtbase, qtsvg, qtx11extras, qttools, phonon, pkgconfig }:
, mkDerivation, qtbase, qtsvg, qtx11extras, qttools, phonon, pkgconfig }:

stdenv.mkDerivation rec {
mkDerivation rec {
pname = "x2goclient";
version = "unstable-2018-11-30";
version = "unstable-2019-07-24";

src = fetchgit {
url = "git://code.x2go.org/x2goclient.git";
rev = "659655675f11ffd361ab9fb48fa77a01a1536fe8";
sha256 = "05gfs11m259bchy3k0ihqpwg9wf8lp94rbca5dzla9fjzrb7pyy4";
rev = "704c4ab92d20070dd160824c9b66a6d1c56dcc49";
sha256 = "1pndp3lfzwifyxqq0gps3p1bwakw06clbk6n8viv020l4bsfmq5f";
};

buildInputs = [ cups libssh libXpm nx-libs openldap openssh
qtbase qtsvg qtx11extras qttools phonon pkgconfig ];
nativeBuildInputs = [ makeWrapper ];

postPatch = ''
substituteInPlace Makefile \
@@ -28,9 +27,8 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;

installTargets = [ "install_client" "install_man" ];
postInstall = ''
wrapProgram "$out/bin/x2goclient" --suffix PATH : "${nx-libs}/bin:${openssh}/libexec";
'';

qtWrapperArgs = [ ''--suffix PATH : ${nx-libs}/bin:${openssh}/libexec'' ];

meta = with stdenv.lib; {
description = "Graphical NoMachine NX3 remote desktop client";
26 changes: 0 additions & 26 deletions pkgs/applications/window-managers/orbment/bemenu.nix

This file was deleted.

Loading