From 1bbcd91b2ef0738709f7d955760a6624a9745fc2 Mon Sep 17 00:00:00 2001 From: Ram Kromberg Date: Fri, 1 Jul 2016 18:40:21 +0300 Subject: [PATCH] spacefm: sudo and gksu fixes #15758 and license update --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/spacefm.nix | 55 ++++++++++++++++++++++ pkgs/applications/misc/spacefm/default.nix | 19 +++++--- 3 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 nixos/modules/programs/spacefm.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index be72c0ef29c..e11b7ff91bf 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -76,6 +76,7 @@ ./programs/screen.nix ./programs/shadow.nix ./programs/shell.nix + ./programs/spacefm.nix ./programs/ssh.nix ./programs/ssmtp.nix ./programs/tmux.nix diff --git a/nixos/modules/programs/spacefm.nix b/nixos/modules/programs/spacefm.nix new file mode 100644 index 00000000000..5735f0c6b3e --- /dev/null +++ b/nixos/modules/programs/spacefm.nix @@ -0,0 +1,55 @@ +# Global configuration for spacefm. + +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.programs.spacefm; + +in +{ + ###### interface + + options = { + + programs.spacefm = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to install SpaceFM and create /etc/spacefm/spacefm.conf. + ''; + }; + + settings = mkOption { + type = types.attrs; + default = { + tmp_dir = "/tmp"; + terminal_su = "${pkgs.sudo}/bin/sudo"; + graphical_su = "${pkgs.gksu}/bin/gksu"; + }; + example = literalExample ''{ + tmp_dir = "/tmp"; + terminal_su = "''${pkgs.sudo}/bin/sudo"; + graphical_su = "''${pkgs.gksu}/bin/gksu"; + }''; + description = '' + The system-wide spacefm configuration. + Parameters to be written to /etc/spacefm/spacefm.conf. + Refer to the relevant entry in the SpaceFM manual. + ''; + }; + + }; + }; + + ###### implementation + + config = mkIf cfg.enable { + environment.systemPackages = [ pkgs.spaceFM ]; + + environment.etc."spacefm/spacefm.conf".text = + concatStrings (mapAttrsToList (n: v: "${n}=${toString v}\n") cfg.settings); + }; +} diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix index f0c244af05e..74466d667b3 100644 --- a/pkgs/applications/misc/spacefm/default.nix +++ b/pkgs/applications/misc/spacefm/default.nix @@ -1,6 +1,6 @@ -{ pkgs, fetchFromGitHub, stdenv, gtk3, udev, desktop_file_utils, shared_mime_info -, intltool, pkgconfig, wrapGAppsHook, ffmpegthumbnailer, jmtpfs, ifuse, lsof, udisks -, hicolor_icon_theme, adwaita-icon-theme }: +{ pkgs, fetchFromGitHub, stdenv, gtk3, udev, desktop_file_utils +, shared_mime_info, intltool, pkgconfig, wrapGAppsHook, ffmpegthumbnailer +, jmtpfs, ifuse, lsof, udisks, hicolor_icon_theme, adwaita-icon-theme }: stdenv.mkDerivation rec { name = "spacefm-${version}"; @@ -15,14 +15,21 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-bash-path=${pkgs.bash}/bin/bash" - "--with-preferable-sudo=${pkgs.sudo}/bin/sudo" ]; preConfigure = '' configureFlags="$configureFlags --sysconfdir=$out/etc" ''; - buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig wrapGAppsHook ffmpegthumbnailer jmtpfs ifuse lsof udisks ]; + postInstall = '' + rm -f $out/etc/spacefm/spacefm.conf + ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf + ''; + + buildInputs = [ + gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig + wrapGAppsHook ffmpegthumbnailer jmtpfs ifuse lsof udisks + ]; meta = with stdenv.lib; { description = "A multi-panel tabbed file manager"; @@ -33,7 +40,7 @@ stdenv.mkDerivation rec { ''; homepage = http://ignorantguru.github.io/spacefm/; platforms = platforms.linux; - license = licenses.gpl3; + license = licenses.gpl3Plus; maintainers = with maintainers; [ jagajaga obadz ]; }; }