Coder Social home page Coder Social logo

dotfiles-xmonad's Introduction

dotfiles-xmonad

This repo contains my xmonad configuartion, it is work in progress. I will be adding and modifying things until I get everything set up the way I want it and hopefully learn some haskell along the way.

Screenshot with 3 screens attached

Keybindings

The Mod key is set to Super (Windows key)

Shortcut Action
Mod + Enter Open terminal emulator (alacritty)
Mod + p Open application laucher (rofi)
Mod + Shift + p Open password manager (rofi-pass)
Mod + Shift + q Close window
Mod + Space Cycle trough layouts
Mod + Tab Focus next window
Mod + j Focus next window
Mod + k Focus previous window
Mod + m Focus master window
Mod + Shift + j Swap focused with next window
Mod + Shift + k Swap focused with previous window
Mod + h Shrink master window
Mod + l Expand master window
Mod + t Push window back to tiling
Mod + , Increment number of windows in master
Mod + . Decrement number of windows in master
Mod + q Recompile and restart xmonad
Mod + 1 .. 9 Switch to workspace 1..9
Mod + Shift+ 1 .. 9 Move focused window to workspace 1..9
Mod + Mouse left Float and move window
Mod + Mouse right Resize floating window
Mod + Mouse middle Raise window to top of stack

Layouts

The following layouts are configured for now:

  • Master tiled horizontal (golden ratio)
  • Master tiled vertical (golden ratio)
  • Tabbed
  • Fullscreen

Multihead behaviour

Workspaces will be on the monitor on which they started. The configuration should work out of the box with 1 .. n screens if they are detected correctly by xrandr.

Switching to a workspace on a different screen than the current one, will change focus to that workspace but not swap it with the current screen. This behaviour is configured to be similar to i3's multihead behaviour.

Autostart applications

For convenience only ~/.xmonad/autostart.sh is launched once on startup of xmonad. Applications that should be autostarted can be includede here. Don't forget the & after commands that will continue to run or the applications below will never be reached.

At the moment the following application are configured for autostarting:

  • Set default screenlayout (~/.screenlayout/default.sh)
  • Set keyboard map (setxkbmap us -variant colemak -option "caps:escape")
  • Compositor (picom --config ~/.config/picom/picom.conf &)
  • Wallpaper (nitrogen --restore &)

xmobar is started separately from the startupHook in xmonad's configuration.

XMobar

The statusbar (xmobar) incudes some system information and a workspace indicator. The workspace indicator will show only workspaces that have windows on them by number. The currently focused workspace on the current screen is highlighted in color, workspaces visible (on any screen) are wrapped with [ ], workspaces visible on other screens are wrapped with ( ). The bar is shown on all screens, from the respective screen's point of view.

Dependencies

  • xmobar
  • rofi
  • rofi-pass
  • alacritty
  • imagemagick (for screenshots)

Appearance

The top of the configuration includes variables to define 16 colors. These will be used throughout the configuration. The variables make adapting any of the base16 colorschemes easy.

The font is set to Roboto Mono. Make sure to have it installed or change the myFontName variable accordingly.

dotfiles-xmonad's People

Contributors

pinpox avatar

Watchers

 avatar  avatar

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.