diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-10-01 18:59:51 -0500 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-10-01 18:59:51 -0500 |
commit | 595b5788d596e8dcf3a79f42b670a018fffd2a37 (patch) | |
tree | 42748a38cb8a4cc88c96922951ec71100831d2ef /nixos/.flake/system | |
parent | 7b0ea5cbdaaa5b8392777ad207c74cb27411eab1 (diff) |
nixos stuff
Diffstat (limited to 'nixos/.flake/system')
-rw-r--r-- | nixos/.flake/system/desktop.nix.org | 6 | ||||
-rw-r--r-- | nixos/.flake/system/network.nix.org | 13 | ||||
-rw-r--r-- | nixos/.flake/system/update-resolv-conf.sh | 71 |
3 files changed, 87 insertions, 3 deletions
diff --git a/nixos/.flake/system/desktop.nix.org b/nixos/.flake/system/desktop.nix.org index 1f8293b..eef6eef 100644 --- a/nixos/.flake/system/desktop.nix.org +++ b/nixos/.flake/system/desktop.nix.org @@ -104,6 +104,12 @@ Enable PipeWire. }; #+end_src +Enable GNOME Keyring. +#+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes + services.gnome.gnome-keyring.enable = true; + security.pam.services.greetd.enableGnomeKeyring = true; +#+end_src + Close the desktop configuration. #+begin_src nix :tangle ~/.flake/system/desktop.nix :mkdirp yes } diff --git a/nixos/.flake/system/network.nix.org b/nixos/.flake/system/network.nix.org index 06a0251..67a7721 100644 --- a/nixos/.flake/system/network.nix.org +++ b/nixos/.flake/system/network.nix.org @@ -36,10 +36,17 @@ Enable SSH. Set up my firewall. #+begin_src nix :tangle ~/.flake/system/network.nix :mkdirp yes - networking.firewall = { - allowedTCPPorts = [ ]; - allowedUDPPorts = [ ]; + networking.firewall = { + allowedTCPPorts = [ ]; + allowedUDPPorts = [ ]; + }; + + environment.etc = { + "openvpn/update-resolv-conf" = { + source = ./update-resolv-conf.sh; + mode = "0700"; }; + }; #+end_src Close the network configuration. diff --git a/nixos/.flake/system/update-resolv-conf.sh b/nixos/.flake/system/update-resolv-conf.sh new file mode 100644 index 0000000..16622a1 --- /dev/null +++ b/nixos/.flake/system/update-resolv-conf.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# +# Parses DHCP options from openvpn to update resolv.conf +# To use set as 'up' and 'down' script in your openvpn *.conf: +# up /etc/openvpn/update-resolv-conf +# down /etc/openvpn/update-resolv-conf +# +# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk> +# and Chris Hanson +# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL. +# 07/2013 colin@daedrum.net Fixed intet name +# 05/2006 chlauber@bnc.ch +# +# Example envs set from openvpn: +# foreign_option_1='dhcp-option DNS 193.43.27.132' +# foreign_option_2='dhcp-option DNS 193.43.27.133' +# foreign_option_3='dhcp-option DOMAIN be.bnc.ch' +# foreign_option_4='dhcp-option DOMAIN-SEARCH bnc.local' + +## The 'type' builtins will look for file in $PATH variable, so we set the +## PATH below. You might need to directly set the path to 'resolvconf' +## manually if it still doesn't work, i.e. +## RESOLVCONF=/usr/sbin/resolvconf +export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin +RESOLVCONF=$(type -p resolvconf) + +case $script_type in + +up) + for optionname in ${!foreign_option_*} ; do + option="${!optionname}" + echo $option + part1=$(echo "$option" | cut -d " " -f 1) + if [ "$part1" == "dhcp-option" ] ; then + part2=$(echo "$option" | cut -d " " -f 2) + part3=$(echo "$option" | cut -d " " -f 3) + if [ "$part2" == "DNS" ] ; then + IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3" + fi + if [[ "$part2" == "DOMAIN" || "$part2" == "DOMAIN-SEARCH" ]] ; then + IF_DNS_SEARCH="$IF_DNS_SEARCH $part3" + fi + fi + done + R="" + if [ "$IF_DNS_SEARCH" ]; then + R="search " + for DS in $IF_DNS_SEARCH ; do + R="${R} $DS" + done + R="${R} +" + fi + + for NS in $IF_DNS_NAMESERVERS ; do + R="${R}nameserver $NS +" + done + #echo -n "$R" | $RESOLVCONF -x -p -a "${dev}" + echo -n "$R" | $RESOLVCONF -x -a "${dev}.inet" + ;; +down) + $RESOLVCONF -d "${dev}.inet" + ;; +esac + +# Workaround / jm@epiclabs.io +# force exit with no errors. Due to an apparent conflict with the Network Manager +# $RESOLVCONF sometimes exits with error code 6 even though it has performed the +# action correctly and OpenVPN shuts down. +exit 0 |