diff --git a/flake.lock b/flake.lock
index 08d8251..6fe98da 100644
--- a/flake.lock
+++ b/flake.lock
@@ -57,11 +57,11 @@
"base16-helix": {
"flake": false,
"locked": {
- "lastModified": 1748408240,
- "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
+ "lastModified": 1752979451,
+ "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"owner": "tinted-theming",
"repo": "base16-helix",
- "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
+ "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"type": "github"
},
"original": {
@@ -142,11 +142,11 @@
]
},
"locked": {
- "lastModified": 1751413152,
- "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
+ "lastModified": 1753121425,
+ "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
+ "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
"type": "github"
},
"original": {
@@ -234,11 +234,11 @@
]
},
"locked": {
- "lastModified": 1752814804,
- "narHash": "sha256-irfg7lnfEpJY+3Cffkluzp2MTVw1Uq9QGxFp6qadcXI=",
+ "lastModified": 1753812716,
+ "narHash": "sha256-OjnjoalP00CyV34zg6T+Un2QoYiHCdRvMbqrweopyyY=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "d0300c8808e41da81d6edfc202f3d3833c157daf",
+ "rev": "2f588d275ebd8243be6c29e7bf3ec7409baa0aa7",
"type": "github"
},
"original": {
@@ -298,11 +298,11 @@
},
"master": {
"locked": {
- "lastModified": 1752942963,
- "narHash": "sha256-DAL+SEKV/jrvbwEcQabUwR+YTx7V09Gbf0zLJIfD4oc=",
+ "lastModified": 1753813715,
+ "narHash": "sha256-x9wSsl3rp/mLHhDkRGto+uAafcV1N0NAkZfIGd5Tdz4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "19331827f62c85e29ac14da62a5c26828f138517",
+ "rev": "ca1ed6f43ac3638c164e721977cc82964584337c",
"type": "github"
},
"original": {
@@ -320,11 +320,11 @@
]
},
"locked": {
- "lastModified": 1751622568,
- "narHash": "sha256-EE3NBsej517VRa1x+ylAghrvngftxf1KgfHlE9OYyXE=",
+ "lastModified": 1753175937,
+ "narHash": "sha256-DtDt87Gld0RCI2qHb7uUb1eWB16FFC4aNDfxZpic/Nw=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
- "rev": "eba4b40c816e5aff8951ae231ac237e8aab8ec1d",
+ "rev": "5ddfff8387edf7c92ce36effb06fb2c52624fece",
"type": "github"
},
"original": {
@@ -358,11 +358,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1752687322,
- "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
+ "lastModified": 1753694789,
+ "narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
+ "rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
"type": "github"
},
"original": {
@@ -413,11 +413,11 @@
"systems": "systems_2"
},
"locked": {
- "lastModified": 1752762787,
- "narHash": "sha256-WZLSOR2Pei7C4nH/ntKUqOZOAa5rgvc2fVZl4RoEXmw=",
+ "lastModified": 1753805595,
+ "narHash": "sha256-5m0FqObrj/0/nfoaKlgpye4+SZzj1nMPnlxGxlIxKNg=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "bc0555c8694d43fb63ae2c7afec08b6987431a04",
+ "rev": "fe0bcc92c8c593d5e2b45ffb0d1253c3aa55eb72",
"type": "github"
},
"original": {
@@ -461,11 +461,11 @@
]
},
"locked": {
- "lastModified": 1749730855,
- "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
+ "lastModified": 1753450833,
+ "narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=",
"owner": "NuschtOS",
"repo": "search",
- "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
+ "rev": "40987cc1a24feba378438d691f87c52819f7bd75",
"type": "github"
},
"original": {
@@ -529,11 +529,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1752750082,
- "narHash": "sha256-NoVAqy+Wj4tgkvrYB8zWncl8Z6Hb80aX3t/TYGdsfaM=",
+ "lastModified": 1753731630,
+ "narHash": "sha256-8pyTksY2aYtLGmqP8u3xhs4ZfttsfzZXAQZXHKecLDo=",
"owner": "danth",
"repo": "stylix",
- "rev": "03699ed214f6e8195bc7199d6ae3aeccf9732b08",
+ "rev": "57d036d92283fddc6ae080459e72e767144a1cda",
"type": "github"
},
"original": {
@@ -674,11 +674,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
- "lastModified": 1752809889,
- "narHash": "sha256-oTIVrw7Cy2McAVqE7GCot5Fb8Wh4JBsUDKMX8u3DFlU=",
+ "lastModified": 1753674409,
+ "narHash": "sha256-jhBdIc802upDu3S/Nu0rgVlIJ39E8KWugQwm/a74MBY=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
- "rev": "f19d2b6b18d4a2e8bf2d6a9f69c934d6726360c4",
+ "rev": "e1bf71a0eb5ff9fdcfe83f6e4676ce19dd87f468",
"type": "github"
},
"original": {
diff --git a/hosts/mac-laptop/configuration.nix b/hosts/mac-laptop/configuration.nix
index bcb6874..27e8779 100644
--- a/hosts/mac-laptop/configuration.nix
+++ b/hosts/mac-laptop/configuration.nix
@@ -8,6 +8,7 @@
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
+ ../../modules/openvpn
];
powerManagement.enable = true;
hardware.asahi.extractPeripheralFirmware = true;
@@ -136,8 +137,11 @@
description = "Joshua Elmasri";
extraGroups = [ "networkmanager" "wheel" "adbusers" "dialout" ];
packages = with pkgs; [];
+ shell = pkgs.fish;
};
+ programs.fish.enable = true;
+
programs.adb.enable = true;
# Allow unfree packages
@@ -205,8 +209,9 @@
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
+ # networking.firewall.allowedTCPPortRanges = [ { from = 42000; to = 420001; } ];
# Or disable the firewall altogether.
- # networking.firewall.enable = false;
+ networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
diff --git a/hosts/mac-laptop/home.nix b/hosts/mac-laptop/home.nix
index c8ca366..8e7dbe5 100644
--- a/hosts/mac-laptop/home.nix
+++ b/hosts/mac-laptop/home.nix
@@ -6,7 +6,7 @@
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
- imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ../../modules/ashell/default.nix ];
+ imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ../../modules/waybar/waybar.nix ];
home.packages = [
diff --git a/modules/hypr/hyprland_laptop.nix b/modules/hypr/hyprland_laptop.nix
index f5eb8da..5563189 100644
--- a/modules/hypr/hyprland_laptop.nix
+++ b/modules/hypr/hyprland_laptop.nix
@@ -15,8 +15,8 @@ monitor = eDP-1, highres@highrr, 0x0, 1.6
exec-once = hyprctl dispatch workspace 1
#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427
exec-once = hyprlock
-# exec-once = waybar
-exec-once = WGPU_BACKEND=gl ashell
+exec-once = waybar
+# exec-once = WGPU_BACKEND=gl ashell
exec-once = systemctl --user start hyprpolkitagent
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
diff --git a/modules/openvpn/default.nix b/modules/openvpn/default.nix
new file mode 100644
index 0000000..b535f57
--- /dev/null
+++ b/modules/openvpn/default.nix
@@ -0,0 +1,7 @@
+{pkgs, ...}:
+
+{
+ services.openvpn.servers = {
+ homeVPN = { config = '' config ./modules/openvpn/homeVPN.ovpn ''; };
+ };
+}
diff --git a/modules/openvpn/homeVPN.ovpn b/modules/openvpn/homeVPN.ovpn
new file mode 100644
index 0000000..05ec258
--- /dev/null
+++ b/modules/openvpn/homeVPN.ovpn
@@ -0,0 +1,134 @@
+client
+dev tun
+proto tcp
+remote 150.220.96.4 1194
+resolv-retry infinite
+nobind
+
+# Downgrade privileges after initialization (non-Windows only)
+user nobody
+group nogroup
+
+persist-key
+persist-tun
+
+auth-user-pass
+remote-cert-tls server
+cipher AES-256-CBC
+comp-lzo
+verb 3
+
+auth SHA1
+key-direction 1
+
+reneg-sec 0
+
+redirect-gateway def1
+
+
+-----BEGIN CERTIFICATE-----
+MIIEfDCCA2SgAwIBAgIIX7Vfn1rIEkQwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
+BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
+BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
+GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjUwNzAxMDAzNzE5WhcNNDAw
+NjI3MDAzNzE5WjCBgTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
+DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEZMBcGA1UE
+CwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UEAwwQVW5pRmlfT3BlblZQTl9DQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALj/Bc0DVwzWk5riE6vWcVqq
+iTz5GtoHFlrnm0fce2/UZpXkgVg4oMY3IrDOFBwsoKBOflJhdzfBL37tZ0uTCvvs
+9/ICF6EpuKH4Y7dqyV6lZOMJZ90rCZ0e+oX/VN8Z5hIN4fbatBsKeqA73oru+OMm
+vipWBfYxFlf5nZN0ky1hrckADf1dN+EEJ7v+Ggu9JK0Vq4tv3qsiAdEzOqq5ptGB
+uFOZaZZtOKyjnjoSlYdFku191SeVKUVlYqmaH3azokG9OUsfdLJGEGQ02fRInooi
+kbBHZq6hwMqVWpwDN6u37oOALVgAZLK/UGJP7tmEyypHN3nIBERpCCyg/vDaqR0C
+AwEAAaOB9TCB8jALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zCBtQYDVR0jBIGt
+MIGqgBTPwX8miNgDvzHq8hfCfZw6ElH1AKGBh6SBhDCBgTELMAkGA1UEBhMCVVMx
+ETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwN
+VWJpcXVpdGkgSW5jLjEZMBcGA1UECwwQVW5pRmlfT3BlblZQTl9DQTEZMBcGA1UE
+AwwQVW5pRmlfT3BlblZQTl9DQYIIX7Vfn1rIEkQwHQYDVR0OBBYEFM/BfyaI2AO/
+MeryF8J9nDoSUfUAMA0GCSqGSIb3DQEBCwUAA4IBAQCMjde9YE2dh46lkzZEf+jF
+dm3oRi571XYM4vvlsN4IBGf6e9/mCsZZJO1x/P+f5+p1pkFao5bOCW4Mcyjh441T
+JrrWFneY4Rso0fa76K6ufBr/tg0BH/uZxCyn6XfqhNlZOvpjCfNPuEEKl3JcT7mB
+F8kCoBr4VBECo3QVOFpO+GUlbx90ah/eHg7Itjv4LRAR6nDwLcIdAw4xqD92n3hN
+HbaMGGQuPdPpQ1yBtiVBtBazWj/GJRoqwayuwhmpHqOezwF5wZWV2NGDUpJk6B8O
+N9kaWR7fuLhiWdDGO60vewasJzrJJ0FBs8p/nfA9YpEdJM6hyAAGtLHmFaRfI18c
+-----END CERTIFICATE-----
+
+
+-----BEGIN OpenVPN Static key V1-----
+3f2a7bf46921701f5fd0d519811da303
+a400d24d06e0d715f30798f9761097e3
+c28ef206c9dc6a140b668db9f8d73381
+94b0518c10d32f899cf292709bd60385
+fb020cef3a31270b1f6c6b9169ab56f7
+12c2d2a1a3fb9d262fab2f3567d91372
+d03e98a71b123105923e043f5001af09
+88ae0e2a64e5ffba348c96eb29c7d4ff
+dabfa1b08441d9bdf3498708c798ef01
+71a8cb169f3b589ab1f6fb9b5478abb6
+4f86a6310f4b36363dba42352e5c1d1d
+b3f8c084a5c0ee98374ba3f62f3fe0bb
+8c74df88091676c7a942e97dac90edab
+b37356bf3e7de3d16e8d0e457de31430
+37cd2deaf503cee38032a1e94b4f6d57
+de4f5b7026693a1570439930f5662103
+-----END OpenVPN Static key V1-----
+
+
+-----BEGIN CERTIFICATE-----
+MIIEmDCCA4CgAwIBAgIIYFQWWbVqsLUwDQYJKoZIhvcNAQELBQAwgYExCzAJBgNV
+BAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxFjAU
+BgNVBAoMDVViaXF1aXRpIEluYy4xGTAXBgNVBAsMEFVuaUZpX09wZW5WUE5fQ0Ex
+GTAXBgNVBAMMEFVuaUZpX09wZW5WUE5fQ0EwHhcNMjUwNzAxMDAzNzE5WhcNMzAw
+NjMwMDAzNzE5WjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREw
+DwYDVQQHDAhOZXcgWW9yazEWMBQGA1UECgwNVWJpcXVpdGkgSW5jLjEdMBsGA1UE
+CwwUVW5pRmlfT3BlblZQTl9DbGllbnQxHTAbBgNVBAMMFFVuaUZpX09wZW5WUE5f
+Q2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjcFu13VZPUC5
+HTLwGa/04hDeMIxLzb8r05LcgY4+6tvBl84ROtZByGW6Oe5ieL43AxolBhLPuqM0
+v3rg3DVXLCA59ICUS16HkjiQobZp35ruxKP4YxIHBVxs5BTgC93Q21bVbCHox9bz
+yTcGl4z+t3B6d3hrBqG46KAvPLQgxjaS3vSslSznfl92kA8drJskHELy6F4lFuV0
+Wkyj8BQ9E6guPaCAopbji91OW21XymtPu6tJLwQhLICosttL1W6lFfA3sT5WC2vc
+IuEhgPqa5UOTtoHvsBmbtFP7xc6L3+60cnmDjpKz7hEoK6iQg7V1aHZr0UmadGF2
+5S2glTrb4QIDAQABo4IBCDCCAQQwgbUGA1UdIwSBrTCBqoAUz8F/JojYA78x6vIX
+wn2cOhJR9QChgYekgYQwgYExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9y
+azERMA8GA1UEBwwITmV3IFlvcmsxFjAUBgNVBAoMDVViaXF1aXRpIEluYy4xGTAX
+BgNVBAsMEFVuaUZpX09wZW5WUE5fQ0ExGTAXBgNVBAMMEFVuaUZpX09wZW5WUE5f
+Q0GCCF+1X59ayBJEMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoG
+CCsGAQUFBwMCMB0GA1UdDgQWBBStg+rBUt0PoaLZZwSUwyGlOGP2fTANBgkqhkiG
+9w0BAQsFAAOCAQEAamBemx+5wVyU82TreQ3dXIUAs+DndmHgL821Pmfo/G4n/rAO
+Uaj3Ba14XZXm1sei6bWgv383J+Skvi325HghMqtEdK1rrHy9UTFt2UwEndxUNXJd
++3x83QEykjyiHwTiQ0nOo5Q4OYG0Eg+Bpvh6sLpEtXNrZVNyo+8Zj5hz5DAhc1i4
+j6zv9Eg+lvaVQlH9Mld7fiVCIBB2173ThGSn9y5zH0BPHZZbCrKjc+Qj08An4HtX
+1QDMhBX4S+4iZFcBE7ZAJ0OtLcKjou16wPP1ECKd9FpIV6FxL/pjK5E1zCXsKmMe
+J4Z8W/RTTXqsZlHpri8LLCICBRkLjVF3g88MEw==
+-----END CERTIFICATE-----
+
+
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCNwW7XdVk9QLkd
+MvAZr/TiEN4wjEvNvyvTktyBjj7q28GXzhE61kHIZbo57mJ4vjcDGiUGEs+6ozS/
+euDcNVcsIDn0gJRLXoeSOJChtmnfmu7Eo/hjEgcFXGzkFOAL3dDbVtVsIejH1vPJ
+NwaXjP63cHp3eGsGobjooC88tCDGNpLe9KyVLOd+X3aQDx2smyQcQvLoXiUW5XRa
+TKPwFD0TqC49oICiluOL3U5bbVfKa0+7q0kvBCEsgKiy20vVbqUV8DexPlYLa9wi
+4SGA+prlQ5O2ge+wGZu0U/vFzovf7rRyeYOOkrPuESgrqJCDtXVodmvRSZp0YXbl
+LaCVOtvhAgMBAAECggEAA6X3hKHd1s08VmuLfjKNbDOmvEiIFOoEJnEjreceztJl
+rgYDYuiSKQzkZf3kJYGW9REufcFsyW8BrW64rDVobz3/FkAohBreBPd7hXK/6jc/
+FbfqOlNQjSTe6pNwKe4FPffpc0IZW+qE1YHOI7otvhCt6wNu4bm2aOPig1hX2/7d
+Krrrpt8yrtXoBzCvX8qsl2wadanDpbBqzzMlY4N/pbbkNkyNgeQUwpImgHtfL0VT
+K+bGzEFrOaAVE/1z598OfPL1yrvIEGwlAX+0jWCySQA4LkepN+IoNYn6wZmMtc0u
+355i7xjfxjpzldnaludz0D0l9om7kS6Yin8t92uvDwKBgQC/f8HG4TWwhPxGdwFM
+l+p3HxUJLY6Hks2hupuCMGqAuE+Q/sg2MoSz434ZMUSJzSoYc14vPx8JNkgTHCAV
+M5+oatLQ5CTPtsXlGc1DVZLuIhMWOYewEzYyz8HuJlTiGFbT5xUZj+rnvtiMBDGD
+/GTfvbavEsheeVchPnfJxaEFFwKBgQC9gHwxRfN86ETO00u/IRkZlcKcQNsK3LxF
+m0Bsyu08f8BRio5QeMjizkisUaADqnWtqdcQw9T2eS/m+Z+mzkjWsXtrnQlQwNUp
+tO52axUo+d+cmjAhDby9CbJSShXaoOQ5XQQDaX02s0MUlnfBkq0qRZinnnsWK8vc
+N3SkUK2xxwKBgBbeGLO5HQIxPzbi6yLMWVFUQtzPtd92pluTvxIy2eT5HXdBFYNz
+UOlyVxKHEZorB8XXsP2PWhNtifnON/6QJZak+vu64rJzLvqGtD5AL8WECCd1Q0DB
+ao1yxcO8jBJbubKgO6LLzs9RuOYvcgJC14DoVLJfWdH+R2tO3FsZ4HqNAoGBAKSv
+Fj7T5ah1Sebb5YXyQ5fieD/GdRVZgxySsUhaihT7iKzUVp1Een/weWOXhBHrf10u
+rkJZjaes5Z467S3PM6mwj+uTi1bsXdNi86Fhqf/0NwonTRBMmetGk/vDen6HOA9J
+8ITuleyFmRQ5N1W4HFkSJnn01k8MPJvibbGmk2xdAoGAEgs01GX+sApfcMgFIgZO
+XGJoSHDnuoMxnvgqFxdV+ELrOtLlslc3/SoA2RfVfsg+aUX6gO2XndsS0a4u1wJj
+plp5pU0Yp7c2TdpCVsER3G9MLVkeA9cJj0XRPwNfR0sb5Qk/k1yQmvwwxveLWg0q
+D/XWJgkDwapdkhWyrnZ1fPU=
+-----END PRIVATE KEY-----
+