Git Product home page Git Product logo

blackboxwm's Introduction

  • 🔭 I’m currently working on SS7 load generators and security testers and CloudSS7 distributed STP networks.
  • 🌱 I’m currently learning to be nicer to others.
  • 👯 I’m looking to collaborate on SS7 security.
  • 🤔 I’m looking for help with netconf, ipflow and netflow.
  • 💬 Ask me about Arch Linux (on AWS, OpenStack and NFV).
  • 📫 How to reach me: [email protected]
  • 😄 Pronouns: He/Him
  • ⚡ Fun fact: I wrote my first Chess program with APL in Grade 5 (circa '69) on an IBM 14100 front-end driven by a converted IBM Selectric Typewriter over an acoustic (Bell 110) modem.

blackboxwm's People

Contributors

abatyiev avatar bbidulock avatar deltaresero avatar dhgutteridge avatar psolyca avatar thesamesam avatar vl-80 avatar wandrien avatar winkj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blackboxwm's Issues

Put blackbox-0.72.6 Under the 'Releases'

Hi,

A lot of people might just be lazy like I am, and only look under the Releases for new versions;

https://github.com/bbidulock/blackboxwm/releases

But today I was a little less lazy and started reading to realize you have 0.72.6 released.

By the way, off topic here, but Openbox has not seen any development in 2 years, maybe the dust can be dusted off Blackbox and this WM brought back into some really serious development.

I hope maybe it's more compliant with tint2 now?

https://gitlab.com/o9000/tint2

Thanks for the new release, keep it up, I hope it will become even more active...

XSizeHints is made of int

The code wrongly assumes that XSizeHints contains unsigned int only, while this is not the case, leading to crashes if negative ints are found there
the crashes are like

blackbox: Window.cc:303: bt::Rect constrain(const bt::Rect&, const bt::EWMH::Strut&, const WMNormalHints&, Corner): Assertion `dw >= base_width && dh >= base_height' failed.
zsh: IOT instruction (core dumped)  blackbox

at the moment the patch

diff --git a/src/Window.cc b/src/Window.cc
index 71db507..4cebe3b 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -280,12 +280,12 @@ static bt::Rect constrain(const bt::Rect &rect,
               rect.right() - static_cast<signed>(margin.right),
               rect.bottom() - static_cast<signed>(margin.bottom));
 
-  unsigned int dw = r.width(), dh = r.height();
+  int dw = r.width(), dh = r.height();
 
-  const unsigned int base_width = (wmnormal.base_width
+  const int base_width = (wmnormal.base_width>0
                                    ? wmnormal.base_width
                                    : wmnormal.min_width),
-                    base_height = (wmnormal.base_height
+                    base_height = (wmnormal.base_height>0
                                    ? wmnormal.base_height
                                    : wmnormal.min_height);
 
@@ -299,6 +299,10 @@ static bt::Rect constrain(const bt::Rect &rect,
     dw = wmnormal.max_width;
   if (dh > wmnormal.max_height)
     dh = wmnormal.max_height;
+#ifdef    DEBUG
+    fprintf(stderr, "(dw, dh) = (%i, %i)\nbw=%i bh=%i\nbase_width\tmin_width\tbase_height\tmin_height\n %i\t%i\t%i\t%i\n",
+            dw, dh, base_width, base_height,wmnormal.base_width, wmnormal.min_width, wmnormal.base_height, wmnormal.min_height);
+#endif // DEBUG
 
   assert(dw >= base_width && dh >= base_height);

is the fastest possible correction in the case

(dw, dh) = (640, 480)
bw=-1 bh=-1
base_width	min_width	base_height	min_height
 -1	1	-1	1

but the correct solution is to change the data type from unsigned int to int everywhere it is needed

Probably a silly question - Shell for server usage?

I was currently thinking of having a windows server at home for serving a web site, but when I saw the prices I got a heart attack.

When I came across this project, my first thought was:
Replacing the Windows shell with something that does nothing is as close as a Windows Desktop OS can get to Windows Server Edition.

At least, some attack vectors from the shell will go away (although, I suppose, the MS shell files are still on the disk and can potentially be exploited) and the resource consumption from the graphical interface can be minimized as done in the Windows Core editions.
Also, there are no core/user/device licensing restrictions on Windows Desktop (Home or Pro), so this is great.

Have you ever thought of going towards this alternate direction?
I am not an expert on this, but replacing the shell with something that does nothing sounds way easier than replacing it with a functional shell.
And it has real value, since all MS Windows can be managed remotely via Windows Admin Center nowadays.

Some downsides to this are :

  1. You still have the whole OS on the disk that requires many GBs.
  2. You still have to apply huge updates.
  3. Maybe you still have to restart often.
  4. WAC does not seem to support triggering remote updates on Home and Pro editions. But that should be fixable since there are PowerShell scripts online that do that.

Fails to compile on FreeBSD

Hello, I have downloaded 0.77 Relase and ran:
./configure && gmake
Which gave me these errors:

  CXXLD    blackbox
/usr/local/bin/ld: Configmenu.o: in function `ConfigFocusmenu::ConfigFocusmenu(bt::Application&, unsigned int, BScreen*)':
/usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:228: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:232: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:234: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:236: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:238: undefined reference to `libintl_gettext'
/usr/local/bin/ld: Configmenu.o:/usr/home/yabai/dloads/chrome/blackbox-0.77/src/Configmenu.cc:386: more undefined references to `libintl_gettext' follow
/usr/local/bin/ld: main.o: in function `main':
/usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:97: undefined reference to `libintl_bindtextdomain'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:98: undefined reference to `libintl_textdomain'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:135: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:105: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:115: undefined reference to `libintl_gettext'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/src/main.cc:125: undefined reference to `libintl_gettext'
/usr/local/bin/ld: ../lib/.libs/libbt.a(Application.o): in function `bt::Application::closeMenu(bt::Menu*)':
/usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Application.cc:629: undefined reference to `libintl_gettext'
/usr/local/bin/ld: ../lib/.libs/libbt.a(Application.o):/usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Application.cc:233: more undefined references to `libintl_gettext' follow
/usr/local/bin/ld: ../lib/.libs/libbt.a(Unicode.o): in function `bt::hasUnicode()':
/usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:181: undefined reference to `libiconv_open'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:188: undefined reference to `libiconv_close'
/usr/local/bin/ld: ../lib/.libs/libbt.a(Unicode.o): in function `void bt::convert<std::__cxx11::basic_string<unsigned int, std::char_traits<unsigned int>, std::allocator<unsigned int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, std::__cxx11::basic_string<unsigned int, std::char_traits<unsigned int>, std::allocator<unsigned int> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [clone .constprop.0]':
/usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:82: undefined reference to `libiconv_open'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:103: undefined reference to `libiconv'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:139: undefined reference to `libiconv_close'
/usr/local/bin/ld: ../lib/.libs/libbt.a(Unicode.o): in function `void bt::convert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<unsigned int, std::char_traits<unsigned int>, std::allocator<unsigned int> > >(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<unsigned int, std::char_traits<unsigned int>, std::allocator<unsigned int> >&) [clone .constprop.0]':
/usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:82: undefined reference to `libiconv_open'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:103: undefined reference to `libiconv'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:132: undefined reference to `libiconv_close'
/usr/local/bin/ld: /usr/home/yabai/dloads/chrome/blackbox-0.77/lib/Unicode.cc:139: undefined reference to `libiconv_close'
collect2: error: ld returned 1 exit status
gmake[2]: *** [Makefile:557: blackbox] Error 1
gmake[2]: Leaving directory '/usr/home/yabai/dloads/chrome/blackbox-0.77/src'
gmake[1]: *** [Makefile:477: all-recursive] Error 1
gmake[1]: Leaving directory '/usr/home/yabai/dloads/chrome/blackbox-0.77'
gmake: *** [Makefile:407: all] Error 2

I tried to Google the errors but wasn't able to fix them.
Any help?

Autostart?

Which way should I choose if I want to autostart my program on blackbox on startup?
Is there a X11-similar config file for specifing this?

0.73 release tarball and release notes missing

Looking at the "Releases" page, I see that blackbox 0.73 has been released, but there is no official (.tar.xz) source code file. Could you provide one please? I would like to update the package in pkgsrc.

Build crash with --enable-shared

Dear upstream,

I am trying update the Debian package to 0.76 version. We use --enable-shared option. The final result is:

/usr/bin/ld: Window.o: undefined reference to symbol 'XShapeCombineShape'
/usr/bin/ld: /lib/x86_64-linux-gnu/libXext.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Thanks in advance.

Regards,

Eriberto

autogen.sh doesn't work correctly with all gettext versions (e.g. 0.20.1)

Two related things here. I can see that commit "handle gettext 0.19.5.1" f57b101 added some sed to only match the first three parts of a gettext version number, presumably to work around the fact autopoint would fail to find infrastructure files for "0.19.5.1". Unfortunately, this doesn't work with gettext 0.20.1, which is the same situation.

I also don't follow in general why it's necessary to override the gettext version required for a non-developer build invocation? (In downstream packaging for pkgsrc.org, I've just commented out those particular lines for now. NetBSD/pkgsrc@29e0ba4.)

Alt-Drag triggers Alt menu in Firefox and Wine apps

When I use Alt-mouse to move/resize a window with Blackbox, the menu activates in certain applications. For example, with Firefox, the menu is normally invisible. Pressing Alt shows the menu and transfers keyboard focus to it. The problem also affects Wine (e.g. Notepad), because Alt transfers focus to the menu in Windows.

Ideally, pressing Alt would not activate the menu.

Somehow, xfwm4 avoids this problem, but I'm not sure how. Maybe it's got something to do with window focus. The Alt-Tab switching in bbkeys also avoids the problem.

(Aside: The problem is much worse in Windows. The solution that altdrag uses is to generate a fake Ctrl keypress (e.g. AltDown -> dragging -> CtrlDown -> CtrlUp -> AltUp), but I didn't see any Ctrl keypresses with xev.

Edit: I'm using commit 8c9e2af, Blackbox 0.72.

Handbrake Gui Flickers In Blackbox

Hi,

My Specs;
Slackware 14.1 x86_64
Blackbox 0.71.1
nvidia-driver-352.63
xorg-server-1.14.3
handbrake 0.9.9

I'm not sure what's causing this, I've never seen this before, only in Blackbox, the original 0.70.1 and your fork.

When I start handbrake the right side of the window flickers really bad.

I have compton the composite manager, but this happens with it running, or not.

I created a video so you can watch this.

http://www29.zippyshare.com/v/inMVUnG6/file.html

Compilation error lib/Application.cc

I am trying to compile Blackbox on a Ubuntu server (I need a minimal WM).
I have a compilaiton error due to commit 305ae39.

dev@psodev:~/repositories/blackbox$ make
[...]
Making all in lib
make[2] : on entre dans le répertoire « /home/dev/repositories/blackbox/lib »
CXX Application.lo
Application.cc: In member function ‘void bt::Application::run()’:
Application.cc:270:7: error: ‘errno’ was not declared in this scope
errno = 0;
^
Makefile:567 : la recette pour la cible « Application.lo » a échouée
make[2]: *** [Application.lo] Erreur 1
make[2] : on quitte le répertoire « /home/dev/repositories/blackbox/lib »
Makefile:472 : la recette pour la cible « all-recursive » a échouée
make[1]: *** [all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dev/repositories/blackbox »
Makefile:402 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2

So I think errno.h has been missing as an include.
I will propose a PR for this issue.

Question/Request - Centering feh UI?

Hi bbidulock,

I use feh to set wallpapers in Blackbox and Openbox. In Openbox I can use a cmd in the rc.xml which will center the UI, but in Blackbox the Window Placement setting doesn't work, I have it on center with nothing happening.

Do you know how I can get the feh UI to center, or if this is not possible in blackbox, maybe you can do something to change/fix this?

This is the entry I have for it in the menu;

[submenu] (Wallpaper)
    [exec] (Feh)                  {feh -Tbgpreview "/home/foo/Wallpaper/"} 
  [end]

Here's a screen shot, it always opens up in the upper left of the screen when I open it.

feh

Iconified Window Disable?

Hi,

If I'm not mistaken, the orignal Blackbox already has a Workspaces popup when you double click both left & right mouse button, at least that's how I always remember it, and I see it's still in this fork 0.71.1.

So I'd like to be able to disable this left click window and remove it, is that possible? I'm assuming this is a new feature you added, do you have a compile time --disable option? If not, can you please make one to disable this at compile.

For me this left click window gets in the way and pops up a lot when I need to left click on something.

Or maybe a Menu option to enable and disable between which one a person wants to use? Hmm

I've attached a screen shot of the original middle click window.

iconified

BB 0.75 fails to build in centos8

gettext-devel-0.19.8.1-17.el8.x86_64

  • cd blackbox-0.75
  • autoreconf -fiv
    autoreconf: Entering directory `.'
    autoreconf: running: autopoint --force
    autopoint: *** The AM_GNU_GETTEXT_VERSION declaration in your configure.ac
    file requires the infrastructure from gettext-0.20 but this version
    is older. Please upgrade to gettext-0.20 or newer.
    autopoint: *** Stop.
    autoreconf: autopoint failed with exit status: 1
    error: Bad exit status from /var/tmp/rpm-tmp.NTRWh7 (%build)

Conky name appears in toolbar

In 0.72.6 in the center of the toolbar, where you normally see the name of windows, conky has it's name listed there.

These are the options I use for conky, is there anyway to get the name removed from the toolbar?

conky.config = {
override_utf8_locale = false,
background = true,
use_xft = true,
font = 'noto sans:size=10.5',
xftalpha = 0.8,
out_to_console = false,
out_to_stderr = false,
update_interval = 3.0,
total_run_times = 0,
draw_shades = false,

own_window = true,
own_window_class = 'Conky',
own_window_type = 'desktop',
own_window_transparent = true,
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',

own_window_argb_visual = true,

minimum_width = 1920,
maximum_width = 1920,

double_buffer = true,
default_color = '5370c3',
color1 = 'e0cdc3',

alignment = 'top_middle',
gap_y = 5,
no_buffers = true
}

conky.text = [[
${alignc}${color}CPU1: ${color1}${cpu cpu0}%
${color}CPU2: ${color1}${cpu cpu1}%
${color}CPU3: ${color1}${cpu cpu2}%
${color}CPU4: ${color1}${cpu cpu3}% - ${freq}MHz - ${hwmon 0 temp 1} °C
${color}GPU: ${color1}${nvidia gpuutil}% - ${nvidia temp} °C
${color}RAM: ${color1}${mem} - $memperc%
${color}SSD: ${color1}${fs_free /} free
${color}LAN: ${color1}${addr eth0} - ${downspeed eth0} down - ${upspeed eth0} up
${color}UP: ${color1}$uptime_short
]]

0.72.6 - Tint2 Sits Above Toolbar

Hi,

I've been hoping support for tint2 might work, but I notice that tint2, when the toolbar is disabled, tint2 will still sit on the desktop, just above where the toolbar is normally located.

I guess tint2 seems to think the toolbar is located below, therefore it places itself above it.

Hopefully this is something you can work out, I'd really love to use tint2 in blackbox.

Thanks

Setting a non-maximized window to fullscreen causes the title bar to remain

I run into this while using Firefox. Setting Firefox to fullscreen (pressing F11) when it is not maximized causes the window title bar to remain.

It does not happen when Firefox window is first maximized and then set to fullscreen.

When a maximized window is going full screen following functions are called (in Window.cc)

SetFullScreen()
   |
   |-->configure()
         |
         |-->redrawWindowFrame()

The redrawWindowFrame() in this case does not render title bar because if (client.decorations & WindowDecorationTitlebar) condition is not met.

However, for a non maximized window, following functions are also called multiple times while window is being expanded:

propertyNotifyEvent()
   |
   |-->update_decorations()
   |-->reconfigure()
         |
         |-->configure()
               |
               |-->redrawWindowFrame()

If I understand correctly, update_decorations() enables decorations for the window. And when redrawWindowFrame() is called, the if (client.decorations & WindowDecorationTitlebar) evaluates to TRUE and the title bar is being rendered.

I assume it can be fixed by adding following code to the update_decorations() function

if (ewmh.fullscreen) {
   decorations = NoWindowDecorations;
   functions &= ~(WindowFunctionMove |
                  WindowFunctionResize |
                  WindowFunctionShade);
}

Link to patch

bbkeys seg fault

I just pulled from git today and compile 0.71.2 and when I run bbkeys I get a seg fault at the command line. In the last version, 0.71.1 bbkeys was working ok.

bbkeys: ScreenHandler: in findSupportingWM.
bbkeys: ScreenHandler: first readSupportingWMCheck succeeded.
bbkeys: ScreenHandler: second readSupportingWMCheck worked.
bbkeys: ScreenHandler: first try at getting wmName failed.
bbkeys: ScreenHandler: couldn't get wm's name. letting it slide this time....
bbkeys: ScreenHandler: Found compatible window manager: [beats the heck out of me] for screen: [0].
bbkeys: ScreenHandler: Supported atoms: [45].

Blackbox Needs To Step Into the 21st Century - PLEASE!

Hello,

I personally think Blackbox aka BB is the best WM for Linux when it first started by ‎Bradley.

Then Openbox and I'm sure life for ‎Bradley came along, and BB died out.

  1. Blackbox use to have a list of themes on box-look.org as if the people who are running this site removed everyone of them, I mean WTF! PLEASE contact them and see about getting BB themes put back on.

  2. Yes tint2 doesn't play nice with BB, but can you PLEASE contact o9000, the developer and ask him to please better support BB, that you are maintaining.

  3. Styles/Menus of BB are way to Dated, like 1990 Linux, and for all the old died hards, ok, I said I used BB in the beginning and I loved it, but, it would be nice to modernize the style and menu.

I'm not a developer or coder, if I was, I'd do all these things, I also don't have the time, I look to those like you to do these things, if you have the time, it would be greatly appreciated.

Openbox development is dead, and people think because everything works perfect, sorry software has bugs and there's no such thing as perfect, and for other personal reasons, I'd rather not use Openbox, but BB is still to outdated and not with the times.

I know using the small window managers of Linux is not the popular choice, most use KDE, or Gnome, Cinnamon, XFce, etc...

BUT I do know there are still alot of people out there like me that do like the small window managers, because those of us that run Linux and know how to run Linux don't need bloated desktops, and soon come to realize with all that bloat comes issues and bugs.

I'm a Slackware Geek, and I say, if you need to use KDE or Gnome, then stick to Windows!

Openbox and Blackbox is all a Geek needs! LOL... Or for the Tilling Geeks, i3...

THANKS

Build new blackbox on BSD/UNIX os

Hello;
I was very happy to see some people work on and use great blackbox.
I tried to build it under bsd but get this error date: illegal option -- - :

./autogen.sh
date: illegal option -- -
usage: date [-jnRu] [-r seconds] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
autoreconf-2.69: Entering directory `.'
autoreconf-2.69: running: autopoint --force
Copying file po/Makefile.in.in
autoreconf-2.69: running: aclocal --force -I m4
/usr/local/share/aclocal/libxosd.m4:9: warning: underquoted definition of AM_PATH_LIBXOSD
/usr/local/share/aclocal/libxosd.m4:9:   run info Automake 'Extending aclocal'
/usr/local/share/aclocal/libxosd.m4:9:   or see https://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal
autoreconf-2.69: configure.ac: tracing
autoreconf-2.69: configure.ac: not using Libtool
autoreconf-2.69: running: /usr/local/bin/autoconf-2.69 --force
configure.ac:84: error: possibly undefined macro: AC_DISABLE_SHARED
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf-2.69: /usr/local/bin/autoconf-2.69 failed with exit status: 1

this error is due to the fact that the script is using BSD version of tools .
I am sure of this one.
the gnuversion of tools are in /usr/local/bin.
Could you help me?

X clipboard support?

When I copy something in Electron, or Firefox, or even xterm, xclip can read it. But when trying to use xclip to set the contents of the clipboard, Electron and Firefox don't pick up on it but xterm does.

What gives? What allows Electron and Firefox to know what I copy in the other, but not know when xclip changes the clipboard? And why does that happen if xterm still updates, telling me that xclip is not nonfunctional?

I feel like this can only be attributed to blackbox. I think it's not properly monitoring the X clipboard for changes, and notifying apps that use EWMH/whatever other APIs that they are using.

Would it be possible to change this behavior? Is this not blackbox's fault but something else? Please let me know, because this is preventing me from using any command line utilities to copy things to my clipboard :/

blackbox crashes desktop icon managers

blackbox crashes a desktop icon manager on start up or when switching blackbox styles from the menu.

Tested applications:

pcmanfm and stuurman-desktop emit the message:

Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

caja prints the following:

(caja:183925): Gdk-WARNING **: 15:30:58.837: The program 'caja' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
  (Details: serial 19573 error_code 9 request_code 62 (core protocol) minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

xfdesktop exits without any messages.

Bugs Releated To Tint2

Hi,

My System Specs;
Slackware 14.1 x86_64
Blackbox 0.71.1
tint2 0.12.7

Tint2 is back in active development and I hope you can please improve support for it.

https://gitlab.com/o9000/tint2/

I opened a ticket asking for support for the original Blackbox;

https://gitlab.com/o9000/tint2/issues/551

According to the developer his words;

**
Tint2 does not use custom code for every WM that is out there; instead, tint2 assumes that the WM implements a specification called EWMH, also called NetWM. This describes how the window manager interacts with other applications, such as the panel.

A lot of WMs implement this specification to the letter. Openbox, Fluxbox, Kwin, XFCE, GNOME and probably others. As a result tint2 works perfectly fine with all of these without needing any custom code.
**

This report I opened was with the original Blackbox 0.70.1, but since you've forked and updated I see one improvement, the numbers now appear in the tint2 panel. :)

These are the few issues I still have.

1. I had to change the option disable_transparency = 1 to use pseudo transparency. Using = 0 doesn't work for true transparency, can Blackbox work with true transparency?

2. Tint2 with the default setting of, panel_margin = 0 0 will not allow tint2 to sit at the bottom of the screen, this setting works in Openbox. I had to change it to, panel_margin = 0 -33 to push tint2 to the bottom of the screen. The tint2 developer suggested to see how screen margins are configured in blackbox.

3 Releated to what appears maybe screen margins again, when I maximize the size of a window, it fills the entire screen and goes behind tint2, it does not sit on the top of tint2 like it should.

4. If I have a window minimized to tint2, and then click on another workspace section of tint2, the application follows and jumps over to the next workspace too, but if the window is not minimized, this doesn't happen.

BB-conf wont compile

bbconf doesn't work because of dependencies that are outdated and aren't available anymore.
I'm not very technically skilled so I'm unable to find out which ones.

Moving a window generates a backlog of move commands with high-speed mice

I'm using a Logitech G400 mouse, which generates mouse input at 1000Hz. Apparently the more typical rate is around 100Hz. This mouse generates noticeably more X11 events (e.g. run xev | nl).

Using Blackbox, when I move a window, there is a substantial lag from moving the mouse pointer and the window itself moving. Presumably there is a message/event queue somewhere with move commands in it, and some(?) applications aren't able to keep up with the move commands.

With a slower-speed mouse, this problem doesn't happen.

Counter-intuitively, window resizing isn't affected.

It doesn't matter whether I use Alt-mouse or click the title/resize-box.

This problem does affect other window managers (e.g. xfwm4, but I also saw the problem with MATE and GNOME Flashback). Sometimes enabling compositing seems to fix the issue. I hacked around the problem in xfwm4 by adding rate limiting. I also wrote my own alternative to altdrag on Windows, where I instead fixed the problem using synchronous move/resize operations on a dedicated thread, driven by a command buffer where I collapsed subsequent move/resize commands.

I might just give up and find a slower mouse.

Blackbox version: 0.72, commit 8c9e2af.

YouTube video of the issue: https://www.youtube.com/watch?v=mwBH_AkhW_Q&feature=youtu.be

Can't launch using gsettings

Hello, I am using blackbox 0.76-1 from Arch Linux community repo. I am using MATE desktop and I tried to change to this WM using instructions from the wiki

Using gsettings it did not work, but I could just add blackbox to autostart and I am using it right now.

I checked with different wm's (metacity and ukwm) it worked as expected so it is not gsettings issue.

Man page blackbox.1.gz becomes unzipped...

Hi,

I'm running Slackawre 14.1 x86_64 and Slack gunzips man pages, and this is my compile and options I have regarding man for my build script;

--mandir=/usr/man \

if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
for manpagedir in $(find . -type d -name "man*") ; do
( cd $manpagedir
for eachpage in $( find . -type l -maxdepth 1) ; do
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
gzip -9 *.?
)
done
)
fi

I'm not sure why, but I've noticed that in /usr/man/man1 blackbox1.gz ends up unzipped as blackbox.1, and then I end up with both files.

I've been messing with blackbox compiling it over for the past few days, and everytime I delete blackbox.1 it still appears, not sure what's causing this.

blackbox @0.75 does not build on Big Sur, macOS 11.0.1, because of "Undefined symbols for architecture x86_64: "_libiconv"

It's reported first here: https://trac.macports.org/ticket/61485. The cause is that lib/Makefile does not add libiconv to target libbt:

--- lib/Makefile.in~ 2019-09-06 11:55:04.000000000 +0200
+++ lib/Makefile.in 2020-11-16 00:36:15.000000000 +0100
@@ -458,7 +458,7 @@
Util.hh
XDG.hh

-libbt_la_LIBADD = $(XFT_LIBS) $(XEXT_LIBS) $(X11_LIBS)
+libbt_la_LIBADD = $(XFT_LIBS) $(XEXT_LIBS) $(X11_LIBS) $(LTLIBICONV)
pkgconfigdir = $(libdir)/pkgconfig
nodist_pkgconfig_DATA = libbt.pc
all: all-am

Feature request: Add configure option to use Mod4 (or whatever) instead of Mod1 for window moving and resizing

After a lot of Googling for how to use the Windows/Super key instead of Alt for moving windows around, I finally decided to check the source code and saw that Mod1 is hardcoded (at least I think it is):

blackboxwm/src/Window.cc

Lines 1862 to 1872 in 7d9bb9d

if (hasWindowFunction(WindowFunctionMove))
blackbox->grabButton(Button1, Mod1Mask, frame.window, True,
ButtonReleaseMask | ButtonMotionMask, GrabModeAsync,
GrabModeAsync, frame.window,
blackbox->resource().cursors().move,
blackbox->resource().allowScrollLock());
if (hasWindowFunction(WindowFunctionResize))
blackbox->grabButton(Button3, Mod1Mask, frame.window, True,
ButtonReleaseMask | ButtonMotionMask, GrabModeAsync,
GrabModeAsync, frame.window,
None, blackbox->resource().allowScrollLock());

It would be nice to be able to change that from some rc value like I have been able to in other window managers. I am also used to Win+middle button for resizing, so I guess being able to change the mouse button used in the above code using an rc file value would be good too :)

Font rendering issue on Alpine Linux

I compiled successfully blackbox on Alpine Linux but it appeared to has a font rendering issue which I couldn't figured out why.

Compile environment:

Gcc 8.2 x86_64
CFLAGS="-Os -fomit-frame-pointer"
LDFLAGS="-Wl,--as-needed"

Compile steps:

./autogen.sh
./configure --prefix=/usr --mandir=/usr/share/man --disable-nls
make

Linking status:

$ ldd /usr/bin/blackbox
	/lib/ld-musl-x86_64.so.1 (0x7f4e8e57c000)
	libXft.so.2 => /usr/lib/libXft.so.2 (0x7f4e8e314000)
	libXext.so.6 => /usr/lib/libXext.so.6 (0x7f4e8e104000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x7f4e8dfe1000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7f4e8de8c000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f4e8de78000)
	libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f4e8e57c000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x7f4e8dc3e000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x7f4e8d98e000)
	libXrender.so.1 => /usr/lib/libXrender.so.1 (0x7f4e8d784000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x7f4e8d55e000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x7f4e8d53b000)
	libuuid.so.1 => /lib/libuuid.so.1 (0x7f4e8d335000)
	libbz2.so.1 => /usr/lib/libbz2.so.1 (0x7f4e8d128000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x7f4e8cefa000)
	libz.so.1 => /lib/libz.so.1 (0x7f4e8cce3000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x7f4e8cae0000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x7f4e8c8da000)
	libbsd.so.0 => /usr/lib/libbsd.so.0 (0x7f4e8c6c8000)

blackbox-font

Possibly A Few Good Patches?

I was looking through the patches applied, and I found these others online I didn't notice added, not sure if any are needed...

Please check if you might need these, I'm not sure if any are useful.

bbdock.patch
https://gist.github.com/Geyup/e7be8e57aa546b854ec7

asneeded.patch
https://gist.github.com/Geyup/75d8a3e994999e87f665

configure.patch
https://gist.github.com/Geyup/61fa53b66f3627578f9d

fix-spelling-errors.diff
https://gist.github.com/Geyup/e99c429ce8b6a3bd508e

focus.diff
https://gist.github.com/Geyup/a32d45c94f7ab3b4c1c7

manpage-tidyup.diff
https://gist.github.com/Geyup/dc4c972a44333f9ae505

This one below really caught my attention, because when using conky and you click on 'Restart' in the menu, conky will then redraw over itself creating what looks like multiple instances and it looks like a mess. I applied the patch and it worked! It appears there are argb issues without the patch.

argb-visual.patch
http://www.t2-project.org/packages/blackbox.html

There is also a problem when using a composite manager, I use compton, when switching workspaces the numbers on the toolbar don't change, this patch fixes that.

workspace-label.patch
http://www.t2-project.org/packages/blackbox.html

KeePassX 0.4.4 - Start Minimized Doesn't Appear

In 0.72.6 I noticed when you have KeePassX 0.4.4 settings start minimized checked, when you start it, then middle click and bring up the workspaces and iconified menu, KeePassX does not appear in it.

Multi-monitor support: only use active monitor with maximize and full-screen commands

I have two monitors. When I maximize a window or make it full-screen, it occupies both monitors (i.e. the entire virtual desktop/screen). This is way too big, so I'd prefer that the window only occupy one monitor. Other window managers get this right already, so I'm guessing there's some protocol/extension that isn't implemented in blackbox.

Perhaps this issue is a feature request.

I'm currenty using blackbox version 0.72, commit 8c9e2af.

fails to compile

First issue: after ./configure --enable-shared && make:

Making all in po
make[2]: Entering directory '/media/ubuntu/home/matt/hack/deb/tmp/blackboxwm/po'
Makefile:604: *** missing separator.  Stop.
make[2]: Leaving directory '/media/ubuntu/home/matt/hack/deb/tmp/blackboxwm/po'
make[1]: *** [Makefile:478: all-recursive] Error 1
make[1]: Leaving directory '/media/ubuntu/home/matt/hack/deb/tmp/blackboxwm'
make: *** [Makefile:408: all] Error 2

After fixing po/Makefile manually, we get this error:

  CXXLD    blackbox
/usr/bin/ld: Window.o: undefined reference to symbol 'XShapeCombineShape'
/usr/bin/ld: /lib/x86_64-linux-gnu/libXext.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

The relevant command turns out to be:

libtool: link: g++ -g -O2 -ffile-prefix-map=/build/blackbox-0.77=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -Wl,-z -Wl,now -o .libs/blackbox BlackboxResource.o Clientmenu.o Configmenu.o Iconmenu.o Rootmenu.o Screen.o ScreenResource.o Slit.o Slitmenu.o StackingList.o Toolbar.o Toolbarmenu.o Window.o WindowGroup.o Windowmenu.o Workspace.o Workspacemenu.o blackbox.o main.o  ../lib/.libs/libbt.so
/usr/bin/ld: Window.o: undefined reference to symbol 'XShapeCombineShape'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libXext.so.6: error adding symbols: DSO missing from command line

If I run that along with "-lX11 -LXext" compilation works (I'm no autotools guru though..)

segfaults when fonts aren't found

Please forgive me if my github etiquette is lacking. This is my first time filing an issue.

With version 0.76 there seems to be some problems if fonts are missing.

In Font.cc on lines 450 and 462, if the font specified in the style file is not found, NULL pointers are dereferenced causing segfaults. Wrapping those and returning 0 if the pointers are NULL leads to another segfault.

#0 0x00007effcf9671b0 in XmbTextExtents () from /usr/lib64/libX11.so.6
#1 0x00000000004443b0 in bt::textRect (screen=, font=...,
text="m\000\000\000:\000\000\000m\000\000\000m\000\000\000m\000\000\000m\000\000\000 \000\000\000 \000\000\000 \000\000\000 \000\000\000m\000\000\000:\000\000\000m\000\000\000m\000\000\000m\000\000\000m\000\000\000") at Font.cc:398
#2 0x0000000000414374 in BScreen::updateGeomWindow (this=0x1e8a6c0) at ../lib/Display.hh:84
#3 0x000000000041ba24 in BScreen::reconfigure (this=0x1e8a6c0) at Screen.cc:522
#4 0x000000000043aea0 in std::mem_fun_t<void, BScreen>::operator() (__p=, this=) at /usr/include/c++/9.3.0/bits/stl_function.h:1211
#5 std::for_each<BScreen**, std::mem_fun_t<void, BScreen> > (__f=..., __last=0x1ea1d18, __first=0x1ea1d10) at /usr/include/c++/9.3.0/bits/stl_algo.h:3876
#6 Blackbox::timeout (this=0x7ffc6f775460) at blackbox.cc:402
#7 0x000000000043e457 in bt::Application::run (this=0x7ffc6f775460) at Application.cc:300
#8 0x000000000040a0f8 in main (argc=1, argv=0x7ffc6f7758e8) at main.cc:167
(gdb)

The Font.cc:398 might be off a little, as I had been editing that file to check for NULL pointers, but those /should/ all be after that line leaving this one unaffected.

I was going to debug it further and hopefully be able to submit a patch, but that may be a few days off; I haven't really dug into the blackbox source since 0.65. Right now it's easier for me to make sure the right fonts are present.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.