The custom actions can be useful for anything, and it's really quick to run it.
Examples of custom actions:
- twitter: xdg-open https://twitter.com/
- us: setxkbmap us
Last week-end, our awesome Nick released new stable versions for almost all Xfce major components: libxfce4util, tumbler, xfce4-appfinder, xfce4-session, xfce4-panel, xfwm4, xfce4-settings, garcon, thunar, xfce4-terminal and tumbler (this is not amnesia, we got two releases in a single day for this component!).
I still need to release libxfce4ui 4.10.1 which would fix some keyboard shortcut issues: numpad shortcuts, shortcuts with Shift, shortcuts with Alt+Print... I need some testers for this stable branch before releasing. So grab the code on git or from this tarball and please confirm if it works fine after restarting your session. Thanks in advance for your help.
The list of changes which can be found in those stable releases in available on the Xfce Announcement mailing list. I wish you all an improved Xfce experience!
This quick follow-up release contains a single fix contributed by "Coacher": proper border drawing when compositing is disabled (bug #10021). It also contains a few updated translations: Bulgarian, Chinese (China), Chinese (Taiwan), Flemish and Indonesian.
For the next release, I'm considering implementing (as time allows) notification filtering so that you can turn off notifications from applications which annoy you.
I'm glad to announce this new release of xfce4-notifyd which ships mostly bug fixes and code cleanups. Theming has also been improved with additional style properties and drawing fixes. Xfce4-notifyd themes may need to be updated to take advantage of those new style properties and to adapt to the theming changes. Sorry for the inconvenience.
Thanks a lot to all the persons who contributed to this release and kept me motivated! This is the result of your work!
libnotify is now required as a dependency to build a test suite and to show improved notification previews.
Arabic, Basque, Brazilian, Bulgarian, Castilian, Chinese (China), Chinese (Taiwan), Croatian, Danish, English, Finnish, Flemish, French, Greek, Hebrew, Hungarian, Italian, Japanese, Kazakh, Korean, Lithuanian, Polish, Portuguese, Romanian, Russian, Serbian, Swedish, Turkish, Ukrainian, Uyghur and Valencian.
i think i’ve sorted out some of my desktop font issues, and created a few more in the process.
for a long time, i’ve had to deal with occasionally jagged, hard-to-read fonts when viewing webpages, because i ran my xfce desktop without any font antialiasing.
i’ve always hated the way modern desktop environments try to “fool” my eyes with antialiasing and subpixel hinting to convince me that a group of square pixels can be smoothed into round shapes. turning off antialiasing tends to make the rounder fonts, especially serif fonts, look pretty bad at large sizes, as seen here:
my preferred font for the desktop and the web is verdana, which looks pretty good without antialiasing. but most websites use other fonts, so rather than force one size of verdana everywhere (which causes flow/layout issues), i turned on antialiasing for my entire desktop, including my preferred browser, and started disabling antialiasing where needed.
before and after font settings:
i tried the infinality patchset for freetype, but unfortunately none of the eselect configurations produced the crisply rounded antialiased text the patches are known for. i rebuilt freetype without the patchset, and went into /etc/fonts to do some XML hacking.
while eselect-fontconfig offers painless management of existing presets, the only way to customize one’s setup is to get into nitty-gritty text editing, and font configs are in XML format. this is what i ended up with:
$ cat ~/.fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font" >
<test name="size" qual="any" compare="more">
<double>11</double>
</test>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="font" >
<test name="pixelsize" qual="any" compare="more">
<double>16</double>
</test>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>Helvetica</string></test>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
</match>
let’s step through the rules:
first, all antialiasing is disabled. then, any requested font size over 11, or anything that would display more than 16 pixels high, is antialiased. finally, since the common helvetica font really needs to be antialiased at all sizes, a rule turns that on. in theory, that is — firefox and xfce both seem to be ignoring this. unless antialiasing really is enabled at the smallest sizes with no visible effect, since there are only so many pixel spaces available at that scale to “fake” rounded corners.
a test webpage shows the antialiasing effect on different fonts and sizes:
besides the helvetica issue, there are a few xfce font display problems. xfce is known for mostly ignoring the “modern” xorg font config files, and each app in the desktop environment follows its own aliasing and hinting rules. gvim’s monospace font is occasionally antialiased, resulting in hard-to-read code. the terminal, which uses the exact same font and size, is not antialiased, since it has its own control for text display.
the rest of the gtk+ apps in the above screenshot are size 10 verdana, so they have no antialiasing, being under the “size 11″ rule. firefox doesn’t always obey the system’s font smoothing and hinting settings, even with the proper options in about:config set. unlike user stylesheets, there’s no way to enforce desktop settings with something like !important CSS code. i haven’t found any pattern in what firefox ignores or respects.
also, i haven’t found a workable fontconfig rule that enables antialiasing only for specific fonts at certain sizes. i’m not sure it’s even possible to set such a rule, despite putting together well-formed XML to do just that.
* * *
to sum up: font management on linux can be needlessly complicated, even if you don’t have special vision needs. my environment is overall a bit better, but i’m not ready to move entirely to antialiased text, not until it’s less blurry. i need crispy, sharp text.
fonts on my android phone’s screen look pretty good despite the antialiasing used everywhere, but the thing’s pixel density is so much higher than laptop and desktop LCDs that the display server doesn’t need to resort to complicated smoothing/hinting techniques to achieve that look.
as a general resource, the arch linux wiki page has very useful information on font configuration. there are some great ideas in there, even if they don’t all work on my system. the gentoo linux wiki page on fontconfig is a more basic; i didn’t use anything from it.
#include <unique/unique.h>
#include <gtk/gtk.h>
static UniqueResponse
cb_unique_app (UniqueApp *app,
gint command,
UniqueMessageData *message_data,
guint time_,
gpointer user_data)
{
GtkWidget *window = user_data;
if (command != UNIQUE_ACTIVATE)
{
return UNIQUE_RESPONSE_PASSTHROUGH;
}
gtk_window_present (GTK_WINDOW (window));
return UNIQUE_RESPONSE_OK;
}
gint main (gint argc, gchar *argv[])
{
GtkWidget *window;
UniqueApp *app;
gtk_init (&argc, &argv);
app = unique_app_new ("info.mmassonnet.UniqueExample", NULL);
if (unique_app_is_running (app))
{
if (unique_app_send_message (app, UNIQUE_ACTIVATE, NULL) == UNIQUE_RESPONSE_OK)
{
g_object_unref (app);
return 0;
}
}
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
#include <gtk/gtk.h>In both examples there is just one difference, it is how the primary process is seen. With Unique there is a function to know if another instance is running, while with GtkApplication there is a function to know if the current process is not the primary one e.g. a remote instance. I prefer the second approach, since with Unique if there is only one instance running, the is_running property will tell you false but the primary instance is running, isn't it? But anyhow, as you can see, it is possible to implement painlessly what is done by Unique with GtkApplication.
gint main (gint argc, gchar *argv[])
{
GtkWidget *window;
GtkApplication *app;
GError *error = NULL;
gtk_init (&argc, &argv);
app = gtk_application_new ("info.mmassonnet.GtkExample", 0);
g_application_register (G_APPLICATION (app), NULL, &error);
if (error != NULL)
{
g_warning ("Unable to register GApplication: %s", error->message);
g_error_free (error);
error = NULL;
}
if (g_application_get_is_remote (G_APPLICATION (app)))
{
g_application_activate (G_APPLICATION (app));
g_object_unref (app);
return 0;
}
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
g_signal_connect_swapped (app, "activate", G_CALLBACK (gtk_window_present), dialog);
gtk_main ();
return 0;
}
Xfdesktop 4.10.1 introduced a regression which triggered 100% CPU usage when using a solid color as background. This is fixed with this new release, sorry for the inconvenience.
Full changelog:
I just released Xfdesktop 4.10.1 which contains some bug fixes and updated translations which had been there for months. Congratulations to Eric Koegel who committed most of them!
Amongst others, fixed background cycling and improved menu icons' loading are appreciated.
A new awesome release of the Parole media player for Xfce is out and ships all the hard work of Sean Davis and Simon Steinbeiss.
Sean wrote an extensive description of this new release on his blog, with tons of screenshots. As stated there, do not hesitate to give them feedback on this new release and to file any issue you may have on the Xfce Bugzilla.
Here is a screenshot of the new very nice main view while playing an audio file:
Congratulations to Sean and Simon for this excellent work!
A lot of users seem to be wondering how to edit keyboard shortcuts in xfce4-terminal 0.6.x. The built-in shortcut editor is indeed gone and the application now uses editable GTK+ accelerators like other GTK+ applications. This is more consistent and allows to drop the exo dependency which makes the application lighter.
The FAQ of the Xfce documentation has a guide on how to edit GTK+ accelerators of xfce4-terminal. You'll get your custom shortcuts back in no time!
PS: xfce4-terminal 0.6.1 is out and has a killer "drop-down" mode ala guake / tilda. See Nick's Google+ page for screenshots.