The goal
To create a notebook whose options, when the notebook is opened, are fixed regardless of edits done to the notebook.
E.g. WindowSize -> Automatic
and WindowMargins -> 30
should be a starting value even if one has saved that notebook from full screen mode.
The motivation
Notebooks are shared, e.g. through Google Drive, and opened on different devices. It is annoying to open a notebook, which was previously used with 250% magnification, taking half of 4K screen, on a 13" laptop.
The question
Is there a good approach which is flexible, doesn't trigger dynamic warning and if possible works from a stylesheet?
I've thought that maybe something like WindowSize -> Dynamic[dynamic, Initialization :> (dynamic = init)]
where dynamic
and init
are references to specific TaggingRules
.
It won't work because notebook options are overwritten. Moreover, Initialization
can be triggered when the Kernel is restarted which is not desirable.
Edit:
I have not received any answers so I'm moving tests I've done to an answer. I think they fit there and the goal is to reduce unanswered stack. But I will gladly accept any answer that fulfills all stated requirements.
FileChangeProtection
option (forNotebook
) looks interesting, might lead to a solution for your question. $\endgroup$FileChangeProtection -> None
, I'm guessing maybe it also accepts a function value. $\endgroup$