nixos/hosts/FredOS-Macbook.nix

124 lines
3.7 KiB
Nix
Raw Normal View History

2026-03-28 13:42:35 +00:00
{ config, pkgs, lib, inputs, ... }:
2026-01-05 10:26:20 +00:00
2025-12-02 21:23:06 +00:00
{
config = lib.mkIf (config.networking.hostName == "FredOS-Macbook") {
environment.systemPackages = with pkgs; [
tlp
vesktop
adwaita-icon-theme
mission-center
vlc
geary
proton-vpn
onlyoffice-desktopeditors
2026-05-02 00:38:42 -07:00
woeusb
2026-05-11 09:30:36 -07:00
vscodium
];
nix.settings.max-jobs = 0;
services.tlp.enable = false;
services.power-profiles-daemon.enable = true;
boot.loader.systemd-boot.configurationLimit = 5;
boot.initrd.systemd.enable = true;
2026-05-14 10:44:32 +01:00
# Allow video group (fred) to write to /sys/class/backlight and /sys/class/leds
# (screen brightness and keyboard backlight)
hardware.acpilight.enable = true;
2026-05-15 12:17:12 +01:00
services.logind.settings.Login = {
HandleLidSwitch = "suspend";
HandleLidSwitchExternalPower = "suspend";
2026-05-15 12:12:04 +01:00
};
home-manager.users.fred = { pkgs, ... }: {
wayland.windowManager.hyprland.settings.monitor = [{
output = "";
mode = "preferred";
position = "auto";
scale = "auto";
}];
# wob reads 0-100 integers from a FIFO and shows a progress bar overlay
systemd.user.services.wob = {
Unit = {
Description = "Wayland OSD Bar";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.writeShellScript "wob-start" ''
rm -f "%t/wob.fifo"
mkfifo "%t/wob.fifo"
tail -f "%t/wob.fifo" | ${pkgs.wob}/bin/wob
''}";
ExecStopPost = "${pkgs.coreutils}/bin/rm -f %t/wob.fifo";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
systemd.user.services.ghostty-daemon = {
Unit = {
Description = "Ghostty warm instance (no window)";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.ghostty}/bin/ghostty --initial-window=false";
Restart = "always";
};
Install.WantedBy = [ "graphical-session.target" ];
};
systemd.user.services.zen-warmup = {
Unit = {
Description = "Pre-warm Zen Browser";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "oneshot";
ExecStart = "${pkgs.writeShellScript "zen-warmup" ''
${inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zen-beta --headless &
ZEN_PID=$!
sleep 3
kill $ZEN_PID 2>/dev/null || true
wait $ZEN_PID 2>/dev/null || true
''}";
};
Install.WantedBy = [ "graphical-session.target" ];
};
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" ];
};
2026-05-14 10:44:32 +01:00
};
};
2025-12-02 21:23:06 +00:00
}