58 GdkScreen *screen = gtk_widget_get_screen(widget);
60 screen = gdk_screen_get_default();
64 CGDirectDisplayID
id = CGMainDisplayID();
65 CGSize size_in_mm = CGDisplayScreenSize(
id);
66 int width = CGDisplayPixelsWide(
id);
67 int height = CGDisplayPixelsHigh(
id);
68 gdk_screen_set_resolution(screen,
70 / sqrt(size_in_mm.width * size_in_mm.width + size_in_mm.height * size_in_mm.height));
119 NSFileManager *fm = [NSFileManager defaultManager];
122 NSURL *url = [NSURL fileURLWithPath:@(filename)];
124 if ([fm respondsToSelector:
@selector(trashItemAtURL:resultingItemURL:
error:)]) {
125 if (![fm trashItemAtURL:url resultingItemURL:nil
error:&err]) {
127 *
error = g_error_new_literal(G_IO_ERROR, err.code == NSFileNoSuchFileError ? G_IO_ERROR_NOT_FOUND : G_IO_ERROR_FAILED, err.localizedDescription.UTF8String);
132 *
error = g_error_new_literal(G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
"trash not supported on OS X versions < 10.8");
165 NSLocale* locale_ns = [NSLocale currentLocale];
167 if([locale_ns respondsToSelector:
@selector(languageCode)] && [locale_ns respondsToSelector:
@selector(countryCode)])
169 locale_c = [NSString stringWithFormat:
@"%@_%@", [locale_ns languageCode], [locale_ns countryCode]];
174 locale_c = [locale_ns localeIdentifier];
176 return strdup([locale_c UTF8String]);
183 gchar*
const hash = g_compute_checksum_for_string(G_CHECKSUM_SHA1, res_path, strlen(res_path));
184 gchar*
const file_path = g_build_filename(g_get_user_data_dir(),
"ansel",
"pkcs11", hash,
"p11-kit-trust.module", NULL);
187 GFile*
const cfg_file = g_file_new_for_path(file_path);
189 GFile*
const cfg_dir = g_file_get_parent(cfg_file);
190 g_file_make_directory_with_parents(cfg_dir, NULL, NULL);
192 const char*
const dir_path = g_file_get_path(cfg_dir);
193 p11_kit_override_system_files(
"", NULL,
"", dir_path, NULL);
197 g_object_unref(cfg_dir);
200 gchar*
const buf = g_strdup_printf(
"module: %s/lib/pkcs11/p11-kit-trust.so\n"
201 "trust-policy: yes\n"
202 "x-init-reserved: paths=%s/share/curl/curl-ca-bundle.crt\n",
204 g_file_replace_contents(cfg_file, buf, strlen(buf), NULL,
FALSE, G_FILE_CREATE_NONE, NULL, NULL, NULL);
207 g_object_unref(cfg_file);
222 const gchar* ctype = g_getenv(
"LC_CTYPE");
225 char *saved_locale = strdup(setlocale(LC_ALL, NULL));
226 if(!setlocale(LC_ALL, ctype))
228 g_unsetenv(
"LC_CTYPE");
232 setlocale(LC_ALL, saved_locale);
240 g_setenv(
"LANG", user_locale,
FALSE);
246 g_setenv(
"GTK_DATA_PREFIX", res_path,
TRUE);
247 g_setenv(
"GTK_EXE_PREFIX", res_path,
TRUE);
248 g_setenv(
"GTK_PATH", res_path,
TRUE);
249 gchar* etc_path = g_build_filename(res_path,
"etc", NULL);
250 gchar* lib_path = g_build_filename(res_path,
"lib", NULL);
252 g_setenv(
"XDG_CONFIG_DIRS", etc_path,
TRUE);
254 gchar* gtk_im_path = g_build_filename(etc_path,
"gtk-3.0",
"gtk.immodules", NULL);
255 g_setenv(
"GTK_IM_MODULE_FILE", gtk_im_path,
TRUE);
259 gchar* pixbuf_path = g_build_filename(etc_path,
"gtk-3.0",
"loaders.cache", NULL);
260 g_setenv(
"GDK_PIXBUF_MODULE_FILE", pixbuf_path,
TRUE);
265 gchar* share_path = g_build_filename(res_path,
"share", NULL);
266 g_setenv(
"XDG_DATA_DIRS", share_path,
TRUE);
268 gchar* schema_path = g_build_filename(share_path,
"glib-2.0",
"schemas", NULL);
269 g_setenv(
"GSETTINGS_SCHEMA_DIR", schema_path,
TRUE);
276 gchar* gio_path = g_build_filename(lib_path,
"gio",
"modules", NULL);
277 g_setenv(
"GIO_MODULE_DIR", gio_path,
TRUE);