Giter VIP home page Giter VIP logo

xmonad-config's Introduction

xmonad-config

xmonad-config is the xmonad configuration used by Vic Fryzel.

Introduction

If you are unfamiliar with xmonad, it is a tiling window manager that is notoriously minimal, stable, beautiful, and featureful. If you find yourself spending a lot of time organizing or managing windows, you may consider trying xmonad.

However, xmonad can be somewhat difficult to configure if you're new to Haskell or even to xmonad itself.

This project contains a completely working and very usable xmonad configuration "out of the box". If you are just starting out with xmonad, this will give you a configuration that I personally use for around 12 hours every day. Thought has been put into the colors, key bindings, layouts, and supplementary scripts to make life easier.

This project is also recommended for advanced xmonad users, who may just not want to reinvent the wheel. All source provided with this project is well documented and simple to customize.

Screenshot of xmonad-config For source code, or to contribute, see the xmonad-config project page.

Requirements

Installing requirements on Arch Linux

sudo pacman -S xmonad xmonad-contrib xmobar stalonetray dmenu scrot \
    cabal-install xcompmgr
sudo cabal update
cabal install --global yeganesh

Also install the consolekit-git package from the AUR. The process for doing this is documented here.

Installing requirements on Ubuntu Linux or Debian Linux

sudo aptitude install xmonad libghc-xmonad-contrib-dev xmobar stalonetray \
    suckless-tools scrot cabal-install xcompmgr consolekit
sudo cabal update
sudo cabal install --global yeganesh

Installation

Installing xmonad-config is a matter of backing up any xmonad configuration you may already have, cloning the git repository, and updating your PATH.

cd
mv .xmonad .xmonad.orig
git clone https://github.com/vicfryzel/xmonad-config.git .xmonad

Once xmonad-config is installed, you also need to ensure you can actually start xmonad. The mechanism to do this varies based on each environment, but here are some instructions for some common login managers.

Starting xmonad from lightdm, xdm, kdm, or gdm

Note: You may need to choose "Custom xsession" or similar at the login screen.

ln -s ~/.xmonad/xmonad-session-rc ~/.xsession
# Logout, login from lightdm/xdm/kdm/gdm

Starting xmonad from slim

ln -s ~/.xmonad/xmonad-session-rc ~/.xinitrc
# Logout, login from slim

Keyboard shortcuts

After starting xmonad, use the following keyboard shortcuts to function in your new window manager. I recommend you print these out so that you don't get stranded once you logout and back in.

Key Binding Action
Alt+Shift+Return Start a terminal
Alt+Ctrl+l Lock screen
Alt+p Start dmenu. Once it comes up, type the name of a program and enter
Alt+Shift+p Take screenshot in select mode. Click or click and drag to select
Alt+Ctrl+Shift+p Take fullscreen screenshot. Supports multiple monitors
Alt+Shift+c Close focused window
Alt+Space Change workspace layout
Alt+Shift+Space Change back to default workspace layout
Alt+n Resize viewed windows to the correct size
Alt+Tab Focus next window
Alt+j Focus next window
Alt+k Focus previous window
Alt+m Focus master window
Alt+Return Swap focused window with master window
Alt+Shift+j Swap focused window with next window
Alt+Shift+k Swap focused window with previous window
Alt+h Shrink master window area
Alt+l Expand master window area
Alt+t Push floating window back into tiling
Alt+, Increment number of windows in master window area
Alt+. Decrement number of windows in master window area
Alt+q Restart xmonad. This reloads xmonad configuration, does not logout
Alt+Shift+q Quit xmonad and logout
Alt+[1-9] Switch to workspace 1-9, depending on which number was pressed
Alt+Shift+[1-9] Send focused window to workspace 1-9
Alt+w Focus left-most monitor (Xinerama screen 1)
Alt+e Focus center-most monitor (Xinerama screen 2)
Alt+r Focus right-most monitor (Xinerama screen 3)
Alt+Shift+w Send focused window to workspace on left-most monitor
Alt+Shift+e Send focused window to workspace on center-most monitor
Alt+Shift+r Send focused window to workspace on right-most monitor
Alt+Left Mouse Drag Drag focused window out of tiling
Alt+Right Mouse Drag Resize focused window, bring out of tiling if needed
Alt+Right Mouse Drag Resize focused window, bring out of tiling if needed

Personalizing or modifying xmonad-config

Once cloned, xmonad-config is laid out as follows.

All xmonad configuration is in ~/.xmonad/xmonad.hs. This includes things like key bindings, colors, layouts, etc. You may need to have some basic understanding of Haskell in order to modify this file, but most people have no problems.

All other configuration files are in ~/.xmonad.

All scripts are in ~/.xmonad/bin/. Scripts are provided to do things like take screenshots, start dmenu, or fix your multi-head layout after a fullscreen application may have turned off one of the screens.

Colors set in the xmobar config and dmenu script are meant to coincide with the IR_Black terminal and vim themes.

Configuring xmobar and stalonetray for your displays

xmonad-config is pre-configured to work on one of two display setups.

  1. Single 4K (3840x2160) resolution display.
  2. Dual 2560x1440 displays, with the right display as the primary.

If your display setup is different, you need to edit the xmobar and stalonetray configurations provided, probably just to adjust the geometry of the bars for your resolution. An example would be if you're using xmonad-config on a laptop with a lower resolution screen. In this example, you'd simply need to edit the geometries in xmobar-single.hs and stalonetrayrc-single.

When you first clone xmonad-config, it is setup to use the single display configuration files.

To switch between the single and dual display setups, you must edit xmonad-session-rc and xmonad.hs to point to the appropriate config files.

In xmonad-session-rc change the stalonetray line to read:

stalonetray -c ~/.xmonad/stalonetrayrc-dual

In xmonad.hs change the myXmobarrc line to read:

 myXmobarrc = "~/.xmonad/xmobar-dual.hs"

To update geometries, edit xmobar-single.hs and stalonetrayrc-single, or edit xmobar-dual.hs and stalonetrayrc-dual.

xmonad-config's People

Contributors

abhiranjankumar00 avatar floer32 avatar hamtie avatar masser avatar samdunne avatar vicfryzel avatar xswordsx 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  avatar  avatar  avatar  avatar  avatar  avatar

xmonad-config's Issues

Trying to get yeganesh to actually launch something, yet to no avail.

So I've been trying to use this config as my starter with xmonad, but it's been pretty rough so far, finding out what things are defined specifically for the original creator and then realizing that I have to change them.

Well at this point I have no idea what I'm supposed to do in order to get yeganesh to work. I did not modify the configs mapping to launch and it successfully does so, however it doesn't actually "launch stuff" when I press enter. I ran dmenu_run from the command line, and that worked as expected, so I have no idea what it might be.

Mod+P runs dmenu but doesn't execute any application

I've an arch linux installation and current git reposistory has been cloned., and xmonad/xmobar works perfect. But the default dmenu-with-yeganesh doesn't do anything it appears but doesn't launch the app. The following modificaiton solves the problem for my case. I'm not sure if this problem is glabal and effects all users:

in the ~/.xmonad/bin/dmenu-with-yeganesh the execution command should be added i.e.:

this line: dmenu_path | ~/.cabal/bin/yeganesh -- -nb ....
should be modifedi to this:
exec $(dmenu_path | ~/.cabal/bin/yeganesh -- nb .......)

best regards

Support for numpad keys

Hi, sadly I don't know any Haskell. Will there be a chance to support numpad keys on switching workspaces?

README should suggest cabal install --global, for those unfamiliar to cabal/Haskell

This may be particular to me, and/or may be obvious to Haskell users. But as someone new to xmonad and Haskell, I was kind of puzzled as to why the action bound to Alt+P - dmenu/yeganesh - was not working. Using Manjaro Linux (XFCE Flavor) v0.83.

Installing yeganesh globally like cabal install --global yeganesh did the trick for me, and now it works great. Maybe the README should instruct accordingly. Thanks for the great config.

xsession is in /bin folder

In readme you giving such a command:

ln -s ~/.xmonad/xsession ~/.xsession (and correspoding for .xinitrc)

but xsession is in /bin forlder so it should be

ln -s ~/.xmonad/bin/xsession ~/.xsession

no?

Crashing as of latest changes

Hi! First, thanks for sharing your xmonad config; I've found it to be a really nice starting point for using xmonad. Since upgrading to the latest version (changes as of Feb 18), the config no longer works for me; when I reload with the new config, I get a view of my desktop background with a black box around it, and am unable to see applications. If I log out and attempt to log back in, my screen flashes and I am returned to the login screen.

Downgrading back to the first commit before today fixes it.

Not working "out of the box" on Ubuntu 14.10?

Hi, I was looking for a sane, easy-to-use configuration for xmonad and I followed the directions but when I load xmonad none of the scripts work? dmenu works in a default config of xmonad but stops coming up with mod-P when I have this enabled. I'm not sure what's wrong and I'd like to be able to implement this.

I'm not asking for personal tech support (well sorta) 'cause that can take time for a busy dev like yourself lol, but I'm curious if there's something I missed from the readme or an installation requirement. Thanks!

Stalonetray Launching on The Wrong Monitor

So I've tried multiple Stalonetray Config, i've tried both .stalonetrayrc-single.rc and .stalonetrayrc-dual.rc
and it does not work correctly. Stalonetray Always launches on my 2nd Monitor (btw i'm running 3 monitors) and i cant get on to the first monitor, both of which are 1080p monitors

Consolekit is not needed

On most recent distros running systemd, Consolekit is not required, as login sessions are now handled by systemd-logind. This includes Arch Linux and Debian.

In addition to this, Consolekit is not being maintained anymore.

Add an open source license?

I love how simple your config is and am basing parts of my own public xmonad.hs (and bin files) on it.

Any chance you could add an open source license to the project?

xmonad version problem

I was trying to trace down an issue with stalonetray, so I tried upgrading to xmonad-0.13. I installed xmonad via cabal --global, and hid my old (apt install'd) xmonad by moving it to xmonad.orig.

However, now I seem to have gotten into an inconsistent state, when I reload xmonad I get the following compile error:

xmonad.hs:82:7:
Couldn't match type ‘xmonad-0.12:XMonad.Core.Query’
with ‘Query’
NB: ‘xmonad-0.12:XMonad.Core.Query’
is defined in ‘XMonad.Core’ in package ‘xmonad-0.12’
‘Query’ is defined in ‘XMonad.Core’ in package ‘xmonad-0.13’
Expected type: Query Bool
Actual type: xmonad-0.12:XMonad.Core.Query Bool
In the first argument of ‘(-->)’, namely ‘isFullscreen’
In the expression:
isFullscreen --> (doF W.focusDown <+> doFullFloat)

I recognize this isn't really a problem with your config, but any pointers on how to fix it would still be really appreciated. :)

startup looks like it's working for ~5 sec. and then switches to a nautilus desktop-looking view, and I can't open any programs

I'm on Ubuntu 16.04 using Stack instead of normal cabal, and since I'm new to xmonad, and haskell, I'm not sure if I've botched something up.

In trying to get xmonad to work, I ended up doing sudo apt-get install xmonad ... as well as stack install xmonad, so I'm not sure which is being used but xmonad finally sort of works. I removed all of my attempts at a custom config before trying this lib, which I think is a great idea btw, and it's super glitchy.

As soon as I log in to xmonad, it opens 2 bash terminals and a chrome window, but those only exist for like 5 sec. before they all disappear, to be found on none of the alternate workspaces, and the entire screens turns to my nautilus desktop, and icons respond to my mouse, but i can't open any folders, and i can't open any programs including a new terminal. I can logout, and back into my normal Ubuntu (is it Unity?) in order to post this issue.

Any idea what I've done wrong? Or are there any logs somewhere I can send you that might help discern whats up?

dmenu, volume, stalonetray is not working

Hello, thanks to share your config, seem it will very good for me, just begining in the Linux.

Well i install the thing as you said in the readme.md. The issues I notice:

The "Vol" only shows Updating, the stalanotray not load or are not showing up, when i press alt+p, nothing happens, the same to the screen shots binds.

thank you

xmobar needs to be installed with cabal

This may be more an issue with xmobar than this repository, but I found that xmobar didn't work right when installed with pacman. I tried each version 0.15.x-0.16.

Ultimately I uninstalled xmobar using pacman, then installed with sudo cabal install --global xmobar. I then had to change the invocation of xmobar, because this installs to /usr/local/bin/xmobar instead of /usr/bin/xmobar. But now it works.

Perhaps this isn't an issue for everyone, but I figure that the install instructions, adjusted like so, will probably still work for everyone it worked for previously, plus cases (such as my own) where it was not working right.

Syntax error at xmonad.hs:75:1

xmonad.hs:75:1: parse error (possibly incorrect indentation)

myLayout = avoidStruts (
    Tall 1 (3/100) (1/2) |||
    Mirror (Tall 1 (3/100) (1/2)) |||
    tabbed shrinkText tabConfig |||
    Full |||
    spiral (6/7)) |||
    noBorders (fullscreenFull Full)

Specifically on the first line, I don't know why.

stalonetray not working

I have an empty space where my stalonetray should be. I'm not sure what's wrong, as I haven't used stalone tray before.

  • I'm using xmonad 0.13
  • I'm on almost-unmodified head ( a few trivial changes like new keyboard shortcuts)
  • I adjusted the resolutions in stalonetrayrc-single as directed
  • I have stalonetrayrc-single linked to .stalonetrayrc

xcompmgr not running from ~/.xmonad/bin/xsession

Using Slim and the suggested symbolic link [1], xcompmgr doesn't seem to be running on startup. After installing xtransset-df for window opacity settings and setting an opacity level on a particular window I expected the window's opacity to change but nothing happened.

This led me to run the xcompmgr command in a terminal [3] taken from the bin/xsession file which is symbolically linked to ~/.xsession (and b/c I was originally using xinit instead of slim, ~/.xinitrc). The window immediately reduced in opacity.

This is the primary concern for this ticket, whether the xsession script is mostly blown away by the last exec command or not but first and foremost why xcompmgr isn't running.

However, my personal and private goal is for the windows to fade down their opacity when they loose focus. If you can help me with that I would be greatful. I've linked my commits [2] below so that you can see what I'm working with.

[1] ~/.xsession -> /home/obimod/.xmonad/bin/xsession*
[2] https://github.com/obimod/xmonad-config/commits/master
[3] xcompmgr -n -c -C -t-5 -l-5 -r4.2 -o.55 -F ...(taken from an archlinux wiki page)

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.