Hey guys,
I'd like to contribute a little to neovide. Are there objections against a flatpack package? I could start making a manifest and see how it goes.
No one is going to say no to free work. Just make sure it's not a virus. Good luck.
:)
No one is going to say no to free work.
I got used to ask beforehand. Better save then sorry.
Just make sure it's not a virus.
I do my best ;)
I'd really appreciate a Flatpak app!
will take a couple of days but i already started. I'm not sure how I will deal with the release system of neovide. Worst case I build within the manifest file, but maybe I'm fine with the taged commits.
@deisi What are you referring to when you say release system? Are you talking about the git workflow?
Well, currently version 0.5.0 is considered as the last release, but the last tagged version is 0.7.0. I'm not sure what version I should put in the manifest. For now I focus on getting something that works and don't care about how I will handle future updates too much. I know that the process can be automated quite nicely, but that is taking step 2 before I have taken step 1.
Gotcha, @ me when you're ready and I can help you set up a workflow pipeline to do packaging via github.
merci :)
I got a prototype working. I based it off:
https://github.com/flathub/io.neovim.nvim/blob/baf02021ed4c4752a71b0fe7c0fc183bfdbb3c00/io.neovim.nvim.yaml
to get the nvim part done, but to me that manifest is plain horror. I will see if I can manage to base the nvim part off the upstream appdata file, so the building of nvim is left to the developers of nvim.
Okay, I could drastically simplify the manifest by just using the appimage of nvim instead of compiling it myself. Here is the manifest as I use it right now. It will need some cleanup and a little more love, but it works.
app-id: org.neovide.neovide
runtime: org.gnome.Platform
runtime-version: "3.36"
sdk: org.gnome.Sdk
command: neovide
finish-args:
- --socket=x11
- --socket=wayland
- --share=network
- --filesystem=home
- --device=dri
- --socket=pulseaudio
modules:
- name: nvim
buildsystem: simple
sources:
- type: file
url: https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
sha256: 1eea3d44f55bab0856d08737c0c50ead7645ae3afd6352a252bc403b9843ec95
build-commands:
- chmod +x nvim.appimage
- ./nvim.appimage --appimage-extract
- mv squashfs-root/usr/* /app/
- name: Neovide
buildsystem: simple
sources:
- type: file
url: https://github.com/Kethku/neovide/releases/download/0.7.0/neovide
sha256: 2a984740f31fd72f26c5ae56f0f9a8c0e1285c688875dbc403be2bf44c1f29c4
x-checker-data:
type: json
utl: https://api.github.com/repos/Kethku/neovide/releases/latest
url-query: .assets[] | select(.name==neovide) | .browser_download_url
- type: git
url: https://github.com/Kethku/neovide.git
commit: 4bd6579074e73dbb8ea8e3fde1f427af143d0b7a
dest: .
- type: file
path: org.neovide.neovide.metainfo.xml
build-commands:
- sed -i 's/Icon=neovide/Icon=org.neovide.neovide/g' assets/neovide.desktop
- install -Dm644 assets/neovide-16x16.png /app/share/icons/hicolor/16x16/apps/${FLATPAK_ID}.png
- install -Dm644 assets/neovide-32x32.png /app/share/icons/hicolor/16x16/apps/${FLATPAK_ID}.png
- install -Dm644 assets/neovide-48x48.png /app/share/icons/hicolor/16x16/apps/${FLATPAK_ID}.png
- install -Dm644 assets/neovide-256x256.png /app/share/icons/hicolor/16x16/apps/${FLATPAK_ID}.png
- install -Dm644 assets/neovide.desktop /app/share/applications/${FLATPAK_ID}.desktop
- install -Dm644 org.neovide.neovide.metainfo.xml /app/share/metainfo/${FLATPAK_ID}.metainfo.xml
- install -Dm755 neovide /app/bin/neovide
So here is a thing I would need help with:
A flatpak has a app-id as unique application name. This name must be a valid domain name identifier and it must belong to the developers of the flapak and or neovide as well. So the question is, does neovide or @Kethku have a domain he owns that I can use. If not, I could publish it under my domain. The app-id would then be named:
de.deiseroth.neovide
@j4qfrost
@deisi good work! I would wait til Kethku responds before registering the id, but if you're open to maintaining the rpm repository for the foreseeable future, it would be fine to just register the domain, and set it up.
Though it might be a good idea to set up an official site at some point. It would be useful for package management registration. @Kethku
I pushed the current version to my get repo. If anyone is interested to help out testing. I can provide install instructions.
I can provide install instructions.
Yes, please do.
Okay, but this is work in progress so expect problems.
As build dependencies you need flatpak-builder and flatpak. So on e.g. ubuntu it would be:
sudo apt install flatpak flatpak-builder
And also the runtime and sdk with
flatpak install org.freedesktop.Platform//20.08
flatpak install org.freedesktop.Sdk//20.08
clone my repo and switch to the neovide branch
git clone [email protected]:deisi/flathub.git
cd flathub
git branch --track neovide origin/neovide
build a local version
flatpak-builder --user --install build org.neovide.neovide.yaml
and run with
flatpak run org.neovide.neovide
Notes:
config lives in ~/.var/app/org.neovide.neovide/config this is because flatpak change XDG env variables. Further the flatpak is sandboxed. Thus it has no access to e.g. /urs/bin/ as a result things like :terminal or :!latexmk dont work. I dont really have a solution to this yet, but I think it is possible to basically disable the sandbox somehow, as. e.g. https://github.com/flathub/org.gnome.Builder is making it possible. However these are rather neovim than neovide issues.
flatpak run org.neovide.neovide
Ignored client type property: "methods"
Ignored client type property: "attributes"
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', /home/runner/.cargo/git/checkouts/skribo-3c422fce25a33836/a35c876/src/collection.rs:130:32
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Maybe related to the font config?
I started a shell in the container and checked that the font in set guifont is available in the container with flatpak run --comand=bash and fc-list.
Mhm so I got it to work after trying a few fonts and trying to start multiple times.
It randomly fails sometimes with
thread 'main' panicked at 'font family loaded', src/renderer/fonts/font_loader.rs:147:64
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
But just re-running once or twice will make it work.
The issue randomly re-occurs after changing the font.
The code falls back to noto, so try installing those fonts.
On Tue, May 11, 2021, 12:55 PM theduke @.*> wrote:
Mhm so I got it to work after trying a few fonts and trying to start
multiple times.
It randomly fails sometimes withthread 'main' panicked at 'font family loaded', src/renderer/fonts/font_loader.rs:147:64
stack backtrace:
note: Some details are omitted, run withRUST_BACKTRACE=fullfor a verbose backtrace.But just re-running once or twice will make it work.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Kethku/neovide/issues/634#issuecomment-839079032, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6S7P4UNHZWRM6X3HRCBV3TNGDSHANCNFSM44MLQ2PA
.
@theduke you also have that with the default config?
Yeah, with an empty config it consistently crashes.
With a set font it only sometimes crashes.
That's interesting. I thought having platform independence was one of the advantages of flatpak, but apparently that is not true. What platform are you using it up on?.
Its possible that the crash is still on our side. When you have the font set, what is the crash message?
It looks like the flatpack, doesn't install some runtime dependencies like
fontconfig. Perhaps that's necessary.
On Wed, May 12, 2021, 8:40 PM Keith Simmons @.*>
wrote:
Its possible that the crash is still on our side. When you have the font
set, what is the crash message?—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Kethku/neovide/issues/634#issuecomment-840269867, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AA6S7P7STJXDDDQQXCQPFILTNNCZ3ANCNFSM44MLQ2PA
.
hm. year well I basically don't install any thing besides neovim from the appimage and the binary of neovide. What makes me wonder is why cant I reproduce that issue.
However I can take a look at the dependencies and try to figure out what is needed.
@theduke
I build a single file flatpak from source. Could you donwload and install it with:
flatpak install --user neovide.flatpak
and tell me if you have the same font issues?
I tried it and I'm seeing slightly different behaviour, but still regular crashes that only appear to happen sometimes.
Especially after changing the font config.
Crashes seem to be less frequent though.
Probably good enough for a first release.
Would also be valuable to get some feedback from other users.
Well I think the biggest problem is the sandbox. I got some feedback for how to make :terminal and so on work. Anyhow I didn't have time to build and test it yet.
What makes me wonder is that, it crashes sometimes and sometimes not. That is like really really strange to me.
Most helpful comment
No one is going to say no to free work. Just make sure it's not a virus. Good luck.