aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorAdam Washington <[email protected]>2021-09-10 15:23:15 +0000
committerAdam Washington <[email protected]>2021-09-10 15:24:27 +0000
commit363e514bbcc5e8efbda09991f60c5ea63e4e4d57 (patch)
treec32ac813e0b92143a04c91d8b94390967eda1217 /flake.nix
parentInitial Commit (diff)
downloadpia.nix-363e514bbcc5e8efbda09991f60c5ea63e4e4d57.tar.xz
pia.nix-363e514bbcc5e8efbda09991f60c5ea63e4e4d57.zip
Make a real PIA module
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix88
1 files changed, 35 insertions, 53 deletions
diff --git a/flake.nix b/flake.nix
index c6c5822..b5a1a67 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,59 +1,41 @@
{
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.05";
- home-manager.url = "github:rycee/home-manager/release-21.05";
- home-manager.inputs.nixpkgs.follows = "nixpkgs";
- };
- outputs = { self, nixpkgs, home-manager }: {
- lib.enableSwaybar = { config, pkgs, ... }:
- let
- colors = config.colors;
- background = "#${colors.base00}";
- brite_bg = "#${colors.base01}";
- dim = "#${colors.base04}";
- fg = "#${colors.base05}";
- brite = "#${colors.base07}";
- in {
- wayland.windowManager.sway.config.bars = [{
- colors.background = background;
- colors.statusline = fg;
- colors.activeWorkspace.background = background;
- colors.activeWorkspace.border = background;
- colors.activeWorkspace.text = fg;
- colors.focusedWorkspace.background = background;
- colors.focusedWorkspace.border = background;
- colors.focusedWorkspace.text = brite;
- colors.inactiveWorkspace.background = background;
- colors.inactiveWorkspace.border = background;
- colors.inactiveWorkspace.text = dim;
- colors.urgentWorkspace.background = fg;
- colors.urgentWorkspace.border = background;
- colors.urgentWorkspace.text = background;
- fonts = {
- names = [ config.font-name "Symbola"];
- style = "Condensed";
- size = config.font-size - 4.0;
+ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.05"; };
+ outputs = { self, nixpkgs }: {
+ nixosModule = { config }: {
+ options = {
+ services.pia.authUserPass = {
+ username = nixpkgs.lib.mkOption {
+ default = false;
+ type = nixpkgs.lib.types.bool;
+ };
+ password = nixpkgs.lib.mkOption {
+ default = false;
+ type = nixpkgs.lib.types.bool;
};
- position = "top";
- statusCommand = "${self.defaultPackage.x86_64-linux}/bin/swaybar";
- }];
- };
-
- defaultPackage.x86_64-linux =
- nixpkgs.legacyPackages.x86_64-linux.rustPlatform.buildRustPackage {
- pname = "swaybar";
- version = "0.1.0";
-
- src = ./.;
-
- cargoSha256 = "YiNaEyiKfiBIWzRXNIoqeWzoD/AGYNXYyy33Tj3a61g=";
-
- meta = with nixpkgs.lib; {
- description = "My personal code for swaybar";
- homepage = "https://sr.ht/rprospero/swaybar";
- license = licenses.unlicense;
- maintainers = [ maintainers.rprospero ];
};
};
+ config = {
+ services.openvpn.servers = let
+ resources = nixpkgs.fetchzip {
+ name = "pia-vpn-config";
+ url = "https://www.privateinternetaccess.com/openvpn/openvpn.zip";
+ sha256 = "ZA8RS6eIjMVQfBt+9hYyhaq8LByy5oJaO9Ed+x8KtW8=";
+ stripRoot = false;
+ };
+ servers = map (builtins.replaceStrings [ ".ovpn" "_" ] [ "" "-" ])
+ (builtins.filter (name: !(isNull (builtins.match ".+ovpn$" name)))
+ (builtins.attrNames (builtins.readDir resources)));
+ make_server = (name: {
+ name = name;
+ value = {
+ autoStart = false;
+ authUserPass = config.services.pia.authUserPass;
+ config = "config ${resources}/${name}.ovpn";
+ updateResolvConf = true;
+ };
+ });
+ in builtins.listToAttrs (map make_server servers);
+ };
+ };
};
}