diff options
| author | Akshay Nair <phenax5@gmail.com> | 2020-12-20 17:45:23 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2020-12-20 17:45:23 +0530 |
| commit | 43586a11fb56e5d3555e92ac67252c8ccd8341f8 (patch) | |
| tree | cd32ef953bfc9b0e965a578f3deca9262fb5a6c4 | |
| parent | 3690d8a637dc891704d5681d535dc660f83fb66b (diff) | |
| download | nixos-config-43586a11fb56e5d3555e92ac67252c8ccd8341f8.tar.gz nixos-config-43586a11fb56e5d3555e92ac67252c8ccd8341f8.zip | |
Migrates sensible apps to nix
| -rw-r--r-- | configuration.nix | 26 | ||||
| -rw-r--r-- | packages/sensible-apps/install.sh | 18 | ||||
| -rw-r--r-- | packages/sensible-apps/pkg.nix | 4 | ||||
| -rw-r--r-- | packages/sensible-apps/sensible-apps.nix | 33 |
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; +} |
