Using `has("nvim-0.4")` check seems more robust than using a regex to
parse the version string. This also means regex is no longer a runtime
dependency.
This is a rather heavy dependency that's easily replaceable using only
the standard library. This brings the number of dependencies down from
368 to 362 (on Linux).
Paired values, like width/height now using tuples and Dimensions.
`Dimensions` struct implements traits for multiplication and division,
which allows us to scale grid size to physical and back just by
multiplying `Dimensions` instead of each variable.
Also, added trait for multiplication (u64, u64) by Dimensions.
For the same purpose as above.
Setting initial window size moved into draw_frame, and called
after fonts are loaded. So initial window size matches requested
geometry.
This also fixes missing startup screen, as UiCommand::Resize is not
called on startup.
Providing a wrong font was causing neovide to retry every time to load an
inexistent font, instead just trying to load once at it's setup should
be enough
* trying to make app_id and class exchangeable
* still fails to hand over the argument
* make both app_id and class be set by command line arguments
* added missing cfg for class
* Changes as requested. Putting the os check in a block however doesn't
work for me
* getting rid of superfluous to_string()
* x11-class argument gets ignored
* changed argument name
* Update src/cmd_line.rs
* changed faulty unwrap
* added missing comma
* fixed wrong case
* fixed class
* make cargo fmt happy
* exchanged String::from with String::new
* make both attributes also overrideable via env::var
Co-authored-by: partizan <serg.partizan@gmail.com>
* refactor(keyboard_manager): Refactor KeyboardManager
This refactoring changes nothing in key handling behaviour, but moves
some code out of handle_event, to make thigs clearer.
* style(keyboard_manager): Move private functions to bottom
set_inner_size was using LogicalSize from current physical size,
it was working fine only for scaling=1.
Removing this leaves unmaximizing to winit, which does it correctly.
Also, replaced inverse scaling (like 1 / scaling) with natural scaling.
I think easier to work with natural scaling factor (like 1..2)
and multiplication, instead of inverse scaling factor and division.
Refs #771
* OpenGL Backend (#486)
* opengl renderer sorta working
* add x11 build argument
* remove x11
* format
* remove alternate windowing systems
* remove non opengl windowing systems
* fix thread spin
* add graphics interface debugging expects
* update interface build and add conditional compilation
* install nightly in actions
* add format component to nightly install
* remove vulkan from action
* working without shaping
* Add rustybuzz
* applied suggestions from calvinkosmatka
* remove husky
* update skia-safe
* better subpixel font rendering
* commit lock file
* fix merge error
* Bump skia-safe to 0.39.1 (#584)
Compiling for apple silicon/m1 only works on 0.39.1
* remove sdl2 file and upgrade skia/swap to egl
* Update README.md to reflect changes in the main branch. Fix sequence break in Mac installation guide. (#615)
Co-authored-by: Lord Valen <lord_valen@protonmail.com>
* OpenGL Backend (#486)
* opengl renderer sorta working
* add x11 build argument
* remove x11
* format
* remove alternate windowing systems
* remove non opengl windowing systems
* fix thread spin
* add graphics interface debugging expects
* update interface build and add conditional compilation
* install nightly in actions
* add format component to nightly install
* remove vulkan from action
* working without shaping
* Add rustybuzz
* applied suggestions from calvinkosmatka
* remove husky
* update skia-safe
* better subpixel font rendering
* commit lock file
* fix merge error
* Bump skia-safe to 0.39.1 (#584)
Compiling for apple silicon/m1 only works on 0.39.1
* remove sdl2 file and upgrade skia/swap to egl
* Update README.md to reflect changes in the main branch. Fix sequence break in Mac installation guide. (#615)
Co-authored-by: Lord Valen <lord_valen@protonmail.com>
* Version check (#631)
* add more robust version check
* clippy
* fix some copy pasta
* revert font changes
* add lock file back
* pull in animation length change from main and adjust default cursor settings
* Snap for Ubuntu (#576)
* add more robust version check
* clippy
* fix some copy pasta
* revert font changes
* snap builds correctly
* add snapcraft workflow
* clean up workflow
* clean up workflow
* clean up workflow
* check workflow works
* build snap
* use lxd
* add snap push
* add step id
* use official snapcraft actions
* add snap badge
* move snap badge
* swap from rustybuzz to swash. WAY faster performance
* format files
* fix command line jump filtering
* attempt fix of github action
* add comma
* add caching to the build dependencies
* fix foating window position
* Fix 577 (#668)
* fix formatting and clippy errors
* upstream formatting fix
* Added trackpad support to scrolling/smoothscrolling in OpenGL branch (#681)
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Fixed regular scroll
* Update mod.rs
* Update mod.rs
* Reverted previous change, dividing first instead
* Update mod.rs
* Update mod.rs
* I completely forgot about how unsigned integers in rust work
* Remove the casting to integer
* Forgot function signature requires integer
* divide before cast
* remove semicolon
* Changed function signature to use float instead of integer, using float for PixelDelta
* Forgot parenthesis
* Change 0 to math float
* Do the same for the function itself
* Scrolling still too fast
* Still way to fast
* Still too fast
* Still too fast
* somehow still too fast
* Still too fast
* Update mod.rs
* testing
* still fast
* doesn't fit in f32 anymore
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Update mod.rs
* Testing
* Testing something new
* Update mod.rs
* Update mod.rs
* Deleted unnecessary code
* Implement CLI parsing with clap (#680)
* implemented command line parsing with clap
* removed println!
* fixed file opening
* added files parameter to avoid -- [FILES]
* use new cmdlinesettings in various places
* lets stick to the old cli-api
* moved to builder syntax to allow for hypens in args
* Fixed merge conflict that was overlooked before
* Basic Environment variables
* Added alias for MultiGrid environment var
* Fix for #566 (#687)
* add logging to async channels
* use better logging in channels
* made float change backwards compatible
* fix clippy work
* ignore new clippy lint
* fix mac clippy lint
* adjust actions
* use nightly format
* install utilities in mac and linux builds
* Fix some shift+key mappings (#695)
* fix publish test results step
* Basic Frameless window support (#694)
* Frameless window (not resizeable)
* Update
* Delete neovide.ico
idk how did this get here
* add readme tweak to make sure people know what neovim is
* add scoop instructions for windows
* implement manual font fallback with swash
* M1 Runner (#711)
* add self-hosted m1
* remove vulkan
* cahnge toolchain
* fmt
* clippy
* remove llvm
* upload m1
* checkout upstream build.yaml
* remove llvm step
* remove git caching for self hosted
* Add environment variables for window options (#708)
* Add Env for window options
* Remove PascalCase
* Font Fallback (#701)
* better font fallback
* actually fix font fallback
* swap to u64s for most font size solutions
* increase line height slightly and attempt stencil buffer fix
* fix divider issue
* clippy and formatting fixes
Co-authored-by: Keith Simmons <keithsim@microsoft.com>
* clippy fixes
* Fix default font (#719)
* size using Z
* default font ordering
* clippy fixes
* interactive wsl path
* fix formatting
Co-authored-by: Keith Simmons <keithsim@microsoft.com>
Co-authored-by: shaunsingh <71196912+shaunsingh@users.noreply.github.com>
Co-authored-by: Lord-Valen <46138807+Lord-Valen@users.noreply.github.com>
Co-authored-by: Lord Valen <lord_valen@protonmail.com>
Co-authored-by: j4qfrost <j4qfrost@gmail.com>
Co-authored-by: PyGamer0 <64531844+PyGamer0@users.noreply.github.com>
Co-authored-by: Obyoxar <43534802+ErikMayrhofer@users.noreply.github.com>
Co-authored-by: Benson Li <bensonbinbinli@gmail.com>
Co-authored-by: meluskyc <meluskyc@gmail.com>
* Fix warnings associated with neovide-derive
* Remove unused transparency member
Sdl2WindowWrapper had a property called transparency that was never
read and was causing a warning.
* Add Lint with Clippy to build workflow
* Remote TCP proof of concept
* Allow usage of both tcp and child connections using `TxWrapper`
* Tidy up and add flag to set tcp target
* Add readme section
* Remove the need for `Compat<TxWrapper>` as we are wrapping it anyway
SDL tells the window manager to disable compositing for its windows by
default in order to somewhat improve rendering performance. This is
unfortunate for a text editor one would be using concurrently with other
programs, because KDE misbehaves with its global taskbar if this is
done, and it also may freeze or otherwise break the display of running
Firefox windows. This misbehaviour affects all SDL windows including
e.g. games such as Factorio.
There is a global switch to ignore all applications making this request
in the KDE compositor settings called "Allow applications to block
compositing", as well as an option in the window rules dialog to do it
for individual windows by class, but we should try to do the right thing
by default. The user can decide to block compositing per-window with
these rules if they wish to preserve the previous behaviour.
Fixes#370.
* Added procedural macro crate
* Initial derive macro implementation
* Compiles for cursor settings
* Derive macro working correctly
* Derive macro working for all settings structs
* Cleanup
* Moved the binary back to the project root
* remove unused utils file
Co-authored-by: Tim Harding <Tim@TimHarding.co>
* fixing dpi
* refactor rendered window for better dpi scaling
* prevent cursor from animating out of the window bounds
Co-authored-by: Gabby Grinslade <grinsladeg@gmail.com>
* parse viewport events
* progress toward pixel scrolling
* ITS WORKING
* fix basic scrolling gaps
* add limit to number of old surfaces to store
* set cursor destination based on rendered location not global grid
* Moved refactoring to the new program structure
* Imported enum variants to qwerty layout files
* Changed keyboard impl from From to Into
* Simplified imports
* Implement From rather than Into
* thanks nganhkhoa; should solve issue-327
* save work
* intended to address issue-332 among other font problems; added some tests for caching_shaper; clippy
* remove nightly feature
* choose random font instead
* add droid font to workflow linux
* switch to sans mono
* switch font
* cleaner random font implementation