GithubHelp home page GithubHelp logo

karetsu / xmonad-aloysius Goto Github PK

View Code? Open in Web Editor NEW
42.0 3.0 3.0 18.3 MB

Aloy :heart: XMonad

License: MIT License

Haskell 93.77% Shell 5.78% Nix 0.46%
haskell xmonad xmonad-configuration xmonad-conf xmonad-setup cabal nix-shell

xmonad-aloysius's Introduction

A multi-themed XMonad configuration by Aloysius.

Contents

Newest addition

Say hello to clickable window decorations!

Next tasks

  • Move a the non-critical parts of this README into the wiki
  • Sort out the screenshots for the missing themes

Details

This XMonad configuration is my attempt at making it feel more like a desktop environment. This means a lot more mod-cons than you typically find in a tiling WM. You will also need my polybar configuration, available in my nix-overlay, as well as all of the supporting scripts available here.

My personal setup looks like:

  • OS: nixOS
  • WM: XMonad
  • Terminal: kitty
  • Launcher: dmenu2
  • Editor: doom emacs
  • Browser: firefox

See below for how to change these for your preferred options. If the build instructions do not seem to work on your preference of OS then please raise an issue. As the build uses a nix-shell then it should "just work".

Latest Previews

NOTE: these are old and new images are pending, they're not far from what you will experience but not completely accurate currently.

Main desktop
Screenshot
Named scratchpad popup
Screenshot
Lock screen
Screenshot

Quick-start

In order to access everything once you get into the WM make use of the following keybinds until you find your way around. You'll notice immediately that Aloysius makes use of key sequences instead of key chords. This means you press your Windows key, let go of it, then press Return to spawn a terminal, or similarly press M, then a, then q to quit an app.

Key Binding Action
M Return Launch terminal
M p Spawn dmenu to launch applications
M q q Quit XMonad
M 1..8 Change to workspace 1 thro' 8
M a q Close application

Dependencies

Here are all of the things which this setup needs to work. If you install all of them you should be able to have the intended experience out of the box. If you are content editing the configuration files (which you will have to do eventually) then all of the following should be easily replaceable.

If you notice any missing dependencies please raise an issue so that this table can update.

Dependency Description Why/Where is it needed?
xmonad v0.17+ Window manager self-explanatory
xmonad-contrib Contributed additional functionality for xmonad Everywhere, so much of the code base is these extras
dzen2 General purpose messaging and notification program Power menu
dmenu2 General purpose menu Application launcher, jump to window, bring window
xsettingsd Loads X related settings Loading gnome theme, other X settings
xset User preference utility for X Enabling/Disabling DPMS and screensaver
feh Image viewer and wallpaper setter Wallpaper
polybar Status bar Workspace info, layout info, launchers, DPMS toggling, mpris2 info, time, volume, power
compton Compositor Shadows and glitz
i3lock-color Screen locking self-explanatory
dunst Notification daemon self-explanatory
pulseaudio Sound system Liberal use made of pacmd and pactl, anything audio related
M+ Font used widely across the theme, get it here self-explanatory
Iosevka Custom Fonts (see here) self-explanatory
Deadhead Script Lock screen font (here) self-explanatory
FontAwesome Icons self-explanatory
nix A purely functional package manager Compilation of the xmonad binary
fd A replacement for find It is in the build script to find the compiled xmonad version

For the polybar configuration files please see here. It uses home-manager and contains an overlay for nixpkgs with additional software. You also need my custom scripts directory available here.

I have not mentioned here that the preferred login manager here is lightdm in order to get access to dm-tool to enable user switching. If you do not use lightdm then you will need to edit the polybar configuration and change the user switching module into one which suits your preference.

Default applications

This setup is pretty opinionated. I have some explicit applications named in ./lib/App/Alias.hs which you may wish to change to your own preferences.

Function Choice
Terminal kitty
Browser firefox
Mail geary
Music spotify
IDE emacs

If you prefer other apps then edit the variables in this file. At some point you will probably need to be doing this anyway and it helps you to get familiar with the structure of my environment.

Installation instructions

In order to compile this you need to have nix-shell and zsh in your $PATH but once you have this it should be pretty automatic

git clone https://gitlab.com/karetsu/xmonad-aloysius
cd xmonad-aloysius
./build -h

This will print the build help documentation. Follow the options presented to build the binary to your needs.

xmonad-aloysius's People

Contributors

garethclews 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

Watchers

 avatar  avatar  avatar

xmonad-aloysius's Issues

Inspirations

Add inspirations list to the readme

Elenapan
Axarva (if I end up using anything)

cabal dependency

on 20.09pre218613.ae6bdcc5358 (Nightingale) I modified your nixos nix. files, then copied the scripts into home folder then cloned the xmonad-aloysius repo, renamed it to .xmonad then ./build -all~ fails with

./build -all                          ~/.xmonad
   Building Aloysius, sit tight
   Configured  
cabal: Could not resolve dependencies:
[__0] trying: aloysius-1.0.4.0 (user goal)
[__1] next goal: base (dependency of aloysius)
[__1] rejecting: base-4.13.0.0/installed-4.1... (conflict: aloysius =>
base^>=4.12.0.0)
[__1] rejecting: base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0,
base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0,
base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1,
base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0,
base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0,
base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from
non-upgradeable package requires installed instance)
[__1] fail (backjumping, conflict set: aloysius, base)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, aloysius

   Built    
   Installed 
   Restarting XMonad 

My cabal --version

cabal-install version 3.0.0.0
compiled using version 3.0.1.0 of the Cabal library

GHC

version 8.8.3

xmonad

xmonad 0.15

I am new with NixOS, using this repo for learning, maybe I am missing something? Thank you for this, it is a really nice learning ground.

Widgets desktop

Beg, borrow and steal (with credit) from axarva.

Eww works fine on nixos, already pushed a PR to include the shell.nix I used so configure it and prepare it and get it running on desktop 1 so its the main "landing" desktop on log in.

Additional tasks:

  • check the Eww overhead

Purge additional themes

Horizon is the one true theme, remove the rest from the main readme. Throw it into the wiki instead.

Fill binding table

The binding table in the wiki is not representative of the full functionality offered, update it.

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.