Open blackinitial opened 1 year ago
I have the same issue.
same, the only fix that i found is to reinstall the helper but it only lasts until i reboot
Same for me, on Ubuntu 22.04.2 LTS.
I thought that I found a solution here:
If the file~/.profile
doesn't exist yet, create an empty file with the command touch ~/.profile
.
Open the file using a text editor and add these two lines:
XDG_CONFIG_HOME="$HOME/.config"
export XDG_CONFIG_HOME
Save the file, and it will take effect the next time you login. or type:
. ~/.profile
But after restart did't work, sorry.
Same for me, on Ubuntu 22.04.2 LTS.
Found a solution here:
If the file
~/.profile
doesn't exist yet, create an empty file with the commandtouch ~/.profile
. Open the file using a text editor and add these two lines:XDG_CONFIG_HOME="$HOME/.config" export XDG_CONFIG_HOME
Save the file, and it will take effect the next time you login. or type:
. ~/.profile
I already have that in my $HOME/.xprofile
:
...
export XDG_CONFIG_HOME="$HOME/.config"
...
Service status:
● figma-fonthelper.service - Font Helper for Figma
Loaded: bad-setting (Reason: Unit figma-fonthelper.service has a bad unit file setting.)
Active: active (running) since Wed 2023-07-26 14:07:36 PST; 6min ago
Main PID: 7301 (fonthelper)
CPU: 1.495s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/figma-fonthelper.service
└─7301 /home/datsudo/.local/share/figma-fonthelper/fonthelper
Jul 26 14:07:41 eos systemd[1233]: /home/datsudo/.config/systemd/user/figma-fonthelper.service:7: Neither a valid executable name nor an absolute path: ${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
Jul 26 14:07:41 eos systemd[1233]: figma-fonthelper.service: Unit configuration has fatal error, unit will not be started.
For now I just set the ExecStart
path like this:
[Unit]
Description=Font Helper for Figma
After=systemd-user-sessions.service
[Service]
Type=simple
ExecStart=/home/datsudo/.local/share/figma-fonthelper/fonthelper
ExecStop=/bin/bash -c '`which killall` fonthelper'
Restart=on-failure
[Install]
WantedBy=multi-user.target
The original value was ${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
but the exec file is actually installed in ~/.local/share/figma-fonthelper
. I tried ${XDG_DATA_HOME}/figma-fonthelper/fonthelper
(because I also set XDG_DATA_HOME
to ~/.local/share
) but still doesn't work.
Sorry my solution didn't works after restart.
Ended with a script that launchs
/home/<username>/.local/share/figma-fonthelper/fonthelper
For now I just set the
ExecStart
path like this:[Unit] Description=Font Helper for Figma After=systemd-user-sessions.service [Service] Type=simple ExecStart=/home/datsudo/.local/share/figma-fonthelper/fonthelper ExecStop=/bin/bash -c '`which killall` fonthelper' Restart=on-failure [Install] WantedBy=multi-user.target
The original value was
${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
but the exec file is actually installed in~/.local/share/figma-fonthelper
. I tried${XDG_DATA_HOME}/figma-fonthelper/fonthelper
(because I also setXDG_DATA_HOME
to~/.local/share
) but still doesn't work.
same i was set like that, but after minutes the updater config back to ${XDG_DATA_HOME}/ again.
For now I just set the
ExecStart
path like this:[Unit] Description=Font Helper for Figma After=systemd-user-sessions.service [Service] Type=simple ExecStart=/home/datsudo/.local/share/figma-fonthelper/fonthelper ExecStop=/bin/bash -c '`which killall` fonthelper' Restart=on-failure [Install] WantedBy=multi-user.target
The original value was
${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
but the exec file is actually installed in~/.local/share/figma-fonthelper
. I tried${XDG_DATA_HOME}/figma-fonthelper/fonthelper
(because I also setXDG_DATA_HOME
to~/.local/share
) but still doesn't work.same i was set like that, but after minutes the updater config back to ${XDG_DATA_HOME}/ again.
You might want to disable the auto-update service
Since the issue is still open, I'd like to point to a "solution" I implemented in my fork (be warned, it's extremely hacky).
@zewebdev1337/figma-archlinux-font-helper [named like so because at first I thought it was only arch being quirky]
It's done by using sed
to hijack the changes brought over by the update, rewriting the appropriate paths. I also turned the install into a system-wide service as it's marked as wanted by multi-user.target, which is inexistent for user services). If I understand correctly, the update system is working on my fork but I'm honestly not sure. What I know is that using sed
the way I did allows me to keep the update service and prevent the bugs I mentioned. (and update service reports all good after lots of troubleshooting. In fact I catched several updates that broke my install and addressed the breaking changes brought over by them one by one).
It seems like this is an issue that requires a somewhat complex and deep refactoring so I've decided against opening a PR as my code makes everything even more convoluted and changes some key aspects of the original implementation like moving the files to /usr/share/, /etc/ and /etc/systemd/system/, thus requiring sudo to install.
Since the issue is still open, I'd like to point to a "solution" I implemented in my fork (be warned, it's extremely hacky).
@zewebdev1337/figma-archlinux-font-helper [named like so because at first I thought it was only arch being quirky]
It's done by using
sed
to hijack the changes brought over by the update, rewriting the appropriate paths. I also turned the install into a system-wide service as it's marked as wanted by multi-user.target, which is inexistent for user services). If I understand correctly, the update system is working on my fork but I'm honestly not sure. What I know is that usingsed
the way I did allows me to keep the update service and prevent the bugs I mentioned. (and update service reports all good after lots of troubleshooting. In fact I catched several updates that broke my install and addressed the breaking changes brought over by them one by one).It seems like this is an issue that requires a somewhat complex and deep refactoring so I've decided against opening a PR as my code makes everything even more convoluted and changes some key aspects of the original implementation like moving the files to /usr/share/, /etc/ and /etc/systemd/system/, thus requiring sudo to install.
Thanks for this. After the install.sh execution is done, I get these messages :
● figma-fonthelper.service - Font Helper for Figma
Loaded: loaded (/etc/systemd/system/figma-fonthelper.service; enabled; preset: disabled)
Active: active (running) since Thu 2023-11-30 21:39:48 CET; 2min 29s ago
Main PID: 1014 (fonthelper)
Tasks: 17 (limit: 18384)
Memory: 4.9M
CPU: 30ms
CGroup: /system.slice/figma-fonthelper.service
└─1014 /usr/share/figma-fonthelper/fonthelper
nov. 30 21:39:48 antolenovo systemd[1]: Started Font Helper for Figma.
● figma-fonthelper-updater.service - Updater for Font Helper
Loaded: loaded (/etc/systemd/system/figma-fonthelper-updater.service; enabled; preset: disabled)
Active: active (running) since Thu 2023-11-30 21:39:48 CET; 2min 29s ago
Main PID: 1013 (updater.sh)
Tasks: 2 (limit: 18384)
Memory: 1.4M
CPU: 70ms
CGroup: /system.slice/figma-fonthelper-updater.service
├─1013 /bin/bash /usr/share/figma-fonthelper/updater.sh
└─1042 sleep 360
That's great.... but the tool doesn't actually works. And, when I do this, here is what I get:
$ systemctl --user status figma-fonthelper.service INT ✘
Unit figma-fonthelper.service could not be found.
So I tried to run this and I got:
systemctl list-unit-files --state=enabled --type=service 4 ✘
UNIT FILE STATE PRESET
...
figma-fonthelper-updater.service enabled disabled
figma-fonthelper.service enabled disabled
...
It's actually weird. The tool doesn't work, isn't found but is enabled. Maybe could you help me about that ?
Since the issue is still open, I'd like to point to a "solution" I implemented in my fork (be warned, it's extremely hacky). @zewebdev1337/figma-archlinux-font-helper [named like so because at first I thought it was only arch being quirky] It's done by using
sed
to hijack the changes brought over by the update, rewriting the appropriate paths. I also turned the install into a system-wide service as it's marked as wanted by multi-user.target, which is inexistent for user services). If I understand correctly, the update system is working on my fork but I'm honestly not sure. What I know is that usingsed
the way I did allows me to keep the update service and prevent the bugs I mentioned. (and update service reports all good after lots of troubleshooting. In fact I catched several updates that broke my install and addressed the breaking changes brought over by them one by one). It seems like this is an issue that requires a somewhat complex and deep refactoring so I've decided against opening a PR as my code makes everything even more convoluted and changes some key aspects of the original implementation like moving the files to /usr/share/, /etc/ and /etc/systemd/system/, thus requiring sudo to install.Thanks for this. After the install.sh execution is done, I get these messages :
● figma-fonthelper.service - Font Helper for Figma Loaded: loaded (/etc/systemd/system/figma-fonthelper.service; enabled; preset: disabled) Active: active (running) since Thu 2023-11-30 21:39:48 CET; 2min 29s ago Main PID: 1014 (fonthelper) Tasks: 17 (limit: 18384) Memory: 4.9M CPU: 30ms CGroup: /system.slice/figma-fonthelper.service └─1014 /usr/share/figma-fonthelper/fonthelper nov. 30 21:39:48 antolenovo systemd[1]: Started Font Helper for Figma. ● figma-fonthelper-updater.service - Updater for Font Helper Loaded: loaded (/etc/systemd/system/figma-fonthelper-updater.service; enabled; preset: disabled) Active: active (running) since Thu 2023-11-30 21:39:48 CET; 2min 29s ago Main PID: 1013 (updater.sh) Tasks: 2 (limit: 18384) Memory: 1.4M CPU: 70ms CGroup: /system.slice/figma-fonthelper-updater.service ├─1013 /bin/bash /usr/share/figma-fonthelper/updater.sh └─1042 sleep 360
That's great.... but the tool doesn't actually works. And, when I do this, here is what I get:
$ systemctl --user status figma-fonthelper.service INT ✘ Unit figma-fonthelper.service could not be found.
So I tried to run this and I got:
systemctl list-unit-files --state=enabled --type=service 4 ✘ UNIT FILE STATE PRESET ... figma-fonthelper-updater.service enabled disabled figma-fonthelper.service enabled disabled ...
It's actually weird. The tool doesn't work, isn't found but is enabled. Maybe could you help me about that ?
It's weird indeed; the reason you get Unit figma-fonthelper.service could not be found.
is because I converted the service to be a system service, so adding the --user flag founds no service, but if you remove --user, you should actually see the status of the tool.
My suggestion is to disable the services disable before uninstalling (just remove the executables at /usr/share/figma-fonthelper/ and service files at /etc/systemd/system/ once you disabled the services), then reinstall it, if you query the status after that, it should be running and working (it should look no different than what you got in your first messages after install).
I also noticed some odd behavior while working on the patch if I didn't disable the services before installing again, maybe that's what's happening here.
i am getting the same problem.
i have changed the path from
${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
to
/home/elma/.local/share/figma-fonthelper/fonthelper
but i am still getting these errors
figma-fonthelper.service - Font Helper for Figma
Loaded: bad-setting (Reason: Unit figma-fonthelper.service has a bad unit file setting.)
Active: active (running) since Wed 2024-01-10 15:27:05 CET; 8min ago
Main PID: 211715 (fonthelper)
CPU: 255ms
CGroup: system.slice/figma-fonthelper.service
└─211715 /home/elma/.local/share/figma-fonthelper/fonthelper
jan 10 15:27:07 C systemd[2106]: /home/elma/.config/systemd/user/figma-fon>
jan 10 15:27:07 C systemd[2106]: figma-fonthelper.service: Unit configuration has fatal error, u>
jan 10 15:27:07 C systemd[2106]: /home/elma/.config/systemd/user/figma-fon>
jan 10 15:27:07 C systemd[2106]: figma-fonthelper.service: Unit configuration has fatal error, u>
jan 10 15:33:10 C systemd[2106]: /home/elma/.config/systemd/user/figma-fon>
jan 10 15:33:10 C systemd[2106]: figma-fonthelper.service: Unit configuration has fatal error, u>
jan 10 15:33:10 C systemd[2106]: /home/elma/.config/systemd/user/figma-fon>
jan 10 15:33:10 C systemd[2106]: figma-fonthelper.service: Unit configuration has fatal error, u>
jan 10 15:33:10 C systemd[2106]: /home/elma/.config/systemd/user/figma-fon>
jan 10 15:33:10 C systemd[2106]: figma-fonthelper.service: Unit configuration has fatal error, u>
~
has anyone found the solution?
I just made a fresh install. And still get ${XDG_CONFIG_HOME} instead of /home/user/.local/share in .service files.
Also the json config is not applied, because it's already created by figma-linux. So i edited it manually with a host
and port
keys.
The port now should be 44950
instead of 18412
.
I figured out what the problem is (described at the bottom), and put together a workaround.
[!IMPORTANT] This workaround requires disabling the updater. Any updates will have to be done manually.
[!CAUTION] This service gives
figma.com
access to yourlocal filesystem
. While highly unlikely, failing to update could result in exposing your machine to unpatched vulnerabilities.
1. Disable and Stop the Updater
systemctl --user disable figma-fonthelper-updater.service
systemctl --user stop figma-fonthelper-updater.service
2. Hard-code your .local/share
dir in the service file:
[Unit]
Description=Font Helper for Figma
After=systemd-user-sessions.service
[Service]
Type=simple
- ExecStart=${XDG_CONFIG_HOME}/figma-fonthelper/fonthelper
+ ExecStart=/home/YOUR_USERNAME/.local/share/figma-fonthelper/fonthelper
ExecStop=/bin/bash -c '`which killall` fonthelper'
Restart=on-failure
[Install]
WantedBy=multi-user.target
3. Restart the systemd daemon and the service
systemctl --user daemon-restart
systemctl --user restart figma-fonthelper.service
[!TIP] You might also want to make sure there are no rogue updaters still running:
$ ps -ef | grep figma
usernam+ 927970 0 0 01:21 ? 00:00:00 /bin/bash /home/username/.local/share/figma-fonthelper/updater.sh usernam+ 936562 1631 0 01:38 ? 00:00:00 /home/username/.local/share/figma-fonthelper/fonthelper
$ kill -9 927970
There are multiple reasons why this isn't working properly...
XDG_CONFIG_HOME
, when they should be looking for XDG_DATA_HOME
XDG_DATA_HOME
or XDG_CONFIG_HOME
are unset, the service will fail anywaysfonthelper -v
always returning 0.1.5
even for version 0.1.7
.
when i run
systemctl --user restart figma-fonthelper.service
or status, i got errorhome/user/.config/systemd/user/figma-fonthelper-updater.service:7: Neither a valid executable name nor an absolute path: ${XDG_CONFIG_HOME}/figma-fonthelper/updater.sh
i was add export on zshrc
export XDG_CONFIG_HOME="$HOME/.config"
i try to manual edit Execstart from
${XDG_CONFIG_HOME}
to/home/user/.local/share
on~/.config/systemd/user/figma-fonthelper-updater.service
it can start system with no error but the config come back again to${XDG_CONFIG_HOME}
after many minutes.what i miss it?