IgnorantGuru's Blog

Linux software, news, and tips

SpaceFM 1.0.3 Released

SpaceFM 1.0.3 has been released, and you can see the changes. Main highlights of this release are that the icon chooser now works in GTK3 builds, and handlers can now be imported/exported, so custom ones you create can be shared on the wiki. Also, non-latin keyboard shortcuts should now work better, and some issues involving some terminals (lxterminal, urxvtc, konsole, gnome-terminal, lilyterm) have been addressed.

SpaceFM has seen some nice improvements the last few months (the 1.0 series), including OmegaPhil’s work on adding an icon chooser dialog. This allows you to select icons visually, which is nice because SpaceFM allows you to change any icon in the application, using almost any icon or image file. The toolbar has also been redesigned, allowing you to right-click directly on toolbar items to configure the toolbar using design mode. And the bookmarks pane was partially extended, now including submenus and separators, and allowing not just bookmarks, but commands and applications to be bookmarked there. Video thumbnails are supported along with extra large icons, plus a new Large Icons mode for detailed and compact list views. Finally, customisable handlers were added for devices, protocols, archives, and files. And all of this is now pretty well debugged and stable.

As promised, development on SpaceFM and udevil has been active but slower lately, but these are mature projects that have been running very well, and mostly bug-free. Critical issues that do arise are usually addressed promptly. The plan is to keep these projects running and bugfixed for the foreseeable future, with occasional feature additions and other developments.

Summer doesn’t usually inspire much coding from me or work at the computer – I’d rather be mountain climbing and hiking. And I’m still pondering which OS direction to take, mainly weighing OpenBSD vs systemd-free Linux choices. I will probably get into that more again in the coming months, and I’ll share anything good I find. For now progress in that area has stalled, but I’ve been enjoying the break and look forward to approaching it with a fresh perspective when I get to it.

Hope everyone is having a good summer/winter, depending your hemispheric preference. Feel free to drop any related Linux/BSD/GTK/etc news in the comments below.

August 26, 2015 - Posted by | Software | ,


  1. Thanks for continuing spacefm’s development.
    Icon chooser? What are we choosing icons for? Toolbar buttons? Individual mimetypes, or file extensions? Google search only turned up a manjaro forum discussion; sounds like the usage is assignment of a specific icon for each custom Action.

    Comment by twilliams | August 26, 2015

    • Hi, All menu items, toolbar items, and bookmarks within SpaceFM, whether built-in or custom, have icons that can be set or changed. Also, icons displayed for devices (eg hard drive, mounted hard drive, cdrom, etc), the icons for the tabs, panels, and the icon of the SpaceFM window itself, can be changed. Anywhere there is a box to enter a custom icon name, such as in the item properties dialog, there is now a Choose button which opens the icon chooser (within which you can select different categories of icons, or browse image files).

      As for icons associated with mimetypes/extensions, these are not directly configurable within SpaceFM, but SpaceFM’s MIME Menu can open/create the right file for you to adjust such icons. Just right-click on a file and in the Open menu, right-click on one of the associated apps. Then open the xml file from that menu.

      Changing icons in general can give the program a very custom look, so I recommend doing so, especially since it’s now so easy. This is especially true because in order to keep dependencies minimal, SpaceFM uses only the limited set of icons provided by GTK by default.

      Comment by IgnorantGuru | August 26, 2015

  2. “And I’m still pondering which OS direction to take, mainly weighing OpenBSD vs systemd-free Linux choices.”
    I just switched Lubuntu for Manjaro-Openrc with LXDE as desktop environment. :)

    Comment by DDZ | August 26, 2015

  3. Many thanks for all your and the team’s hard work, very much appreciated. Enjoy your time away :)

    Comment by Paul | August 27, 2015

  4. Many thanks for SpaceFm, love it.Been using it in Centos by some time now.5*****

    Comment by chengc | August 27, 2015

  5. Thoughts on Jacob Appelbaum’s systemd comments here? http://saimei.acc.umu.se/pub/debian-meetings/2015/debconf15/What_is_to_be_done_Reflections_on_Free_Software_Usage.webm

    Comment by Eric L. | August 27, 2015

  6. I’m using Manjaro-openrc too (with Xfce) and I’m really happy with it.

    Comment by Anonymous | August 27, 2015

  7. In addition to join the previous thanks, I wish to add that I personally love and are particularly dependent on SpaceFm Dialog!

    In fact, I make a use of it which I know is improper!
    I do not know if a ‘real’ programmer might want to consider a person of my kind, anyway: the only “language” of which I have become familiar, from which I am able to obtain results that satisfy me and I’m really enjoying to use is … the Bash!

    Bash that I do not properly use just to administer/automatize my system (for which it was created) but that I love to force into the creation of real big applications of various kinds (which for brevity I avoid to elencate here).
    I only wanted to externalize this my weird attitude to wonder whether among the future plans of SpaceFM developers could include a strengthening of the current functionalities offered by SpaceFM Dialog beyond the real needs related to SpaceFM filemanager.

    To say, one of the aspects that most limits me in build my GUIs is, when I use –list, to not have immediate notification of the event of a ‘single click’ on an item in the list ..
    Then naturally a support for additional widgets would be very useful for my projects…….
    But to be clear: I am not making specific requests here (I do not wish to be pandered in my distorted habits)! :-)
    I would just ask if it can be assumed that some features addings to SpaceFM Dialog could get a wider interest for the benefit of all users..

    PS: I know YAD and other possible alternatives .. but I much prefer the functionality of SpaceFM Dialog (also in the current state)!

    Thank you

    Comment by pogo | August 28, 2015

    • Glad to hear you’re getting some good use out of SpaceFM Dialog. The best thing to do is open issues on each specific problem or request (one issue per topic). That way others can add input, and developers can see the issue when new changes are being considered. Stuff in forums tends to get lost.

      I’d certainly consider tweaking the behavior. It’s still a little rough, so it’s good to give feedback on areas where you’re having issues. Everyone uses it a little differently, so you may encounter issues I’ve never come across.

      As far as the list, such widgets have one ‘activate’ method, which in the case of the list is a double-click. This is GTK’s default behavior. Not sure where another would fit in the command line, but I can look over the details and see what might be done. I have opened a request on this here – feel free to subscribe to that issue so you’ll be notified of changes or questions. I may not get it to immediately but there are a number of minor things in that area that deserve some more attention.

      In a way I wish I had released Dialog as a separate application, because I think people aren’t aware of it, since it’s tucked into SpaceFM. But SpaceFM already included many of the needed functions, so it was a good merge. I may consider releasing it separately at some point. But users of YAD and zenity should check it out. The manual makes it sound more complicated than it is, but there are lots of examples there to try. SpaceFM Dialog can be used independently of SpaceFM the file manager – they just share the same executable.

      Comment by IgnorantGuru | August 28, 2015

      • just to reply that I’ve took you invitation and just subscribed on github with the hope to be helpful with some feedback (as ‘paoloschi’, since my usual nick ‘pogo’ was not available..)

        I’m really excited to see SpaceFM Dialog further developed and proposed as a stand-alone project! wow !! ;-)

        Comment by pogo aka paoloschi | August 28, 2015

        • Also, I like bash too, despite it syntax. Nothing improper about doing anything you want with it – the compiler/interpreter is the only boss.

          You may also want to check out python, which is actually a great language, with lots of help online. For app development, things like string handling and saving of data (pickling) is very convenient. You can still use things like SpaceFM Dialog, but you’ll also have access to pyGTK, which gives you finer tuned control of widgets. It will give you lots of room to grow. Sounds like you may be outgrowing SpaceFM Dialog, which is a good tool for scripts to show a dialog, but has its limitations for full app dev (I felt some of these writing Burn Tools, although it came out well and have proved very useful). Just a thought – I’d use python more myself, but I got into this FM stuff that likes the speed of C.

          Re Github, if you go to this issue and click Subscribe to notifications, you’ll get an email when I address that. The click event is easy, but I’m not sure how any other activate command will fit into the command line, so no promises, but I’ll look. I can see how that would be handy.

          Comment by IgnorantGuru | August 29, 2015

          • Unfortunately for me, I’m 53 years old (reduced mental agility remained now..) with no training as a programmer at all, only passion and old bad habits ..
            I use linux full time by only 4 years now (I’m happily writing this reply from my new system: Devuan Ceres! ’cause I groom in full your vision of how things are going and try myself to resist..).
            Until just four years ago still I was using a system Amiga-like (imagine!) and even there I did the same: I have always created real applications using the Rexx (Arexx)! Only that there had available a graphical toolkit (MUI) that also through Arexx I could totally handle, as PyGTK lets to do with GTK (..and how I miss MUI! especially experiencing the drift that is going through GTK)..

            My recent trip (last 10 years): Amiga on PowerPC machine -> first Linux experience of having installed Gentoo Linux on the same PPC (in 2004) -> a couple of years later Gentoo actually abandon PPC -> Debian PPC -> my decision to abandon the Amiga (MorphOS) and purchase of my first PC x86 just 4 years ago -> Debian Sid as my unique OS, on x86 -> Triumph of human stupidity that prompted me to flee to Devuan -> we are in today!

            That said (and remaining well in theme with the new 1.0.3 SpaceFM icon chooser functionality :) ), it happens sometimes that in bash I do things like this:

            icon="$( python -c "from xdg.IconTheme import getIconPath; print getIconPath( \"$icon_name\", size=24, theme=\"$icon_theme\" )" )"

            I did some script with Python in the past (even on the Amiga), I’ve bought a book about Ruby, did some dig in node.js and other attempts.. all very nice but not in tune with my ..brain.
            If I had to explain to you why, happens to me to feel impatience for what I live like a great ..dispersivity: all those forms of modules, packages handlers like ‘chinese boxes’ and versions 2.6 who have to live with the 2.7 but also with the 3.x…..
            When instead, for example, I execute the small tool ‘jq’ within my bash script, I can do to a JSON data file all I want in a single command line instead of put to arrange import of modules and having to define classes and set up instances.. just then I begin to enjoy what I’m doing!
            Add that I do not need to create professional projects: I’m talking about programming lived as a hobby..

            It is not clear to me what prompted me wrote all these insignificant things for which no one can find any interesting point, sorry..
            I should have to stay only on SpaceFM Dialog and declare my certainty that any evolution, however small, will result in amazing new adventures for me, for sure!
            And also declare that “IG Burn Tools” from the day that you released it, it is my unique burning tool too: not a single CD/DVD failure, 100% success guaranteed!
            I say: long life IG and the Bash! ;-D

            Comment by paoloschi | August 29, 2015

            • Nice – sounds like you enjoy programming and have given a few languages a try – I’m sure you could handle python – if you ever need more than bash, I think you would like it. It is sometimes worth the overhead to use more developed data types, APIs, etc., but bash is powerful too. I chose it as the glue that holds SpaceFM together for a reason.

              Amiga was a good machine – I knew a computer engineer in the 90s who loved his. Me, I cut my teeth on a Vic-20 long ago. Programming BASIC in 3.5K of free RAM – gotta love it. I learned to write some tight code. :)

              Comment by IgnorantGuru | August 30, 2015

  8. I’m trying to find an way for a utility app to recognize when the directory browsed by spacefm user changes (and grab the path of the new browse target). When investingating the available spacefm socket command, I read that “-s get current_dir” doesn’t necessarily reflect the path of the dir in the FOCUSED spacefm tab. Polling the “pathbar” property seems unreliable in the sense that, at any given moment, the pathbar may contain a midstream as-you-type value (rather than an actual, valid path). Ideally, I believe the utility should not incessantly poll a socket & I would be willing to custom compile a spacefm which has been modified to emit a signal (inotify?) each time the browsed path changes. In main-window.c I found “on_file_browser_after_chdir()” which involves an internal(?) “after-chdir” signal. Perhaps this could be modified to also emit an inotify signal (e.g. “spacefm-after-chdir”)? Does this seem like a feasible approach?

    I’m still hoping (since back in 2012 https://github.com/IgnorantGuru/spacefm/issues/187 ) to figure out a way to accomplish spacefm-centric “File Notes”. If spacefm would emit a signal each time I navigate to another directory, an external watcher (notekeeping utility)
    could be set to display a notice if its datastore contained any notes associated with file(s) matching this path.

    Within spacefm, any “complications” raised during earlier discussion (Whatif the file no longer exists? What if it has been moved?) would be moot. Spacefm does not need to care, nor track, the associations between files and annotations.
    Further, by delegating to a companion app, existence/preservation of a note beyond the lifespan of its associated file would be possible
    (often, this would be a good/desirable scenario ~~ having an indication/reminder that fileX is now missing, or has not yet been installed, would be handy).

    Comment by stewie | August 28, 2015

    • Hi, First, get current_dir should definitely return the dir of the currently focused tab in the last used window. If it’s not, please provide reproducble steps (in an issue) – I can’t reproduce it. Also, if you’re using multiple spacefm windows, you may need to pass a windowID for the right one, if it’s not the last focused one.

      There should definitely be an event for Tab|chdir. I’ll add that. You can open an issue if you want notification. That was an oversight, but in general the socket commands are somewhat hit-or-miss, for tweaking things, as opposed to comprehensive. So if you notice something you think would be good to have, it’s good to bring it to attention. I have a few socket commands on my list to add as well.

      In the meantime, the View|Events|Window|Click event might be a good choice. Maybe after a small delay, then poll the current_dir. Usually when you change dirs you click to do so. And keypress could be used too. You can set event handlers from scripts as well (using a socket command) – the dynamic handlers in the manual.

      I’ve been pondering the metadata and related ideas. Most times I come up with ideas that would require major redesign, so they’re more in the next-generation category. For now I would say a plugin is a good idea, and I may steal some ideas from it if I implement something similar in the executable.

      Comment by IgnorantGuru | August 28, 2015

    • You can test this evt_tab_chdir, in next branch.

      Comment by IgnorantGuru | September 6, 2015

  9. Re the systemd octopus Slashdot: Systemd Absorbs “su” Command Functionality
    on reddit

    No, it’s not April 1.

    Here is an interesting comment from a former Debian developer driven to FreeBSD.

    Comment by IgnorantGuru | August 29, 2015

  10. Good to see you’re still working on SpaceFM! I recently committed the update to Gentoo’s repository thanks to hasufell. I recently started a job in customer service and it’s been soul-sucking (in a sort of neutral way), so I don’t catch up on updates as quickly. But tonight I graduated from training, so hopefully I should get into a routine and be able to schedule releases well! :)

    Go out and hike! My girlfriend and I want to go and do something together soon as well. Despite my feelings being mostly anti-social, I really think that the virtual world and physical world can benefit from experiences in each other.

    I, too, got wind of systemd extending itself once again. At this point it really doesn’t surprise me anymore. I’m just waiting for them to fuck up and users to get upset, only to realize they’ve depended on systemd for so long that they’ve forgotten about the myriad other tools available to facilitate things.

    Getting back to the subject though, I have to say I really admire SpaceFM, not only as a piece of software but also as an upstream! You and I get along pretty well, and if there’s ever an issue with packaging, I know you’d be responsive and understanding of users’ needs. Keep up the great work!

    Comment by sporkbox | August 30, 2015

    • Yeah gotta have a real life too. This whole getting sucked into the internet as a life doesn’t really work.

      I’m glad we’re a decent upstream. Having done some packaging of my own projects for a few distros, I have come to respect the work of packagers – it’s a job in itself and I’m glad to leave it to the pros.

      Good luck with the new job – anyone should be so lucky to have you for a service rep!

      Comment by IgnorantGuru | August 30, 2015

Sorry, the comment form is closed at this time.

%d bloggers like this: