diff --git a/configuration.nix b/configuration.nix index 1985f8d..b710886 100644 --- a/configuration.nix +++ b/configuration.nix @@ -17,7 +17,6 @@ settings = { General = { Experimental = true; # Show battery charge of Bluetooth devices - MultiProfile = "multiple"; }; }; }; @@ -48,7 +47,6 @@ requires = [ "tailscaled.service" ]; wantedBy = [ "multi-user.target" ]; serviceConfig.Type = "oneshot"; - serviceConfig.RemainAfterExit = true; path = [ pkgs.tailscale ]; script = '' tailscale set --operator=jet @@ -68,30 +66,14 @@ "tailscale-set-operator.service" ]; wantedBy = [ "multi-user.target" ]; - path = [ - pkgs.tailscale - pkgs.coreutils - pkgs.gnugrep - ]; - preStart = '' - for attempt in {1..60}; do - if tailscale status --json --peers=false | grep -q '"BackendState": *"Running"'; then - tailscale serve --bg 4096 - exit 0 - fi - - sleep 1 - done - - echo "Timed out waiting for Tailscale to reach Running state" - exit 1 - ''; serviceConfig = { Type = "simple"; User = "jet"; Restart = "always"; RestartSec = 5; - TimeoutStartSec = 75; + ExecStartPre = [ + "${pkgs.tailscale}/bin/tailscale serve --bg 4096" + ]; ExecStart = "/etc/profiles/per-user/jet/bin/opencode serve --hostname 127.0.0.1 --port 4096"; WorkingDirectory = config.users.users.jet.home; }; @@ -288,24 +270,6 @@ alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; - wireplumber.extraConfig."10-bluez" = { - "monitor.bluez.properties" = { - "bluez5.roles" = [ - "a2dp_sink" - "a2dp_source" - "hsp_hs" - "hsp_ag" - "hfp_hf" - "hfp_ag" - ]; - "bluez5.enable-sbc-xq" = true; - "bluez5.enable-msbc" = true; - }; - - "wireplumber.settings" = { - "bluetooth.autoswitch-to-headset-profile" = false; - }; - }; }; users.users.jet = { isNormalUser = true; @@ -357,18 +321,28 @@ HandleLidSwitch = "suspend"; HandleLidSwitchExternalPower = "suspend"; HandleLidSwitchDocked = "ignore"; - HandlePowerKey = "poweroff"; + HandlePowerKey = "suspend"; }; }; }; - # Framework AMD laptops are tuned for power-profiles-daemon; keep it as the - # single power policy daemon to avoid suspend/resume conflicts. - services.power-profiles-daemon.enable = true; - services.auto-cpufreq.enable = false; - services.tlp.enable = false; + # Enable auto-cpufreq for intelligent power management (replaces TLP) + services.auto-cpufreq.enable = true; + services.auto-cpufreq.settings = { + battery = { + governor = "powersave"; + turbo = "never"; + }; + charger = { + governor = "performance"; + turbo = "auto"; + }; + }; - # Enable base suspend/resume hooks. + # Disable power-profiles-daemon (conflicts with auto-cpufreq) + services.power-profiles-daemon.enable = false; + + # Enable power management (governor managed dynamically by auto-cpufreq) powerManagement.enable = true; # v4l2loopback for OBS Virtual Camera @@ -421,11 +395,10 @@ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666" # GameCube adapter HID device (needed for Dolphin to access controllers) KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666", GROUP="input" - # Disable autosuspend for Framework devices that have shown resume issues. - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="27c6", ATTR{idProduct}=="609c", ATTR{power/control}="on", ATTR{power/autosuspend}="-1" - ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="32ac", ATTR{power/control}="on", ATTR{power/autosuspend}="-1" - ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x1022", ATTR{class}=="0x0c0330", ATTR{power/control}="on" - ACTION=="add", SUBSYSTEM=="platform", KERNEL=="USBC000:00", ATTR{power/control}="on" + # Disable autosuspend for Framework fingerprint reader + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="27a6", ATTR{power/autosuspend}="-1" + # Disable autosuspend for Framework USB-C hub controllers + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="32ac", ATTR{power/autosuspend}="-1" ''; system.stateVersion = "25.05"; diff --git a/home-modules/desktop.nix b/home-modules/desktop.nix index 32dafd1..38a6215 100644 --- a/home-modules/desktop.nix +++ b/home-modules/desktop.nix @@ -67,60 +67,6 @@ let "${homeLib.zulipStartup}/share/applications/zulip-startup.desktop" ] ); - vlcDesktop = "vlc.desktop"; - vlcVideoMimeTypes = [ - "application/mxf" - "application/x-extension-mp4" - "application/x-matroska" - "application/x-quicktime-media-link" - "application/x-quicktimeplayer" - "video/3gp" - "video/3gpp" - "video/3gpp2" - "video/avi" - "video/divx" - "video/dv" - "video/fli" - "video/flv" - "video/mp2t" - "video/mp4" - "video/mp4v-es" - "video/mpeg" - "video/mpeg-system" - "video/msvideo" - "video/ogg" - "video/quicktime" - "video/vnd.divx" - "video/vnd.mpegurl" - "video/vnd.rn-realvideo" - "video/webm" - "video/x-anim" - "video/x-avi" - "video/x-flc" - "video/x-fli" - "video/x-flv" - "video/x-m4v" - "video/x-matroska" - "video/x-mpeg" - "video/x-mpeg-system" - "video/x-mpeg2" - "video/x-ms-asf" - "video/x-ms-asf-plugin" - "video/x-ms-asx" - "video/x-ms-wm" - "video/x-ms-wmv" - "video/x-ms-wmx" - "video/x-ms-wvx" - "video/x-msvideo" - "video/x-nsv" - "video/x-ogm" - "video/x-ogm+ogg" - "video/x-theora" - "video/x-theora+ogg" - "x-content/video-dvd" - "x-content/video-svcd" - "x-content/video-vcd" - ]; in { @@ -320,12 +266,6 @@ in "application/x-7z-compressed" = "org.gnome.FileRoller.desktop"; "application/x-rar" = "org.gnome.FileRoller.desktop"; "application/x-rar-compressed" = "org.gnome.FileRoller.desktop"; - } - // builtins.listToAttrs ( - map (mimeType: { - name = mimeType; - value = vlcDesktop; - }) vlcVideoMimeTypes - ); + }; }; } diff --git a/home-modules/packages.nix b/home-modules/packages.nix index e1b2d35..4300418 100644 --- a/home-modules/packages.nix +++ b/home-modules/packages.nix @@ -75,7 +75,6 @@ nautilus playerctl wl-clipboard - xprop xdg-utils gnomeExtensions.appindicator