NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.42k stars 13.63k forks source link

XFCE is slow and missing icons in current unstable channel #15174

Closed andrewrk closed 8 years ago

andrewrk commented 8 years ago

Issue description

Since updating to 16.09pre82105.7465bcd (Flounder), XFCE takes an additional 10 seconds to initialize and become responsive from the login screen. Additionally, icon paths seem to be missing: screenshot - 05022016 - 01 50 55 pm

The slow startup is more annoying than the missing icons, although not having the battery indicator is a bit of a problem.

Steps to reproduce

nixos-rebuild switch --upgrade in the unstable channel

  services.xserver = {
    enable = true;
    videoDrivers = [ "nvidia" ];
    };
    desktopManager.xterm.enable = false;
    desktopManager.xfce.enable = true;
  };

This same behavior happens on 2 independent laptops that I have both running NixOS.

Technical details

16.09pre82105.7465bcd (Flounder)

nix-env (Nix) 1.11.2

"16.09pre82105.7465bcd"

andrewrk commented 8 years ago

cc @edolstra @AndersonTorres

vcunat commented 8 years ago

I haven't noticed slow startup, but the icons are most likely due to splitting packages into multiple outputs (I've had this for many months now).

wizeman commented 8 years ago

FWIW, besides the missing icons I'm also experiencing a noticeably slower startup, just like @andrewrk.

abbradar commented 8 years ago

I've fixed DeaDBeeF's (it's a GTK3 application) icon in https://github.com/NixOS/nixpkgs/commit/f396fa8cb24dee446b00c9434401d1ad9c7eb4bb. Maybe it's related?

andrewrk commented 8 years ago

I'm not sure if this is related, but it appears that auto mounting my phone has stopped working too.

I have this in my config:

  services = {
    ntp.enable = true;
    locate.enable = true;
    dbus.enable = true;
    udisks2.enable = true;
    udev.packages = [ pkgs.libmtp ];
  };

Previously I could open thunar, plug in my android via USB, enable file transfer, and then copy files with thunar. Now I don't see my phone in thunar. Dmesg says:

[389866.730850] usb 3-6: new high-speed USB device number 12 using xhci_hcd
[389866.896147] usb 3-6: New USB device found, idVendor=18d1, idProduct=4ee1
[389866.896151] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[389866.896152] usb 3-6: Product: Nexus 6
[389866.896154] usb 3-6: Manufacturer: motorola
[389866.896155] usb 3-6: SerialNumber: ZX1G22RRXP
vcunat commented 8 years ago

Most likely you need

let # to fix highlighting
  udev.packages = [ pkgs.libmtp.out ];
abbradar commented 8 years ago

We may want to pick needed outputs in udev.packages instead. I'll make a patch later.

andrewrk commented 8 years ago

I tried pkgs.libmtp.out, did a rebuild switch, rebooted, and got the same behavior. No device listed in thunar.

abbradar commented 8 years ago

Interesting, it looks like its rules are in .bin. Try libmtp.bin -- we also may need to document properly where should udev rules reside.

andrewrk commented 8 years ago

libmtp.bin did it, thanks.

It's a bit concerning that nix doesn't catch errors like this, if you simply type something wrong it silently fails instead of complaining when you try to rebuild.

abbradar commented 8 years ago

We had a proposition recently to add "checked path" builtin, like builtins.checkPath libmtp "lib/udev/rules.d" and some syntactic sugar to make this easier. The idea is to check if the path does really exist in derivation before building something that depends on it. It would require changes both in Nix the daemon and Nix the language, though, and also an extension for .drv format (as I imagine). Don't expect it soon ;_;.

vcunat commented 8 years ago

IMO you can't have such functionality as standard language builtin, at least not without nasty consequences. EDIT: anyway, this isn't a good place to discuss it.

abbradar commented 8 years ago

I've noticed that xfce4-display-settings dialog box (opens when you attach a monitor) doesn't have any icons now. May be related.

abbradar commented 8 years ago

@andrewrk This particular problem has been fixed in cd5dd9f82e141a4d7f570bf483ee5e278b188480.

andrewrk commented 8 years ago

Great! Now all we have to do is wait for the new unstable to build successfully in Hydra.

andrewrk commented 8 years ago

I just updated to 16.09pre83796.d541e0d (Flounder) which includes cd5dd9f and it has the same problem.

andrewrk commented 8 years ago

Also, look at how broken pavucontrol is: screenshot_2016-05-18_11-26-31

boobiesinc commented 8 years ago

tested: 16.09.git.f8177f7M (Flounder) (I didn't wait for a hydra :P took 38 hours of compilation total)

This seems mostly fixed, except, what you see here: iconvirtualbox_nixos2_19_05_2016_22_42_03 iconvirtualbox_nixos2_19_05_2016_22_41_40 iconvirtualbox_nixos2_19_05_2016_22_41_28 iconvirtualbox_nixos2_19_05_2016_22_41_10 iconsvirtualbox_nixos2_19_05_2016_22_39_20

aaaaand, this show-stopper for me https://github.com/NixOS/nixpkgs/issues/15474

see, pavu seems okay, @andrewrk : pavuvirtualbox_nixos2_19_05_2016_22_53_30

andrewrk commented 8 years ago

UI is completely missing in obs, I think this problem has to maybe do with qt or gtk or something.

screenshot_2016-05-19_13-43-44

andrewrk commented 8 years ago

Some programs are completely unusable.

andrewrk commented 8 years ago
QGtkStyle could not resolve GTK. Make sure you have installed the proper libraries.
andrewrk commented 8 years ago

pavucontrol gives many messages like this:

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:9:37: The style property GtkButton:child-displacement-x is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:10:37: The style property GtkButton:child-displacement-y is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:11:31: The style property GtkButton:default-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:12:39: The style property GtkButton:default-outside-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:13:30: The style property GtkButton:image-spacing is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:14:29: The style property GtkButton:inner-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:15:31: The style property GtkWidget:interior-focus is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:16:40: The style property GtkButtonBox:child-internal-pad-x is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:17:40: The style property GtkButtonBox:child-internal-pad-y is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:18:36: The style property GtkButtonBox:child-min-height is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:19:35: The style property GtkButtonBox:child-min-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:20:36: The style property GtkCheckButton:indicator-size is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:21:38: The style property GtkCheckMenuItem:indicator-size is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:22:32: The style property GtkExpander:expander-size is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:23:35: The style property GtkExpander:expander-spacing is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:26:33: The style property GtkMenu:horizontal-padding is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:27:31: The style property GtkMenu:vertical-padding is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:28:30: The style property GtkNotebook:initial-gap is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:29:30: The style property GtkNotebook:tab-overlap is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:30:27: The style property GtkPaned:handle-size is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:31:47: The style property GtkProgressBar:min-horizontal-bar-height is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:32:44: The style property GtkProgressBar:min-vertical-bar-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:33:28: The style property GtkRange:slider-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:34:28: The style property GtkRange:stepper-size is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:35:31: The style property GtkRange:stepper-spacing is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:36:29: The style property GtkRange:trough-border is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:37:37: The style property GtkRange:trough-under-steppers is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:38:29: The style property GtkScale:value-spacing is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:41:37: The style property GtkScrollbar:min-slider-length is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:43:48: The style property GtkScrolledWindow:scrollbars-within-bevel is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:44:31: The style property GtkStatusbar:shadow-type is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:49:33: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:50:30: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:51:31: The style property GtkWidget:interior-focus is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:52:27: The style property GtkWidget:link-color is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:53:35: The style property GtkWidget:visited-link-color is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:94:13: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:95:13: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:95:25: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:100:13: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:101:21: The '-gtk-image-effect' property has been renamed to '-gtk-icon-effect'

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:105:21: The '-gtk-image-effect' property has been renamed to '-gtk-icon-effect'

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:113:27: The :prelight pseudo-class is deprecated. Use :hover instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:123:30: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:179:30: The style property GtkWidget:focus-padding is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:180:33: The style property GtkWidget:focus-line-width is deprecated and shouldn't be used anymore. It will be removed in a future version

(pavucontrol:31712): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:214:19: The :insensitive pseudo-class is deprecated. Use :disabled instead.
boobiesinc commented 8 years ago

For me, this is the only message that I get

$ pavucontrol 

** (pavucontrol:1045): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
andrewrk commented 8 years ago

I just updated to 16.09pre83955.cc41cb3 (Flounder) and this is still not fixed. This commit is after the one @boobiesinc said is working.

During the slow login time the hard drive light is blinking rapidly. Perhaps an icon/ui directory is specified incorrectly and xfce is searching for the files but never finds them.

@boobiesinc can I see your nixos config?

andrewrk commented 8 years ago

Updated to 16.09pre84456.b7c38c7 (Flounder), problem still exists.

andrewrk commented 8 years ago

Updated to 16.09pre84513.2661511 (Flounder), problem still exists.

Why am I the only person who cares about this? Maybe I should go fix it myself.

abbradar commented 8 years ago

@andrewrk Strange thing is -- I don't observe any problems. I don't use XFCE's panel or desktop, but I set my themes through XFCE control panel (I use Adwaita from GNOME3) and everything looks and works fine.

andrewrk commented 8 years ago

@abbradar what does your pavucontrol look like? or network manager? screenshot_2016-06-01_14-23-36

Can I see your /etc/nixos/configuration.nix?

abbradar commented 8 years ago

Full screenshot. Notice taffybar as panel and xmonad as window manager, but otherwise it's managed by xfce4-session. Also there is a fallback icon instead of a proper "lock channels" one in pavucontrol but it doesn't seem related to this issue (was like this from the beginning of times I think).

My configuration, desktop-specific part My configuration, common part

andrewrk commented 8 years ago

Thanks this is helpful. And what is your nixos-version?

abbradar commented 8 years ago

16.09.git.4ee615b (Flounder), but essentially it's b835f3e26202c0670103a1d622edbb438bae5fe1

andrewrk commented 8 years ago

@abbradar you just have xfce installed; you're not using services.xserver.desktopManager.xfce.enable = true; so I think this is why our environments are different.

abbradar commented 8 years ago

https://github.com/abbradar/dotfiles/blob/master/nixos-book/configuration.nix#L339

andrewrk commented 8 years ago

Oops, I forgot you linked to two configs. My mistake.

abbradar commented 8 years ago

FWIW I also load xfce + xmonad session.

And right now, when I rebooted to check that for you, I got Firefox unthemed! Possibly linked, investigating... pavucontrol and brothers work fine though.

abbradar commented 8 years ago

@andrewrk Do you have GTK2 applications themed? It appears I've lost all theming for them...

joelmo commented 8 years ago

I tried this config in a vm and things seem fine at nixos-16.09pre84513.2661511, startup time is normal:

{ config, lib, pkgs, ... }:

{
  imports = [ <nixos/tests/common/user-account.nix> ]; 

  services.xserver = {
    enable = true;
    desktopManager.xterm.enable = false;
    desktopManager.xfce.enable = true;
  };
}

snapshot2

abbradar commented 8 years ago

Fixed my problem -- I should have chosen not xfce + xmonad but xfce session to have XMonad started by xfce4-session (I usually do that but I forgot now). Otherwise all applications that are started via xmonad do not inherit Xfce's GTK theme.

andrewrk commented 8 years ago

Maybe I'll skim down to a more minimal system, and then do a git bisect in nixpkgs to figure out the first commit that went wrong.

abbradar commented 8 years ago

Have you tried moving .xfce, .config and .local somewhere and test if it helps? Or just create a new temporary user.

andrewrk commented 8 years ago

I tried creating a new temporary user, and here's what happened:

joelmo commented 8 years ago

@andrewrk do you use the setting services.xserver.layout?

FRidh commented 8 years ago

and now my pavucontrol is also messed up. I am using KDE5/Plasma. Because it suddenly got slow again I removed a bunch of dot files and that got it working again. But since then pavucontrol looks as @andrewrk showed, except for having Breeze icons.

andrewrk commented 8 years ago

I am extremely pleased to report that after updating to 16.09pre87524.2ef1c6b (Flounder) this issue is now fixed!