Repository navigation
feat(linux): the window title says "TaskSmack (Administrator)" while the session is (#2728) - #2934
Merged
Merged
Conversation
…tor table per platform in code (#2728) AccessTable holds the rows the startup notice's "What does Administrator add?" and the chip will show, from the issue's 2026-10-21 inventory: Linux's eight (other users' I/O and memory, signals, priority and the Realtime I/O class, hidepid, System Information's identifiers, other users' crashes, service actions) and Windows' ten (TCP and UDP per process, elevated processes' details, modules, open files, connections and Security tab, actions, dumps, services, all-users startup, the NVMe log and partition layout), each with what a Standard and an Administrator session get, and the closing "Never, even as Administrator" row. Linux rows name the MissingPrivilege bit they explain, and mark the reads the session helper doesn't do yet (needsHelperCoverage). Tests: every Linux MissingPrivilege bit has a row; every row says what each session gets and differs between them; Windows rows wait on no helper and name no bit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…henticate for this session holds the helper until TaskSmack closes (#2728) On Linux the Limited Data notice gives way to AccessNoticeDialog: TaskSmack is running as Standard; Continue as Standard is the default (Escape too); Authenticate for this session..., with the polkit prompt named, holds the privileged helper for the session through IPrivilegedBroker::holdForSession() (#2872) on a worker thread, while the dialog waits, disabled; success closes it, and a dismissed or refused prompt leaves it open as Standard with a one-line note. Without the helper the option is disabled and says to install the .deb or .rpm (AccessChoice::decideNotice(), #2876). "What does Administrator add?" expands the access table (#2899), leaving out the rows the helper doesn't cover yet, and ends with what is never allowed. "Don't show this again" still only hides it. Windows keeps the Limited Data notice until TaskSmack can restart itself elevated, which is what Administrator means there. PanelPlatforms gains privilegedBroker() for the layer (null in a synthetic run). Tests: test_AccessNoticeDialogRender.cpp, headless. The FAQ describes the notice and the helper's session lifetime. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lds the helper for the session, Continue as Standard holds nothing (#2728) AccessNoticeOnDisplayTest runs UILayer and ElevationNoticeLayer in a real Core::Application, raises OpenElevationNoticeEvent, and presses a choice once the notice is up: on Linux, Authenticate for this session holds a fake broker's session (one connect) and closes the notice, and Continue as Standard closes it with no connect. Windows, which keeps the Limited Data notice, checks its OK. With TASKSMACK_UI_CAPTURE_DIR set it saves the open notice as access-notice.png. FakeBroker gains an opt-in holdForSession(); by default it still refuses, as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tor, and Standard's opens the notice to switch (#2728) On Linux the status bar's lock becomes the access chip: a lock and "Standard" while some details of other users' processes or actions on them are unavailable, clicking it opening the startup notice again (whatever its "Don't show this again") for Authenticate for this session...; a shield and "Administrator" when nothing is limited: root, every capability granted, or the helper held for the session. Windows keeps the plain lock until TaskSmack can restart itself elevated. PkexecBroker::heldForSession() reads only its atomics, since the chip asks every frame on the UI thread: no poll(), and a helper that has just exited is noticed by the workers' next call. The icon header gains ICON_FA_SHIELD_HALVED (U+F3ED, in the bundled Font Awesome). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the session is (#2728) ShellLayer sets the OS window title (taskbar, window switcher) to "TaskSmack (Administrator)" when nothing is limited, root or the helper held for the session, and back to "TaskSmack" otherwise, as the access chip does, and only when that changes. Core::Window::setTitle() and IShellHost::setWindowTitle() carry it. The custom title bar keeps its own drawn "TaskSmack". Windows follows with its hand-off. AccessNoticeOnDisplayTest.AnAdministratorSessionTitlesTheWindowSo runs the real shell with the notice, chooses Administrator with a fake broker, and reads the title back with SDL_GetWindowTitle(). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # src/App/ShellLayer.cpp # src/App/ShellLayer.h
mgradwohl
marked this pull request as ready for review
October 25, 2026 14:42
mgradwohl
enabled auto-merge (squash)
October 25, 2026 14:42
Contributor
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
9 tasks done
mgradwohl
added a commit
that referenced
this pull request
Oct 25, 2026
…(Administrator)" in an Administrator session (#2728) (#2949) #2934 set the OS window title, which the taskbar and window switcher show, but TaskSmack's own borderless title bar drew a literal "TaskSmack". Core::Window now keeps the title it set (title()), TitleBarLayer hands it to TitleBarView::Input::title, and the view draws that. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
#2728's window title, on Linux: the OS window title (taskbar, window switcher) says "TaskSmack (Administrator)" while the session is Administrator, and "TaskSmack" otherwise.
ShellLayersets the title only when the state changes.Core::Window::setTitle()andIShellHost::setWindowTitle().Part of #2728. Builds on #2913 (the chip), now merged.
PR Size
Small: 8 files, +101/−5, half of it the test.
Type of Change
Checklist
clang-tidyand addressed any warningsclang-formaton my changespre-commit run --all-filesor installed pre-commit hooksTesting
AccessNoticeOnDisplayTest.AnAdministratorSessionTitlesTheWindowSoruns the real shell with the notice, chooses Administrator with a fake broker, and reads the title back withSDL_GetWindowTitle(). Without the change, the title stays "TaskSmack".🤖 Generated with Claude Code