stuff slowly being added
This commit is contained in:
		
							parent
							
								
									f8edbfe092
								
							
						
					
					
						commit
						1bfe819a90
					
				|  | @ -130,7 +130,7 @@ | ||||||
|               base = [ core users.root nvim users.anish ]; # TODO make anish non gui |               base = [ core users.root nvim users.anish ]; # TODO make anish non gui | ||||||
|               sealight = [ base ]; # matrix rsshub backup wireguard website |               sealight = [ base ]; # matrix rsshub backup wireguard website | ||||||
|               mossnet = [ base ]; # shaarli wallabag nextcloud taskwarrior headphones  |               mossnet = [ base ]; # shaarli wallabag nextcloud taskwarrior headphones  | ||||||
|               graphical = [ base users.profiles.firefox users.profiles.desktop bluetooth ]; |               graphical = [ base users.profiles.firefox users.profiles.desktop bluetooth music sync]; | ||||||
|               curve = [ graphical ]; |               curve = [ graphical ]; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
|     #profiles.users.profiles.desktop |     #profiles.users.profiles.desktop | ||||||
|     profiles.users.profiles.email |     profiles.users.profiles.email | ||||||
|     profiles.users.profiles.cal |     profiles.users.profiles.cal | ||||||
|  |     profiles.wireguard | ||||||
|     profiles.mossnet-hosts |     profiles.mossnet-hosts | ||||||
|   ] ++ suites.curve; |   ] ++ suites.curve; | ||||||
| 
 | 
 | ||||||
|  | @ -15,4 +16,23 @@ | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   #bud.enable = true; |   #bud.enable = true; | ||||||
|  | 
 | ||||||
|  |   # enable adb  | ||||||
|  |   # TODO move this (it's for KaiOS WebIDE devShell?) | ||||||
|  |   programs.adb.enable = true; | ||||||
|  |   virtualisation.docker.enable = true; # temp for KaiOS hack | ||||||
|  |   services.udev.extraRules = '' | ||||||
|  |     # Qualcomm EDL | ||||||
|  |     SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666", GROUP="plugdev" | ||||||
|  | 
 | ||||||
|  |     # Qualcomm Memory Debug | ||||||
|  |     SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9006", MODE="0666", GROUP="plugdev" | ||||||
|  |     ''; | ||||||
|  |   boot.blacklistedKernelModules = [ "qcserial" ]; | ||||||
|  |   users.users.anish.extraGroups = ["adbusers" "docker" "plugdev"]; | ||||||
|  | 
 | ||||||
|  |   # enable wireguard tunnel | ||||||
|  |   # privKey = "/run/secrets/curve-wg"; -> local config | ||||||
|  |   # publicKey = "..."; -> shipped to server config | ||||||
|  |   # IP = "10.0.69.2"; -> shipped to both configs | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,20 +1,28 @@ | ||||||
| { pkgs, ... }: | { pkgs, lib, ... }: | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   environment.systemPackages = with pkgs; [ |   environment.systemPackages = with pkgs; [ | ||||||
|  |     qjackctl | ||||||
|     helm |     helm | ||||||
|     surge |     surge | ||||||
|     distrho |     distrho | ||||||
|     orca-c |     orca-c | ||||||
|     carla |     carla | ||||||
|  |     supercollider | ||||||
|  |     dirt | ||||||
|  |     #calf | ||||||
|     sunvox |     sunvox | ||||||
|     vcv-rack |     vcv-rack | ||||||
|     reaper |     lmms | ||||||
|     renoise |     #bespoke-synth | ||||||
|  |     #ardour | ||||||
|  |     #reaper | ||||||
|  |     #renoise | ||||||
|  |     helio-workstation | ||||||
|     projectm # milkdrop visualizer |     projectm # milkdrop visualizer | ||||||
|   ] |   ]; | ||||||
| 
 | 
 | ||||||
|     hardware.pulseaudio.enable = lib.mkForce false; |   hardware.pulseaudio.enable = lib.mkForce false; | ||||||
|   security.rtkit.enable = true; |   security.rtkit.enable = true; | ||||||
| 
 | 
 | ||||||
|   services.pipewire = { |   services.pipewire = { | ||||||
|  | @ -22,20 +30,21 @@ | ||||||
|     alsa.enable = true; |     alsa.enable = true; | ||||||
|     alsa.support32Bit = true; |     alsa.support32Bit = true; | ||||||
|     pulse.enable = true; |     pulse.enable = true; | ||||||
|  |     jack.enable = true; | ||||||
|     config = { |     config = { | ||||||
|       pipewire."context.properties"."default.clock.rate" = "192000"; |       pipewire."context.properties"."default.clock.rate" = "48000"; | ||||||
|       pipewire-pulse."stream.properties"."resample.quality" = 15; |       pipewire-pulse."stream.properties"."resample.quality" = 15; | ||||||
|       client."stream.properties"."resample.quality" = 15; |       client."stream.properties"."resample.quality" = 15; | ||||||
|       client-rt."stream.properties"."resample.quality" = 15; |       client-rt."stream.properties"."resample.quality" = 15; | ||||||
|     }; |     }; | ||||||
|     media-session.config.bluez-monitor.properties = { |     #media-session.config.bluez-monitor.properties = { | ||||||
|       "bluez5.headset-roles" = [ "hsp_hs" "hsp_ag" ]; |     #  "bluez5.headset-roles" = [ "hsp_hs" "hsp_ag" ]; | ||||||
|       "bluez5.codecs" = [ "aac" "ldac" "aptx_hd" ]; |     #  "bluez5.codecs" = [ "aac" "ldac" "aptx_hd" ]; | ||||||
|     }; |     #}; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   systemd.services.bluethoot.serviceConfig.ExecStart = [ |   #systemd.services.bluethoot.serviceConfig.ExecStart = [ | ||||||
|     "" |   #  "" | ||||||
|     "${config.hardware.bluetooth.package}/libexec/bluetooth/bluetoothd --noplugin=sap" |   #  "${config.hardware.bluetooth.package}/libexec/bluetooth/bluetoothd --noplugin=sap" | ||||||
|   ]; |   #]; | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										20
									
								
								profiles/sync/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								profiles/sync/default.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | ||||||
|  | {pkgs, ...}: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   systemd.services.kitaab-sync = { | ||||||
|  |     serviceConfig.Type = "oneshot"; | ||||||
|  |     path = [ | ||||||
|  |         pkgs.git | ||||||
|  |       ]; | ||||||
|  |     script = '' | ||||||
|  |       cd /home/anish/vimwiki/ | ||||||
|  |       git commit -am "syncing curve" | ||||||
|  |       git push | ||||||
|  |       ''; | ||||||
|  |   }; | ||||||
|  |   systemd.timers.kitaab-timer = { | ||||||
|  |     wantedBy = [ "timers.target" ]; | ||||||
|  |     partOf = [ "kitaab-sync.service" ]; | ||||||
|  |     timerConfig.OnCalendar = [ "*-*-* *:00:00" ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								profiles/wireguard/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								profiles/wireguard/default.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | { config, pkgs, lib, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   # services.tailscale.enable = true; | ||||||
|  |   networking.firewall.allowedUDPPorts = [ 60990 ]; | ||||||
|  |   age.secrets.curve-wg.file = "/etc/nixos/secrets/curve-wg.age"; | ||||||
|  |   age.secrets.curve-wg.owner = "anish"; | ||||||
|  | 
 | ||||||
|  |   networking.wireguard.interfaces = { | ||||||
|  |     # TODO need some kind of module here to configure curve & box from hosts or something  | ||||||
|  |     wg0 = { | ||||||
|  |       ips = [ "10.0.69.2/24" ]; | ||||||
|  |       listenPort = 60990; # to match firewall allowedUDPPorts (without this wg uses random port numbers) | ||||||
|  | 
 | ||||||
|  |       privateKeyFile = "/run/secrets/curve-wg"; | ||||||
|  |       peers = [ | ||||||
|  |         # For a client configuration, one peer entry for the server will suffice. | ||||||
|  |         { | ||||||
|  |           publicKey = "c1J4p63rD3IlszugMZiki7UBV3YmDdqa3DU4UejXzAI="; | ||||||
|  |           allowedIPs = [ "10.0.69.0/24" ]; | ||||||
|  |           # Set this to the server IP and port. | ||||||
|  |           endpoint = "sealight.xyz:60990"; # ToDo: route to endpoint not automatically configured https://wiki.archlinux.org/index.php/WireGuard#Loop_routing https://discourse.nixos.org/t/solved-minimal-firewall-setup-for-wireguard-client/7577 | ||||||
|  | 
 | ||||||
|  |           # Send keepalives every 25 seconds. Important to keep NAT tables alive. | ||||||
|  |           persistentKeepalive = 25; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								secrets/curve-wg.age
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								secrets/curve-wg.age
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | ||||||
|  | age-encryption.org/v1 | ||||||
|  | -> ssh-ed25519 E8y8hg ajjA98JsX1JBHd/6pPoTLCrMdkmgnviOZFTWUMtKfzk | ||||||
|  | +ekDAlEfkZ9G6oYfek6kBu0z1jbfQDQfH2ukwk4pvNU | ||||||
|  | -> ssh-ed25519 AiezdQ sZNx8/7RVk9XLvwxrbxjYb3q6uB8ny/DxktST7HMQSk | ||||||
|  | EdEXGSPGJ9j52llednOb8ViK3a+C+ru1weF7wOL3Lzk | ||||||
|  | -> B~GRUs-grease v) >0EI 7cA9 m&8 | ||||||
|  | iYaE+kBtuRHNi7zc9xtWYnNs6ThyHNvSPYnY1SYsugftuao1wkXyFvRrd8wubj1k | ||||||
|  | Y4e50A | ||||||
|  | --- GAVr4RrSEgBxdamubXJNhRPXOeXccN7Nw5GqGLPwdWI | ||||||
|  | 7Ž“x»¬â•¥$йú-¢*û^µ;§°<C2A7>~´é
ÐNŠ{úXá=ZªÙ¦}¯Fð¯Û¼µñ󖼇Åó‹<C3B3>fÞ•ˆÇ<7F>c | ||||||
|  | @ -8,6 +8,7 @@ in | ||||||
| { | { | ||||||
|   "fastmail.age".publicKeys = allKeys; |   "fastmail.age".publicKeys = allKeys; | ||||||
|   "mossnet.age".publicKeys = allKeys; |   "mossnet.age".publicKeys = allKeys; | ||||||
|   "nextcloud-db.age".publicKeys = mossnet; |   "curve-wg.age".publicKeys = allKeys; | ||||||
|   "nextcloud-admin.age".publicKeys = mossnet; |   #"nextcloud-db.age".publicKeys = mossnet; | ||||||
|  |   #"nextcloud-admin.age".publicKeys = mossnet; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| { pkgs, config, ... }: | { pkgs, config, lib, ... }: | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   # TODO modularize |   # TODO modularize | ||||||
|  | @ -16,10 +16,18 @@ | ||||||
|       "\${XDG_BIN_HOME}" |       "\${XDG_BIN_HOME}" | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  | 
 | ||||||
|  |   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ | ||||||
|  |     "ripcord" | ||||||
|  |     "vcv-rack" | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|   environment.systemPackages = with pkgs; [ |   environment.systemPackages = with pkgs; [ | ||||||
|     # TODO move somewhere meaningful |     # TODO move somewhere meaningful | ||||||
|     tdesktop # TODO get rid of this once bridged on sealight |     tdesktop # TODO get rid of this once bridged on sealight | ||||||
|  |     ripcord | ||||||
|     sublime-music |     sublime-music | ||||||
|  |     calibre | ||||||
|     nheko |     nheko | ||||||
|     newsflash |     newsflash | ||||||
|     zeal |     zeal | ||||||
|  |  | ||||||
|  | @ -3,3 +3,5 @@ font_family      Hermit | ||||||
| bold_font        auto | bold_font        auto | ||||||
| italic_font      auto | italic_font      auto | ||||||
| bold_italic_font auto | bold_italic_font auto | ||||||
|  | open_url_with default | ||||||
|  | mouse_map left click ungrabbed mouse_click_url_or_select | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue