lmparppei / beat Goto Github PK
View Code? Open in Web Editor NEWBeat - a simple and elegant screenwriting app for macOS
License: Other
Beat - a simple and elegant screenwriting app for macOS
License: Other
Using (Cmd - or Cmd + ) a few times quickly takes a long time. Can cause a spinning beach ball.
Might only happen with larger files.
One solution would be to resize only what's on-screen first, then handle the rest of the file as a background process.
Sample script: Big Fish.
Different "page" color vs. background color. Assumes "page" view.
Related to #21
I don't know if you'd be interested, but I'd love a viewing mode that features a light page background but a dark user interface. It is featured in Fade In, Scrivener, etc. and I prefer it over Mac's standard dark mode, which is frankly quite dark.
I think it'd interesting to call it "Goldilocks" mode or something like that. But calling it "Happy Medium" might be a bit more reasonable and easier for the average chump who comes across it to understand without thinking too hard about classic literary references.
Allow for custom top, bottom, left, right window margins (not print margins, but "padding" in CSS).
At the moment, the Timer shows up when mouse moves. It should be fixed so that it only fades into view when the user moves the mouse cursor nearby the bottom of the window.
Mouse movement and UI hiding/showing is handled in BeatScrollView
, with IBOutlet
s attached to the controls.
Create a user-customizable theme both for light & dark mode.
The Theme system is a pretty convoluted one, but originally allowed multiple themes, so it should be easy enough to implement. The harder part is the UI. Beat promises it has no preferences, complicated menus and no nonsense, but a simple color customization menu shouldn't be too much. :-)
Beat uses a class called DynamicColor
which has both the light and dark mode colors, and ThemeManager
creates the dynamic colors according to Themes.plist
. When creating a new theme, the user would have to determine colors for both dark & light mode to avoid confusion. You could have a checkbox to "use same color" or something to minimize hassle.
This should be quite easy to implement, and you can use Swift if you want to.
Document view is jumping here and there when resizing and zooming in / out. Sometimes it loses its position altogether and it can only be fixed by resizing or zooming again.
I am calling [self updateLayout]
all over the place to try to make sure the positioning would not get messed up, but this might be part of the problem.
Centering a magnified NSScrollView has been much more tricky than I first thought. I enabled the new method for 1.0.7, because magnification is much more efficient than adjusting the font sizes and solves the problems with unresponsiveness. I was willing to take the risk of having some layout bugs for now, rather than having the users get shocked by the app apparently crashing (though it never did).
Custom CSS for all elements (this could roll up pretty much all of these others, below).
If you don't want to clutter your menus or add a Preferences panel, you could have Beat look for a custom CSS file in a default folder and apply that. CustomLight.css CustomDark.css, perhaps. Sample CSS XML file with elements labeled would be necessary.
Custom spacing before/after elements. Example: Sluglines show with 2 spaces when exporting to PDF. Would be nice to choose how many spaces.
Toggling Live Preview off, then on, causes crash (see crash dump 002). Depends on the script.
Opening a script with ".44" in a dialogue block shows a forced slug instead. Unable to reproduce after first occurrence. Could not recreate with new file, either.
This occurred when opening the attached fountain file (could be bad format, or just a fountain bug).
Default next element after CR in dialogue is "dialogue". Might be intentional.
Custom basic styles for all script elements (bold, italic, underline, combination).
e.g. Sluglines could be underlined. Parentheticals could be italic.
I know! I know! This might be a tad extreme to request such a thing in an application that writes screenplays, not music.
But I would love, love, love a plugin that plays light, open-source music in the background as I type. Even crazier... I just had another idea... maybe the music could stop or start if you don't type anything for 10 seconds. It could be a fun way of saying: "GET BACK TO WORK, YOU LAZY IDIOT!"
I don't know if that'd be too distracting to most people. Probably. But I'd just love someone who has the ba**s to pull it off.
Also, typewriter sound effects would be awesome. FocusWriter has pretty good ones. If someone's interested in doing crazy sh** like this... LET ME KNOW!
Triggering the outline view closed causes the scene numbers to shift too far to the left. If the outline view is open, they disappear behind it.
Okay, so, that title blows... but basically I want to have a map of the script showing where characters come in and out of the story. It can be used to see whether a character "disappears" throughout the script or should "appear" earlier in the story.
As where all my completely original ideas come from, stolen from another screenwriting program, here's how it looks in Trelby...
Alright, I know! I know! It's a pretty ugly graph thing, but at least it's interesting way to visualize a script, which I'm a huge fan of.
I'd prefer a color version of this. Maybe the user could choose the colors or they are randomly assigned. Guess that'd be question brought up to the user before creating a new report, huh? I dunno...
Plus, (V.O.), (O.S.), (O.C.), etc. should be combined into one entry instead of multiple, like Trelby.
Trelby's code for reference can be found here and here. Note: It's in Python, the programming language for hackers, nerds and the faint of heart.
Some people seem to like an option to "Match the mode of macOS" -- if we're in Mojave dark mode, go dark automatically. If we're in light, go light automatically.
Writing dialogue and hitting CR twice does not cause cursor to be placed for non-dialogue element (meaning: normally what's next after a double blank line will always be action or slug).
Cursor remains in place until a non-CR key is pressed.
Custom colors for all elements -- both script-specific (slug, action, character) and on-screen items (scene numbers, outline background, cursor).
Recommend using the 8-character HTML color style (RGB + opacity, e.g. FF0000DD is red, mostly opaque). This allows for maximum color choice.
Scene numbers are hidden with the window resized to a smaller width (this might be a feature).
Suggest changing Night Mode to "Dark Mode" to match macOS naming.
Custom colors for default editing area background, default text, default background (#21 ).
Hide the "toggle outline" button (either completely, or unless the cursor is near it) for a more minimal experience.
Triggering the outline view closed causes the main window's right edge to shift too far to the left. Doing this multiple times causes the right margin to continue to grow. This is most obvious in full screen mode, but happens in normal mode as well.
Allow custom font for writing, and different font for PDF export. I like to write in a sans serif, but prefer couriers for my PDFs.
Upon starting a new document, using the mouse to adjust the left side of the window causes the cursor to move to a different spot.
If you resize the window while in outline card view and close the view, page layout shows up wrong. It gets corrected once you resize the window again, though, but I haven't really figured out what causes this. Apparently NSView doesn't update its size according to constraints while it's invisible on another tab?
Use a different color scheme for light mode vs. dark mode outline view. Right now, they're the same.
After a document is closed in 1.7b, its memory is not released. This will cause a VERY high memory footprint and leaking.
Just wanted to point out that having the first page numbered goes against proper screenwriting format. In addition, it is unnecessary to number the first page of something. And I was wondering if you'd consider changing it.
P.S. I love the program! It feels similar to Slugline, which is AWESOME! Look forward to the next update.
See title.
I know, I know that it'll make the program more complicated! But at least for the editor font, not the page output, I think having some font options would be great.
Similar to Highland, only showing Courier fonts and select others, such as Helvetica, might be for the best practice to make it less complicated for the end user. It might also be good to add to the "Customize Colour/View" tool.
I wanted to suggest adding a feature from Trelby, a program that has sadly gone out of development.
In that program, the Name Database was always such a cool feature to have. And I used to use it almost every day. Now, I use BehindTheName, which is good but just not the same. The ability to search by name origin, the starting letter, and gender was so very helpful in finding just the right character name for my story.
Implementing this feature wouldn't be too much work as the name database is a simple plain-text file: Trelby's Awesome Name List.
If you are interested in adding it, please let me know! Keep up the great work!
Allow for zoom in/out in Toggle Preview mode.
This is a lazy request, yes. User could export a PDF to macOS Preview and zoom/out themselves ... but it feels like it should be there. (Command - or Command + on a preview).
At least one person was about to write a Beat plugin and tried using htmlPanel
.
It is broken in 1.7.1 as the parser properties are set to nil
after the script has run. This didn't take asynchronous stuff into account, so the parser is long gone before the HTML panel tries contacting it.
I'm trying to find a solution which would also be memory-efficient.
This is really not a "bug", but rather a feature request made by me for myself.
It's possible to have a group of scenes omitted, like this:
/*
INT. SCENE
INT. ANOTHER SCENE
*/
Beat does take into account the omission symbols of a single omitted scene, and marks the beginning & end accordingly. However, if you move either of the scenes in the example above, the omission is left either unterminated or doesn't even begin.
moveString
method should be rewritten to take this into account. The OutlineScene
object already has boolean flags to indicate the status of the omission. It just involves some heavy string index stuff, and I'm not strong enough.
I'd love to have an Apple silicon native version. What can I do to make this happen?
When switching to full screen in a new file, the cursor stays to the far left until you type.
Parentheticals are auto-capitalized. Would be nice to turn this off.
With a fountain file open, using the mouse to drag-enlarge the window to the right causes the screen to scroll a little bit.
When loading a fountain file, scene numbers are not visible. This adjusts as soon as you resize the window.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.