Omahub
← All plugins
R

App Scale

by Ricardo Pimentel

Shows the focused application's configured UI scale and changes it when a supported scaling method is available.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
2cf78da
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
2cf78da
Reviewed
1 month ago

This plugin is a scoped user-level utility: it reads Hyprland's focused window, writes per-app .desktop overrides under ~/.local/share/applications with originals backed up, and restarts apps via SIGTERM only when the user explicitly clicks Restart. Independent review matches the deterministic scan: no obfuscation, network access, credential theft, or install-time destructive behavior was found. The residual risk is operational rather than malicious, mainly around process termination and persistent launcher edits.

  • The Restart action sends SIGTERM without an extra confirmation step; a stale or reused PID could in rare cases signal an unrelated process, and unsaved application work could be lost.
  • The plugin rewrites user-level .desktop launchers persistently; although originals are backed up, restoring them requires running the documented reset process after removal.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/ricardojrgpimentel/omarchy-app-scale --enable
Widgets #bar #quickshell #system

App Scale for Omarchy

A compact Omarchy Shell widget for changing the UI scale of the focused application without changing the scale of the entire display.

App Scale panel showing Bitwarden at 0.75x

The bar stays uncluttered with a single scale icon. Open the panel to select and save a scale, then restart the application separately when you are ready.

Features

  • Follows the focused Hyprland window.
  • Discovers its desktop launcher automatically.
  • Shows the saved application scale and focused display scale.
  • Offers 0.75x, 1x, 1.25x, 1.5x, 2x, and 3x presets.
  • Keeps Save scale and Restart app as separate actions.
  • Preserves the original desktop launcher before creating a user override.
  • Supports standard Qt and GTK scaling controls.
  • Includes a dedicated Steam scaling adapter.

Requirements

  • Omarchy Quattro with omarchy-shell
  • Hyprland
  • bash, jq, awk, find, and gtk-launch
  • A discoverable .desktop launcher for the focused application

Install

Once the repository is published, install it with:

omarchy plugin add https://github.com/ricardojrgpimentel/omarchy-app-scale.git
omarchy plugin enable ricardo.app-scale right

The widget declares right as its default section, so this also works:

omarchy plugin enable ricardo.app-scale

Usage

  1. Focus the application you want to scale.
  2. Click the scale icon in the top bar.
  3. Use Change scale to choose a preset.
  4. Select Save scale to update its user desktop launcher.
  5. Save your work, then select Restart app.

The Save button is disabled when the selected value already matches the saved value. Restart remains independent, allowing the application to be relaunched without rewriting its launcher.

How it works

App Scale resolves the focused window to a desktop entry using its application ID, StartupWMClass, display name, or executable. It stores original launchers under ~/.local/state/omarchy-app-scale/originals/ and writes scaled overrides to ~/.local/share/applications/.

For standard applications it configures:

  • Qt: QT_SCALE_FACTOR
  • GTK: GDK_SCALE and GDK_DPI_SCALE
  • Steam: -forcedesktopscaling

Scaling is selected when an application starts. A running application must be restarted before a newly saved value can take effect.

Limitations

There is no universal Linux application-scaling API. Applications with custom rendering engines may ignore Qt and GTK scaling variables. Apps without a discoverable desktop launcher are intentionally left unchanged.

Restart sends SIGTERM to the focused application process and launches its desktop entry again. Save application work before using it.

Remove

To remove the widget while keeping any launcher scales you saved:

omarchy plugin disable ricardo.app-scale
omarchy plugin remove ricardo.app-scale --yes

To restore every launcher changed by App Scale before removing the plugin, run:

plugin_dir="$HOME/.config/omarchy/plugins/ricardo.app-scale"
scales_file="$HOME/.local/state/omarchy-app-scale/scales.tsv"

if [[ -f "$scales_file" ]]; then
  while IFS=$'\t' read -r desktop_id _; do
    [[ -n "$desktop_id" ]] && "$plugin_dir/backend.sh" reset "$desktop_id"
  done < "$scales_file"
fi

omarchy plugin disable ricardo.app-scale
omarchy plugin remove ricardo.app-scale --yes

The reset operation restores preserved local launchers and removes generated overrides when the application already has a system launcher. State backups remain under ~/.local/state/omarchy-app-scale/ for manual recovery.

Development

Install or link the repository at:

~/.config/omarchy/plugins/ricardo.app-scale/

Then validate and reload it:

omarchy plugin validate ~/.config/omarchy/plugins/ricardo.app-scale
omarchy-shell shell rescanPlugins

License

MIT © 2026 Ricardo Pimentel