aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2020-12-20 17:45:23 +0530
committerAkshay Nair <phenax5@gmail.com>2020-12-20 17:45:23 +0530
commit43586a11fb56e5d3555e92ac67252c8ccd8341f8 (patch)
treecd32ef953bfc9b0e965a578f3deca9262fb5a6c4
parent3690d8a637dc891704d5681d535dc660f83fb66b (diff)
downloadnixos-config-43586a11fb56e5d3555e92ac67252c8ccd8341f8.tar.gz
nixos-config-43586a11fb56e5d3555e92ac67252c8ccd8341f8.zip
Migrates sensible apps to nix
-rw-r--r--configuration.nix26
-rw-r--r--packages/sensible-apps/install.sh18
-rw-r--r--packages/sensible-apps/pkg.nix4
-rw-r--r--packages/sensible-apps/sensible-apps.nix33
4 files changed, 69 insertions, 12 deletions
diff --git a/configuration.nix b/configuration.nix
index 9696c5d..d6e9a26 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -4,11 +4,13 @@
{ config, pkgs, ... }:
-{
- imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
+let
+ apps = (import ./packages/sensible-apps/sensible-apps.nix).apps;
+ sensible-apps = pkgs.callPackage ./packages/sensible-apps/pkg.nix {};
+in {
+ imports = [
+ ./hardware-configuration.nix
+ ];
nixpkgs.config = {
allowUnfree = true;
@@ -26,9 +28,11 @@
# Global
environment.variables = {
- EDITOR = "nvim";
- SHELL = "zsh";
- VISUAL = "nvim";
+ EDITOR = apps.EDITOR;
+ VISUAL = apps.EDITOR;
+ TERMINAL = apps.TERMINAL;
+ BROWSER = apps.BROWSER;
+ PRIVATE_BROWSER = apps.PRIVATE_BROWSER;
};
environment.shells = [ pkgs.zsh pkgs.bashInteractive ];
@@ -128,6 +132,8 @@
feh
ffmpeg-full
+ sensible-apps
+
pass
alsaUtils
unzip
@@ -139,15 +145,11 @@
pciutils
];
- # Some programs need SUID wrappers, can be configured further or are
- # started in user sessions.
- # programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = false;
};
-
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. It‘s perfectly fine and recommended to leave
diff --git a/packages/sensible-apps/install.sh b/packages/sensible-apps/install.sh
new file mode 100644
index 0000000..ec13109
--- /dev/null
+++ b/packages/sensible-apps/install.sh
@@ -0,0 +1,18 @@
+apps="
+sensible-terminal $TERMINAL
+sensible-editor $EDITOR
+sensible-browser $BROWSER
+sensible-private-browser $PRIVATE_BROWSER
+";
+
+BIN=$out/bin;
+
+echo -e "$apps" | while read app bin; do
+ if [[ ! -z "$bin" ]]; then
+ echo "[SENSIBLE_APPS]:: Setting $app to $bin ($BIN/$bin)";
+ mkdir -p $BIN;
+ echo -e "#!/usr/bin/env sh\nexec $bin \"\$@\"" > $BIN/$app;
+ chmod +x $BIN/$app;
+ fi;
+done;
+
diff --git a/packages/sensible-apps/pkg.nix b/packages/sensible-apps/pkg.nix
new file mode 100644
index 0000000..3a50480
--- /dev/null
+++ b/packages/sensible-apps/pkg.nix
@@ -0,0 +1,4 @@
+
+# Rexported derivation
+let sensibleApps = import ./sensible-apps.nix; in sensibleApps.package
+
diff --git a/packages/sensible-apps/sensible-apps.nix b/packages/sensible-apps/sensible-apps.nix
new file mode 100644
index 0000000..db35bf7
--- /dev/null
+++ b/packages/sensible-apps/sensible-apps.nix
@@ -0,0 +1,33 @@
+let
+ apps = {
+ EDITOR = "nvim";
+ TERMINAL = "st";
+ BROWSER = "firefox";
+ PRIVATE_BROWSER = "firefox";
+ };
+ package = { stdenv }: stdenv.mkDerivation rec {
+ name = "local-sensible-apps-${version}";
+ version = "0.0.1";
+
+ src = [ ./install.sh ];
+
+ unpackPhase = ''
+ for srcFile in $src; do
+ local tgt=$(echo $srcFile | cut --delimiter=- --fields=2-)
+ cp $srcFile $tgt
+ done
+ '';
+
+ installPhase = ''
+ export TERMINAL="${apps.TERMINAL}";
+ export EDITOR="${apps.EDITOR}";
+ export BROWSER="${apps.BROWSER}";
+ export PRIVATE_BROWSER="${apps.PRIVATE_BROWSER}";
+ ls -la;
+ sh ./install.sh
+ '';
+ };
+in {
+ package = package;
+ apps = apps;
+}