summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--agenda.org17
-rw-r--r--config/nix.org590
-rw-r--r--journal/20250602.org12
-rw-r--r--journal/20250626.org14
-rw-r--r--nix/flake.lock8
-rw-r--r--nix/modules/configuration.nix3
-rw-r--r--nix/modules/home/default.nix3
-rw-r--r--nix/modules/home/firefox.nix2
-rw-r--r--nix/modules/home/mako.nix18
-rw-r--r--nix/modules/home/user.nix5
-rw-r--r--nix/modules/home/zsh.nix2
-rw-r--r--nix/modules/pipewire.nix44
12 files changed, 388 insertions, 330 deletions
diff --git a/agenda.org b/agenda.org
index 61e474a..6a72261 100644
--- a/agenda.org
+++ b/agenda.org
@@ -35,21 +35,21 @@ I want to start making YouTube videos.
** TODO [#C] Analogue Computer
I want to make an analogue computer.
* Skills
+** TODO Learn Supercollider Languages
** TODO Learn Blender
** TODO Drawing with Krita
-** TODO Circuit Design
+** DONE Circuit Design
** TODO Learn More Solidity
** TODO Learn Haskell
** TODO Learn Coq Theorem Prover
-
* Academic
** TODO QFT
** TODO GM
** TODO Real and Complex Analysis
+*** DONE Real Analysis
** TODO Measure Theory
** TODO Category Theory
** TODO ZK Proof Deep Dive
-
* Scheduled tasks
These are one-time tasks that are scheduled at a particular date, and that don't require regular
schedules.
@@ -82,7 +82,11 @@ SCHEDULED: <2025-03-22 Sat .+1d>
- State "DONE" from "TODO" [2025-03-11 Tue 00:16]
I want to be healthy.
** TODO Run
-SCHEDULED: <2025-02-11 Tue .+1d>
+SCHEDULED: <2025-06-27 Fri .+1d>
+:PROPERTIES:
+:LAST_REPEAT: [2025-06-26 Thu 23:22]
+:END:
+- State "DONE" from "TODO" [2025-06-26 Thu 23:22]
I want to be able to run or bike every day so that I get my exercise in.
** TODO Stretch
SCHEDULED: <2025-02-12 Wed .+1d>
@@ -93,10 +97,11 @@ SCHEDULED: <2025-02-12 Wed .+1d>
- State "DONE" from "TODO" [2025-01-11 Sat 02:26]
I want to stretch every day so that I can become more flexible.
** TODO Journal
-SCHEDULED: <2025-03-22 Sat .+1d>
+SCHEDULED: <2025-06-27 Fri .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-03-21 Fri 04:49]
+:LAST_REPEAT: [2025-06-26 Thu 23:21]
:END:
+- State "DONE" from "TODO" [2025-06-26 Thu 23:21]
- State "DONE" from "TODO" [2025-03-21 Fri 04:49]
- State "DONE" from "TODO" [2025-03-13 Thu 09:55]
- State "DONE" from "TODO" [2025-03-11 Tue 00:57]
diff --git a/config/nix.org b/config/nix.org
index 36fbee2..9109d44 100644
--- a/config/nix.org
+++ b/config/nix.org
@@ -33,7 +33,7 @@ so that adding new configurations that add modifications is made simple.
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
- url = "github:nix-community/home-manager/release-24.11";
+ url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
@@ -370,38 +370,48 @@ My low latency pipewire configuration is used for music production, as well as f
desktop usage. Pipewire is much better than pulseaudio because it supports jack with the same
underlying interface and it breaks significantly less often.
#+begin_src nix :tangle ../nix/modules/pipewire.nix
-{ lib, config, ... }:
-{
- services.pipewire = {
- enable = lib.mkDefault config.monorepo.profiles.pipewire.enable;
- alsa = {
- enable = true;
- support32Bit = true;
- };
- pulse.enable = true;
- jack.enable = true;
- wireplumber.enable = true;
- extraConfig.pipewire-pulse."92-low-latency" = {
- "context.properties" = [
- {
- name = "libpipewire-module-protocol-pulse";
- args = { };
- }
- ];
- "pulse.properties" = {
- "pulse.min.req" = "32/48000";
- "pulse.default.req" = "32/48000";
- "pulse.max.req" = "32/48000";
- "pulse.min.quantum" = "32/48000";
- "pulse.max.quantum" = "32/48000";
+ { lib, config, ... }:
+ {
+ services.pipewire = {
+ enable = lib.mkDefault config.monorepo.profiles.pipewire.enable;
+ alsa = {
+ enable = true;
+ support32Bit = true;
};
- "stream.properties" = {
- "node.latency" = "32/48000";
- "resample.quality" = 1;
+ pulse.enable = true;
+ jack.enable = true;
+ wireplumber.enable = true;
+ extraConfig = {
+ pipewire."92-low-latency" = {
+ "context.properties" = {
+ "default.clock.rate" = 48000;
+ "default.clock.quantum" = 256;
+ "default.clock.min-quantum" = 32;
+ "default.clock.max-quantum" = 512;
+ };
+ pipewire-pulse."92-low-latency" = {
+ "context.properties" = [
+ {
+ name = "libpipewire-module-protocol-pulse";
+ args = { };
+ }
+ ];
+ "pulse.properties" = {
+ "pulse.min.req" = "32/48000";
+ "pulse.default.req" = "32/48000";
+ "pulse.max.req" = "32/48000";
+ "pulse.min.quantum" = "32/48000";
+ "pulse.max.quantum" = "32/48000";
+ };
+ "stream.properties" = {
+ "node.latency" = "32/48000";
+ "resample.quality" = 1;
+ };
+ };
+ };
};
};
- };
-}
+ }
#+end_src
** SSH
My SSH daemon configuration.
@@ -931,10 +941,7 @@ because they enhance security.
"spectre_v2=on"
"spec_store_bypass_disable=on"
"tsx=off"
- "tsx_async_abort=full,nosmt"
- "mds=full,nosmt"
"l1tf=full,force"
- "nosmt=force"
"kvm.nx_huge_pages=force"
# hardened
@@ -986,6 +993,7 @@ because they enhance security.
"kernel.kptr_restrict" = 2;
# madaidan
+ "kernel.smtcontrol" = "on";
"vm.swappiness" = 1;
"vm.unprivileged_userfaultfd" = 0;
"dev.tty.ldisc_autoload" = 0;
@@ -1090,7 +1098,7 @@ because they enhance security.
lockKernelModules = true;
protectKernelImage = true;
- allowSimultaneousMultithreading = false;
+ allowSimultaneousMultithreading = true;
forcePageTableIsolation = true;
tpm2 = {
@@ -1485,15 +1493,16 @@ I have many imports that we'll go through next.
ardour
audacity
blender
+ foxdot
fluidsynth
qjackctl
qsynth
qpwgraph
imagemagick
+ supercollider
inkscape
kdePackages.kdenlive
kicad
- reaper
murmur
]) else []);
@@ -1542,7 +1551,7 @@ be straightforward.
name = "default";
isDefault = true;
- extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
tree-style-tab
firefox-color
@@ -2089,6 +2098,10 @@ to use this component will come soon.
};
rounding = 5;
};
+ device = {
+ name = "beken-usb-gaming-mouse-1";
+ sensitivity = -0.5;
+ };
input = {
kb_options = "caps:swapescape";
repeat_delay = 300;
@@ -2172,21 +2185,21 @@ I've set my terminal, kitty, to use catppuccin colors.
This is my notification system. My flake automatically fetches the notification sound, so you
are all set from the get-go!
#+begin_src nix :tangle ../nix/modules/home/mako.nix
-{ lib, config, sounds, ... }:
-{
- services.mako = {
- enable = lib.mkDefault config.monorepo.profiles.graphics.enable;
- backgroundColor = "#11111bf8";
- textColor = "#cdd6f4";
- borderColor = "#89b4faff";
- borderRadius = 1;
- font = "Fira Code 10";
- defaultTimeout = 3000;
- extraConfig = ''
-on-notify=exec mpv ${sounds}/polite.ogg --no-config --no-video
-'';
- };
-}
+ { lib, config, sounds, ... }:
+ {
+ services.mako = {
+ enable = lib.mkDefault config.monorepo.profiles.graphics.enable;
+ settings = {
+ on-notify = "exec mpv ${sounds}/polite.ogg --no-config --no-video";
+ background-color = "#11111bf8";
+ text-color = "#cdd6f4";
+ border-color = "#89b4faff";
+ border-radius = 1;
+ font = "Fira Code 10";
+ default-timeout = 3000;
+ };
+ };
+ }
#+end_src
*** Mbsync
Note that in order to use my email configuration, your imaps and smtps servers must be
@@ -2369,280 +2382,280 @@ the yaml file specified. Yes, this is safe to include in the repo.
This is the bar I use for my hyprland configuration. You will need to adjust the monitors field
in the ~default.nix~ for it to really appear.
#+begin_src nix :tangle ../nix/modules/home/waybar.nix
-{ lib, config, ... }:
-{
- programs.waybar = {
- enable = lib.mkDefault config.monorepo.profiles.hyprland.enable;
- style = ''
- * {
- border: none;
- border-radius: 0px;
- font-family: Iosevka Nerd Font, FontAwesome, Noto Sans CJK;
- font-size: 14px;
- font-style: normal;
- min-height: 0;
- }
-
- window#waybar {
- background: rgba(30, 30, 46, 0.5);
- border-bottom: 1px solid #45475a;
- color: #cdd6f4;
- }
+ { lib, config, ... }:
+ {
+ programs.waybar = {
+ enable = lib.mkDefault config.monorepo.profiles.hyprland.enable;
+ style = ''
+ ,* {
+ border: none;
+ border-radius: 0px;
+ font-family: Iosevka Nerd Font, FontAwesome, Noto Sans CJK;
+ font-size: 14px;
+ font-style: normal;
+ min-height: 0;
+ }
- #workspaces {
- background: #45475a;
- margin: 5px 5px 5px 5px;
- padding: 0px 5px 0px 5px;
- border-radius: 16px;
- border: solid 0px #f4d9e1;
- font-weight: normal;
- font-style: normal;
- }
- #workspaces button {
- padding: 0px 5px;
- border-radius: 16px;
- color: #a6adc8;
- }
+ window#waybar {
+ background: rgba(30, 30, 46, 0.5);
+ border-bottom: 1px solid #45475a;
+ color: #cdd6f4;
+ }
- #workspaces button.active {
- color: #f4d9e1;
- background-color: transparent;
+ #workspaces {
+ background: #45475a;
+ margin: 5px 5px 5px 5px;
+ padding: 0px 5px 0px 5px;
border-radius: 16px;
- }
+ border: solid 0px #f4d9e1;
+ font-weight: normal;
+ font-style: normal;
+ }
+ #workspaces button {
+ padding: 0px 5px;
+ border-radius: 16px;
+ color: #a6adc8;
+ }
- #workspaces button:hover {
- background-color: #cdd6f4;
- color: black;
- border-radius: 16px;
- }
+ #workspaces button.active {
+ color: #f4d9e1;
+ background-color: transparent;
+ border-radius: 16px;
+ }
- #custom-date, #clock, #battery, #pulseaudio, #network, #custom-randwall, #custom-launcher {
- background: transparent;
- padding: 5px 5px 5px 5px;
- margin: 5px 5px 5px 5px;
- border-radius: 8px;
- border: solid 0px #f4d9e1;
- }
+ #workspaces button:hover {
+ background-color: #cdd6f4;
+ color: black;
+ border-radius: 16px;
+ }
- #custom-date {
- color: #D3869B;
- }
+ #custom-date, #clock, #battery, #pulseaudio, #network, #custom-randwall, #custom-launcher {
+ background: transparent;
+ padding: 5px 5px 5px 5px;
+ margin: 5px 5px 5px 5px;
+ border-radius: 8px;
+ border: solid 0px #f4d9e1;
+ }
- #custom-power {
- color: #24283b;
- background-color: #db4b4b;
- border-radius: 5px;
- margin-right: 10px;
- margin-top: 5px;
- margin-bottom: 5px;
- margin-left: 0px;
- padding: 5px 10px;
- }
+ #custom-date {
+ color: #D3869B;
+ }
- #tray {
- background: #45475a;
- margin: 5px 5px 5px 5px;
- border-radius: 16px;
- padding: 0px 5px;
- /*border-right: solid 1px #282738;*/
- }
+ #custom-power {
+ color: #24283b;
+ background-color: #db4b4b;
+ border-radius: 5px;
+ margin-right: 10px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ margin-left: 0px;
+ padding: 5px 10px;
+ }
- #clock {
- color: #cdd6f4;
- background-color: #45475a;
- border-radius: 0px 0px 0px 24px;
- padding-left: 13px;
- padding-right: 15px;
- margin-right: 0px;
- margin-left: 10px;
- margin-top: 0px;
- margin-bottom: 0px;
- font-weight: bold;
- /*border-left: solid 1px #282738;*/
- }
+ #tray {
+ background: #45475a;
+ margin: 5px 5px 5px 5px;
+ border-radius: 16px;
+ padding: 0px 5px;
+ /*border-right: solid 1px #282738;*/
+ }
- #battery {
- color: #89b4fa;
- }
+ #clock {
+ color: #cdd6f4;
+ background-color: #45475a;
+ border-radius: 0px 0px 0px 24px;
+ padding-left: 13px;
+ padding-right: 15px;
+ margin-right: 0px;
+ margin-left: 10px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ font-weight: bold;
+ /*border-left: solid 1px #282738;*/
+ }
- #battery.charging {
- color: #a6e3a1;
- }
+ #battery {
+ color: #89b4fa;
+ }
- #battery.warning:not(.charging) {
- background-color: #f7768e;
- color: #f38ba8;
- border-radius: 5px 5px 5px 5px;
- }
+ #battery.charging {
+ color: #a6e3a1;
+ }
- #backlight {
- background-color: #24283b;
- color: #db4b4b;
- border-radius: 0px 0px 0px 0px;
- margin: 5px;
- margin-left: 0px;
- margin-right: 0px;
- padding: 0px 0px;
- }
+ #battery.warning:not(.charging) {
+ background-color: #f7768e;
+ color: #f38ba8;
+ border-radius: 5px 5px 5px 5px;
+ }
- #network {
- color: #f4d9e1;
- border-radius: 8px;
- margin-right: 5px;
- }
+ #backlight {
+ background-color: #24283b;
+ color: #db4b4b;
+ border-radius: 0px 0px 0px 0px;
+ margin: 5px;
+ margin-left: 0px;
+ margin-right: 0px;
+ padding: 0px 0px;
+ }
- #pulseaudio {
- color: #f4d9e1;
- border-radius: 8px;
- margin-left: 0px;
- }
+ #network {
+ color: #f4d9e1;
+ border-radius: 8px;
+ margin-right: 5px;
+ }
- #pulseaudio.muted {
- background: transparent;
- color: #928374;
- border-radius: 8px;
- margin-left: 0px;
- }
+ #pulseaudio {
+ color: #f4d9e1;
+ border-radius: 8px;
+ margin-left: 0px;
+ }
- #custom-randwall {
- color: #f4d9e1;
- border-radius: 8px;
- margin-right: 0px;
- }
+ #pulseaudio.muted {
+ background: transparent;
+ color: #928374;
+ border-radius: 8px;
+ margin-left: 0px;
+ }
- #custom-launcher {
- color: #e5809e;
- background-color: #45475a;
- border-radius: 0px 24px 0px 0px;
- margin: 0px 0px 0px 0px;
- padding: 0 20px 0 13px;
- /*border-right: solid 1px #282738;*/
- font-size: 20px;
- }
+ #custom-randwall {
+ color: #f4d9e1;
+ border-radius: 8px;
+ margin-right: 0px;
+ }
- #custom-launcher button:hover {
- background-color: #FB4934;
- color: transparent;
- border-radius: 8px;
- margin-right: -5px;
- margin-left: 10px;
- }
+ #custom-launcher {
+ color: #e5809e;
+ background-color: #45475a;
+ border-radius: 0px 24px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ padding: 0 20px 0 13px;
+ /*border-right: solid 1px #282738;*/
+ font-size: 20px;
+ }
- #custom-playerctl {
- background: #45475a;
- padding-left: 15px;
- padding-right: 14px;
- border-radius: 16px;
- /*border-left: solid 1px #282738;*/
- /*border-right: solid 1px #282738;*/
- margin-top: 5px;
- margin-bottom: 5px;
- margin-left: 0px;
- font-weight: normal;
- font-style: normal;
- font-size: 16px;
- }
+ #custom-launcher button:hover {
+ background-color: #FB4934;
+ color: transparent;
+ border-radius: 8px;
+ margin-right: -5px;
+ margin-left: 10px;
+ }
- #custom-playerlabel {
- background: transparent;
- padding-left: 10px;
- padding-right: 15px;
- border-radius: 16px;
+ #custom-playerctl {
+ background: #45475a;
+ padding-left: 15px;
+ padding-right: 14px;
+ border-radius: 16px;
/*border-left: solid 1px #282738;*/
/*border-right: solid 1px #282738;*/
margin-top: 5px;
margin-bottom: 5px;
+ margin-left: 0px;
font-weight: normal;
font-style: normal;
- }
+ font-size: 16px;
+ }
- #window {
- background: #45475a;
- padding-left: 15px;
- padding-right: 15px;
- border-radius: 16px;
- /*border-left: solid 1px #282738;*/
- /*border-right: solid 1px #282738;*/
- margin-top: 5px;
- margin-bottom: 5px;
- font-weight: normal;
- font-style: normal;
- }
+ #custom-playerlabel {
+ background: transparent;
+ padding-left: 10px;
+ padding-right: 15px;
+ border-radius: 16px;
+ /*border-left: solid 1px #282738;*/
+ /*border-right: solid 1px #282738;*/
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-weight: normal;
+ font-style: normal;
+ }
- #custom-wf-recorder {
- padding: 0 20px;
- color: #e5809e;
- background-color: #1E1E2E;
- }
+ #window {
+ background: #45475a;
+ padding-left: 15px;
+ padding-right: 15px;
+ border-radius: 16px;
+ /*border-left: solid 1px #282738;*/
+ /*border-right: solid 1px #282738;*/
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-weight: normal;
+ font-style: normal;
+ }
- #cpu {
- background-color: #45475a;
- /*color: #FABD2D;*/
- border-radius: 16px;
- margin: 5px;
- margin-left: 5px;
- margin-right: 5px;
- padding: 0px 10px 0px 10px;
- font-weight: bold;
- }
+ #custom-wf-recorder {
+ padding: 0 20px;
+ color: #e5809e;
+ background-color: #1E1E2E;
+ }
- #memory {
- background-color: #45475a;
- /*color: #83A598;*/
- border-radius: 16px;
- margin: 5px;
- margin-left: 5px;
- margin-right: 5px;
- padding: 0px 10px 0px 10px;
- font-weight: bold;
- }
+ #cpu {
+ background-color: #45475a;
+ /*color: #FABD2D;*/
+ border-radius: 16px;
+ margin: 5px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding: 0px 10px 0px 10px;
+ font-weight: bold;
+ }
- #disk {
- background-color: #45475a;
- /*color: #8EC07C;*/
- border-radius: 16px;
- margin: 5px;
- margin-left: 5px;
- margin-right: 5px;
- padding: 0px 10px 0px 10px;
- font-weight: bold;
- }
+ #memory {
+ background-color: #45475a;
+ /*color: #83A598;*/
+ border-radius: 16px;
+ margin: 5px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding: 0px 10px 0px 10px;
+ font-weight: bold;
+ }
- #custom-hyprpicker {
- background-color: #45475a;
- /*color: #8EC07C;*/
- border-radius: 16px;
- margin: 5px;
- margin-left: 5px;
- margin-right: 5px;
- padding: 0px 11px 0px 9px;
- font-weight: bold;
- }
- '';
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- height = 50;
+ #disk {
+ background-color: #45475a;
+ /*color: #8EC07C;*/
+ border-radius: 16px;
+ margin: 5px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding: 0px 10px 0px 10px;
+ font-weight: bold;
+ }
+
+ #custom-hyprpicker {
+ background-color: #45475a;
+ /*color: #8EC07C;*/
+ border-radius: 16px;
+ margin: 5px;
+ margin-left: 5px;
+ margin-right: 5px;
+ padding: 0px 11px 0px 9px;
+ font-weight: bold;
+ }
+ '';
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 50;
- output = config.monorepo.vars.monitors;
+ output = config.monorepo.vars.monitors;
- modules-left = [ "hyprland/workspaces" ];
- modules-center = [ "hyprland/window" ];
- modules-right = [ "battery" "clock" ];
+ modules-left = [ "hyprland/workspaces" ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [ "battery" "clock" ];
- battery = {
- format = "{icon} {capacity}%";
- format-icons = ["" "" "" "" "" ];
- };
+ battery = {
+ format = "{icon} {capacity}%";
+ format-icons = ["" "" "" "" "" ];
+ };
- clock = {
- format = "⏰ {:%a %d, %b %H:%M}";
+ clock = {
+ format = "⏰ {:%a %d, %b %H:%M}";
+ };
};
};
};
- };
-}
+ }
#+end_src
*** Wofi
This is a run launcher for wayland. I also use it for my powermenu.
@@ -2861,7 +2874,7 @@ standard.
{
programs.zsh = {
enable = true;
- initExtra = ''
+ initContent = ''
umask 0022
export EXTRA_CCFLAGS="-I/usr/include"
source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
@@ -2966,7 +2979,8 @@ for these configurations.
graphviz jq
# Apps
- octaveFull vesktop grim swww vim
+ octaveFull
+ vesktop grim swww vim
# Sound/media
pavucontrol alsa-utils imagemagick ffmpeg helvum
@@ -3014,7 +3028,7 @@ for these configurations.
services = {
gpg-agent = {
- pinentryPackage = pkgs.pinentry-emacs;
+ pinentry.package = pkgs.pinentry-emacs;
enable = true;
extraConfig = ''
allow-emacs-pinentry
diff --git a/journal/20250602.org b/journal/20250602.org
new file mode 100644
index 0000000..4f7114d
--- /dev/null
+++ b/journal/20250602.org
@@ -0,0 +1,12 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Monday, 02 June 2025
+** 20:37
+I just went to Victoria several times. I need to maintain my monorepo more and update my Nix systems more often,
+because this and my website are important.
diff --git a/journal/20250626.org b/journal/20250626.org
new file mode 100644
index 0000000..5302955
--- /dev/null
+++ b/journal/20250626.org
@@ -0,0 +1,14 @@
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Thursday, 26 June 2025
+** 23:16
+I'm starting to journal again again. I just did some radio mathematics and engineering;
+I'm going to be working on some general relativity as well as aquaponics and programming
+after this stint of radio engineering. I'm also going to be working on some music production
+with algorave software.
diff --git a/nix/flake.lock b/nix/flake.lock
index 523d2c5..42dba61 100644
--- a/nix/flake.lock
+++ b/nix/flake.lock
@@ -239,16 +239,16 @@
]
},
"locked": {
- "lastModified": 1747688870,
- "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
+ "lastModified": 1749154018,
+ "narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "d5f1f641b289553927b3801580598d200a501863",
+ "rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
"type": "github"
},
"original": {
"owner": "nix-community",
- "ref": "release-24.11",
+ "ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
diff --git a/nix/modules/configuration.nix b/nix/modules/configuration.nix
index 4fd49d2..65c566e 100644
--- a/nix/modules/configuration.nix
+++ b/nix/modules/configuration.nix
@@ -156,6 +156,7 @@
"kernel.kptr_restrict" = 2;
# madaidan
+ "kernel.smtcontrol" = "on";
"vm.swappiness" = 1;
"vm.unprivileged_userfaultfd" = 0;
"dev.tty.ldisc_autoload" = 0;
@@ -260,7 +261,7 @@
lockKernelModules = true;
protectKernelImage = true;
- allowSimultaneousMultithreading = false;
+ allowSimultaneousMultithreading = true;
forcePageTableIsolation = true;
tpm2 = {
diff --git a/nix/modules/home/default.nix b/nix/modules/home/default.nix
index d068383..bebd670 100644
--- a/nix/modules/home/default.nix
+++ b/nix/modules/home/default.nix
@@ -159,15 +159,16 @@
ardour
audacity
blender
+ foxdot
fluidsynth
qjackctl
qsynth
qpwgraph
imagemagick
+ supercollider
inkscape
kdePackages.kdenlive
kicad
- reaper
murmur
]) else []);
diff --git a/nix/modules/home/firefox.nix b/nix/modules/home/firefox.nix
index 986fccf..7e51433 100644
--- a/nix/modules/home/firefox.nix
+++ b/nix/modules/home/firefox.nix
@@ -13,7 +13,7 @@
name = "default";
isDefault = true;
- extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
tree-style-tab
firefox-color
diff --git a/nix/modules/home/mako.nix b/nix/modules/home/mako.nix
index d9a4610..14edde8 100644
--- a/nix/modules/home/mako.nix
+++ b/nix/modules/home/mako.nix
@@ -2,14 +2,14 @@
{
services.mako = {
enable = lib.mkDefault config.monorepo.profiles.graphics.enable;
- backgroundColor = "#11111bf8";
- textColor = "#cdd6f4";
- borderColor = "#89b4faff";
- borderRadius = 1;
- font = "Fira Code 10";
- defaultTimeout = 3000;
- extraConfig = ''
-on-notify=exec mpv ${sounds}/polite.ogg --no-config --no-video
-'';
+ settings = {
+ on-notify = "exec mpv ${sounds}/polite.ogg --no-config --no-video";
+ background-color = "#11111bf8";
+ text-color = "#cdd6f4";
+ border-color = "#89b4faff";
+ border-radius = 1;
+ font = "Fira Code 10";
+ default-timeout = 3000;
+ };
};
}
diff --git a/nix/modules/home/user.nix b/nix/modules/home/user.nix
index 1087ebc..709caf0 100644
--- a/nix/modules/home/user.nix
+++ b/nix/modules/home/user.nix
@@ -37,7 +37,8 @@
graphviz jq
# Apps
- octaveFull vesktop grim swww vim
+ octaveFull
+ vesktop grim swww vim
# Sound/media
pavucontrol alsa-utils imagemagick ffmpeg helvum
@@ -85,7 +86,7 @@ nix run github:nix-community/nixos-anywhere -- --generate-hardware-config nixos-
services = {
gpg-agent = {
- pinentryPackage = pkgs.pinentry-emacs;
+ pinentry.package = pkgs.pinentry-emacs;
enable = true;
extraConfig = ''
allow-emacs-pinentry
diff --git a/nix/modules/home/zsh.nix b/nix/modules/home/zsh.nix
index 263cc58..ef0f5fd 100644
--- a/nix/modules/home/zsh.nix
+++ b/nix/modules/home/zsh.nix
@@ -2,7 +2,7 @@
{
programs.zsh = {
enable = true;
- initExtra = ''
+ initContent = ''
umask 0022
export EXTRA_CCFLAGS="-I/usr/include"
source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
diff --git a/nix/modules/pipewire.nix b/nix/modules/pipewire.nix
index 14b4654..1ed2082 100644
--- a/nix/modules/pipewire.nix
+++ b/nix/modules/pipewire.nix
@@ -9,23 +9,33 @@
pulse.enable = true;
jack.enable = true;
wireplumber.enable = true;
- extraConfig.pipewire-pulse."92-low-latency" = {
- "context.properties" = [
- {
- name = "libpipewire-module-protocol-pulse";
- args = { };
- }
- ];
- "pulse.properties" = {
- "pulse.min.req" = "32/48000";
- "pulse.default.req" = "32/48000";
- "pulse.max.req" = "32/48000";
- "pulse.min.quantum" = "32/48000";
- "pulse.max.quantum" = "32/48000";
- };
- "stream.properties" = {
- "node.latency" = "32/48000";
- "resample.quality" = 1;
+ extraConfig = {
+ pipewire."92-low-latency" = {
+ "context.properties" = {
+ "default.clock.rate" = 48000;
+ "default.clock.quantum" = 256;
+ "default.clock.min-quantum" = 32;
+ "default.clock.max-quantum" = 512;
+ };
+ pipewire-pulse."92-low-latency" = {
+ "context.properties" = [
+ {
+ name = "libpipewire-module-protocol-pulse";
+ args = { };
+ }
+ ];
+ "pulse.properties" = {
+ "pulse.min.req" = "32/48000";
+ "pulse.default.req" = "32/48000";
+ "pulse.max.req" = "32/48000";
+ "pulse.min.quantum" = "32/48000";
+ "pulse.max.quantum" = "32/48000";
+ };
+ "stream.properties" = {
+ "node.latency" = "32/48000";
+ "resample.quality" = 1;
+ };
+ };
};
};
};