Running 16.04 & Unity on a new Dell XPS13 laptop, freshly installed. The menus for some apps (terminal, nautilus) are always shown below the app title bar. Some other apps like Chrome or Text editor/gedit do show correctly at the top bar as it is supposed to considering the use of global menus.

This is weird as it does not happen for both userids configured on this machine. The other user desktop shows menu for all apps at the top bar using global menus correctly.

See pic. And nevermind the Macbuntu theme, I just installed it to test with it, but the same behavior was experienced before I did it.

Any help?

Screenshot

  • So it doesn't happen in the guest account and the other account but it happens with one user only? Is that user part of the adm group? – Fabby May 2 at 12:29
  • That's correct. And both userids (the one that shows this behavior and the one that doesn't) are part of the adm group. – tux1c May 3 at 14:07
up vote 2 down vote accepted
+50

Other suggestions have shown that some configuration in your home folder is causing this error.

Hunt down the file causing the problem

If you want to just get to the file that's causing the problem you will have to use trial and error to hunt it down.

Step 1 - It's probably in your .config folder

Start by renaming your .config folder to .config-bak and reloading Unity with the following command:

$ unity --replace

If this fixed the problem delete the new .config folder that was created and rename the old folder back to .config and reload unity again. Problem should now have returned. Move to step 3.

If this didn't work move to step 2.

Step 2 - It's a dot folder

If it wasn't in the config folder it was likely in a different dot folder. Using file manager with ctrl+h to show hidden files go to home folder. Make a folder called my-conf and move all .files and .folders to it ( except .config ) and reload Unity.

$ unity --replace

If this fixed your problem restore all the dot files and reload Unity. The problem should now have returned. Move to step 3.

If this didn't work, repeat this step but for non hidden files.

Step 3 - Find the bad egg

Using file manager open either your ~/.config folder (Step 1 worked) or your home folder (Step 2 worked) in one window and ~/my-config (create if needed) in another.

Move 10 of the suspect files/folders to ~/my-config and reload Unity. If problem isn't fixed, replace files/folders and repeat for the next 10. Continue repeating until the problem goes away. Once you have narrowed it down to 10 files restore them one at a time, reloading Unity each time until you find the culprit. Once you have found it, hold back that single config file and restore any remaining configs.

Step 4 - Post problem config file to your question

Post path and content of problem config file so the community may better refine this answer into a possible quick fix. Thanks!

Some suggestions

You might be able to speed up your search for the problem configuration by first trying the configs related to compiz, unity, x and the programs you are having the problems with.

Best of luck!


New edit - Solution found by poster after following the approach above:

The problem was the .profile file in the home directory of the userid. the PATH variable had a reference to a symlink in /opt. The content under the symlinked directory had 777 permissions. After changing that to something less permissive, the problem went away.

This is my PATH variable:

PATH="$HOME/bin:$HOME/.local/bin:/opt/sub3dtool:/opt/android/sdk/platform-tools:/opt/android-studio/bin:$PATH"

Then I set the symlinked directory permissions to 755:

gunner@minix:~$ ls -l /opt | grep sub3dtool
lrwxrwxrwx 1 root   root     16 Apr 22 10:47 sub3dtool -> sub3dtool-0.4.2/
drwxr-xr-x 4 root   root   4096 Apr 22 10:47 sub3dtool-0.4.2
  • Joshua, thank you for your answer. I have not been able to try your troubleshooting process yet as I've been away from that computer and won't come close to it till the weekend. However, your method and description is very thorough and well explained, which definitely deserves the award (without meaning to offend the others that have also provided valuable feedback). I'll try and do this over the weekend and post my findings. – tux1c May 10 at 1:51
  • 1
    I found the bad egg using your approach. It was neither a file in .config nor a dot folder. It was a reference inside the PATH variable within .profile. One of the paths referenced there under /opt was a symlink to a folder whose content permissions was 777. I can't think of why this behavior presented, but after changing the permissions of the content of that symlinked folder, the problem goes away. – tux1c May 12 at 23:57
  • instead of excepting your own new answer, you should leave this as the solution and add your final find. this was the answer you used to solve your problem – Joshua Besneatte May 13 at 0:08
  • You are right, but I wasn't sure if I'd be able to edit your answer. Let me try that. – tux1c May 13 at 16:09
  • Done :) thanks again. – tux1c May 13 at 16:14

One of your user profiles is busted, but one still works, therefore:

Log out of all user profiles and log into the user that still works and type the following commands: (assuming user is your old user name)

sudo adduser user2

and follow the instructions on-screen.

then type the following commands:

sudo adduser user2 adm 
sudo adduser user2 cdrom
sudo adduser user2 sudo
sudo adduser user2 dip
sudo adduser user2 plugdev
sudo adduser user2 lpadmin
sudo adduser user2 sambashare

(If any of the above gives an error like group not found, don't worry: I'm trying to be thorough)

Now, log out of the working user's session and log in as "user2" .

Please test now if you still have your problem... No? OK!

Now,

  1. Open the file manager
  2. Browse to the /home/user directory
  3. Copy (don't move!) all the files from Downloads to /home/user2/Downloads
  4. Check you did a good job.
  5. Now delete /home/user/Downloads
  6. Go back to step 3 and repeat for Documents, Videos, ...
  7. In a terminal type the following command: deluser user --remove-home

Done: your non-working user's profile is now gone and has been replaced with a working user profile!

  • Thanks for the help, but I am trying to avoid recreating the userid again, encrypting home folder, etc. I'd done that already and it worked for a while but then (likely after restoring some files) the problem returns... I'm looking for guidance at the desktop environment config level, to try and identify the cause for this behavior, if possible. But thanks again for your inputs! It is definitely a last resort option I'll probably end up doing again eventually. – tux1c May 4 at 12:46
  • That's going to take a few hours in chat to identify the exact Root cause. Don't restore your profile. Just get rid of it.... ¯\_(ツ)_/¯ – Fabby May 4 at 22:20

I did some digging around and this is the closest answer I could find.

Use these commands:

setsid unity

Or more successfully reported as working:

dconf reset -f /org/compiz/

Hope this helps!

  • This did not work for me. But thanks a lot for digging into it! – tux1c May 8 at 9:29

Usually this will happened with some supporting file having issues. Simple solution is move move all your dot files to some other directory logout and login again.

Run this from your home directory.

mkdir dotfiles

mv .* dotfiles/

Logout and login again. This will create new config files. Copy your .mozilla and .config/google-chrome .ssh folder afterwards.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.