When reflexes acquired in your job are invading your daily life.

-When i was an intern in a retail, i had to fight against the urge to store the shelves during my own shopping sessions.

      • Domi@lemmy.secnd.me
        link
        fedilink
        arrow-up
        10
        ·
        6 hours ago

        This is Lemmy. “Linux” doesn’t cut it here.

        We want to know exactly which distro, which tweaks, what hardware and how you broke it this time.

        • runiq@feddit.org
          link
          fedilink
          arrow-up
          6
          ·
          edit-2
          13 minutes ago

          Right, if you insist: Fedora Kinoite, Thinkpad X1 Carbon 4th Gen, some sysctl tweaks for low-latency audio.

          Yesterday I realized my password database (which I sync between computers/phones via Syncthing) was broken, because I had failed to regularly manage upgrades for my Syncthing container, and Syncthing had recently released a v2.0. My monitoring was insufficient and so I hadn’t noticed the Syncthing container on my laptop hadn’t been running since ~September. When I got Syncthing running again, I had already made changes to my password database on all three synced devices, so Syncthing generated a number of password.sync-conflict-<date>-<time>.kdbx files. Normally that’s not a big deal because my password manager has the ability to merge two password databases together, but this time around 400 entries showed issues when merging.

          So, armed with a big ol’ mug of mulled wine, I bit the bullet and started checking entries manually. After a trip to the KeePassXC bug tracker and the merger code, it turned out that the entries only differred in a few seconds in the _LAST_MODIFIED attribute, which can happen when my laptop is a) on battery, which causes the system clock to go a little off when the voltage drops and b) disconnected from the internet so the NTP client doesn’t have a change to sync time. Both happened a lot during the months the time my password database had failed to sync – we had gone to Paris (lovely place, can wholly recommend a visit) and my GF’s daughter is in the habit of watching shows on the computer without plugging in the power.

          So I shrugged, merged anyway, ignored the error messages, deleted the sync-conflict files, and called it a day. Maybe the wine played a role in that decision, maybe not.

          Thank you for coming to my TED‌ talk.

            • runiq@feddit.org
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              23 minutes ago

              Sure. The following are the bits that I’m pretty sure are universal. The rest – mostly configuring my audio interface – is IMO fairly specific to my system and can be found in my dotfiles.

              • Limits for Pipewire:
                # /etc/security/limits.d/25-pw-rlimits.conf
                @pipewire   - rtprio  95
                @pipewire   - nice    -19
                @pipewire   - memlock 4194304
                
              • Add the realtime group and grant it access to /dev/cpu_dma_latency so Ardour can prevent the system from going into idle:
                # /etc/udev/rules.d/40-realtime-privileges.rules
                KERNEL=="cpu_dma_latency", GROUP="realtime"
                
              • Add threadirqs and preempt=full to the kernel commandline
              • Disable VM swap readahead since Kinoite uses ZRAM anyways:
                # /etc/sysctl.d/50-audio.conf
                vm.page-cluster = 0
                
              • Set IO scheduler to None for SSDs and NVMe:
                # /etc/udev/rules.d/60-block-scheduler.rules
                ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="nvme?n?", ATTR{queue/scheduler}="none"
                ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="sd?", ATTR{queue/scheduler}="none"
                

              I’m not using a preempt kernel or anything like that; I’ve only gotten into audio when Pipewire had already hit the scene and I’ve found it to be good enough with these settings.