This repo is tailored towards a 1920x1080 system so things may not look correct on other resolutions. This is something yourself to get working on your system. I might make things a bit more friendly on other resolutions in the future.
Prerequisite Knowledge
You need to be a little familiar with the following to get the most out of this repo.
I have also linked good beginner resources if you need help with any of these.
About
As I said above, this is meant to be my personal configuration that I can clone on my system and get working instantly so many things are tailored to my personal liking. There may be some things you might want to change to get working to your liking.
This config also took a lot of inspiration from adi1090x’s rofi and Axarva’s xmonad configs so check them out.
Wayland
I needed to use some android apps on my system and couldn’t get anbox working so decided this would be a perfect time to configure a wayland wm for waydroid. I chose hyprland and waybar for this. It’s a bit rough around the edges and needs some more time but most things work. To get the wayland system up and running you need the following. Most but not all xmonad bindings work for hyprland.
Caution
The wayland setup has only been tested on arch linux. I don’t know if it will run just as smoothly on other distros. If you run into any issues, feel free to open an issue.
These programs are required to get you started with this config so make sure to install them. Only build them from source if you have checked your distribution’s package manager and cannot find them. If you’re on arch linux, make sure to also check the AUR.
Note: Thought of moving all my non-wm related keybindings to sxhkd but found it to be buggy and decided not to do so. You can still use it if you wish as all my bindings are configured.
Fonts
There are the fonts that are used in my configuratuin for text and icons. Make sure to install them.
These are additional notes and instruction you have to follow to get this config up and running.
Xmonad
Xmonad With Polybar
Xmonad with polybar was a bit tricky to get running, I had to use xmonad-log to get things working. I have already put a compiled binary of xmonad-log in .config/polybar/scripts so no worries there but you do need to install haskell-dbus manually through your system’s package manager.
Xmonad Startup
Xmonad starts up a lot of things configured for my system, such as rclone etc. Make sure to disable the ones you don’t need.
Xmonad-ctl
Xmonad-ctl is required for exit to login manager with rofi-powermenu. Make sure to use -dynamic flag when compiling .xmonad/xmonadctl.hs
Emacs
LSP
Make sure to install the language-servers you need on your system.
Counsel-spotify
Define variables for spotify-client-id and spotify-client-secret for counsel-spotify in .emacs.d/env.el.
If you don’t know how to get your spotify client id and secret, refer to this article.
Yasnippets
Make sure to set up the following symlink
ln -s ~/.emacs.d/yasnippet ~/emacs.d/etc
This is beacuase the no-littering package change the yas-snippet-dirs variable to ~/.emacs.d/etc/ instead to ~/.emacs.d, causing the snippets to not be in included the git repository because ~/.emacs.d/etc is in my .gitignore. The symlink fixes the issue.
Xmodmap
I have changed my caps key to ctrl and my right ctrl to caps key. If you don’t want this behavior, delete .Xmodmap.
Polybar
DIsplay
You need to set the MONITOR env to your output in .zshrc for polybar to display on the correct output.
Weather Module
You need to make a .env in your home directory with an OpenWeather API key and the code of the city you want to get the weather of. For more details on how to do this, check out my repo here.
Contributing
If you see me doing anything inefficiently in this config or you think something would be useful to me or you want to correct some error on my part, feel free to open a pull request.