Can't install bspwm community edition

Link to Reddit post

I’ve recently bought a Tuxedo Computers notebook:

I wanted a computer to just run Linux.

This machine came with Tuxedo OS, basically a custom Ubuntu.

I’ve installed the bspwm community edition, boot up and it seems kinda “functional” but not usable in any way.

I can see polybar and my cursor, pressing Super + Enter does open a window because I see the cursor being centered within those, also I can type in commands because I was able to reboot from this invisible terminal.
Pressing Super + 1-9 doesn’t switch workspaces, or at least I’m not seeing anything in polybar to indicate that.
I’m able to go to a tty and type in commands, that’s about it.
Running startx shows 3 weird white terminals in odd placings on the screen. Don’t really see errors.

Googling gets me to a lot of “blank screen” posts which are kind of similar but seem to mostly be about sxhkd not being installed or something not having the correct permissions due to ppl manually installing bspwm.

This is a fresh install from the live iso, I completely wipe the NVMe during the installation.

I tried the current version Cassini and the previous one that my old laptop is running Artemis nova.

Please let me know if I can add more info/logs that would help figuring out this problem. Or if I botched up making this post in any way.

~/.config/bspwm/bspwmrc

#! /bin/sh

pgrep -x sxhkd > /dev/null || sxhkd &

bspc monitor -d I II III IV V VI VII VIII IX X

bspc config border_width         2
bspc config window_gap          12

bspc config split_ratio          0.52
bspc config borderless_monocle   true
bspc config gapless_monocle      true
bspc config pointer_follows_focus true
bspc config focus_follows_pointer true

bspc rule -a Gimp desktop='^8' state=floating follow=on
bspc rule -a Chromium desktop='^2'
bspc rule -a firefox desktop='^2'
bspc rule -a mplayer2 state=floating
bspc rule -a Yad state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off


# Border
bspc config focused_border_color        "#6c71c4"
bspc config normal_border_color         "#073642"
bspc config active_border_color         "#073642"

#
# Autostart
#
# Set display from arandr saved script
sh ~/.screenlayout/monitor.sh &
# Bar
~/.config/polybar/launch.sh &
# Notifications
/usr/bin/dunst &
# Polkit
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
# Wallpaper
nitrogen --restore &
# Dex
dex -a -s /etc/xdg/autostart/:~/.config/autostart/  &
# Picom
# picom -b &
# Network Applet
nm-applet --indicator &

# Cursor
xsetroot -cursor_name left_ptr &

# Low battery notifier
~/.config/bspwm/scripts/low_bat_notifier.sh

~/.config/sxhkd/sxhkdrc

#
# wm independent hotkeys
#

# terminal emulator
super + Return
	xfce4-terminal

# program launcher
super + d
	rofi -modi drun -show drun -line-padding 4 \
                -columns 2 -padding 50 -hide-scrollbar -terminal xfce4-terminal \
                -show-icons -drun-icon-theme "Qogir-dark" -font "Droid Sans Regular 10"

# show open window
super + ctrl + d
	rofi -modi drun -show window -line-padding 4 \
                -columns 2 -padding 50 -hide-scrollbar -terminal xfce4-terminal \
                -show-icons -drun-icon-theme "Qogir-dark" -font "Droid Sans Regular 10"

# show ssh sesssions
super + shift + d
	rofi -modi drun -show ssh -line-padding 4 \
                -columns 2 -padding 50 -hide-scrollbar -terminal xfce4-terminal \
                -show-icons -drun-icon-theme "Qogir-dark" -font "Droid Sans Regular 10"

# power-menu 
super + shift + e
     ~/.config/rofi/powermenu.sh

# make sxhkd reload its configuration files:
super + Escape
	pkill -USR1 -x sxhkd

#
# bspwm hotkeys
#

# quit/restart bspwm
super + alt + {q,r}
	bspc {quit,wm -r}

# close and kill
super + {_,shift + }q
	bspc node -{c,k}

# alternate between the tiled and monocle layout
super + m
	bspc desktop -l next

# send the newest marked node to the newest preselected node
super + y
	bspc node newest.marked.local -n newest.!automatic.local

# swap the current node and the biggest window
super + g
	bspc node -s biggest.window

#
# state/flags
#

# set the window state
super + {t,shift + t,s,f}
	bspc node -t {tiled,pseudo_tiled,floating,fullscreen}

# set the node flags
super + ctrl + {m,x,y,z}
	bspc node -g {marked,locked,sticky,private}

#
# focus/swap
#

# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
	bspc node -{f,s} {west,south,north,east}

# focus the node for the given path jump
super + {p,b,comma,period}
	bspc node -f @{parent,brother,first,second}

# focus the next/previous window in the current desktop
super + {_,shift + }c
	bspc node -f {next,prev}.local.!hidden.window

# focus the next/previous desktop in the current monitor
super + bracket{left,right}
	bspc desktop -f {prev,next}.local

# focus the last node/desktop
super + {grave,Tab}
	bspc {node,desktop} -f last

# focus the older or newer node in the focus history
super + {o,i}
	bspc wm -h off; \
	bspc node {older,newer} -f; \
	bspc wm -h on

# focus or send to the given desktop
super + {_,shift + }{1-9,0}
	bspc {desktop -f,node -d} '^{1-9,10}'

#
# preselect
#

# preselect the direction
super + ctrl + {h,j,k,l}
	bspc node -p {west,south,north,east}

# preselect the ratio
super + ctrl + {1-9}
	bspc node -o 0.{1-9}

# cancel the preselection for the focused node
super + ctrl + space
	bspc node -p cancel

# cancel the preselection for the focused desktop
super + ctrl + shift + space
	bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel

#
# move/resize
#

# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
	bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}

# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
	bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}

# move a floating window
super + {Left,Down,Up,Right}
	bspc node -v {-20 0,0 20,0 -20,20 0}
#
# Special hotkeys
#

# Multimedia keys
XF86AudioRaiseVolume
  amixer -q set Master 5%+ unmute

# Still multimedia
XF86AudioLowerVolume
  amixer -q set Master 5%- unmute

# still
XF86AudioMute
  amixer -D pulse sset Master toggle-mute
  
# amixer -q set Master toggle
# Simple amixer command seems to have problems unmuting device

# Brightness up
XF86MonBrightnessUp
  xbacklight -inc 5

# And brightness down
XF86MonBrightnessDown
  xbacklight -dec 5

# Screenshot
Print
  scrot "$(xdg-user-dir PICTURES)/screenshot-$(date +%F_%T).png"

super + Print
  ~/.config/bspwm/scripts/screenshot.sh

# Shortcuts
super + w 
  firefox

super + n 
  thunar  

super + F1
  ~/.config/bspwm/scripts/keybindings_rofi.sh

~/.xsession-errors

sh: /home/dmg/.screenlayout/monitor.sh: No such file or directory
WARNING: Setting geometry in section global doesn't exist
WARNING: Setting notification_height in section global doesn't exist
WARNING: Setting startup_notification in section global doesn't exist
WARNING: Setting verbosity in section global doesn't exist
WARNING: Section shortcuts is deprecated.
Settings in the shortcuts sections have been moved to the global section.
Alternatively you can bind shortcuts in you window manager to dunstctl commands. For that, see the manual for dunstctl.
Ignoring this section.
polybar|notice:  Parsing config file: /home/dmg/.config/polybar/config.ini
polybar|error: Invalid value for "bar/top.offset-x", using default value (reason: stof)
polybar|error: Invalid value for "bar/top.offset-y", using default value (reason: stof)
polybar|notice:  Loading module 'powermenu' of type 'custom/text'
polybar|notice:  Loading module 'bspwm' of type 'internal/bspwm'
/home/dmg/.gtkrc-2.0:4: Unable to find include file: "~/.gtkrc-2.0.mine"
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'keyhint' of type 'custom/text'
polybar|notice:  Loading module 'title' of type 'internal/xwindow'
polybar|notice:  Loading module 'backlight' of type 'internal/backlight'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'battery' of type 'internal/battery'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'pulseaudio' of type 'internal/pulseaudio'

(nitrogen:966): Gtk-WARNING **: 09:17:57.190: Unable to locate theme engine in module_path: "adwaita",

(nitrogen:966): Gtk-WARNING **: 09:17:57.190: Unable to locate theme engine in module_path: "adwaita",
[ 11/01/23 09:17:57.204 parse_config_libconfig WARN ] The refresh-rate option has been deprecated. Please remove it from your configuration file. If you encounter any problems without this feature, please feel free to open a bug report

(process:1014): GLib-CRITICAL **: 09:17:57.224: g_strv_contains: assertion 'str != NULL' failed
polybar|notice:  pulseaudio: using default sink 
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'memory' of type 'internal/memory'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'cpu' of type 'internal/cpu'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'caps' of type 'custom/script'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'num' of type 'custom/script'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'scroll' of type 'custom/script'
polybar|notice:  Loading module 'sps' of type 'custom/text'
polybar|notice:  Loading module 'date' of type 'internal/date'
polybar|notice:  Loaded 22 modules
dbus-daemon[1020]: Activating service name='org.a11y.atspi.Registry' requested by ':1.1' (uid=1000 pid=965 comm="/usr/lib/polkit-gnome/polkit-gnome-authentication-")
dbus-daemon[1020]: Successfully activated service 'org.a11y.atspi.Registry'
polybar|notice:  Loaded font "Iosevka Term:pixelsize=13" (name=Iosevka Term, offset=4, file=/home/dmg/.local/share/fonts/IosevkaTermNerdFontComplete.ttf)
polybar|notice:  Loaded font "Iosevka Term:pixelsize=6" (name=Iosevka Term, offset=1, file=/home/dmg/.local/share/fonts/IosevkaTermNerdFontComplete.ttf)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|error: Failed to reconfigure tray client, removing... (XCB_WINDOW (3))
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)
polybar|warn:  background_manager: Failed to get root pixmap, default to black (is there a wallpaper?)

(nm-applet:968): Gdk-CRITICAL **: 09:17:57.450: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
/home/dmg/.gtkrc-2.0:4: Unable to find include file: "~/.gtkrc-2.0.mine"

(nitrogen:966): Gtk-WARNING **: 09:17:57.642: Unable to locate theme engine in module_path: "adwaita",

(nitrogen:966): Gtk-WARNING **: 09:17:57.642: Unable to locate theme engine in module_path: "adwaita",
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
Created symlink /home/dmg/.config/systemd/user/timers.target.wants/eos-update-notifier.timer → /home/dmg/.config/systemd/user/eos-update-notifier.timer.
New '/home/dmg/.config/systemd/user/eos-update-notifier.service' successfully set up.
New '/home/dmg/.config/systemd/user/eos-update-notifier.timer' successfully set up.
eos-update-notifier service initialized for user 'dmg'.
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink auto_null
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
polybar|notice:  pulseaudio: using default sink alsa_output.pci-0000_00_1f.3.analog-stereo
WARNING: No icon found in path: 'nm-no-connection'
WARNING: No icon found in path: 'nm-signal-75'

EDIT:
So I’ve come to the conclusion that it’s picom.
The picom line in bspwmrc is commented, but the dex line references/etc/xdg/autostart/ in which there is a picom.desktop.

Without picom.desktop on a reboot everything seems to work fine.

I’m guessing someone botched the picom.conf which must make all screens invisible… Or I’m missing something that this config needs to be functional.

I started reading your log. Let’s put display resolution in order:

mkdir .screenlayout
cd .screenlayout
arandr
 #Layout / Apply
 #Layout / Save As  monitor
 #Super+Q
chmod +x monitor.sh

log out or Reboot (to be continued)

I can’t run arandr nor xrandr.
In the tty it says for arandr:
RuntimeError: Gtk couldn’t be initialized. Use Gtk.init_check() if you want to handle this case.
For xrandr simply:
Can’t open display

I can open arandr in bspwm by typing arandr in the invisible terminal I can open… But it’s invisible as well.

Edit:
By commenting everything that bspwmrc starts, I can get a terminal, and arandr opened. Did what’s described. Does not work when rebooting with everything uncommented again. Will go off all things that are commented to find culprit.

If reinstalling with selecting the NVIDIA… modern cards is not an option then
I’d boot the live USB and open a terminal from the task bar

sudo lsblk -f
 # you will see the disks 
 # in case you you used ext4 and the system is on dsa2
sudo mount /dev/sda2 /mnt
sudo arch-chroot /mnt
 ## you've arrived at your disk
su dmg   #we switched to user dmg 
cd 
mkdir .screenlayout
cd .screenlayout
nano monitor.sh # insert 2 lines
!/bin/sh
xrandr --output eDP1 --primary --mode 1920x1080 --pos 0x0 --rotate normal 
save it 
chmod +x monitor.sh
sudo umount -all
#reboot

I do not know your display name, wether file system is btrs etc.

What is the actual hardware? Please post just the link from the output.

inxi -Faz | eos-sendlog

Setting this with arandr doesn’t help, situation is the same.
See my edit in the post about picom

Log

Please see my edit about picom

I just wanted people to be able to see the actual hardware. Maybe someone can help that has more knowledge on Bspwm.

Edit: Have you tried removing the intel driver and run modesetting?

xf86-video-intel

Yeah, I’m just mention it because everything points to picom being the culprit. Don’t want the edit overlooked.

  • There was a change in picom package, which added an autostart system file (/etc/xdg/autostart).
  • dex is starting the autostart .desktop files (including picom).
  • To disable picom from autostarting, create a text file in
$HOME/.config/autostart/picom.desktop

The file name must be the same as the one in /etc/xdg/

Edit the file with contents:

[Desktop Entry]
Hidden=true
  • Save it and relogin.

Ok, so yeah, that’s a better way of turning it off, and I can use my pc now.

But I’d prefer all the software to be working… especially something that comes with the OS I’m installing.

is configured for the majority of HW/SW combinations out there.
Your system is either not compatible with picom, or needs configuration changes (most likely).
Have you checked any of your options?
https://wiki.archlinux.org/title/Picom
https://man.archlinux.org/man/picom.1

This was a very bad change IMO. It is breaking several installs

1 Like

If you read the file, it seems they don’t exactly know what they are doing.

You may want to ask/report the issue with previously installed systems and also major DEs that provide their own compositor.
They should add a property to exclude known DEs that provide a compositor by default, or better IMO remove it (:grimacing: ) and remove NoDisplay=false from the menu .desktop file, so that it is shown in normal menus.

I know you think "what don't you do it?"

Simple. I am in a bad mood and physical shape :sleeping:

Link them to freedesktop protocols, that they should already have read.
desktop entries
autostart

using xrender as backend seems to fix picom… BUT I’m still experiencing some weird things and for now it seems to only be regarding alacritty and qutebrowser. Both those programs open but don’t seem to register any keypresses until another node is opened. Only then I see something has happened to the first node. Kinda weird and hard to explain, very hard trying to search anything related.

My biggest guess is that because the laptop has a taller screen 2880x1800 it somehow fucks something bigger up that manifests in these strange things

I might just give up and choose a OS that Tuxedo Computers provides

Have you tried to install xcompmgr as a replacement for picom to see how it works ?
https://wiki.archlinux.org/title/Xcompmgr