BSD Ports

x11/framework-autorotate 1.0 MidnightBSD

Framework Laptop 12 X11 display autorotate

System
MidnightBSD
Repository
mports
Maintainer
[email protected]
Port added
Last update
Commit
0c3ed28a8a
License
bsd2
Categories
x11

Description

framework-autorotate orients the built-in display of a Framework Laptop 12 under MidnightBSD X11 by reading the Chrome Embedded Controller (EC) memmap accelerometer and tablet-mode bit (TBMD), applying xrandr to the internal panel (eDP/LVDS/DSI), and remapping absolute touch and stylus devices.

It is intended for use with an X display manager greeter as well as an interactive session. Framework Laptop 13 Pro, even with the touchscreen kit, is a clamshell, not a convertible.

In the other systems

The newest version among them is 1.1, as upstream numbers it.

SystemPortVersionVulnerabilitiesStatusMaintainerLast update
MidnightBSDx11/framework-autorotate1.0 behind since 2026-10-10no data-[email protected]2026-09-05
FreeBSDx11/framework-autorotate1.1 newestnone known-[email protected]2026-10-10
HardenedBSDx11/framework-autorotate1.0 behind since 2026-10-10no data-[email protected]-
GhostBSDx11/framework-autorotate1.0 behind since 2026-10-10no data-[email protected]-

Version history 1

  1. 1.0 97d8123a92

Upstream's version as each commit to the port's Makefile set it, or as this site first saw it in the system's packages; the tree's own revisions are not versions here.

Install

Binary package:

mport install framework-autorotate

From mports:

cd /usr/mports/x11/framework-autorotate && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	framework-autorotate>0:x11/framework-autorotate

Dependency graph

Ports that need it on the left, what it needs to run on the right; at most 8 of each. "Dependencies" below lists them all.

Dependencies

As this port's Makefile names them.

Runtime 4

Run dependencies 4

No port depends on this one.

Configuration

Options name: x11_framework-autorotate

OptionDefaultDescription
EXAMPLESon
USES
localbase:ldflags xorg
Service scripts
framework_autorotate

Files

Manual pages 1
  • framework_autorotate(8)
pkg-plist 8
  • sbin/framework_autorotate
  • libexec/framework_autorotate/map-touchscreen
  • libexec/framework_autorotate/xlogin_recenter
  • share/man/man8/framework_autorotate.8.gz
  • share/examples/framework-autorotate/dot.framework_autorotate.bvwm
  • share/examples/framework-autorotate/dot.framework_autorotate.fvwm
  • @dir libexec/framework_autorotate
  • @dir share/examples/framework-autorotate
distinfo 1
FileSizeSHA256
FrauBSD-framework-autorotate-1.0_GH0.tar.gz28054a520b96eaf004fe2712f8c0b8dd247b17faf4fdb7f76daab388cc8ffbcd15c19

Commit history 3

DateCommitCreditsLog message
0c3ed28a8a Lucas Holt x11/framework-autorotate: restore rc script comments from upstream
files/framework_autorotate.in was upstream's rc.d/framework_autorotate with every explanatory comment stripped. That dropped the in-script documentation of the rc.conf knobs (framework_autorotate_mode, _display, _hook, _flags, _logfile) and the notes explaining why the script uses daemon(8) -P rather than -p, why the pidfile is chmod 644, and why framework_autorotate_user is refused -- all of which an admin reads out of /usr/local/etc/rc.d/framework_autorotate. Re-derive the file from upstream so the only local delta is the %%PREFIX%% substitution USE_RC_SUBR needs. Verified comment-only: the diff has no changed non-comment lines. Staged script still substitutes cleanly (no %% tokens remain) and passes sh -n. AI-Assisted-by: Claude Opus 5 (1M context) <[email protected]> …
f68eb30de5 Lucas Holt x11/framework-autorotate: register in category index, own created dirs
Two gaps in the new port: - x11/Makefile had no SUBDIR entry, so the port was invisible to the tree (no index entry, not reachable from a category-level build). - pkg-plist listed the installed files but not the two directories the port creates, so libexec/framework_autorotate and the examples dir were left behind on deinstall. Add @dir for both; the examples one is gated on %%PORTEXAMPLES%% to match the files above it. The rc.d script needs no plist entry -- USE_RC_SUBR appends it to the generated packing list automatically. Validated on amd64: builds clean with -Wall -Wextra (zero warnings), fake and package succeed, the generated packing list now carries both @dir entries, %%PREFIX%% is substituted in the staged rc script, and portlint and check-license both pass. …
97d8123a92 Lucas Holt Add framework-autorotate
Import Framework Laptop 12 X11 display autorotation support. AI-Assisted-by: Codex (GPT-5) <[email protected]> Signed-off-by: Lucas Holt <[email protected]>