Skip to content

Commit 38af152

Browse files
committed
feat: remove background animation due to cpu spike
1 parent 93d2ddd commit 38af152

7 files changed

Lines changed: 3 additions & 98 deletions

File tree

apps/desktop/src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apps/desktop/src-tauri/src/lib.rs

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@ struct AppSettings {
126126
terminal_font_size: u16,
127127
#[serde(default = "default_shortcut_modifier")]
128128
shortcut_modifier: String,
129-
#[serde(default = "default_battery_saver", alias = "backgroundAnimation")]
130-
battery_saver: bool,
131129
#[serde(default)]
132130
repo_defaults: HashMap<String, RepoDefaults>,
133131
#[serde(default)]
@@ -656,17 +654,7 @@ fn load_config() -> Result<AppConfig, String> {
656654

657655
let raw = std::fs::read_to_string(&file)
658656
.map_err(|error| format!("Failed to read config: {error}"))?;
659-
let mut value: serde_json::Value = serde_json::from_str(&raw)
660-
.map_err(|error| format!("Failed to parse config: {error}"))?;
661-
if let Some(settings) = value.get_mut("settings") {
662-
let has_battery = settings.get("batterySaver").is_some();
663-
if !has_battery {
664-
if let Some(background) = settings.get("backgroundAnimation").and_then(|val| val.as_bool()) {
665-
settings["batterySaver"] = serde_json::Value::Bool(!background);
666-
}
667-
}
668-
}
669-
let config: AppConfig = serde_json::from_value(value)
657+
let config: AppConfig = serde_json::from_str(&raw)
670658
.map_err(|error| format!("Failed to parse config: {error}"))?;
671659
Ok(config)
672660
}
@@ -860,7 +848,6 @@ fn default_config() -> AppConfig {
860848
terminal_font_family: default_terminal_font_family(),
861849
terminal_font_size: default_terminal_font_size(),
862850
shortcut_modifier: default_shortcut_modifier(),
863-
battery_saver: default_battery_saver(),
864851
repo_defaults: HashMap::new(),
865852
agent_args: HashMap::new(),
866853
},
@@ -953,10 +940,6 @@ fn default_terminal_font_size() -> u16 {
953940
13
954941
}
955942

956-
fn default_battery_saver() -> bool {
957-
false
958-
}
959-
960943
fn default_shortcut_modifier() -> String {
961944
"Alt".to_string()
962945
}

apps/desktop/src/App.tsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ export default function App() {
129129
setActiveSessionId,
130130
updateRecentDirs,
131131
updateTerminalSettings,
132-
updateBatterySaver,
133132
updateShortcutModifier,
134133
updateRepoDefaults,
135134
updateAgentSettings,
@@ -158,7 +157,6 @@ export default function App() {
158157
const [settingsOpen, setSettingsOpen] = useState(false);
159158
const [fontFamily, setFontFamily] = useState(config.settings.terminalFontFamily);
160159
const [fontSize, setFontSize] = useState(config.settings.terminalFontSize);
161-
const [batterySaver, setBatterySaver] = useState(config.settings.batterySaver);
162160
const [agentArgs, setAgentArgs] = useState<Record<string, string>>(config.settings.agentArgs ?? {});
163161
const [renameOpen, setRenameOpen] = useState(false);
164162
const [renameSessionId, setRenameSessionId] = useState<string | null>(null);
@@ -204,11 +202,9 @@ export default function App() {
204202
useEffect(() => {
205203
setFontFamily(config.settings.terminalFontFamily);
206204
setFontSize(config.settings.terminalFontSize);
207-
setBatterySaver(config.settings.batterySaver);
208205
}, [
209206
config.settings.terminalFontFamily,
210207
config.settings.terminalFontSize,
211-
config.settings.batterySaver,
212208
]);
213209

214210
useEffect(() => {
@@ -453,11 +449,9 @@ export default function App() {
453449
const openSettings = useCallback(() => {
454450
setFontFamily(config.settings.terminalFontFamily);
455451
setFontSize(config.settings.terminalFontSize);
456-
setBatterySaver(config.settings.batterySaver);
457452
setAgentArgs(config.settings.agentArgs ?? {});
458453
setSettingsOpen(true);
459454
}, [
460-
config.settings.batterySaver,
461455
config.settings.agentArgs,
462456
config.settings.terminalFontFamily,
463457
config.settings.terminalFontSize,
@@ -622,7 +616,6 @@ export default function App() {
622616
terminalFontFamily: fontFamily.trim() || config.settings.terminalFontFamily,
623617
terminalFontSize: Number.isNaN(fontSize) ? config.settings.terminalFontSize : fontSize,
624618
});
625-
updateBatterySaver(batterySaver);
626619
updateAgentSettings(cleanedArgs);
627620
setAgentArgs(cleanedArgs);
628621
setSettingsOpen(false);
@@ -886,12 +879,10 @@ export default function App() {
886879
open={settingsOpen}
887880
fontFamily={fontFamily}
888881
fontSize={fontSize}
889-
batterySaver={batterySaver}
890882
shortcutModifier={shortcutModifier}
891883
agentArgs={agentArgs}
892884
onChangeFontFamily={setFontFamily}
893885
onChangeFontSize={setFontSize}
894-
onToggleBatterySaver={setBatterySaver}
895886
onCommitShortcutModifier={handleShortcutModifierCommit}
896887
onAgentArgsChange={setAgentArgs}
897888
onClose={closeSettings}

apps/desktop/src/components/MainPane/MainPane.module.css

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@
2828
radial-gradient(circle at 12% 55%, rgba(34, 197, 94, 0.18), transparent 60%),
2929
radial-gradient(circle at 65% 12%, rgba(59, 130, 246, 0.16), transparent 62%),
3030
radial-gradient(circle at 88% 75%, rgba(217, 70, 239, 0.14), transparent 62%);
31-
background-size: 200% 200%;
32-
animation: gradientDrift 16s ease-in-out infinite alternate;
33-
animation-delay: 0s;
3431
}
3532

3633
.main::after {
@@ -39,10 +36,7 @@
3936
radial-gradient(circle at 45% 45%, rgba(251, 191, 36, 0.16), transparent 62%),
4037
radial-gradient(circle at 20% 30%, rgba(248, 113, 113, 0.14), transparent 62%),
4138
radial-gradient(circle at 82% 35%, rgba(20, 184, 166, 0.12), transparent 62%);
42-
background-size: 220% 220%;
4339
mix-blend-mode: screen;
44-
animation: gradientDriftAlt 20.7s ease-in-out infinite alternate;
45-
animation-delay: 0s;
4640
}
4741

4842
.tabPane {
@@ -271,33 +265,6 @@
271265
display: none;
272266
}
273267

274-
:global(body[data-battery-saver="on"]) .main::before,
275-
:global(body[data-battery-saver="on"]) .main::after {
276-
animation: none;
277-
}
278-
279-
@keyframes gradientDrift {
280-
0% {
281-
background-position: 0% 0%;
282-
filter: hue-rotate(0deg);
283-
}
284-
100% {
285-
background-position: 100% 100%;
286-
filter: hue-rotate(40deg);
287-
}
288-
}
289-
290-
@keyframes gradientDriftAlt {
291-
0% {
292-
background-position: 100% 0%;
293-
filter: hue-rotate(0deg);
294-
}
295-
100% {
296-
background-position: 0% 100%;
297-
filter: hue-rotate(-30deg);
298-
}
299-
}
300-
301268
@keyframes refreshSpin {
302269
0% {
303270
transform: rotate(0deg);

apps/desktop/src/components/SettingsDialog/SettingsDialog.tsx

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@ interface SettingsDialogProps {
1515
open: boolean;
1616
fontFamily: string;
1717
fontSize: number;
18-
batterySaver: boolean;
1918
shortcutModifier: string;
2019
agentArgs: Record<string, string>;
2120
onChangeFontFamily: (value: string) => void;
2221
onChangeFontSize: (value: number) => void;
23-
onToggleBatterySaver: (value: boolean) => void;
2422
onCommitShortcutModifier: (value: string) => void;
2523
onAgentArgsChange: (next: Record<string, string>) => void;
2624
onClose: () => void;
@@ -31,12 +29,10 @@ export default function SettingsDialog({
3129
open,
3230
fontFamily,
3331
fontSize,
34-
batterySaver,
3532
shortcutModifier,
3633
agentArgs,
3734
onChangeFontFamily,
3835
onChangeFontSize,
39-
onToggleBatterySaver,
4036
onCommitShortcutModifier,
4137
onAgentArgsChange,
4238
onClose,
@@ -242,21 +238,6 @@ export default function SettingsDialog({
242238
/>
243239
<p className={styles.fieldHint}>Click and press modifiers. Enter to save, Esc to cancel.</p>
244240
</label>
245-
<div className={styles.toggleRow}>
246-
<div>
247-
<span>Battery saver</span>
248-
<p className={styles.toggleHint}>Disable animated background to save battery.</p>
249-
</div>
250-
<button
251-
type="button"
252-
className={`${styles.toggle} ${batterySaver ? styles.toggleActive : ""}`}
253-
aria-pressed={batterySaver}
254-
onClick={() => onToggleBatterySaver(!batterySaver)}
255-
>
256-
<span className={styles.toggleKnob} />
257-
</button>
258-
</div>
259-
260241
<div className={styles.section}>
261242
<div className={styles.sectionHeader}>
262243
<span className={styles.sectionTitle}>Agents</span>

apps/desktop/src/hooks/useAppState.ts

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ const defaultSettings = {
194194
terminalFontFamily: '"JetBrains Mono", "SF Mono", "Fira Code", monospace',
195195
terminalFontSize: 13,
196196
shortcutModifier: "Alt",
197-
batterySaver: false,
198197
repoDefaults: {},
199198
agentArgs: {},
200199
};
@@ -549,10 +548,6 @@ export function useAppState(
549548
activeSessionRef.current = activeSessionId;
550549
}, [activeSessionId]);
551550

552-
const setBatterySaverDataset = useCallback((enabled: boolean) => {
553-
document.body.dataset.batterySaver = enabled ? "on" : "off";
554-
}, []);
555-
556551
const markConfigReady = useCallback(() => {
557552
configReadyResolveRef.current?.();
558553
configReadyResolveRef.current = null;
@@ -616,23 +611,21 @@ export function useAppState(
616611
setConfig(nextConfig);
617612
setHasSavedConfig(hasSaved);
618613
applyTheme(nextConfig.settings.theme);
619-
setBatterySaverDataset(nextConfig.settings.batterySaver);
620614
})
621615
.catch(() => {
622616
if (!mounted) {
623617
return;
624618
}
625619
setHasSavedConfig(false);
626620
applyTheme(defaultSettings.theme);
627-
setBatterySaverDataset(false);
628621
})
629622
.finally(() => {
630623
markConfigReady();
631624
});
632625
return () => {
633626
mounted = false;
634627
};
635-
}, [applyTheme, markConfigReady, setBatterySaverDataset]);
628+
}, [applyTheme, markConfigReady]);
636629

637630
const persistConfig = useCallback(async () => {
638631
try {
@@ -759,14 +752,6 @@ export function useAppState(
759752
[applyTerminalAppearanceToAll, toTerminalAppearance, updateSettings]
760753
);
761754

762-
const updateBatterySaver = useCallback((enabled: boolean) => {
763-
updateSettings((settings) => ({
764-
...settings,
765-
batterySaver: enabled,
766-
}));
767-
setBatterySaverDataset(enabled);
768-
}, [setBatterySaverDataset, updateSettings]);
769-
770755
const updateShortcutModifier = useCallback(
771756
(modifier: string) => {
772757
const normalized = normalizeShortcutModifier(modifier);
@@ -2113,7 +2098,6 @@ export function useAppState(
21132098
setActiveSessionId,
21142099
updateRecentDirs,
21152100
updateTerminalSettings,
2116-
updateBatterySaver,
21172101
updateShortcutModifier,
21182102
updateRepoDefaults,
21192103
updateAgentSettings,

apps/desktop/src/types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export interface AppSettings {
2929
terminalFontFamily: string;
3030
terminalFontSize: number;
3131
shortcutModifier: string;
32-
batterySaver: boolean;
3332
repoDefaults?: Record<string, RepoSessionDefaults>;
3433
agentArgs?: Record<string, string>;
3534
}

0 commit comments

Comments
 (0)