Nemo: [Suggestion] Desktop Grid

Created on 14 Nov 2012  Â·  74Comments  Â·  Source: linuxmint/nemo

One of the things that annoys me about Nemo's (and Nautilus') desktop is that there is no proper "grid" of icons, only columns. Both Windows and OS X let you keep a neat grid of icons on the desktop, but with Nautilus/Nemo, your desktop ends up looking very messy if you have a lot of icons, since the rows won't be straight.
If you could add a setting to enable a proper grid with horizontal rows, it would be greatly appreciated.

FEATURE REQUEST

Most helpful comment

Here's a brief demo of #1466:

https://dl.dropboxusercontent.com/u/8201170/cinnamon-20170414-1.webm

I apologize for the size - it's 12mb.

There are still a few things I'm ironing out, when I get a chance I'll make some packages in case anyone wants to try, I'd like to get feedback.

All 74 comments

Thanks :)

Seconded. And what would also be nice is the ability to adjust the size of all the icons collectively (Currently icons can be adjusted individually, but it's near impossible to adjust all the icons to the same size This can be tricky since the grid column/row size should preferably be adjusted as well, in accordance with the scaled icons. And then there should also be an option to adjust the desktop font size. I think this all ties in with the Desktop grid idea. Should I open a separate Issue and reference this one?

Thank you so much for pointing it out.
This has been bugging me and a lot of people out there for so long. I have even been trying to work around nautilus code to figure out how to correct this and I think I am close.
On a separate note this can be fixed by a greater extent by setting text ellipsis to "1" in dconf settings for desktop.
The name of the icons are just limited to a single line though, but it does look neat though.

to be honest, I've never missed this functionality myself, but friends and relatives who I've introduced to Mint ask about this very regularly.

I`m not sure if this should be added on this issue, but an option to truncate long icon names would also be great.

I would like this also. It makes my desktop look very messy to not have this.

Also options to adjust the grid margin and exposing desktop icon/font size prefs in the UI would complete Cinnamon.

In priority order, I'd like to see :

a. Adjustable horiz. and vertical spacing for the icon grid
b. Global icon sizing
c. Options for wrapping or truncating long icon text labels so that they fit within the grid and thus don't overlap other icon text labels

Thanks to everyone for supporting this common-sense icon grid feature request.

There is an option to organize desktop icons by name, on the right click menu. This option also aligns all the icons vertically when it is used. However, one may not need to arrange the icons by name in order to keep them also vertically aligned. Also the vertical alignment should be done automatically (like the horizontal one).

KDE has it, XFCE (!!) has it being a super lightweight environment. Windows 98 had it and every release since, OSX has had it since the mid-90's. I can't get it into my head why any modern desktop environment (_cough_ GNOME3, LXDE, Cinnamon, MATE, ……) wouldn't implement this.

I got it to work (kind of) by increasing some values. It is not perfect yet, but at least I found the code responsible for the alignment. What strategy do you suggest? The main problem is, that the preview-thumbnails have a much bigger height than usual symbols. If you disable the preview and use the values from my commit, you get a regular X/Y grid.
However I think it would be more elegant, to use the size of the biggest icon as grid size automatically. I will implement this also, but I would like to know, what most people prefer.

Best way - disable preview, title max. 2 lines and hidden overflow... and automaticaly use height of course :)

Also please add some spacers between icons :+1:

This is how it looks like, just with the values changed in my commit.
desktop-grid

I also uploaded "nemo-desktop-grid" to the AUR, if anyone is using ArchLinux. What do you mean with spacers? DId you try the behavior with the patch?

This is exactly as it has to be ;) Very nice work, thanks :+1:
(I did not try any patch, can I find it somewhere?)

  1. Find out how to compile nemo from source for your distribution
  2. Change the file "libnemo-private/nemo-icon-container.c" according to https://github.com/t-oster/nemo/commit/ae0262eef48dc547e96b4742a7dc2169593e3679
  3. install.
  4. Disable the preview in nemo's settings
  5. restart nemo

For ubuntu/mnt:

  • get compiler and everything sudo apt-get install build-essential dpkg-dev
  • activate source repositories in package-sources
  • get the nemo sourcecode sudo apt-get source nemo
  • get everything needed to build nemo sudo apt-get build-dep nemo
  • modify source as described above
  • build the package dpkg-buildpackage -rfakeroot -us -uc
  • install it sudo dpkg -i ../nemo_2*.deb

Prebuild package for mint 17 (64 bit): http://files.thomas-oster.de/nemo_2.2.4%2bqiana_amd64.deb

Many thanks for the tutorial and for the package!

Thx ;) Nice work :+1:

Hi Thomas,

I tried to install nemo-desktop-grid from arch linux, but couldn't find the
package you mentioned in aur or anywhere else ("nemo-desktop-grid").

Thanks for your work.

On Mon, Sep 8, 2014 at 8:56 AM, Thomas Oster [email protected]
wrote:

This is how it looks like, just with the values changed in my commit.
[image: desktop-grid]
https://cloud.githubusercontent.com/assets/1052720/4181557/8ebc85fa-371c-11e4-96f8-a41c6d8f7b6a.png

I also uploaded "nemo-desktop-grid" to the AUR, if anyone is using
ArchLinux. What do you mean with spacers? DId you try the behavior with the
patch?

—
Reply to this email directly or view it on GitHub
https://github.com/linuxmint/nemo/issues/108#issuecomment-54779090.

You are right, I forgot to upload it. I will upload it this afternoon. Unil then:

  • Install abs sudo pacman -S abs base-devel
  • Sync abs tree sudo abs
  • Get the nemo pkgbuild: cp -r /var/abs/community/nemo/* /tmp/
  • get the sources: cd /tmp && makepkg -o
  • make the modifications in the above commits
  • build the package makepkg -e
  • install it sudo pacman -U nemo-*.tar.xz

Prebuild package for mint 17 (64 bit) - WORKING :+1:
Nice work, you are No. 1 ;) Thanks.

see my comment in #696 updated mint-package will follow tomorrow

mint package updated. same link.

I followed https://github.com/linuxmint/nemo/issues/108#issuecomment-54789165 and it worked fantastically for me!

With regard to the "snap-to-grid" functionality, (and yes, I know this sounds heretical), but I would look at the window manager functionality in Windows 7 very, very closely. Windows may have gotten many things wrong, but they have the desktop, and it's organization, down ice cold.

What I, (IMHO), consider "must haves", as far as desktop organization is concerned:

  1. Snap-to-grid.
  2. User adjustable horizontal and vertical grid spacing. (IMHO, the icon spacing in the illustration above is way too large. I'd like them closer than that.)
  3. Uniform icon dimensions, or at least icons constrained within a pre-set size.
  4. Uniform icon description size that is no larger, (or only slightly larger), than the icon's width. If the icon's name is longer than two lines, it should only show the first two lines when not selected.
  5. Icons should never, _never_, be allowed to stack on top of each other.

Perhaps a separate issue, as this would apply to icons both on the desktop and within the file-manager:

  1. The ability to slow-click on the name of an icon to rename the file.

Update:
I downloaded the .deb package above. When I went to install it using package manager it stopped with the warning that a newer package was already installed.

Trying to use dpkg to install the .deb above on Mint 17.1 (cinnamon) 64 bit results in the following:

Storage3 Downloads # dpkg --install nemo_2.2.4+qiana_amd64.deb
dpkg: warning: downgrading nemo from 2.4.5+rebecca to 2.2.4+qiana
(Reading database ... 185828 files and directories currently installed.)
Preparing to unpack nemo_2.2.4+qiana_amd64.deb ...
Unpacking nemo (2.2.4+qiana) over (2.4.5+rebecca) ...
dpkg: dependency problems prevent configuration of nemo:
 nemo depends on nemo-data (= 2.2.4+qiana); however:
  Version of nemo-data on system is 2.4.5+rebecca.
 nemo depends on dconf-tools; however:
  Package dconf-tools is not installed.

dpkg: error processing package nemo (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.54ubuntu1.1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Errors were encountered while processing:
 nemo
Storage3 Downloads # 

Any ideas, or should I just punt and wait?

Jim (JR)

punt. Going to work on simplifying the existing desktop and implement a real grid.

2mtwebster: appreciate that, this is really what will add enormous value to the system look and feel.

@jharris1993 I assume nothing. Btw. Win7 does not handle monitor rotation well, it does not keep the icon positions. Anything else is okay by the desktop.

Hi guys - this is being worked on, though I've yet to tackle the grid issue .. if you want to follow progress:

https://github.com/mtwebster/nemo/commits/new-desktop

There are a number of things I'm wanting to fix, the grid being just one:

  • Making right-click work regardless of whether you're showing the desktop folder on the desktop (so you always have _Add desklets_ and _Change background_, etc...
  • Making the desktop folder view more intelligent with multiple monitors - no dead area or hidden icons if you have two monitors with different sizes or strange arrangements
  • Fixing the grid layout issues.

I've done mostly a lot of refactoring so far, but I should be getting into some nitty-gritty soon...

I pushed an initial set of changes a few days ago for the desktop - https://github.com/linuxmint/nemo/commit/d93ea62ed7b6e15f64ecf16054a8a966877c55e2 - and have started working on icon layout.

I don't have more progress yet (due to other Cinnamon things as well as life in general), and I'm running out of time for the next release. The changes potentially being made here affect normal icon views (windowed) as well, and we've been toying around with other issues in the same big block of code (poor spacing when you're using large zoom icons, etc..). You'll be happy to know I've put this back front and center on my plate as of last night, though, and I hope to have some better news soon.

This "feature" is the reason I totally cannot use XFCE with the standard desktop manager. If implemented, PLEASE make it optional. I want to be able to fine-tweak my positioning of INDIVIDUAL icons. (I need a lot of them...)

I think this feature is fundamental for a desktop environment.

The solutions that were shared with the users in this thread are not useful for a fix?

so wait, would this relate to mate/caja at all? the screenshots of icons look identical so i was thinking one is a fork of the other or there is shared code, etc

@inf3rno windows loses your icon positions on rotate change since the resolution changed, every resolution has different icon positions (maybe... at least every physical monitor that has a different resolution, or are you implying when you rotate back that the icons reset?)

@kn00tcn Yepp, it would be great to restore previous icon arrangement by rotating back the monitor. It has a pivot and sometimes I use it to read PDF or watch standing images.

I have found a workaround until the devs fix this.
just install the xfdesktop package (in archlinux at least) and run xfdesktop --replace.
You can make it run at every boot automatically.
The only problem is that you need to have installed thunar, and you can't change the background from the cinnamon settings, you have to do it from the xfce settings (right click on the desktop -> desktop settings)

@Pival81 is that ONLY for the desktop? can you still use mate panel/caja/etc & something like compiz? (maybe you implied thunar takes over caja)

@kn00tcn yes, i think you can still use whatever file manager you were using.
Also, compiz can't run in cinnamon.

@Pival81 oops, been following multiple threads since mate/caja has the identical issue as cinnamon/nemo (is one a fork of the other? does the issue go back to gnome2?)

They're both fork of the old nautilus (2.x)

The "nemo-desktop-grid" is no longer in the AUR

The only solution to this is to ditch cinnamon and use xfce, maybe with thunar handling only the desktop and nemo for everything else.
Or use xfdesktop in cinnamon.

@JosephMcc, can we mark this issue as a feature request?

If I have time, I will create some Mint Packages. Which versions are you guys on?

Hi,

I reduced this issue to something people could actually read. I had to remove a lot of upvotes and off-topic comments. Please don't flood issues with empty comments, things other people already said or lobbying tactics.

If you want to just agree with a comment or an issue, click the thumbs up icon. Nobody counts that, and once an issue is already known to be "popular" (which is definitely the case here), it really makes no difference how many people upvote it. But at least, it doesn't interrupt the conversation and it doesn't notify the devs for no reason.

When you get an email you read it, when you get 100 on the same issue and the last 50 you read were +1 notifications, at some stage you just stop clicking the links and you start deleting notifications blindly. This isn't helping, quite the opposite.

Hello clefebre:

" ... once an issue is already known to be "popular" (which is definitely the case here), it really makes
no difference how many people upvote it."

I have nothing but the highest respect for your high standing in the Mint/Linux community and the very hard work you have put into developing Mint to get it where it is now.

That said, please let me _also_ say that what you have unfortunately qualified as _empty comments_ which _notify the devs for no reason_ actually exist because of the null amount of attention issue #108 has received since it was started here more than four years ago, in spite of being "popular" and at the same time ignored with no attention paid to the very sound case many of us have made for it.

Your editing out the posts in reaction to this state of affairs is very dissapointing and regrettable.
Hopefully this one will make it past 2016.

Mint1864

@Mint1864

The "resemblance to the Windows desktop" (actually to the mechanics) is a very important issue as the MS desktop, like it or not, is one of MS's great achievements. Like I have said before, they "have it down pat" and we all know that it's a bad practise to go against success, especially if you want to compete with an established paradigm. ie: how the MS desktop works, not necessarily how it looks.

What users really need is finding data, selecting data and do some operations on the selected data. These are the basic features if you want to manipulate files, database records, media, or whatever data you want. In the current case finding data is not properly implemented by the desktop. Without grid and arranged icons, you add noise to the visual interface, and with that noise it is harder to find what you are looking for. I can easily imagine a totally different desktop, where these features are well implemented and which does not resemble to the ms desktop. If it is good and easy to use, then people will use it, if it is not, then they won't. This does not depend on the resemblance. I understand that the MS desktop is good, but with a few days practice I can use Unity, KDE, Mate, Gnome3, or XFCE just as easy as the MS desktop. So I don't think that's the point here. I think the point is that people won't use a distro or a desktop environment, by which basic features are not implemented for many years and developers have time to edit issue comments instead of trying to implement these features. But ofc. that is just an opinion, I no longer use Mint or Cinnamon, I just subscribed to this issue when I was using it.

@cinnamoner Please quit spamming this issue. One comment or even two was probably sufficient.

This cjs function basically set an icon (the path of the desktop icon: destFile) in a desktop position (x, y), it's slow but works.

_setPosition: function(destFile, x, y) {
    try {
        x = Math.round(x);
        y = Math.round(y) - 48;
        destFile.set_attribute_string("metadata::nemo-icon-position", x+","+y, Gio.FileQueryInfoFlags.NONE, null);
        destFile.replace_contents(destFile.load_contents(null)[1].toString(), null, false, 0, null);
    } catch(e) {
        global.log(e);
    }
 },

If someone, want to do an extension for nemo or a cinnamon extension, just search in the web, there are a lot of scripts that actually do that: https://www.google.com.mx/search?client=ubuntu&channel=fs&q=gvfs-set-attribute&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=wU6vWLqgLMXR8AfcoIfYAQ#channel=fs&q=gvfs-set-attribute+metadata::nautilus-icon-position

I just verified that my modification still does the job. Unfortunately my pull request #696 was closed).

For everybody desperately wanting this feature:
For debian/ubuntu/mint:

  • get compiler and everything sudo apt-get install build-essential dpkg-dev
  • activate source repositories in package-sources (https://forums.linuxmint.com/viewtopic.php?t=206245)
  • get the nemo sourcecode apt-get source nemo
  • get everything needed to build nemo sudo apt-get build-dep nemo
  • modify source as described in https://github.com/t-oster/nemo/commit/ae0262eef48dc547e96b4742a7dc2169593e3679 cd nemo* && pluma libnemo-private/nemo-icon-container.c (just change DESKTOP_PAD_VERTICAL to 1 and SNAP_SIZE_Y to 88)
  • build the package dpkg-buildpackage -rfakeroot -us -uc
  • install it sudo dpkg -i ../nemo*.deb
  • open dconf-editor and change the setting /org/nemo/desktop/text-ellipsis-limit to 2 or just dconf write /org/nemo/desktop/text-ellipsis-limit 2
  • Open nemo settings and disable the preview
  • log out and in and enjoy

grid

From mtwebster on the pull request:

We've discussed this internally, and probably will end up revamping how the desktop is handled entirely - no more pixel positions, grid positions instead. Closing this, will address the open issues when it's handled.

@t-oster Why are the desktop icon labels black in the screenshot?

Chiming in again: no pixel position means you're going to lose more users than you realized. For me a desktop grid is totally unusable, and it is the reason I have no interest in XFCE (which has this exclusively). But as long as MATE has pixel positioning, I am happy - this is the Gnome2 way.

@pepa65 Maybe if there's a Dconf Switch for it like Desktop Background cross-fade does...

@pepa65 I am not exactly sure, what you mean. However, it would not be hard to make this feature optional, so the existing functionality stays intact. In fact I can still resize individual icons after my patch, if that is what you are looking for? What exactly do you mean by pixel position?

What I do not understand is: If you open your desktop-folder in nemo as file-manager, there is alreay a perfect grid, isn't it? So why can't we just use the very same rendering on the desktop itself?

On my desktop, I want to be able to position the icons by myself, not being stuck to a grid, and be able to adjust their position to the pixel. If what you want is optional, great. I need to be able to positing my icons (I have too many to stick into a grid...). I don't need to be able to resize them.

wouldnt a really tiny grid (preferably user adjustable) be good for you (if you were forced to use a grid at all)?

i dont know if cinnamon has this, but mate has an option to NOT auto align, aka arbitrary positions, it's the same as windows where you can choose to be pixel based or on a grid

the whole problem with crappy gnome2/mate/cinnamon is its poorly thought out grid isnt a real grid, to most users the end result looks the same as if there was no alignment at all

Indeed, what I need is arbitrary positions. A tiny grid (1x1 pixels) would be ideal. I just don't want to lose this. I get very uncomfortable when I read things like:

We've discussed this internally, and probably will end up revamping how the desktop is handled entirely - no more pixel positions, grid positions instead
@mtwebster

Well then to clarify: I am not talking about removing pixel-positioning. What I want is:

  • When the user does rightclick->sort icons by name, that they do not only have equal width, but also equals height, so that they align also on rows, not only columns
  • An option to make the icons snap to a grid

The first thing works, if you use the patch and disable the preview. The second thing would have to be added. However I would also like the preview icons to show, but scaled down so they have equal height with the symbolic icons.

Removed some comments that were full of things irrelevant to this issue. Any "I'll leave Cinnamon if what I want doesn't get implemented" comments will probably get removed as well. This isn't a forum or Reddit. Just a heads up.

@cinnamoner, the issue threads arent a chat, they need to be organized per issue so everyone can see the relevant info from the main list

i saw your comment as an email, i'm pretty sure the gtk theme can control icon hover & POTENTIALLY close button width (personally, a different size close button will look lame to me)

default menus probably shouldnt be changed so they dont mess up existing users, but it would be nice to have stark available as an already included panel plugin, same goes for xfce to include whisker, or mate to include solus's new one, currently every distro has to choose to include such plugins rather than the DE

funny thing is i dont even use cinnamon & took a break from mate, but this grid issue is affecting several DEs beyond these, all going back to gnome2's code... so we gotta be on top of who attempts the rework, then spread it to the others that need it

@kn00tcn Sorry @JosephMcc if this is off-topic ish, it's just in response to the above comment:
The close button width thing can be sorta controlled by GTK, but the normal non-headerbars titlebars cannot be simply controlled by GTK unless you trick Muffin into thinking it's on GNOME, instead, they're controlled by the same decorations Metacity used to use...

Anyways, if anyone else wants to talk about stuff not related to this, then either make a new issue if it's for a feature request not already requested, or chat somewhere else about it...

There currently is no time table for this.

Look, we know that some of you want this. It's just a matter of someone picking up the project and seeing what they can do about it. It will be done when it gets committed. You will all know because this issue will get closed.

I've been trying to avoid saying I'm working on this, because that usually creates a huge mental block for me :sob:

As soon as I have something remotely useful I was going to post a build for folks to try, but I don't have that yet, and while part of me is confident I'll have something for 18.2, I cannot actually speak of deadlines or else I will self-destruct.

Here's a branch I'm working on: https://github.com/mtwebster/nemo/tree/desktop-app-redux - however I'm just now getting to the actual desktop grid bit - there were a few important things to accomplish - namely:

  • Make the desktop its own process (so if nemo crashes, your desktop won't disappear)
  • Refactor a lot of code so we can continue offering the 'old' desktop to people, at least until we can convince or entice everyone to enjoy the new one (once it's in place)
  • Implement a desktop with more of a grid layout (akin to windows).

The first and second items are reasonably in place, but the third is ongoing. Again, if and when I get a usable build I'll offer up some packages for people to try and give feedback - hopefully prior to the upcoming release. Now please put down the pitch forks and return to your homes peacefully.

Sorry, it was an attempt at humor. I have seen pitchforks here though in the past ;)

Here's a brief demo of #1466:

https://dl.dropboxusercontent.com/u/8201170/cinnamon-20170414-1.webm

I apologize for the size - it's 12mb.

There are still a few things I'm ironing out, when I get a chance I'll make some packages in case anyone wants to try, I'd like to get feedback.

@mtwebster that look like really nice... I actually think about it, if you also define there a good new standard for a desktop manager and how this will be integrated in the ecosystem of all explorer.... Caja, nautilus... For example could nemo-desktop export some Dbus functionality, to be used externally for other process, to be easy command the desktop layout. Without nemo-desktop the current Nemo, it's more unrelated with the desktop it's self, so it's more easy to be more general an run over more platforms, because nemo-desktop could take care about the desktop specific functions... anyway look like nice to me.

Closing this for now.

If you're not keen on the new desktop, you can revert to the old one via:

gsettings set org.nemo.desktop use-desktop-grid false

However, the old desktop will remain simply 'as-is' with bug fixes only. I'd much prefer to make the new one palatable for all users in the long run, and I would request that those still preferring the old one, at least try the new, if only to be able to report back 'I might use the new desktop, if only _______. :)

There currently are still some issues, mostly minor and annoying, with the new desktop, and we're working to eliminate them prior to Mint 18.2 release.

A few people that have tried it out have complained that the 'auto arrange' mode is defaulted to on - by default, it keeps everything sorted, and, as a result, icons cannot be repositioned. This is intentional, for mainly internal house-keeping reasons - simply switching over would cause the new desktop to re-use layout information created by the old one, and they are incompatible - they would not cause a crash, but would cause unpredictable results in your initial desktop layout, so we avoid it simply by performing this 'reset'. This is easily remedied by right-clicking the desktop, and unchecking Desktop->Auto Arrange.

We've attempted to make this new layout more or less 'configureless' for the majority of users (besides the context menu items). However, monkeying with various things like the desktop font size, the desktop ellipsis limit (how many lines to display under the icons) and icon captions may cause overlapping to occur, or some other undesirable characteristic.

Just in case, there are two other settings that are not (yet) in any preferences dialog - they are the horizontal and vertical grid adjustments. Their default is 1.0 - they act as a scale factor for the horizontal and vertical grid spacing. For example, if you want to be able to show more of a file's name on a line than is currently possible, you can increase the horizontal adjust, and space the icons out more. This will allow more text to be shown as a result.

You can alter them thusly:

gsettings set org.nemo.desktop horizontal-grid-adjust 1.0
and
gsettings set org.nemo.desktop vertical-grid-adjust 1.0

Increase or decrease the number to your desire.

You can, of course, access all three of these preferences via dconf-editor also.

We'll try to get rid of these manual interventions in later release.

Thanks.

thanks a lot, mtwebster

Any chance this view would make it into proper nautilus windows themselves?

I noticed that increasing text-ellipsis-limit leads to unpredictable results (moving icons close together causes neighbouring icons to move)

A behaviour I would like would be being able to set the icons more closesly together (that already works) but at the same time being able to see the whole filename of a filename if nothing is beneath the icon. If something was beneath it, the filename would get escaped (this is how current nautilus does that partly - the last line of icons in the file manager view). tight now, when I increse the ellipsis limit, I also increas evertical grid distance for all icons, even those with short names.

Here's a brief demo of #1466:

https://dl.dropboxusercontent.com/u/8201170/cinnamon-20170414-1.webm

I apologize for the size - it's 12mb.

There are still a few things I'm ironing out, when I get a chance I'll make some packages in case anyone wants to try, I'd like to get feedback.

The link was die, please upload again. Thank you!

Was this page helpful?
0 / 5 - 0 ratings