Compare commits

...

4 commits

Author SHA1 Message Date
Nick
a7ed1629e8 feat: added wireguard 2025-03-31 22:53:08 -05:00
Nick
a635237125 feat: added espanso 2025-03-31 19:47:20 -05:00
Nick
9fdc5cf160 feat: updated justfile 2025-03-31 19:13:24 -05:00
Nick
4e869e2a39 feat: added bookmarks 2025-03-31 19:13:04 -05:00
9 changed files with 189 additions and 36 deletions

View file

@ -0,0 +1,18 @@
{ instancesFunctions }:
let
inherit (instancesFunctions)
sopsPath
;
wireGuardLabel = "WireGuard";
wireGuardName = "wireguard";
in
{
label = wireGuardLabel;
name = wireGuardName;
sops = {
path0 = "${sopsPath}/${wireGuardName}";
};
ports = {
};
}

View file

@ -62,6 +62,7 @@ in
theming
polychromatic
dolphin
espanso
;
};
};
@ -180,6 +181,7 @@ in
theming
polychromatic
dolphin
espanso
;
};
};
@ -206,7 +208,7 @@ in
;
};
};
"${deimos.name}-${user2}" = {
"${deimos.name}-${user2}" = {
imports = builtins.attrValues {
inherit (modules)
cli

View file

@ -34,15 +34,14 @@
keyword = "Five";
}
{
name = "FTY Supplies";
url = "https://fytsupplies.ca";
name = "Instacart";
url = "https://www.instacart.ca";
tags = [
"tattoo tat"
"fyt"
"shopping"
"supply"
"instacart"
"food"
"grocery"
];
keyword = "FYT";
keyword = "Instacart";
}
{
name = "Skip the Dishes";
@ -64,17 +63,5 @@
];
keyword = "Uber";
}
{
name = "TatSoul";
url = "https://www.tatsoul.com";
tags = [
"tattoo"
"tat"
"tatsoul"
"shopping"
"supply"
];
keyword = "TatSoul";
}
];
}

View file

@ -71,6 +71,15 @@ in
];
keyword = "Lem";
}
{
name = "Instagram";
url = "https://www.instagram.com/";
tags = [
"instagram"
"insta"
];
keyword = "IG";
}
{
name = "OnlyFans";
url = "https://onlyfans.com";

View file

@ -0,0 +1,43 @@
{ pkgs, ... }:
{
services.espanso = {
enable = true;
package = pkgs.espanso-wayland;
matches = {
base = {
matches = [
{
trigger = ":now";
replace = "It's {{currentdate}} {{currenttime}}";
}
{
trigger = ":hello";
replace = "line1\nline2";
}
{
regex = ":hi(?P<person>.*)\\.";
replace = "Hi {{person}}!";
}
];
};
global_vars = {
global_vars = [
{
name = "currentdate";
type = "date";
params = {
format = "%d/%m/%Y";
};
}
{
name = "currenttime";
type = "date";
params = {
format = "%R";
};
}
];
};
};
};
}

View file

@ -17,6 +17,7 @@ in
flatpak
plasma
sddm
wireGuard
;
};
};

View file

@ -0,0 +1,67 @@
{ config, flake, ... }:
let
inherit (flake.config.services.instances) wireGuard;
service = wireGuard;
wireGuardInterface =
{
secret,
publicKey,
endpoint,
}:
{
name = "Proton-${secret}";
value = {
autostart = false;
address = [ "10.2.0.2/32" ];
dns = [ "10.2.0.1" ];
privateKeyFile = config.sops.secrets."${service.name}-${secret}".path;
peers = [
{
inherit publicKey endpoint;
allowedIPs = [ "0.0.0.0/0,::/0" ];
persistentKeepalive = 25;
}
];
};
};
interfaces = [
{
secret = "CA363";
publicKey = "9mTDh5Tku0gxDdzqxnpnzItHQBm2h2B2hXnUHvhGCFw=";
endpoint = "149.88.97.110:51820";
}
{
secret = "CA220";
publicKey = "UR8vjVYrrWYadCwLKiAabKTIdxM4yikmCXnvKWm89D8=";
endpoint = "139.28.218.130:51820";
}
{
secret = "CA358";
publicKey = "9mTDh5Tku0gxDdzqxnpnzItHQBm2h2B2hXnUHvhGCFw=";
endpoint = "149.88.97.110:51820";
}
{
secret = "CA627";
publicKey = "xLFgU430Tt7PdHJydVbIKvtjXJodoPpGKW7fhF7XE2k=";
endpoint = "139.28.218.130:51820";
}
];
sopsPath = secret: {
path = "${service.sops.path0}/${service.name}-${secret}";
owner = "root";
mode = "600";
};
in
{
networking.wg-quick.interfaces = builtins.listToAttrs (map wireGuardInterface interfaces);
sops.secrets = builtins.listToAttrs (
map (interface: {
name = "${service.name}-${interface.secret}";
value = sopsPath interface.secret;
}) interfaces
);
}

View file

@ -10,6 +10,7 @@ let
inherit (flake.config.people) user0;
inherit (flake.config.machines) devices;
inherit (flake.config.people.users.${user0}) name paths;
hostname = config.networking.hostName;
in
{
@ -47,24 +48,45 @@ in
username = user0;
homeDirectory = "/home/${user0}";
file = {
"./justfile" = {
text = ''
vpn:
sudo protonvpn c --c CA
"./justfile" =
let
mars = devices.mars;
deimos = devices.deimos;
deviceLogic = if hostname == mars.name then deimos else mars;
in
{
text = ''
vpn0:
sudo systemctl start wg-quick-Proton-CA363.service
vpnoff:
sudo protonvpn d
vpn1:
sudo systemctl start wg-quick-Proton-CA220.service
rebuild:
nixos-rebuild switch --use-remote-sudo --flake ~/Files/Projects/dotfiles#${hostname} --show-trace
vpn2:
sudo systemctl start wg-quick-Proton-CA358.service
elm:
cd ~/Files/Projects/website/frontend ; elm-land server
vpn3:
sudo systemctl start wg-quick-Proton-CA627.service
server:
ssh ${devices.ceres.ip.address0}
'';
};
vpnoff:
sudo systemctl stop wg-quick-Proton-*.service
rebuild:
nixos-rebuild switch --use-remote-sudo --flake ~/Files/Projects/dotfiles#${hostname} --show-trace
update:
nix flake update --flake ~/Files/Projects/dotfiles
elm:
cd ~/Files/Projects/website/frontend ; elm-land server
server:
ssh ${devices.ceres.ip.address0}
${deviceLogic.name}:
ssh ${deviceLogic.ip.address0}
'';
};
"./Files/Scripts/list.sh" = {
source = ./files/list.sh;
executable = true;

View file

@ -30,6 +30,10 @@ nextcloud-user2: ENC[AES256_GCM,data:axrWMmouq5gwqdGL,iv:BPHEn47z2g7gocKO4g5vV4Z
nextcloud-user3: ENC[AES256_GCM,data:g6ldEdtBuEmPAQYAQfaO,iv:6fElE2vZh9l/KgJuNevklpIlZZdqGHgwhnOzq1n3ojE=,tag:T0Q1IkdVTeW2T1FmGnjz8A==,type:str]
claude-api-key: ENC[AES256_GCM,data:QzGJPBnqx4PrDjNvGeyjl0B/W9pkBS4YWK/lrDK4sx0/eBbwMk2qvi03wOhVfvz71UVRpDIZ0F3eVtB8h8Nr94Ha/8IlFQtKxrh60XIzUs/GLB2jKZursZny8IjqZMrt9YHFOphqAWawB33g,iv:XKPqQ0sGukhy0bPXATYwjJMAfSkXdeanc4kULb5TWmA=,tag:vmH+pzU5qoOF5W0fhVfhDA==,type:str]
searx-key: ENC[AES256_GCM,data:kzKWa4xCKDEWocyMmK8FWyAqHM7BuJ1f63XFfO8Dtig=,iv:Vs27/ri4nBzJ/A0LnxsCZD/kYraFZ6tD63VhUqYFwx8=,tag:8gx+j7RenuRzjj0AY5v8uQ==,type:str]
wireguard-CA363: ENC[AES256_GCM,data:iGiAjP5Dbw0kXR3iM50YTS8jBXODNr//W/0OPMAiu1GVC5m8StgsC5uaYEU=,iv:wffyNFWZ36vUjUVMCwo7w16pWWDvnPOUli3tIa/M3S4=,tag:yu7Xl+Ehg1uhzQ3rONSCbA==,type:str]
wireguard-CA220: ENC[AES256_GCM,data:rNy/IMKqAOsgMUu5r8BZsjTCu0L5fDDDV3/g+pkhW1y44Y2rqhhsZgcXG5M=,iv:onyHBn4npqiwC/v37SOMJLLhdfcrtvPmKbMVTgxaSQg=,tag:OmXDL3oYCDPwH1yBsKAYKQ==,type:str]
wireguard-CA358: ENC[AES256_GCM,data:/VewmiNfRc9/wSE7TT+z1F9LLIvr/5wPsQZ/zBwAh3dEi9yswOGyde2b/XQ=,iv:7U5dmqFiwhCoL1moGSfHprv85o5TdMr6T2sNk5gH82I=,tag:T1hqh8CiO2iBa+ksaiKCtA==,type:str]
wireguard-CA627: ENC[AES256_GCM,data:chmDsH2nE0nagjFRZWuxX08/Ykt+rIgCHYkMHd+7nIqihK5SebF7MJlrp84=,iv:NVOlGE7W70nQ0UM/i5WixJvDULO3Y4cLf8h+OAGHhQQ=,tag:L123ShCnr9+kIg1itIoqBA==,type:str]
sops:
kms: []
gcp_kms: []
@ -45,8 +49,8 @@ sops:
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-08T06:46:18Z"
mac: ENC[AES256_GCM,data:bFmkUxQE7Jl6I/FdpsWzbAu5/g9rLYH5C9jRRwY0ln+ZAANXaxfEYj5oeMZA0lDdgCJ07Hnt0RZdyYp/jyNzY+om16qKqRxv6qpqE89jfK937LsMxc6HJcuGQQcA/1QgSCU9OLWqdbDZxik3twemQd3aPAaHLF1ZEM7tx0gCOgQ=,iv:NizgZd2mb5sXm7oxRcpVKRAIyw75dASuP0eGzhBKOM8=,tag:K0rzvjQFB++gioKobt1Sow==,type:str]
lastmodified: "2025-04-01T03:33:13Z"
mac: ENC[AES256_GCM,data:zGnWN7U7d2+REQ1Iy2JEY92hWtS3Lxl6uqG4/kVGwE5fxj65gv1cv/38ulNUhCGY9BEiOpDzQBgoAy9WmvsKathHb7z9NEXrHpVtvNgRJVfVjuduZgGvrAFRLFXV1iLfQXk8wl64/e5YXD1Cbs80+ky9kmA4nl/rM0rlEkK+WOo=,iv:YL+Jv6yfe7/EASfDNkdFhOw29iXRS3rdPAplEE3i1hE=,tag:7NLlenTFk0hIyf+FEa3oJg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4