520 Commits (5906bf58c3d64e6dc04ff9908906b81b0727be17)

Author SHA1 Message Date
rsynnest 3be5de6874 Invoke user's login shell to load proper WSL $PATH
In Linux, custom changes to the $PATH are usually defined in ~/.profile,
~/.bash_profile, ~/.zprofile, etc.  These files are only loaded by a
'login shell', which can be explicitly invoked with the -l flag.  Most
shells (bash, dash, zsh, fish) support this -l flag.  This commit uses
the $SHELL env var to invoke the user's default shell with the -l flag to
force a login shell. This should properly load any custom $PATH settings
defined by the WSL user.  This is a potential fix for #693
3 years ago
Serg Tereshchenko 55179e43c3 refactor: Refactor initial resize fix
window.is_maximized() returns false on startup, using settings instead.

Refs #892
3 years ago
Serg Tereshchenko bd4a181162 fix(renderer): Force grid redraw on startup with --maximized flag
Refs #892
3 years ago
Christian Clason c3fe866bb9 refactor(font): conditional compilation on macos
Avoids
```
warning: unused variable: `points_per_inch`
  --> src/renderer/fonts/font_options.rs:94:9
   |
94 |     let points_per_inch = 72.0;
   |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_points_per_inch`
   |
   = note: `#[warn(unused_variables)]` on by default
```
on macOS, which is innocuous but has been bugging me for a while.
3 years ago
Keith Simmons 3bba418c1c refactor grid_renderer out of renderer and clean up window draw command handling 3 years ago
Keith Simmons c52a6e356a format code 3 years ago
Keith Simmons a4822378e2 log version on startup and bump it 3 years ago
Serg Tereshchenko dc3b3351d5 fix(logging): Replace println with debug in bridge/events.rs 3 years ago
mforsb 8779a76fb0 Clean up tokio::sync::mpsc imports 3 years ago
mforsb e343c64d4e Simplify nvim version check, remove regex dependency
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.
3 years ago
mforsb 5c90f33e9e Use tokio::sync::mpsc instead of crossfire::mpsc
Since tokio channels has blocking_recv now crossfire isn't needed
anymore.
3 years ago
mforsb 768a589576 Remove rust-embed as a 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).
3 years ago
Serg Tereshchenko 71e107d649 fix: Trigger grid resize after font change 3 years ago
Serg Tereshchenko d5404299ee chore(logging): Don't log "icon created" message 3 years ago
Serg Tereshchenko caf9e35726 chore(logging): Use 4 digits for scale_factor display 3 years ago
Keith Simmons 400dbcabd3 remove global suffix on settings call 3 years ago
Serg Tereshchenko 0549540c13 style: apply cargo --fmt 3 years ago
partizan 9149c98292
Merge pull request #865 from neovide/refactor-grid-conv
Refactor grid conversions
3 years ago
Serg Tereshchenko 6d38f34f8b refactor: Use paired values as tuples/Dimensions
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.
3 years ago
Keith Simmons 1e1bd45d45 swap feature flag to just be a setting instead 3 years ago
Keith Simmons 48336ee84d working swap to upstream nvim-rs 3 years ago
Serg Tereshchenko 725f12cafd refactor: Remove first_render_pass flag 3 years ago
Serg Tereshchenko a8c6e1707b refactor: Refactor startup process to delay setting window size.
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.
3 years ago
Serg Tereshchenko d12ab7e33a refactor: Refactor ui_attach options 3 years ago
Keith Simmons 132f993699
add better touch scrolling (#861)
* add better touch scrolling

* optionally send multiple scroll events

* fix formatting

Co-authored-by: Keith Simmons <keithsim@microsoft.com>
3 years ago
partizan 30dd5e7f73
fix(cmd_line): Renamed --multiGrid to --multigrid (#862)
BREAKING CHANGE: Renamed --multiGrid to --multigrid
BREAKING CHANGE: Removed env var NeovideMultiGrid
3 years ago
Lucas Miranda 726539fbae
add neovide_input_use_logo to toggle logo handling (#857)
* add neovide_input_use_logo to toggle logo handling
it also completely ignores keyboard inputs with D modifier

* fix lint errors
3 years ago
mforsb 178cbafb2f
Fix recursion when using -- to pass args to nvim. (#854)
Co-authored-by: Marcus Forsberg <mforsb92@gmail.com>
3 years ago
partizan 6a744fee2c
refactor: Refactor disowning process. (#852) 3 years ago
partizan 257ec70a80
refactor: Refactor window module (#849)
- Split platform-dependent code into separate function
- Remove wrapper function `create_window`
- Move handle_new_grid_size where it belongs
3 years ago
Benson Li 21a8adc4a5
Remember window dimensions #622 (#816)
* Implementation for #622

* Update src/window/settings.rs

Co-authored-by: partizan <serg.partizan@gmail.com>

* applied suggestions from @last-partizan

* applied suggestions from @Kethku

* applied more suggestions from @last-partizan

Co-authored-by: partizan <serg.partizan@gmail.com>
3 years ago
Keith Simmons 949e15f808 add debug renderer feature 3 years ago
Serg Tereshchenko 61fb07d7bf style: Fix clippy warning 3 years ago
Lucas Miranda 0d6cfd54cb
Fix to sending key signals when window focus lost (#845)
When window focus has just been lost, key pressed events aren't ignored
3 years ago
Lucas Miranda 0c1a7029e3
Fix to ensure provided gui font is valid (#842)
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
3 years ago
partizan 3da8b56b74
fix(keyboard): Fix shift+tab handling (#836)
Refs #445
3 years ago
Tim Biermann f6a8ffced0
Make waylands app_id and x11s class overrideable (#834)
* 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>
3 years ago
Serg Tereshchenko 5991117814 style(fonts): Removed redundant closure
(Thanks clippy)
3 years ago
partizan 334c2d779f
Refactor keyboard manager (#833)
* 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
3 years ago
partizan e8354e1b23
Dynamic scale factor updates (#817)
* wip: dynamic scale factor updates

* refactor font options

* update font opts

* refacor scale factor updates

* cargo fmt
3 years ago
Serg Tereshchenko 42ff24518b fix(macos): Fix scaling on mac-os
On MacOS points and pixels are the same.
3 years ago
Keith Simmons cacde9ec9d fix initial window positioning 3 years ago
partizan a527c0ebb7
fix(fonts): Fix font scaling (points to pixels conversion) (#814)
Refs #387
3 years ago
partizan abb05ab7b8
refactor(startup): Use SETTINGS to store window geometry (#806) 3 years ago
Serg Tereshchenko c870c46aa3 chore(renderer/fonts): Fix unused variable warning 3 years ago
Serg Tereshchenko a1bb24b445 fix(window): Fix resize after maximized
Refs #803
3 years ago
Serg Tereshchenko 07c0349e4a chore: Fixed formatting 3 years ago
partizan 43bab8404b
Refactor scaling code (#793)
* refactor(scaling): Refactor scaling code, scale only font size

* chore: Add debug logging for scale factor

* fix scaling for default font
3 years ago
Keith Simmons 80c57bb339
tweak vertical positioning (#795) 3 years ago
partizan d53884f6e9
fix(window_wrapper): Fix unmaximize behaviour (#792)
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.
3 years ago
partizan d2e33b87f2
Rename "bot" to "bottom" in WindowDrawCommand::Scroll (#789)
* chore(test): Fix function call

* refactor(WindowDrawCommand::Scroll): Rename bot to bottom
3 years ago
partizan d564dc8261
chore(test): Fix function call (#785) 3 years ago
partizan 9f7207feb8
fix(window): Fix incorrect initial scaling (#784)
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
3 years ago
Keith Simmons 73902a6c7a formatting and clippy fixes 3 years ago
Keith Simmons b0222d206e revert 'fix' for pum position 3 years ago
Keith Simmons 2fc74f83ca enable bold/italic highlight styles 3 years ago
smolck f99c21d971
feat(fonts): add support for :b and :i in guifont (#769)
Close #709.
3 years ago
Tim Biermann a0d076bbda
this adds app_id attribute to neovide (#747)
* this adds app_id attribute to neovide

* app_id should only be included for linux builds
3 years ago
smolck bc1009babc
make dead keys work w/out breaking ctrl mappings (#767) 3 years ago
Keith Simmons fd27e059f0 fix another issue 3 years ago
Keith Simmons 792a6b80b0 yet more macos fixes 3 years ago
Keith Simmons b015c77657 more macos fiddling 3 years ago
Keith Simmons 43fdcb7bb2 fix for option key on macos 3 years ago
Keith Simmons 82b745c92b fix pum menu positioning 3 years ago
Keith Simmons fec2711b90 don't send input if window was just focused 3 years ago
Keith Simmons 30f9bc9d59 minor clippy fixes 3 years ago
Nigel Baillie 27a9c94ad3
Fix sporadic cursor jumps (a bit hacky) (#753)
* Fix occasional sporadic cursor movements

* Discern between "editor" and "message" windows
3 years ago
Keith Simmons f0a46dbff9
Keyboard deadkey handling (#752)
* first stab at better dead key handling

* don't send S-
3 years ago
Keith Simmons 7a1fa123b8 swap to new icon 3 years ago
Keith Simmons 4159c47ff4 clippy fixes 3 years ago
Keith Simmons 407a7e24a9 formatting fixes 3 years ago
Keith Simmons f5b65a6770 fix mouse drag crash 3 years ago
Keith Simmons fbd8e959b2 more mouse position fixes 3 years ago
Keith Simmons 3449cfda7a port forward scrolling fix 3 years ago
Keith Simmons 1f699afad1 fix cursor disappearing glitch 3 years ago
Keith Simmons 59fa3ed2a9 rewrite the mouse handling to handle upstream bugs somewhat better. Still haven't found the crash yet 3 years ago
Keith Simmons 76237c6d47
integrate new keyboard api (#736)
* use new keyboard api using my fork of in progress winit keyboard pr branches

* attempt fix for modifiers stuck bug
3 years ago
Keith Simmons 113a3f421c clippy fixes 3 years ago
Anirudh Balaji 7697cd9cef
fix: don't drop entire blob when shaping control characters (#737) 3 years ago
Keith Simmons 5c7deeb8b9 fix rendering when glyph can't be found and add last resort font 3 years ago
j4qfrost 2160520720
Snapcraft Stable (#722)
* Add option to install neovide from snap

* add snapcraft to release

* add snapcraft to release

* move badge

Co-authored-by: Brymer Meneses <68867487+brymer-meneses@users.noreply.github.com>
3 years ago
Keith Simmons 8168023152 add scroll deadzone setting 4 years ago
Keith Simmons f517cf0a68 handle horizontal scrolling on mac 4 years ago
Keith Simmons d62f008843 fix merge error 4 years ago
Keith Simmons c7694569bd
Opengl (#655)
* 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>
4 years ago
partizan c6a68915a2
fix: Fix parsing win_float_pos_arguments (#715)
Refs #714
4 years ago
Anirudh Balaji 86a3ea650f
Use interactive path for neovim resolution (#672)
* fix: use interactive env when getting nvim path

* fix: read interactive path in neovim
4 years ago
JeWe37 94bd58847e
Add distance dependent animation length (#621)
* Add distance dependent animation length

* Fix for #117 cursor trails disabled when switching between modes an optionally when going to cmd line
4 years ago
Benjamin Davies 764633d2ba
Fix warnings (#573)
* 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
4 years ago
Francisco Santos 2098de7296
Version and help without opening the program (#590)
Co-authored-by: Francisco Santos <franciscosantos@MacBook-Pro.Home>
4 years ago
Benjamin Davies d8d6f4eac2
Remote TCP (#557)
* 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
4 years ago
Keith Simmons 6e2f9551eb remove vulkan call branch 4 years ago
Benjamin Davies 5d98148b03
Don't call `.vulkan()` when building the SDL window on macOS (#541)
This appears to fix some (not all) of the problems that are mentioned in #466
4 years ago
Chinmay Dalal 54b967f41a
Fix `log::error` import (#522) 4 years ago
Chinmay Dalal d14802cb43
Fix clippy, fix font load test (#517)
* Fix warnings

* Fix clippy, ignore font_load test

* Changes requested in PR review

* Fix unused variable and function using #cfg
4 years ago
Chinmay Dalal cc50ff262e
Set termguicolors to true 4 years ago
Keith Simmons 5c6d84a4f1 switch to prefering the discrete gpu 4 years ago
Keith Simmons 9f1be63ce6 format code 4 years ago
Jade 6d5d632c96
Add an icon to the SDL2 window (#462)
* Add an icon to the SDL2 window

* Use the native endian RGBA32 so we don't have wrong icons on BE
4 years ago
ref209 008528d272
Add vim setting for iso layout compatibility (#463) 4 years ago