summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configs/man.nix2
-rw-r--r--configs/ssh.nix2
-rw-r--r--configs/xserver/default.nix12
-rw-r--r--lib/pure.nix41
-rw-r--r--modules/Xresources.nix2
-rw-r--r--modules/backup.nix2
-rw-r--r--modules/lid-handler.nix4
-rw-r--r--pkgs/simple/dic.nix6
-rw-r--r--pkgs/simple/font-size-alacritty.nix6
-rw-r--r--pkgs/simple/pinentry-urxvt/default.nix4
-rw-r--r--pkgs/simple/xextras.nix2
-rw-r--r--pkgs/simple/xkiller.nix2
-rw-r--r--pkgs/simple/xtoggledpms.nix2
-rw-r--r--systems/mu/config.nix2
14 files changed, 66 insertions, 23 deletions
diff --git a/configs/man.nix b/configs/man.nix
index 8839476..67b2992 100644
--- a/configs/man.nix
+++ b/configs/man.nix
@@ -8,6 +8,6 @@
environment.systemPackages = [
pkgs.man-pages
pkgs.man-pages-posix
- pkgs.xorg.xorgdocs
+ pkgs.xorgdocs
];
}
diff --git a/configs/ssh.nix b/configs/ssh.nix
index 0dda6e5..031b285 100644
--- a/configs/ssh.nix
+++ b/configs/ssh.nix
@@ -4,7 +4,7 @@
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
${lib.optionalString config.programs.ssh.setXAuthLocation ''
- XAuthLocation ${pkgs.xorg.xauth}/bin/xauth
+ XAuthLocation ${pkgs.xauth}/bin/xauth
''}
ForwardX11 ${if config.programs.ssh.forwardX11 then "yes" else "no"}
diff --git a/configs/xserver/default.nix b/configs/xserver/default.nix
index 88c1afb..a346c2f 100644
--- a/configs/xserver/default.nix
+++ b/configs/xserver/default.nix
@@ -34,7 +34,7 @@ in {
];
fonts.packages = [
- pkgs.xorg.fontschumachermisc
+ pkgs.fontschumachermisc
];
services.xserver = {
@@ -77,11 +77,11 @@ in {
xmonad-ready = pkgs.writeDash "xmonad-ready" ''
${pkgs.systemd}/bin/systemd-notify --ready
{
- ${pkgs.xorg.xhost}/bin/xhost +SI:localuser:${cfg.user.name}
- ${pkgs.xorg.xhost}/bin/xhost -LOCAL:
+ ${pkgs.xhost}/bin/xhost +SI:localuser:${cfg.user.name}
+ ${pkgs.xhost}/bin/xhost -LOCAL:
} &
- ${pkgs.xorg.xmodmap}/bin/xmodmap ${import ./Xmodmap.nix args} &
- ${pkgs.xorg.xsetroot}/bin/xsetroot -solid '#1c1c1c' &
+ ${pkgs.xmodmap}/bin/xmodmap ${import ./Xmodmap.nix args} &
+ ${pkgs.xsetroot}/bin/xsetroot -solid '#1c1c1c' &
wait
'';
in {
@@ -146,7 +146,7 @@ in {
serviceConfig = {
SyslogIdentifier = "xserver";
ExecStart = toString [
- "${pkgs.xorg.xorgserver}/bin/X"
+ "${pkgs.xorgserver}/bin/X"
":${toString config.services.xserver.display}"
"vt${toString config.services.xserver.tty}"
"-config ${import ./xserver.conf.nix args}"
diff --git a/lib/pure.nix b/lib/pure.nix
index ab4be9a..50b9676 100644
--- a/lib/pure.nix
+++ b/lib/pure.nix
@@ -239,4 +239,45 @@ in
stockholm.lib
// { lib = stockholm.lib; }
+//
+rec {
+ # Reads a filesystem path into a Nix datum
+ # - regular files become strings containing their contents;
+ # - directories become attrsets recursively containing their entries;
+ # - symlinks to directories or regular files are dereferenced and read as their targets.
+ readPath =
+ let
+ readHandlers.regular = readRegular;
+ readHandlers.directory = readDirectory;
+ readHandlers.symlink = readSymlink;
+
+ readRegular = path:
+ builtins.readFile path;
+
+ readDirectory = path:
+ builtins.mapAttrs
+ (name: _type: readPath (path + "/${name}"))
+ (builtins.readDir path);
+
+ readSymlink = path:
+ if canBeTraversedAsDirectory path then
+ readDirectory path
+ else
+ readRegular path;
+
+ # The trailing "/." causes symlinks to be dereferenced.
+ canBeTraversedAsDirectory = path:
+ builtins.pathExists "${toString path}/.";
+
+ in
+ path:
+ let
+ type = builtins.readFileType path;
+ in
+ if builtins.hasAttr type readHandlers then
+ readHandlers.${type} path
+ else
+ throw "Unsupported file type: ${toString path} (type=${type})";
+
+}
diff --git a/modules/Xresources.nix b/modules/Xresources.nix
index 3f9bc11..afba48e 100644
--- a/modules/Xresources.nix
+++ b/modules/Xresources.nix
@@ -32,7 +32,7 @@ in {
DISPLAY = ":${toString config.services.xserver.display}";
};
serviceConfig = {
- ExecStart = "${pkgs.xorg.xrdb}/bin/xrdb ${pkgs.tv.Xresources}";
+ ExecStart = "${pkgs.xrdb}/bin/xrdb ${pkgs.tv.Xresources}";
RemainAfterExit = true;
SyslogIdentifier = "Xresources";
Type = "oneshot";
diff --git a/modules/backup.nix b/modules/backup.nix
index 37f8e67..de1fcdd 100644
--- a/modules/backup.nix
+++ b/modules/backup.nix
@@ -159,6 +159,7 @@ let
${local.rsync} >&2 \
-aAX --delete \
--filter='dir-merge /.backup-filter' \
+ --filter='dir-merge /.backup-filter.'${shell.escape plan.dst.host.name} \
--rsh=${shell.escape ssh} \
--rsync-path=${shell.escape remote.rsync} \
--link-dest=${shell.escape plan.dst.path}/current \
@@ -194,6 +195,7 @@ let
rsync >&2 \
-aAX --delete \
--filter='dir-merge /.backup-filter' \
+ --filter='dir-merge /.backup-filter.'${shell.escape plan.dst.host.name} \
--link-dest="$dst_path/current" \
"$dst_path/current/" \
"$dst_path/$ns/.partial.$name"
diff --git a/modules/lid-handler.nix b/modules/lid-handler.nix
index d89aced..51f57f0 100644
--- a/modules/lid-handler.nix
+++ b/modules/lid-handler.nix
@@ -29,10 +29,10 @@
}
case $lid_state in
open)
- run_on_display ${pkgs.xorg.xset}/bin/xset dpms force on
+ run_on_display ${pkgs.xset}/bin/xset dpms force on
;;
closed)
- run_on_display ${pkgs.xorg.xset}/bin/xset dpms force off
+ run_on_display ${pkgs.xset}/bin/xset dpms force off
;;
esac
else
diff --git a/pkgs/simple/dic.nix b/pkgs/simple/dic.nix
index 0875c73..5154d4d 100644
--- a/pkgs/simple/dic.nix
+++ b/pkgs/simple/dic.nix
@@ -4,9 +4,9 @@ stdenv.mkDerivation {
name = "dic";
src = pkgs.fetchgit {
- url = https://cgit.ni.krebsco.de/dic;
- rev = "refs/tags/v1.1.1";
- sha256 = "1gbj967a5hj53fdkkxijqgwnl9hb8kskz0cmpjq7v65ffz3v6vag";
+ url = "https://cgit.krebsco.de/dic";
+ rev = "refs/tags/v1.1.2";
+ hash = "sha256-pqzXgn+0rQ2EWXpslhibctpxHN+nMr/GMJMr3cmTBpw=";
};
phases = [
diff --git a/pkgs/simple/font-size-alacritty.nix b/pkgs/simple/font-size-alacritty.nix
index d37f0f0..28e91e6 100644
--- a/pkgs/simple/font-size-alacritty.nix
+++ b/pkgs/simple/font-size-alacritty.nix
@@ -16,20 +16,20 @@ pkgs.writeDashBin "font-size-alacritty" ''
window_id=$(${pkgs.xdotool}/bin/xdotool getactivewindow)
current_size=$(
- ${pkgs.xorg.xprop}/bin/xprop -notype -id $window_id FONT_SIZE |
+ ${pkgs.xprop}/bin/xprop -notype -id $window_id FONT_SIZE |
${pkgs.gnused}/bin/sed -rn 's/.* = ([0-9]+)$/\1/p'
)
# usage: set_font_size WINDOW_ID FONT_SIZE
set_font_size() {
${pkgs.alacritty}/bin/alacritty msg config -w $1 font.size=$2
- ${pkgs.xorg.xprop}/bin/xprop -id $1 -f FONT_SIZE 32c -set FONT_SIZE $2
+ ${pkgs.xprop}/bin/xprop -id $1 -f FONT_SIZE 32c -set FONT_SIZE $2
}
# usage: reset_font_size WINDOW_ID
reset_font_size() {
${pkgs.alacritty}/bin/alacritty msg config -w $1 font.size=$min_size
- ${pkgs.xorg.xprop}/bin/xprop -id $1 -remove FONT_SIZE
+ ${pkgs.xprop}/bin/xprop -id $1 -remove FONT_SIZE
}
# usage: make_next_size
diff --git a/pkgs/simple/pinentry-urxvt/default.nix b/pkgs/simple/pinentry-urxvt/default.nix
index e79b09f..ce37a98 100644
--- a/pkgs/simple/pinentry-urxvt/default.nix
+++ b/pkgs/simple/pinentry-urxvt/default.nix
@@ -59,12 +59,12 @@ in
displayers=$(${pkgs.coreutils}/bin/mktemp -t pinentry-urxvt.$$.displayers.XXXXXXXX)
screenshot=$(${pkgs.coreutils}/bin/mktemp -t pinentry-urxvt.$$.screenshot.XXXXXXXX)
- ${pkgs.xorg.xwd}/bin/xwd -root |
+ ${pkgs.xwd}/bin/xwd -root |
${pkgs.imagemagick}/bin/convert xwd:- -fill \#424242 -colorize 80% xwd:"$screenshot"
display_screenshot() {
${pkgs.exec "pinentry-urxvt.display_screenshot" {
- filename = "${pkgs.xorg.xwud}/bin/xwud";
+ filename = "${pkgs.xwud}/bin/xwud";
argv = [
cfg.xwud.className
"-noclick"
diff --git a/pkgs/simple/xextras.nix b/pkgs/simple/xextras.nix
index c9c0308..e8a3615 100644
--- a/pkgs/simple/xextras.nix
+++ b/pkgs/simple/xextras.nix
@@ -6,7 +6,7 @@ pkgs.write "xextras" {
# SYNOPSIS
# net-current-desktop
#
- ${pkgs.xorg.xprop}/bin/xprop -notype -root 32i _NET_CURRENT_DESKTOP 8s _NET_DESKTOP_NAMES |
+ ${pkgs.xprop}/bin/xprop -notype -root 32i _NET_CURRENT_DESKTOP 8s _NET_DESKTOP_NAMES |
${pkgs.jq}/bin/jq -Rrs '
split("\n") | map(select(.!="") | split(" = ") | { name: .[0], value: .[1] }) | from_entries |
{
diff --git a/pkgs/simple/xkiller.nix b/pkgs/simple/xkiller.nix
index 9d83047..6f8326b 100644
--- a/pkgs/simple/xkiller.nix
+++ b/pkgs/simple/xkiller.nix
@@ -10,7 +10,7 @@ pkgs.writeDash "xkiller" ''
{
exit_code=$(
DISPLAY=:$display ${pkgs.coreutils}/bin/timeout 1 \
- ${pkgs.xorg.xset}/bin/xset q >/dev/null 2>&1 &&
+ ${pkgs.xset}/bin/xset q >/dev/null 2>&1 &&
echo 0 || echo $?
)
if test $exit_code = 124; then
diff --git a/pkgs/simple/xtoggledpms.nix b/pkgs/simple/xtoggledpms.nix
index d164ad7..1e39a97 100644
--- a/pkgs/simple/xtoggledpms.nix
+++ b/pkgs/simple/xtoggledpms.nix
@@ -2,7 +2,7 @@
let
grep = "${pkgs.gnugrep}/bin/grep";
- xset = "${pkgs.xorg.xset}/bin/xset";
+ xset = "${pkgs.xset}/bin/xset";
in
pkgs.writeDashBin "xtoggledpms" ''
diff --git a/systems/mu/config.nix b/systems/mu/config.nix
index f9debe4..1ef7cf3 100644
--- a/systems/mu/config.nix
+++ b/systems/mu/config.nix
@@ -93,7 +93,7 @@
];
fonts.packages = [
- pkgs.xorg.fontschumachermisc
+ pkgs.fontschumachermisc
];
services.pulseaudio.enable = true;