A simple font management application for GTK Desktop Environments

Font Manager is intended to provide a way for average users to easily manage desktop fonts, without having to resort to command line tools or editing configuration files by hand. While designed primarily with the Gnome Desktop Environment in mind, it should work well with other GTK desktop environments.
Font Manager is NOT a professional-grade font management solution.
## Features
- Preview and compare font files
- Activate or deactivate installed font families
- Automatic categorization based on font properties
- Google Fonts Catalog integration
- Integrated character map
- User font collections
- User font installation and removal
- User font directory settings
- User font substitution settings
- Desktop font settings (GNOME Desktop or compatible environments)
## Localization
Font Manager is being translated using [Weblate](https://weblate.org), a web tool designed to ease translating for both developers and translators.
If you would like to help this application reach more users in their native language please visit the [project page on Weblate](https://hosted.weblate.org/engage/font-manager/).
- Access to xdg-config/fontconfig is necessary for other Flatpak applications to recognize changes made by Font Manager. You can use an application such as [Flatseal](https://flathub.org/apps/details/com.github.tchx84.Flatseal) or add --filesystem=xdg-config/fontconfig to the command used to launch the application. This needs to be done for every installed Flatpak application.
- Archive support does not work in Flatpak builds
### Distribution packages
#### Arch User Repository
Arch Linux users can install [`font-manager`](https://archlinux.org/packages/community/x86_64/font-manager/) from official repositories:
```bash
pacman -S font-manager
```
#### Fedora COPR
[](https://copr.fedorainfracloud.org/coprs/jerrycasiano/FontManager/package/font-manager/)
Fedora packages built from latest revision:
```bash
dnf copr enable jerrycasiano/FontManager
dnf install font-manager
```
#### Gentoo
Gentoo users may find [`font-manager`](https://github.com/PF4Public/gentoo-overlay/tree/master/app-misc/font-manager) in [::pf4public](https://github.com/PF4Public/gentoo-overlay) Gentoo overlay
#### Ubuntu Personal Package Archive
Ubuntu packages built from latest revision:
```bash
sudo add-apt-repository ppa:font-manager/staging
sudo apt-get update
sudo apt-get install font-manager
```
#### File Manager extensions
Fedora and Ubuntu users can also find extensions for Nautilus, Nemo and Thunar in the repositories.
The extension currently allows you to quickly preview font files by simply selecting them in the file manager while font-viewer is open and also adds an option to install font files in the file manager context menu.
The Thunar extension also has very basic bulk renamer support.
### Building from source
You'll need to ensure the following dependencies are installed:
- `meson >= 0.53`
- `ninja`
- `glib >= 2.62`
- `vala >= 0.42`
- `freetype2 >= 2.5`
- `gtk+-3.0 >= 3.22`
- `json-glib-1.0 >= 0.15`
- `libxml-2.0 >= 2.9`
- `sqlite3 >= 3.8`
- `gobject-introspection`
- `yelp-tools` (optional)
- `gettext` (optional)
If you wish to also build file manager extensions, you will need corresponding development libraries:
- `libnautilus-extension`
- `libnemo-extension`
- `thunar`
If you wish to also build Google Fonts integration, which is enabled by default, the following libraries are required:
- `webkit2gtk3 >= 2.24`
- `libsoup >= 2.62`
To build the application:
```bash
meson --prefix=/usr --buildtype=release build
cd build
ninja
```
To run the application without installing:
```bash
src/font-manager/font-manager
```
To install the application:
```bash
sudo ninja install
```
To uninstall:
```bash
sudo ninja uninstall
```
For a list of available build options:
```bash
meson configure
```
To change an option after the build directory has been configured:
```bash
meson configure -Dsome_option=true
```
## License
This project is licensed under the GNU General Public License Version 3.0 - see
[COPYING](COPYING) for details.
## Acknowledgements
- Karl Pickett for getting the ball rolling with [fontmanager.py](https://raw.githubusercontent.com/FontManager/font-manager/6b9b351538b5118d07f6d228f3b42c91183b8b73/fontmanager.py)
- The compare mode in Font Manager is modeled after [gnome-specimen](https://launchpad.net/gnome-specimen) by Wouter Bolsterlee
- Font Manager makes use of data compiled for [Fontaine](https://www.unifont.org/fontaine/) by Edward H. Trager
- The character map in Font Manager is based on [Gucharmap](https://wiki.gnome.org/action/show/Apps/Gucharmap)
font-manager-0.8.8/README.ro.md 0000664 0000000 0000000 00000013431 14202260150 0015775 0 ustar 00root root 0000000 0000000
# Font Manager
Un manager de fonturi simplu pentru Mediile Desktop GTK.

Font Manager este proiectat pentru a furniza utilizatorilor normali o cale uşoară de a administra fonturile de desktop, făra a fi nevoie de a recurge la command line sau la editarea manuală a fişierelor de configurare. Deşi este proiectat în special pentru Gnome Desktop Environment, ar trebui să meargă bine şi cu alte medii desktop GTK.
Font Manager NU este o soluţie de gestionare a fonturilor de calitate profesională.
## Funcţii
- Pevizualizaţi şi comparaţi fonturi
- Activaţi sau dezactivaţi familii de fonturi
- Categorizare automată bazată pe proprietăţile fontului
- Integrare cu Google Fonts Catalog
- Hartă de caractere integrată
- Colecţii de fonturi ale utilizatorului
- Instalarea şi ştergerea fonturilor utilizatorului
- Setări ale directorului de fonturi ale utilizatorului
- Setări de substituire ale fonturilor utilizatorului
- Setări ale fontului desktopului (GNOME Desktop sau medii compatibile)
## Localizare
Font Manager este tradus folosind [Weblate](https://weblate.org), un instrument web proiectat pentru a uşura traducerea atât pentru dezvoltatori cât şi pentru traducători.
Dacă aţi dori să ajutaţi această aplicaţie să ajungă la mai mulţi utilizatori în limba lor nativă, vă rugăm să accesaţi [pagina proiectului pe Weblate](https://hosted.weblate.org/engage/font-manager/).
- Accesul la xdg-config/fontconfig este necesar pentru ca alte aplicaţii Flatpak să recunoască schimbările făcute Font Manager. Puteţi folosi o aplicaţie ca [Flatseal](https://flathub.org/apps/details/com.github.tchx84.Flatseal) sau să adăugaţi --filesystem=xdg-config/fontconfig la comanda utilizată pentru a deschide aplicaţia. Acest lucru trebuie făcut pentru fiecare program Flatpak instalat.
- Suportul pentru arhive nu funcţionează în aplicaţia Flatpak.
### Pachetele distribuţiilor
#### Arch User Repository
Utilizatorii Arch Linux pot instala [`font-manager`](https://archlinux.org/packages/community/x86_64/font-manager/) din depozitele oficiale:
```bash
pacman -S font-manager
```
#### Fedora COPR
[](https://copr.fedorainfracloud.org/coprs/jerrycasiano/FontManager/package/font-manager/)
Pachete Fedora construite din ultima revizie:
```bash
dnf copr enable jerrycasiano/FontManager
dnf install font-manager
```
#### Gentoo
Utilizatorii Gentoo pot găsi [`font-manager`](https://github.com/PF4Public/gentoo-overlay/tree/master/app-misc/font-manager) în [::pf4public](https://github.com/PF4Public/gentoo-overlay) Gentoo overlay
#### Ubuntu Personal Package Archive
Pakete Ubuntu cunstruite din ultima revizie:
```bash
sudo add-apt-repository ppa:font-manager/staging
sudo apt-get update
sudo apt-get install font-manager
```
#### Extensii pentru Managerele de Fişiere
Utilizatorii Ubuntu şi Fedora pot găsi extensii pentru Nautilus, Nemo and Thunar în the repository-uri.
Extensia, în acest moment, vă permite să previzualizaţi fonturi doar selectându-le în managerul de fişiere în timp ce font-viewer este deschis şi adaugă o opţiune pentru a instala fonturi în meniul contextual al managerul de fişiere.
Extensia Thunar are, de asemenea, suport de bază pentru redenumire bulk.
### Construirea din sursă
Va trebui să vă asiguraţi că următoarele depentenţe sunt instalate:
- `meson >= 0.53`
- `ninja`
- `glib >= 2.62`
- `vala >= 0.42`
- `freetype2 >= 2.5`
- `gtk+-3.0 >= 3.22`
- `json-glib-1.0 >= 0.15`
- `libxml-2.0 >= 2.9`
- `sqlite3 >= 3.8`
- `gobject-introspection`
- `yelp-tools` (opţional)
- `gettext` (opţional)
Dacă doriţi să construiţi şi extensiile pentru managerul de fişiere, veţi avea nevoie de bibliotecile de dezvoltare corespunzătoare:
- `libnautilus-extension`
- `libnemo-extension`
- `thunar`
Dacă doriţi să construiţi şi integrare cu Google Fonts, care este activată implicit, următoarele biblioteci sunt necesare:
- `webkit2gtk3 >= 2.24`
- `libsoup >= 2.62`
Pentru a construi aplicaţia:
```bash
meson --prefix=/usr --buildtype=release build
cd build
ninja
```
Penru a rula aplicaţia fără a o instala:
```bash
src/font-manager/font-manager
```
Pentru a instala aplicaţia:
```bash
sudo ninja install
```
Pentru dezinstalare:
```bash
sudo ninja uninstall
```
Pentru o listă cu opţiunile de construire disponibile:
```bash
meson configure
```
Penru a schimba o opţiune după ce directorul de construcţie a fost configurat:
```bash
meson configure -Dsome_option=true
```
## Licenţă
Acest proiect este licenţiat sub GNU General Public License Version 3.0 - vedeţi
[COPYING](COPYING) pentru detalii.
## Mulţumiri
- Lui Karl Pickett pentru punere lucrurilor în mişcare cu [fontmanager.py](https://raw.githubusercontent.com/FontManager/font-manager/6b9b351538b5118d07f6d228f3b42c91183b8b73/fontmanager.py)
- Modul de comparare în Font Manager este modelat după [gnome-specimen](https://launchpad.net/gnome-specimen) de Wouter Bolsterlee
- Font Manager foloseşte date compilate pentru [Fontaine](http://www.unifont.org/fontaine/) de Edward H. Trager
- Harta de caractere din Font Manager este bazată pe [Gucharmap](https://wiki.gnome.org/action/show/Apps/Gucharmap)
font-manager-0.8.8/build-aux/ 0000775 0000000 0000000 00000000000 14202260150 0015767 5 ustar 00root root 0000000 0000000 font-manager-0.8.8/build-aux/Makefile 0000664 0000000 0000000 00000005656 14202260150 0017443 0 ustar 00root root 0000000 0000000
PACKAGE_NAME = font-manager
PACKAGE_VERSION = 0.8.8
ABS_TOP_SRCDIR = $(shell realpath ../)
ABS_SRCDIR = $(shell realpath .)
UNICODE_DATA_DIR = $(ABS_SRCDIR)/unicode/
PKG_LIB_DIR = $(ABS_TOP_SRCDIR)/lib
UNICODE_URL = http://www.unicode.org/Public
UNICODE_VERSION = 13.0.0
WGET = $(shell which wget)
WGETFLAGS = -np -nd -rc -P $(UNICODE_DATA_DIR)
UNZIP = $(shell which unzip)
UNICODE_FILES = \
Blocks.txt \
DerivedAge.txt \
NamesList.txt \
UnicodeData.txt \
Unihan.zip \
$(NULL)
UNICODE_SOURCES = \
unicode-blocks.h \
unicode-categories.h \
unicode-names.h \
unicode-nameslist.h \
unicode-unihan.h \
unicode-versions.h \
$(NULL)
download-unicode-data:
[ -e $(UNICODE_DATA_DIR) ] || mkdir -p $(UNICODE_DATA_DIR); \
for f in $(UNICODE_FILES); \
do \
[ -e $(UNICODE_DATA_DIR)$${f} ] || \
$(WGET) $(WGETFLAGS) "$(UNICODE_URL)/$(UNICODE_VERSION)/ucd/$${f}"; \
done
unicode-headers: download-unicode-data
PROG_UNZIP=$(UNZIP) ./gen-unicode-headers.pl $(UNICODE_VERSION) $(UNICODE_DATA_DIR) && \
for f in $(UNICODE_SOURCES); \
do \
mv $${f} $(PKG_LIB_DIR)/unicode/; \
done && \
rm -rf $(UNICODE_DATA_DIR)
$(PACKAGE_NAME).pot:
cd $(ABS_TOP_SRCDIR) && \
meson build && \
ninja -C build font-manager-pot && \
ninja -C build help-font-manager-pot && \
cd $(ABS_SRCDIR)
$(PACKAGE_NAME)-license.h:
cd license && \
./genheader.py $(PKG_LIB_DIR)/common && \
cd ..
$(PACKAGE_NAME)-vendor.h:
cd vendor && \
./genheader.py $(PKG_LIB_DIR)/common && \
cd ..
update-headers: $(PACKAGE_NAME)-license.h $(PACKAGE_NAME)-vendor.h unicode-headers
update: update-headers $(PACKAGE_NAME).pot
rpm:
@echo -e "\n**** Need to ensure build dependencies are installed\n";
pkexec dnf install rpmdevtools
pkexec dnf builddep $(ABS_TOP_SRCDIR)/fedora/$(PACKAGE_NAME).spec
rpmdev-setuptree
cp $(ABS_TOP_SRCDIR)/fedora/$(PACKAGE_NAME).spec ~/rpmbuild/SPECS/
cd ~/rpmbuild/SPECS/ || exit && \
spectool -g -R $(PACKAGE_NAME).spec && \
rpmbuild -ba $(PACKAGE_NAME).spec
BUILD_DEPENDS = \
build-essential \
debhelper \
valac \
meson \
libxml2-dev \
libfreetype6-dev \
libfontconfig1-dev \
libglib2.0-dev \
libjson-glib-dev \
libcairo2-dev \
libgtk-3-dev \
libpango1.0-dev \
libsqlite3-dev \
libgirepository1.0-dev \
yelp-tools \
python3 \
python-gi-dev \
python3-nautilus \
libsoup2.4-dev \
libwebkit2gtk-4.0-dev \
libnautilus-extension-dev \
libnemo-extension-dev \
libthunarx-3-dev
deb:
@echo -e '\n*** Need to ensure build dependencies are installed ***\n\n'
pkexec apt install $(BUILD_DEPENDS)
cd $(ABS_TOP_SRCDIR) || exit && \
meson build && \
ninja -C build dist && \
cd build/meson-dist/ || exit && \
tar -xvf $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.xz && \
mv $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.xz \
./$(PACKAGE_NAME)_$(PACKAGE_VERSION).orig.tar.xz && \
cd $(PACKAGE_NAME)-$(PACKAGE_VERSION) || exit && \
cp -R ../../../debian . && \
dpkg-buildpackage -us -uc && \
cd $(ABS_SRCDIR) || exit && \
xdg-open ../build/meson-dist/
font-manager-0.8.8/build-aux/font-manager.supp 0000664 0000000 0000000 00000003707 14202260150 0021265 0 ustar 00root root 0000000 0000000 # These functions are not called directly anywhere in our code.
{
dl-init
Memcheck:Leak
fun:*alloc
...
fun:_dl_init
}
{
FcConfigValues
Memcheck:Leak
fun:*alloc
...
fun:FcConfigValues
}
{
FcValue*
Memcheck:Leak
fun:*alloc
...
fun:FcValue*
}
{
FcPatternObjectAddWithBinding
Memcheck:Leak
fun:*alloc
...
fun:FcPatternObjectAddWithBinding
}
{
FcFontRenderPrepare
Memcheck:Leak
fun:*alloc
...
fun:FcFontRenderPrepare
}
{
gtk_widget_draw_internal
Memcheck:Leak
fun:*alloc
...
fun:gtk_widget_draw_internal
}
{
gtk_widget_query_size_for_orientation
Memcheck:Leak
fun:*alloc
...
fun:gtk_widget_query_size_for_orientation
}
{
gtk_widget_get_preferred*
Memcheck:Leak
fun:*alloc
...
fun:gtk_widget_get_preferred*
}
{
gtk_container_propagate_draw
Memcheck:Leak
fun:*alloc
...
fun:gtk_container_propagate_draw
}
{
gtk_builder_extend_with_template
Memcheck:Leak
fun:*alloc
...
fun:gtk_builder_extend_with_template
}
{
pango_layout_get_extents_internal
Memcheck:Leak
fun:*alloc
...
fun:pango_layout_get_extents_internal*
}
{
rsvg_rust_handle_close
Memcheck:Leak
fun:*alloc
...
fun:rsvg_rust_handle_close
}
# Triggered by font installation / removal.
{
gtk_settings_notify
Memcheck:Leak
fun:*alloc
...
fun:settings_update_fontconfig
fun:gtk_settings_notify
}
# These functions are called directly by our code...
# but this one returns a boolean...
{
FcConfigAppFontAdd*
Memcheck:Leak
fun:*alloc
...
fun:FcConfigAppFontAdd*
}
# and this one returns nothing.
{
gtk_text_buffer_insert_markup
Memcheck:Leak
fun:g_type_create_instance
...
fun:gtk_text_buffer_insert_markup
}
{
gtk_text_buffer_insert_markup
Memcheck:Leak
fun:*alloc
...
fun:gtk_text_buffer_insert_markup
}
font-manager-0.8.8/build-aux/gen-unicode-headers.pl 0000775 0000000 0000000 00000074624 14202260150 0022152 0 ustar 00root root 0000000 0000000 #!/usr/bin/env perl
#
# $Id$
#
# generates in the current directory:
# - unicode-blocks.h
# - unicode-names.h
# - unicode-nameslist.h
# - unicode-unihan.h
# - unicode-categories.h
# - unicode-versions.h
#
# usage: ./gen-unicode-headers.pl UNICODE-VERSION DIRECTORY
# where DIRECTORY contains UnicodeData.txt Unihan.zip NamesList.txt Blocks.txt
#
# NOTE! Some code copied from glib/glib/gen-unicode-tables.pl; keep in sync!
use strict;
use warnings;
use Env qw($PROG_UNZIP);
$PROG_UNZIP = "unzip" unless (defined $PROG_UNZIP);
$| = 1; # flush stdout buffer
if (@ARGV != 2)
{
$0 =~ s@.*/@@;
die <Font Manager is intended to provide a way for average users to easily manage desktop fonts, without having to resort to command line tools or editing configuration files by hand.
While designed primarily with the Gnome Desktop Environment in mind, it should work well with other Gtk+ desktop environments.
Font Manager is NOT a professional-grade font management solution.
Font Viewer allows previewing font files prior to installation. It features several ways to preview font files along with a character map and displays font properties and license details.