xmonad FreeBSD set up from scratch

I don't want to be rude and I appreciate your work to make this tutorial, but is not productive or worth to learn a language like haskell just so you can use a tiling wm. If you really want to try/learn something which can also be useful in a long term I think Qtiles (written in python) is a good choice, after all python is the most popular programing language in 2020.
Well it's just an opinion.
 
  • Thanks
Reactions: a6h
If you really want to try/learn something which can also be useful in a long term I think Qtiles ...
Minbari : I don't want to be rude either, and I appreciate your tips and guides on i3 over the years, which helped me to setup i3 on my computer. But WM is just WM, set it up once, and it should get out of the way. Learning any language to set WM up, would be overkill.
 
Minbari : But WM is just WM, set it up once, and it should get out of the way. Learning any language to set WM up, would be overkill.
I agree with you that "Learning any language to set WM up, would be overkill", (that's why in the last 7 years i3 was/is my WM of choise), but a language like Python can also be used as a scripting language, does not require a compiler, automates the required processes into a program, etc. As I said above it's just an opinion.
PS. I'm done with offtopic on this thread. Peace!
 
  • Like
Reactions: a6h
Perhaps don't think of it as learning a programming language. Think of it as learning a highly extensible configuration file.

For example people spend hours on their Fvwm config and that really is a language in itself too. xmonad just uses an existing programming language for the config rather than inventing its own (same with DWM in all fairness).
 
  • Like
Reactions: a6h
I don't want to be rude and I appreciate your work to make this tutorial, but is not productive or worth to learn a language like haskell just so you can use a tiling wm. If you really want to try/learn something which can also be useful in a long term I think Qtiles (written in python) is a good choice, after all python is the most popular programing language in 2020.
Well it's just an opinion.
well.. my opinion is that python is a dynamic package which gets updated, so anything dependent on it has a chance of going tits up after next python/pypi update. which exactly what happened to me now (still figuring out). and just that already planted a signal in my brain that perhaps the WM based on Python is NOT the best thing to do.
 
well.. my opinion is that python is a dynamic package which gets updated, so anything dependent on it has a chance of going tits up after next python/pypi update. which exactly what happened to me now (still figuring out). and just that already planted a signal in my brain that perhaps the WM based on Python is NOT the best thing to do.
Anything can change. My spectrwm bar stopped showing proper CPU utilization because something changed in ?awk? in FreeBSD 13.0. Have not looked into it yet, I was busy with i915kms crapping itself in 13.0.
 
Tried to follow this - and it worked fine initially but somehow when trying to recompile xmonad - it gives the following error - any idea how to fix it?
Code:
cat xmonad.errors
$ /home/x/.xmonad/build /home/x/.xmonad/xmonad-x86_64-freebsd
mv: rename /home/x/.xmonad/dist-newstyle/build/x86_64-freebsd/ghc-9.2.5/xmonad-config-0.0/x/xmonad-config/build/xmonad-config/xmonad-config
/home/x/.xmonad/dist-newstyle/build/x86_64-freebsd/ghc-9.2.7/xmonad-config-0.0/x/xmonad-config/build/xmonad-config/xmonad-config to /home/x/.xmonad/xmonad-x86_64-freebsd: No such file or directory
cp: /home/x/.xmonad/dist-newstyle/build/x86_64-freebsd/ghc-9.2.5/xmonad-config-0.0/x/xmonad-config/build/xmonad-config/xmonad-config
/home/x/.xmonad/dist-newstyle/build/x86_64-freebsd/ghc-9.2.7/xmonad-config-0.0/x/xmonad-config/build/xmonad-config/xmonad-config: No such file or directory

Also tried the xmonad site instructions with cabal - continues to give the same error.
 
xmonad is dead on freebsd at the moment
GHC has dropped explicit support for FreeBSD. New releases don't have upstream bindists.


you cant install xomnad using either cabal or stack

there is a freebsd xmoand package but no xmonad contrib package
and xmonad is useless with out the contrib packages
 
xmonad notes, these instructions dont work at the moment because GHC has dropped explicit support for FreeBSD.

cabal install


stack install on ubuntu

 
because GHC has dropped explicit support for FreeBSD.
To be honest, I didn't quite understand what the drama was. I used to use cabal for this, but for the last year I've been using stack. Therefore, the only thing I had to do was to install hs-stack. Therefore, here is a guide that will absolutely install xmonad with version 0.17.1 on FreeBSD 13.2.
Code:
pkg install hs-stack

mkdir ~/.config/xmonad
cd ~/.config/xmonad
git clone --branch v0.17.1 https://github.com/xmonad/xmonad
git clone --branch v0.17.1 https://github.com/xmonad/xmonad-contrib
touch stack.yaml

# stack.yaml
resolver: lts-19.6
packages:
  - xmonad
  - xmonad-contrib

# xinitrc
exec /home/user/.cache/xmonad/xmonad-x86_64-freebsd
# or
# exec /home/user/.local/bin/xmonad

# and in .cshrc
setenv PATH "${PATH}:/usr/home/user/.local/bin"

stack upgrade
stack install

# You can run two variants of xmonad binaries:
# (1) command 'stack install' creates/updates /home/user/.local/bin/xmonad
# or
# (2) command 'xmonad-recompile' creates/updates /usr/home/user/.cache/xmonad/xmonad-x86_64-freebsd
# It is better to use /usr/home/user/.cache/xmonad/xmonad-x86_64-freebsd since
# this file is not recompiled every time xorg is started.
The resolver version (lts-19.6) here is taken from the same stack.yaml file from the xmonad repository version 0.17.1. For xmonad 0.18.0 this does not work, but this is not a reason to be upset, since such problems have happened before. You can compile 0.17.1 and use it. I just took ZFS snapshots and saved the working versions. In my case, these xmonad libraries are weakly sensitive (or not at all) to regular updates of FreeBSD 13.2. They don't break when updating, they just work.

xmonad is dead on freebsd at the moment
GHC has dropped explicit support for FreeBSD. New releases don't have upstream bindists.

The question is what is meant by new releases of GHC. Current stable releases? For example, in my case, I installed the latest version of xmonad 0.17.1 using stack using my guide and the version of ghc installed by stack was 9.0.2. While current stable releases are 9.8.1, 9.6.4, 9.4.8. Now I see that there are bindists for version 9.2.8. Which, in general, is not a very outdated version:

And 9.4.5:

Its better to use Stack (from docs):
Code:
There are two widely used Haskell build tools:

* [Stack][stack]
* [cabal-install][cabal-install]

We include instructions for both.
Unless you already know which one you prefer, use Stack, which is easier.

Perhaps I underestimated the situation, darkness is getting closer to xmonad on FreeBSD, and I urgently need to learn how to configure Sway WM and switch to Wayland (it's a joke, I already have everything ready, if xmonad disappears today, I will just launch `sway`) ?
 
I just want to confirm that I was able to install xmonad-0.18.0 and xmonad-contrib-0.18.1 using your instructions.

Code:
pkg install hs-xmonad ghc hs-stack hs-cabal-install libXft pkgconf tint2 rofi

create ~/.xmonad/config.hs

cp /usr/local/share/examples/xmonad/build ~/.xmonad/build
cp /usr/local/share/examples/xmonad/xmonad-config.cabal ~/.xmonad/xmonad-config.cabal

add containers to в xmonad-config.cabal

cd .xmonad
cabal new-update
 
Last edited:
Back
Top