Alright
Alright:
So if you wanted to add it to your local user if it wasn't part of your custom uBlue image, you could just do
./font-nexus -b -l
now (to use the standardized ~/.local/share/fonts
path), or ./font-nexus -b -p ~/.fonts
if you like the old-school path.
This is sure to make @j0rge more happy, since it provides a method to add them to existing systems without modifying the uBlue images. ❤️ 🧐
Edit: There's now a release zip for easier downloading without having to clone the repo (https://github.com/Arcitec/font-nexus/releases/latest).88 Replies
sad panda
i have windows 11... legit and updated
oooooh it's case sensitive
Oi. Why is your file named incorrectly? 😮
because i mounted the windows partition from linux, and by default it mounts case insensitive ntfs
I used a VM, just went to C:\Windows, right-clicked Fonts and picked "Compress" and it placed Fonts.zip on the desktop, then moved that to Linux. All name cases were preserved 🙂
this is my dual boot drive 🙂
I am aware of a method to extract the fonts from a windows .iso too, thought about adding it but seems like hassle, because they are inside two layers -> .iso -> install.win -> windows/fonts
You may be able to extract the fonts from the ISO if that's convenient, maybe with 7zip
yeah, so i'll either reboot and grab a zip file or get the ntfs mount options correct
question: why require 7zip? doesn't this just use zip format?
Yeah, reboot seems fine and easy. Just right-click Fonts and pick Compress, windows will place a zip o nteh desktop. 🙂
7zip is required for the Apple DMG format
ahhhh
And the Apple PKG format too ^^
i wonder if my mac is updated new enough to have the SF fonts
In 2020 they changed to the most modern SF fonts
nope LOL i'm too old
If you have issues building this, just make a fedora container and build it in there 🙂
If you dont hve 7zip on teh host
It will grab the apple fonts from apple's developer site btw
hah, i didn't read down to line 226
stopped at process windows from local directory
🙂 I wish I could do the same for Windows fonts but MS changes URLs too often and their ISOs are huge
Windows is the only part that requires a manual copy.
no problem
rebooted already
but... i am curious why 7z not working
i install p7zip
Use the install command from the readme.md 🙂 It's called p7zip-plugins
all complain that no one reads docs and then we don't either
haha 😄
no problem
7zip is a bit messy but is a powerhouse for unpacking all kinds of esoteric formats, so I added it to my own uBlue image
After you build the
output/
directory, you can simply copy that to other computers for instant installation there.FYI - using
python3
instead of python
is a bit more universal
some python3 packages won't provide a symlink for simply pythonHmm yeah I will do that change. I forgot because I use some python manager (pyenv) that names the installed one python
All good actually
Will switch that now
yep, i use pyenv too 🙂
it's pretty nice
It's hot sauce 🙂 I love being able to override fedora's outdated stuff
lol
python 3.11.3 is outdated?
No but thats because F38 just released a month ago 😄
Wait 5-10 months 😄 Then it will feel old
yeah, so even booted to windows, those segoe fonts are still lower cased
Interesting, that's very unexpected but it is possible that you installed it from an old Win10 or something and hten Microsoft changed the case, but since NTFS is case-insensitive the old case is kept.
So I can code something that treats every filename as lowercase instead, and scans the folder. If you can wait 30 minutes since I am eating. 😄
yeah, no worries, i'm capable of working around a lot, but this is giving you feedback on how your script is working in other environments
Yeah it's useful. Anonfiles works if you want something that works immediately in the meantime
nope, i'm patient 🙂
sometimes
Hehe 🙂 I will get started on it now, might take a little bit since I have the idea of fixing the case of the orphaned files.
fix whatever you want, happy to test
@bsherman I did a bunch of small tweaks first (pushed), just got started on the case-sensitivity issue and I'd say it's like 20 minutes from finishing.
@bsherman I've done thorough testing and pushed it. It'll write the filenames to their correct, up-to-date names when it copies even from your "messy" source. 🙂
You'll have to clone for the latest code, I am preparing the release after your results are in. 🙂
k, checking it out now
Excellent 🙂
huh
yeah?
it's not just that they are lower case... they are actually the 8.3 versions of the filename
Oh
Did you dual-boot to get them via Windows?
yeah, probably hard for you to fix that
yes, that's from a zip file i made in windows
OH! LOL
because it's windows 10
Those 8.3 files make no sense
Ohhh
You can tweak 1 thing to force yourself to use win10 fonts
i do have windows 11 on a different machine
I would recommend win11 instead
It's newer versions
but i imagine you could run into this again
but yeah, wow, i feel silly
LOL
It takes an argument, you can change the last lines of build.py to put a
(10)
therei'll do that to test
I added it just in case but I don't imagine that people want old fonts so it's not exposed 😄
and i'll get win11 booted on the other machine, and test that out sometime
I've never tried it with win10 btw so this will be interesting
i've wondered about upgrading to win11 finally, but really, i just like using linux a lot better
windows only still exists on my machine for edge cases, like... if i really can't get a game to work, or what to try some VR thing
Win11 is better, it's just annoying how they try to force you to get a Microsoft account 😄
it may be "better" now... but 9 months ago i was unhappy with laggy UI performance, but i think they've fixed some of that
Btw, even if the case-sensitivity issue was really just that the files came from Win10, I don't see the implementation as wasted, because now it's fully case-insensitive and it cleans up the target filename, so it's more robust either way 😄
Yeah Win11 was awful at launch
i did this:
that's nice and easy
could be an override from the shell script
Oh yeah I noticed 1 more thing, when you try Win10 files you will also need to pass the environment variable, as seen at bottom of README.md, the groups are named
win10,win10_other
.yep
env WINDOWS_FONT_GROUPS="win10,win10_other" ./font-nexus -b
Yeah, any luck with that? 🙂
Output font size (Microsoft): 59.86 MiB.
it worked!
Perfect, I'll make two changes, to make it auto-select the win10 versions of those groups, and make it possible to specify the windows version.
sounds good
true confessions though, i don't think i'll use the "fancy" fonts for UI interfaces... though, I'm probably going to change my gnome defaults from Cantarell to Noto
Yeah. You'll get better rendering of websites and documents, that's the main benefit
i'm mildly annoyed that this font stuff nerd-sniped me lol but i allow one a week, so this has to be it for the week
https://github.com/bsherman/ublue-custom/commit/cd0b4bada4a024c5863e2bba4d6dfd8798667de9
I've used Hack before, but I decided to try it again after chosing it with hiden font names on test: https://www.codingfont.com/
i used Hack back when i was coding on a Mac
Hack back on a Mac 😄
Yeah, I used to look at and try so many fonts, until SF Pro and SF Mono. Now I'm settled for a year 😄
i had been settled on Fira Code for the last few years... not sure why i tried JetBrainsMono again
@bsherman https://github.com/Arcitec/font-nexus/releases/latest
There we go, you're set. 🙂
Latest release has a secret env var, since I don't recommend using older fonts but definitely agree that it should be doable!
Thanks for all the help finding these win10 compatibility things, so they're out of the way now. 🙂
Agreed, Fira Code is awesome 🙂
sweet! nice tool!
good work
Thanks. 🙂 Glad to help. I used to be crazy about creating shell aliases and was against making tools. You know all that code where it performs downloads of Apple fonts? I used to have this alias instead. Not even joking, I used this for a year. But when I wanted to get rid of LPF (a Fedora tool that grabs old MS fonts from 2002), and wanted to install the freshest Microsoft fonts instead, I decided it's finally time to escape from shell aliases. 😄
As long as you use
&&
, aliases can guarantee correctness too. It's pretty funny. 😄that's an impressive alias
😂 👍 I was so against installing software in /bin just for stuff like this. But I'm preparing a full move to uBlue so I needed some new strategies.
Next step is probably to make the tool build an RPM that rpm-ostree can install to add the fonts globally, but I haven't used mock enough to know how to do that off-hand. So for now, I'm shelving that idea.
i think Jorge mentioned, but the biggest concern about using 3rd party, non-free fonts, etc in your image is you could end up getting a takedown request
Yeah exactly. I really want to make a layered RPM.
so having a tool to set it up automatically is smart... if flatpak is able to use arbitrary font paths, you could probably do something like use a first-time boot script (like yafti) and run
font-nexus
to install to /var/lib/fonts
or something like that... but you'd need to make sure that path was configured globally int /etc/fonts/fonts.d
that's pretty easy...
the trick might be if selinux limits something
or, maybe /usr/local/share/fontsFlatpak has a few hardcoded font paths, all the standardized ones. So
/usr
and ~/
locations are the available ones
Their source is not flexible on thisso ONLY
/usr/share/fonts/*
and ~/.local/fonts
?
kinda lame that /usr/local/share/fonts/*
wouldn't workBoth paths under
/usr
work 🙂 support for /usr/local
was added in 2022good, i thought i saw you say that earlier
And
~/.fonts
and ~/.local/share/fonts
Yeah it used to be brokenso, you can do that 🙂 just needs sudo
Isn't /usr entirely immutable after installation?
it's "sorta" standard
/usr/local
is mutableOh that's awesome 🙂 Then this means I don't need to bundle fonts in the disk image.
personally, i'm trying to stay away from using
/usr/local
, but this is exactly the kind of situation where I'm willingYep. Of course the ultimate thing may be to figure out how to make an
.rpm
file that can layer itself to /usr/share/fonts
.
To avoid the mess in /usr/local
ah, you could do that i guess ... but if you are pretty strict in your use of /usr/local just for fonts... i think the layered RPM may actually be worse
i only locally layer RPMs for testing, then remove them ASAP when I am done or add them to image
Hmm, yeah I guess it's fine to just let it install statically in
/usr/local/share/fonts
without RPM, to avoid the layering performance issue.
It's the correct path for anything installed via make install
anyway, so it's not like it's an unusual installation method 🙂
Moving to #💾ublue-dev