Compare commits
@@ -5,10 +5,7 @@ Kaomoji picker. Browse a library of Japanese emoticons, click to copy, add your
|
||||
|
||||
## Install
|
||||
1. Download .flatpak file from Releases: https://gitea.angeltech.jp/Angel-Technologies/MoeMoji/releases/tag/konater
|
||||
2. Install with `flatpak install ./moemoji.flatpak`
|
||||
|
||||
Q: Why don't you upload to Flathub?
|
||||
A: Couldn't be assed to follow all of their rules and go through review process.
|
||||
2. Install with `flatpak install ./moemoji.flatpak`
|
||||
|
||||
## Global shortcut
|
||||
This app uses global shortcut (Meta+Shift+E) for easy access. Press once to show the window, press twice to hide the window.
|
||||
@@ -34,9 +31,9 @@ All kaomojis are stored in a simple, accessible format:
|
||||
|
||||
To add your own category/emoticon, simply create a folder and a corresponding .txt file in either `$XDG_DATA_HOME/moemoji/kaomoji/` or `/usr/local/share/moemoji`.
|
||||
|
||||
If you use flatpak, the correct data path is `~/.var/app/net.angeltech.MoeMoji/data/`.
|
||||
If you use flatpak, the correct data path is `~/.var/app/jp.angeltech.MoeMoji/data/`.
|
||||
So adding your own emoticons would look like this:
|
||||
1. `cd ~/.var/app/net.angeltech.MoeMoji/data/`
|
||||
1. `cd ~/.var/app/jp.angeltech.MoeMoji/data/`
|
||||
2. `mkdir -p moemoji/kaomoji`
|
||||
3. `cd moemoji/kaomoji`
|
||||
4. `mkdir your-category`
|
||||
@@ -54,5 +51,5 @@ Run dev build: `GSETTINGS_SCHEMA_DIR=./builddir/data ./builddir/src/moemoji`
|
||||
|
||||
# Flatpak packaging
|
||||
|
||||
`flatpak-builder --force-clean --user --install .flatpak-build net.angeltech.MoeMoji.json`
|
||||
`flatpak run net.angeltech.MoeMoji`
|
||||
`flatpak-builder --force-clean --user --install .flatpak-build jp.angeltech.MoeMoji.json`
|
||||
`flatpak run jp.angeltech.MoeMoji`
|
||||
|
||||
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
@@ -1,4 +1,4 @@
|
||||
application_id = 'net.angeltech.MoeMoji'
|
||||
application_id = 'jp.angeltech.MoeMoji'
|
||||
|
||||
scalable_dir = join_paths('hicolor', 'scalable', 'apps')
|
||||
install_data(
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Type=Application
|
||||
Name=MoeMoji
|
||||
Comment=Japanese emoticon picker!
|
||||
Icon=net.angeltech.MoeMoji
|
||||
Icon=jp.angeltech.MoeMoji
|
||||
Exec=moemoji
|
||||
Terminal=false
|
||||
Categories=Accessibility;GTK;Utility;
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist gettext-domain="moemoji">
|
||||
<schema id='net.angeltech.MoeMoji' path='/net/angeltech/MoeMoji/'>
|
||||
<schema id='jp.angeltech.MoeMoji' path='/jp/angeltech/MoeMoji/'>
|
||||
</schema>
|
||||
</schemalist>
|
||||
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>jp.angeltech.MoeMoji</id>
|
||||
|
||||
<name>MoeMoji</name>
|
||||
<summary>Kaomoji picker! Japanese emoticons library</summary>
|
||||
|
||||
<developer id="jp.angeltech">
|
||||
<name>angeltech.jp</name>
|
||||
</developer>
|
||||
|
||||
<description>
|
||||
<p>Kaomoji picker! Browse a library of Japanese emoticons, click to copy, add your own!</p>
|
||||
</description>
|
||||
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
|
||||
<url type="homepage">https://gitea.angeltech.jp/Angel-Technologies/MoeMoji</url>
|
||||
<url type="vcs-browser">https://gitea.angeltech.jp/Angel-Technologies/MoeMoji</url>
|
||||
|
||||
<launchable type="desktop-id">jp.angeltech.MoeMoji.desktop</launchable>
|
||||
<project_license>WTFPL</project_license>
|
||||
<content_rating type="oars-1.1" />
|
||||
|
||||
<branding>
|
||||
<color type="primary" scheme_preference="light">#a1bedd</color>
|
||||
<color type="primary" scheme_preference="dark">#363e4f</color>
|
||||
</branding>
|
||||
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://gitea.angeltech.jp/Angel-Technologies/MoeMoji/raw/commit/62eacf7e0446c95c9e075145f3a6ce42ca39d55f/flathub-preview.png</image>
|
||||
<caption>Kaomoji picker</caption>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<releases>
|
||||
<release version="0.1.0" date="2026-03-01">
|
||||
<description>
|
||||
<p>Initial release.</p>
|
||||
</description>
|
||||
</release>
|
||||
</releases>
|
||||
</component>
|
||||
@@ -1,6 +1,6 @@
|
||||
desktop_file = i18n.merge_file(
|
||||
input: 'net.angeltech.MoeMoji.desktop.in',
|
||||
output: 'net.angeltech.MoeMoji.desktop',
|
||||
input: 'jp.angeltech.MoeMoji.desktop.in',
|
||||
output: 'jp.angeltech.MoeMoji.desktop',
|
||||
type: 'desktop',
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
@@ -15,11 +15,11 @@ if desktop_utils.found()
|
||||
endif
|
||||
|
||||
appstream_file = i18n.merge_file(
|
||||
input: 'net.angeltech.MoeMoji.appdata.xml.in',
|
||||
output: 'net.angeltech.MoeMoji.appdata.xml',
|
||||
input: 'jp.angeltech.MoeMoji.metainfo.xml.in',
|
||||
output: 'jp.angeltech.MoeMoji.metainfo.xml',
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: join_paths(get_option('datadir'), 'appdata')
|
||||
install_dir: join_paths(get_option('datadir'), 'metainfo')
|
||||
)
|
||||
|
||||
appstream_util = find_program('appstream-util', required: false)
|
||||
@@ -29,12 +29,12 @@ if appstream_util.found()
|
||||
)
|
||||
endif
|
||||
|
||||
gnome.compile_schemas(build_by_default: true, depend_files: 'net.angeltech.MoeMoji.gschema.xml')
|
||||
gnome.compile_schemas(build_by_default: true, depend_files: 'jp.angeltech.MoeMoji.gschema.xml')
|
||||
devenv = environment()
|
||||
devenv.set('GSETTINGS_SCHEMA_DIR', meson.current_build_dir() / 'data')
|
||||
meson.add_devenv(devenv)
|
||||
|
||||
install_data('net.angeltech.MoeMoji.gschema.xml',
|
||||
install_data('jp.angeltech.MoeMoji.gschema.xml',
|
||||
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
|
||||
)
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>net.angeltech.MoeMoji</id>
|
||||
|
||||
<name>MoeMoji</name>
|
||||
<summary>Moe picker!</summary>
|
||||
|
||||
<description>
|
||||
<p>Kaomoji picker. Browse a library of Japanese emoticons, click to copy, add your own!</p>
|
||||
</description>
|
||||
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
|
||||
<launchable type="desktop-id">net.angeltech.MoeMoji.desktop</launchable>
|
||||
<project_license>WTFPL</project_license>
|
||||
<content_rating type="oars-1.1" />
|
||||
</component>
|
||||
|
After Width: | Height: | Size: 321 KiB |
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"only-arches": ["x86_64"]
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"app-id": "net.angeltech.MoeMoji",
|
||||
"app-id": "jp.angeltech.MoeMoji",
|
||||
"runtime": "org.gnome.Platform",
|
||||
"runtime-version": "49",
|
||||
"sdk": "org.gnome.Sdk",
|
||||
@@ -8,9 +8,7 @@
|
||||
"--share=ipc",
|
||||
"--socket=fallback-x11",
|
||||
"--socket=wayland",
|
||||
"--talk-name=org.kde.StatusNotifierWatcher",
|
||||
"--talk-name=org.freedesktop.portal.Desktop",
|
||||
"--own-name=org.kde.*"
|
||||
"--talk-name=org.kde.StatusNotifierWatcher"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
@@ -18,8 +16,9 @@
|
||||
"buildsystem": "meson",
|
||||
"sources": [
|
||||
{
|
||||
"type": "dir",
|
||||
"path": "."
|
||||
"type": "archive",
|
||||
"url": "https://gitea.angeltech.jp/Angel-Technologies/MoeMoji/archive/v0.1.3.tar.gz",
|
||||
"sha256": "b3942dfa69c85dade533e3db5bb26bf82bf165ae396038de9f9038e8a7e63a8a"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -29,6 +29,9 @@ subdir('data')
|
||||
subdir('src')
|
||||
subdir('tests')
|
||||
|
||||
install_data('LICENSE',
|
||||
install_dir: join_paths(get_option('datadir'), 'licenses', 'jp.angeltech.MoeMoji')
|
||||
)
|
||||
|
||||
gnome.post_install(
|
||||
glib_compile_schemas: true,
|
||||
|
||||
|
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 335 KiB |
@@ -9,7 +9,7 @@ static void register_with_portal (void) {
|
||||
GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
|
||||
if (bus == NULL) {
|
||||
g_warning ("portal register: can't get session bus: %s", error->message);
|
||||
g_error_free (error);
|
||||
g_clear_error (&error);
|
||||
return;
|
||||
}
|
||||
GVariantBuilder options;
|
||||
@@ -21,14 +21,14 @@ static void register_with_portal (void) {
|
||||
"org.freedesktop.host.portal.Registry",
|
||||
"Register",
|
||||
g_variant_new ("(s@a{sv})",
|
||||
"net.angeltech.MoeMoji",
|
||||
"jp.angeltech.MoeMoji",
|
||||
g_variant_builder_end (&options)),
|
||||
NULL,
|
||||
G_DBUS_CALL_FLAGS_NONE,
|
||||
-1, NULL, &error);
|
||||
if (result == NULL) {
|
||||
g_info ("portal register: %s", error->message);
|
||||
g_error_free (error);
|
||||
g_clear_error (&error);
|
||||
} else {
|
||||
g_variant_unref (result);
|
||||
}
|
||||
@@ -41,6 +41,6 @@ int main (int argc, char *argv[]) {
|
||||
textdomain(GETTEXT_PACKAGE);
|
||||
register_with_portal ();
|
||||
g_autoptr(MoeMojiApplication) app =
|
||||
moemoji_application_new("net.angeltech.MoeMoji", G_APPLICATION_DEFAULT_FLAGS);
|
||||
moemoji_application_new("jp.angeltech.MoeMoji", G_APPLICATION_DEFAULT_FLAGS);
|
||||
return g_application_run(G_APPLICATION(app), argc, argv);
|
||||
}
|
||||
|
||||
@@ -94,9 +94,12 @@ static void toggle_window(MoeMojiApplication *self) {
|
||||
}
|
||||
|
||||
static gboolean on_close_request(GtkWindow *window, gpointer user_data) {
|
||||
(void)user_data;
|
||||
gtk_widget_set_visible(GTK_WIDGET(window), FALSE);
|
||||
return TRUE;
|
||||
MoeMojiApplication *self = MOEMOJI_APPLICATION(user_data);
|
||||
if (self->has_tray) {
|
||||
gtk_widget_set_visible(GTK_WIDGET(window), FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void dbusmenu_method_call(G_GNUC_UNUSED GDBusConnection *connection,
|
||||
@@ -246,7 +249,7 @@ GVariant *sni_get_property(G_GNUC_UNUSED GDBusConnection *connection,
|
||||
MoeMojiApplication *self = MOEMOJI_APPLICATION(user_data);
|
||||
return g_variant_new_string(self->tray_icon_name
|
||||
? self->tray_icon_name
|
||||
: "net.angeltech.MoeMoji-tray-dark");
|
||||
: "jp.angeltech.MoeMoji-tray-dark");
|
||||
}
|
||||
if (g_strcmp0(property_name, "ItemIsMenu") == 0)
|
||||
return g_variant_new_boolean(FALSE);
|
||||
@@ -266,21 +269,11 @@ static const GDBusInterfaceVTable sni_vtable = {
|
||||
.set_property = NULL,
|
||||
};
|
||||
|
||||
static void on_sni_bus_name_acquired(GDBusConnection *connection,
|
||||
const gchar *name,
|
||||
G_GNUC_UNUSED gpointer user_data) {
|
||||
g_dbus_connection_call(
|
||||
connection, "org.kde.StatusNotifierWatcher", "/StatusNotifierWatcher",
|
||||
"org.kde.StatusNotifierWatcher", "RegisterStatusNotifierItem",
|
||||
g_variant_new("(s)", name), NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void update_tray_icon(MoeMojiApplication *self) {
|
||||
AdwStyleManager *sm = adw_style_manager_get_default();
|
||||
gboolean dark = adw_style_manager_get_dark(sm);
|
||||
self->tray_icon_name = dark ? "net.angeltech.MoeMoji-tray-dark"
|
||||
: "net.angeltech.MoeMoji-tray-light";
|
||||
self->tray_icon_name = dark ? "jp.angeltech.MoeMoji-tray-dark"
|
||||
: "jp.angeltech.MoeMoji-tray-light";
|
||||
|
||||
if (self->dbus_conn && self->sni_registration_id > 0) {
|
||||
g_dbus_connection_emit_signal(self->dbus_conn, NULL, "/StatusNotifierItem",
|
||||
@@ -301,13 +294,38 @@ static void setup_sni(MoeMojiApplication *self) {
|
||||
if (self->dbus_conn == NULL) {
|
||||
g_warning("session bus: %s", error->message);
|
||||
g_clear_error(&error);
|
||||
self->has_tray = FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
GVariant *result = g_dbus_connection_call_sync(
|
||||
self->dbus_conn, "org.freedesktop.DBus", "/org/freedesktop/DBus",
|
||||
"org.freedesktop.DBus", "NameHasOwner",
|
||||
g_variant_new("(s)", "org.kde.StatusNotifierWatcher"), G_VARIANT_TYPE("(b)"),
|
||||
G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
|
||||
if (result == NULL) {
|
||||
g_warning("NameHasOwner check failed: %s", error->message);
|
||||
g_clear_error(&error);
|
||||
self->has_tray = FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
gboolean watcher_exists = FALSE;
|
||||
g_variant_get(result, "(b)", &watcher_exists);
|
||||
g_variant_unref(result);
|
||||
|
||||
if (!watcher_exists) {
|
||||
g_info("No StatusNotifierWatcher found, skipping tray setup");
|
||||
self->has_tray = FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
self->has_tray = TRUE;
|
||||
GDBusNodeInfo *sni_node =
|
||||
g_dbus_node_info_new_for_xml(sni_introspection_xml, &error);
|
||||
if (sni_node == NULL) {
|
||||
g_warning("Failed to parse SNI introspection XML: %s", error->message);
|
||||
g_error_free(error);
|
||||
g_clear_error(&error);
|
||||
return;
|
||||
}
|
||||
self->sni_registration_id = g_dbus_connection_register_object(
|
||||
@@ -316,14 +334,14 @@ static void setup_sni(MoeMojiApplication *self) {
|
||||
g_dbus_node_info_unref(sni_node);
|
||||
if (self->sni_registration_id == 0) {
|
||||
g_warning("Failed to register SNI object: %s", error->message);
|
||||
g_error_free(error);
|
||||
g_clear_error(&error);
|
||||
return;
|
||||
}
|
||||
GDBusNodeInfo *menu_node =
|
||||
g_dbus_node_info_new_for_xml(dbusmenu_introspection_xml, &error);
|
||||
if (menu_node == NULL) {
|
||||
g_warning("Failed to parse dbusmenu introspection XML: %s", error->message);
|
||||
g_error_free(error);
|
||||
g_clear_error(&error);
|
||||
return;
|
||||
}
|
||||
self->menu_registration_id = g_dbus_connection_register_object(
|
||||
@@ -332,20 +350,20 @@ static void setup_sni(MoeMojiApplication *self) {
|
||||
g_dbus_node_info_unref(menu_node);
|
||||
if (self->menu_registration_id == 0) {
|
||||
g_warning("dbusmenu register: %s", error->message);
|
||||
g_error_free(error);
|
||||
g_clear_error(&error);
|
||||
}
|
||||
g_autofree gchar *bus_name =
|
||||
g_strdup_printf("org.kde.StatusNotifierItem-%d-1", getpid());
|
||||
self->sni_bus_name_id = g_bus_own_name_on_connection(
|
||||
self->dbus_conn, bus_name, G_BUS_NAME_OWNER_FLAGS_NONE,
|
||||
on_sni_bus_name_acquired, NULL, NULL, NULL);
|
||||
const gchar *unique_name = g_dbus_connection_get_unique_name(self->dbus_conn);
|
||||
g_dbus_connection_call(
|
||||
self->dbus_conn, "org.kde.StatusNotifierWatcher", "/StatusNotifierWatcher",
|
||||
"org.kde.StatusNotifierWatcher", "RegisterStatusNotifierItem",
|
||||
g_variant_new("(s)", unique_name), NULL, G_DBUS_CALL_FLAGS_NONE, -1,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void on_shortcuts_activated(GDBusProxy *proxy, const gchar *sender_name,
|
||||
static void on_shortcuts_activated(G_GNUC_UNUSED GDBusProxy *proxy,
|
||||
G_GNUC_UNUSED const gchar *sender_name,
|
||||
const gchar *signal_name,
|
||||
GVariant *parameters, gpointer user_data) {
|
||||
(void)proxy;
|
||||
(void)sender_name;
|
||||
if (g_strcmp0(signal_name, "Activated") != 0)
|
||||
return;
|
||||
MoeMojiApplication *self = MOEMOJI_APPLICATION(user_data);
|
||||
@@ -490,7 +508,7 @@ static void setup_global_shortcuts(MoeMojiApplication *self) {
|
||||
"org.freedesktop.portal.GlobalShortcuts", NULL, &error);
|
||||
if (self->shortcuts_proxy == NULL) {
|
||||
g_warning("GlobalShortcuts: Failed to create proxy: %s", error->message);
|
||||
g_error_free(error);
|
||||
g_clear_error(&error);
|
||||
return;
|
||||
}
|
||||
g_timeout_add(500, (GSourceFunc)begin_create_session, self);
|
||||
@@ -507,8 +525,8 @@ static void moemoji_application_startup(GApplication *app) {
|
||||
MoeMojiApplication *self = MOEMOJI_APPLICATION(app);
|
||||
gtk_icon_theme_add_resource_path(
|
||||
gtk_icon_theme_get_for_display(gdk_display_get_default()),
|
||||
"/net/angeltech/MoeMoji/icons");
|
||||
gtk_window_set_default_icon_name("net.angeltech.MoeMoji-symbolic");
|
||||
"/jp/angeltech/MoeMoji/icons");
|
||||
gtk_window_set_default_icon_name("jp.angeltech.MoeMoji-symbolic");
|
||||
gboolean in_flatpak = g_file_test("/.flatpak-info", G_FILE_TEST_EXISTS);
|
||||
if (in_flatpak) {
|
||||
self->icon_theme_path = NULL;
|
||||
@@ -542,7 +560,7 @@ static void moemoji_application_activate(GApplication *app) {
|
||||
self->window = g_object_new(MOEMOJI_TYPE_WINDOW, "application",
|
||||
GTK_APPLICATION(self), NULL);
|
||||
g_signal_connect(self->window, "close-request",
|
||||
G_CALLBACK(on_close_request), NULL);
|
||||
G_CALLBACK(on_close_request), self);
|
||||
self->window_created = TRUE;
|
||||
} else {
|
||||
toggle_window(self);
|
||||
@@ -561,10 +579,6 @@ static void moemoji_application_dispose(GObject *object) {
|
||||
self->menu_registration_id);
|
||||
self->menu_registration_id = 0;
|
||||
}
|
||||
if (self->sni_bus_name_id > 0) {
|
||||
g_bus_unown_name(self->sni_bus_name_id);
|
||||
self->sni_bus_name_id = 0;
|
||||
}
|
||||
g_clear_object(&self->shortcuts_proxy);
|
||||
g_clear_pointer(&self->shortcuts_session_path, g_free);
|
||||
g_clear_pointer(&self->icon_theme_path, g_free);
|
||||
@@ -592,7 +606,7 @@ static void moemoji_application_class_init(MoeMojiApplicationClass *klass) {
|
||||
}
|
||||
|
||||
static void moemoji_application_init(MoeMojiApplication *self) {
|
||||
self->settings = g_settings_new("net.angeltech.MoeMoji");
|
||||
self->settings = g_settings_new("jp.angeltech.MoeMoji");
|
||||
self->window_created = FALSE;
|
||||
self->shortcuts_bound = FALSE;
|
||||
g_autoptr(GSimpleAction) quit_action = g_simple_action_new("quit", NULL);
|
||||
|
||||
@@ -11,12 +11,12 @@ struct _MoeMojiApplication {
|
||||
gboolean shortcuts_bound;
|
||||
GDBusConnection *dbus_conn;
|
||||
guint sni_registration_id;
|
||||
guint sni_bus_name_id;
|
||||
guint menu_registration_id;
|
||||
gchar *icon_theme_path;
|
||||
const gchar *tray_icon_name;
|
||||
GDBusProxy *shortcuts_proxy;
|
||||
gchar *shortcuts_session_path;
|
||||
gboolean has_tray;
|
||||
};
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -222,8 +222,8 @@ static void update_spacer_height(MoeMojiWindow *self) {
|
||||
gtk_widget_set_size_request(self->bottom_spacer, -1, spacer_h);
|
||||
}
|
||||
|
||||
static void on_scroll_changed(GtkAdjustment *adj, gpointer user_data) {
|
||||
(void)adj;
|
||||
static void on_scroll_changed(G_GNUC_UNUSED GtkAdjustment *adj,
|
||||
gpointer user_data) {
|
||||
MoeMojiWindow *self = MOEMOJI_WINDOW(user_data);
|
||||
update_chip_from_scroll(self);
|
||||
}
|
||||
@@ -260,7 +260,7 @@ static void on_search_changed(GtkSearchEntry *entry, gpointer user_data) {
|
||||
static void moemoji_window_class_init(MoeMojiWindowClass *klass) {
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
|
||||
gtk_widget_class_set_template_from_resource(
|
||||
widget_class, "/net/angeltech/MoeMoji/moemoji-window.ui");
|
||||
widget_class, "/jp/angeltech/MoeMoji/moemoji-window.ui");
|
||||
gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, outer_box);
|
||||
gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow,
|
||||
content_box);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/net/angeltech/MoeMoji">
|
||||
<gresource prefix="/jp/angeltech/MoeMoji">
|
||||
<file>moemoji-window.ui</file>
|
||||
<file>style.css</file>
|
||||
<file>wp.png</file>
|
||||
<file alias="icons/scalable/apps/net.angeltech.MoeMoji.svg">../data/icons/hicolor/scalable/apps/net.angeltech.MoeMoji.svg</file>
|
||||
<file alias="icons/scalable/apps/net.angeltech.MoeMoji-symbolic.svg">../data/icons/hicolor/symbolic/apps/net.angeltech.MoeMoji-symbolic.svg</file>
|
||||
<file alias="icons/scalable/apps/jp.angeltech.MoeMoji.svg">../data/icons/hicolor/scalable/apps/jp.angeltech.MoeMoji.svg</file>
|
||||
<file alias="icons/scalable/apps/jp.angeltech.MoeMoji-symbolic.svg">../data/icons/hicolor/symbolic/apps/jp.angeltech.MoeMoji-symbolic.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
</gresources>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
}
|
||||
|
||||
.wallpaper-bg {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("/net/angeltech/MoeMoji/wp.png");
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("/jp/angeltech/MoeMoji/wp.png");
|
||||
background-size: cover;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||