nixos/hosts/FredOS-Macbook.nix
rope efd1331823 quickshell: native volume/brightness OSD, drop swayosd + wob
Sixth surface in the SDF chrome shader, melting out of the bottom
frame. Volume is reactive via Pipewire so the OSD also fires for
pavucontrol/mixer changes; brightness routes through a new osd IPC
handler since sysfs backlight only notifies via POLLPRI.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-28 12:35:44 +01:00

87 lines
2.6 KiB
Nix

{ config, pkgs, lib, inputs, ... }:
{
config = lib.mkIf (config.networking.hostName == "FredOS-Macbook") {
environment.systemPackages = with pkgs; [
tlp
vesktop
faugus-launcher
adwaita-icon-theme
mission-center
vlc
gnome-text-editor
proton-vpn
onlyoffice-desktopeditors
woeusb
vscodium
];
programs.geary.enable = true;
nix.settings.max-jobs = 0;
services.tlp.enable = false;
services.power-profiles-daemon.enable = true;
# Quickshell's battery widget reads org.freedesktop.UPower over DBus
services.upower.enable = true;
boot.loader.systemd-boot.configurationLimit = 5;
boot.initrd.systemd.enable = true;
# Swap Fn and left Ctrl on the internal Apple keyboard (PC layout)
boot.kernelParams = [ "hid_apple.swap_fn_leftctrl=1" ];
# Allow video group (fred) to write to /sys/class/backlight and /sys/class/leds
# (screen brightness and keyboard backlight)
hardware.acpilight.enable = true;
services.logind.settings.Login = {
HandleLidSwitch = "suspend";
HandleLidSwitchExternalPower = "suspend";
};
# systemd's hwdb tags USB touchpads external (no Apple exception
# upstream), so libinput refuses to offer DWT on the bcm5974
# (ID_INPUT_TOUCHPAD_INTEGRATION=external). Force internal so
# libinput's native DWT pairing with the internal keyboard works.
services.udev.extraHwdb = ''
touchpad:usb:v05acp0291:*
ID_INPUT_TOUCHPAD_INTEGRATION=internal
'';
home-manager.users.fred = { pkgs, ... }: {
wayland.windowManager.hyprland.settings.monitor = [{
output = "";
mode = "preferred";
position = "auto";
scale = "auto";
}];
systemd.user.services.nemo-warmup = {
Unit = {
Description = "Pre-warm Nemo file manager libraries";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "oneshot";
ExecStart = "${pkgs.nemo}/bin/nemo --quit";
};
Install.WantedBy = [ "graphical-session.target" ];
};
systemd.user.services.kbd-backlight-init = {
Unit = {
Description = "Set keyboard backlight to 10% on login";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "oneshot";
ExecStart = "${pkgs.brightnessctl}/bin/brightnessctl -d smc::kbd_backlight set 10%";
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
};
}