mirror of https://github.com/E-Almqvist/dotfiles
parent
70008fdf19
commit
1bbba1fcec
@ -1 +1,9 @@ |
||||
# (n)Vim junk |
||||
nvim/.config/nvim/plugged/ |
||||
|
||||
# XMonad junk |
||||
xmonad/.xmonad/*.hi |
||||
xmonad/.xmonad/*.errors |
||||
xmonad/.xmonad/*.o |
||||
xmonad/.xmonad/xmonad-x86_64-linux |
||||
xmonad/.xmonad/build-x86_64-linux/ |
||||
|
@ -0,0 +1,30 @@ |
||||
# Keyboard layout |
||||
setxkbmap se & |
||||
|
||||
# Display settings |
||||
$HOME/.screenlayout/layout.sh & |
||||
|
||||
# Compositor |
||||
$HOME/.config/picom/launch & |
||||
|
||||
# Background |
||||
nitrogen --restore & |
||||
|
||||
# Notification daemon |
||||
dunst & |
||||
|
||||
# Anti sleep |
||||
xset s off & |
||||
xset -dpms & |
||||
|
||||
# EWW widgets etc |
||||
#eww daemon |
||||
#eww open bar |
||||
|
||||
# Polybar |
||||
$HOME/.config/polybar/launch & |
||||
|
||||
# Keyring |
||||
eval $(gnome-keyring-daemon --start) |
||||
export SSH_AUTH_SOCK |
||||
|
@ -0,0 +1,265 @@ |
||||
-- |
||||
-- xmonad example config file. |
||||
-- |
||||
-- A template showing all available configuration hooks, |
||||
-- and how to override the defaults in your own xmonad.hs conf file. |
||||
-- |
||||
-- Normally, you'd only override those defaults you care about. |
||||
-- |
||||
import Data.Monoid |
||||
import System.Exit |
||||
import XMonad |
||||
|
||||
import XMonad.Hooks.ManageDocks |
||||
import XMonad.Util.SpawnOnce |
||||
|
||||
import qualified Data.Map as M |
||||
import XMonad.Hooks.EwmhDesktops (ewmh) |
||||
import XMonad.Hooks.InsertPosition |
||||
import XMonad.Layout.Fullscreen (fullscreenSupport) |
||||
import XMonad.Layout.IndependentScreens (withScreens) |
||||
import qualified XMonad.StackSet as W |
||||
import XMonad.Util.Run (spawnPipe) |
||||
|
||||
-- The preferred terminal program, which is used in a binding below and by |
||||
-- certain contrib modules. |
||||
-- |
||||
myTerminal = "alacritty" |
||||
|
||||
-- Whether focus follows the mouse pointer. |
||||
myFocusFollowsMouse :: Bool |
||||
myFocusFollowsMouse = True |
||||
|
||||
-- Whether clicking on a window to focus also passes the click to the window |
||||
myClickJustFocuses :: Bool |
||||
myClickJustFocuses = True |
||||
|
||||
-- Width of the window border in pixels. |
||||
-- |
||||
myBorderWidth = 1 |
||||
|
||||
-- modMask lets you specify which modkey you want to use. The default |
||||
-- is mod1Mask ("left alt"). You may also consider using mod3Mask |
||||
-- ("right alt"), which does not conflict with emacs keybindings. The |
||||
-- "windows key" is usually mod4Mask. |
||||
-- |
||||
myModMask = mod4Mask |
||||
|
||||
-- The default number of workspaces (virtual screens) and their names. |
||||
-- By default we use numeric strings, but any string may be used as a |
||||
-- workspace name. The number of workspaces is determined by the length |
||||
-- of this list. |
||||
-- |
||||
-- A tagging example: |
||||
-- |
||||
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9] |
||||
-- |
||||
myWorkspaces = map show [1 .. 9] |
||||
|
||||
-- Border colors for unfocused and focused windows, respectively. |
||||
-- |
||||
myNormalBorderColor = "#282828" |
||||
|
||||
myFocusedBorderColor = "#484848" |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Key bindings. Add, modify or remove key bindings here. |
||||
-- |
||||
myKeys conf@(XConfig {XMonad.modMask = modm}) = |
||||
M.fromList $ |
||||
-- launch a terminal |
||||
[ ((modm, xK_Return), spawn $ XMonad.terminal conf) |
||||
-- launch rofi app launcher |
||||
, ((modm, xK_d), spawn "rofi -show drun") |
||||
-- launch rofi ssh |
||||
, ((modm, xK_s), spawn "rofi -show ssh") |
||||
-- launch rofi shell |
||||
, ((modm, xK_p), spawn "rofi -show run") |
||||
-- pause cmus |
||||
, ((modm, xK_u), spawn "cmus-remote --pause") |
||||
-- spawn firefox |
||||
, ((modm, xK_b), spawn "firefox") |
||||
-- screenshot |
||||
, ((modm, xK_Print), spawn "flameshot gui") |
||||
-- launch gmrun |
||||
, ((modm .|. shiftMask, xK_p), spawn "gmrun") |
||||
-- close focused window |
||||
, ((modm .|. shiftMask, xK_q), kill) |
||||
-- Rotate through the available layout algorithms |
||||
, ((modm, xK_space), sendMessage NextLayout) |
||||
-- Reset the layouts on the current workspace to default |
||||
, ((modm .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf) |
||||
-- Resize viewed windows to the correct size |
||||
, ((modm, xK_n), refresh) |
||||
-- Move focus to the next window |
||||
, ((modm, xK_Tab), windows W.focusDown) |
||||
-- Move focus to the next window |
||||
, ((modm, xK_j), windows W.focusDown) |
||||
-- Move focus to the previous window |
||||
, ((modm, xK_k), windows W.focusUp) |
||||
-- Move focus to the master window |
||||
, ((modm, xK_m), windows W.focusMaster) |
||||
-- Swap the focused window and the master window |
||||
, ((modm .|. shiftMask, xK_Return), windows W.swapMaster) |
||||
-- Swap the focused window with the next window |
||||
, ((modm .|. shiftMask, xK_j), windows W.swapDown) |
||||
-- Swap the focused window with the previous window |
||||
, ((modm .|. shiftMask, xK_k), windows W.swapUp) |
||||
-- Shrink the master area |
||||
, ((modm, xK_h), sendMessage Shrink) |
||||
-- Expand the master area |
||||
, ((modm, xK_l), sendMessage Expand) |
||||
-- Push window back into tiling |
||||
, ((modm, xK_t), withFocused $ windows . W.sink) |
||||
-- Increment the number of windows in the master area |
||||
, ((modm, xK_comma), sendMessage (IncMasterN 1)) |
||||
-- Deincrement the number of windows in the master area |
||||
, ((modm, xK_period), sendMessage (IncMasterN (-1))) |
||||
-- Toggle the status bar gap |
||||
-- Use this binding with avoidStruts from Hooks.ManageDocks. |
||||
-- See also the statusBar function from Hooks.DynamicLog. |
||||
-- |
||||
-- , ((modm , xK_b ), sendMessage ToggleStruts) |
||||
-- Quit xmonad |
||||
--, ((modm .|. shiftMask, xK_q), io exitSuccess) |
||||
-- Restart xmonad |
||||
, ( (modm .|. shiftMask, xK_x) |
||||
, spawn |
||||
"xmonad --recompile; xmonad --restart; notify-send \"XMonad\" \"Recompiled & restarted.\"") |
||||
] ++ |
||||
-- |
||||
-- mod-[1..9], Switch to workspace N |
||||
-- mod-shift-[1..9], Move client to workspace N |
||||
-- |
||||
[ ((m .|. modm, k), windows $ f i) |
||||
| (i, k) <- zip (workspaces conf) [xK_1 .. xK_9] |
||||
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)] |
||||
] ++ |
||||
-- |
||||
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 |
||||
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 |
||||
-- |
||||
[ ((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) |
||||
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0 ..] |
||||
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)] |
||||
] |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Mouse bindings: default actions bound to mouse events |
||||
-- |
||||
myMouseBindings (XConfig {XMonad.modMask = modm}) = |
||||
M.fromList |
||||
-- mod-button1, Set the window to floating mode and move by dragging |
||||
[ ( (modm, button1) |
||||
, \w -> focus w >> mouseMoveWindow w >> windows W.shiftMaster) |
||||
-- mod-button2, Raise the window to the top of the stack |
||||
, ((modm, button2), \w -> focus w >> windows W.shiftMaster) |
||||
-- mod-button3, Set the window to floating mode and resize by dragging |
||||
, ( (modm, button3) |
||||
, \w -> focus w >> mouseResizeWindow w >> windows W.shiftMaster) |
||||
-- you may also bind events to the mouse scroll wheel (button4 and button5) |
||||
] |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Layouts: |
||||
-- You can specify and transform your layouts by modifying these values. |
||||
-- If you change layout bindings be sure to use 'mod-shift-space' after |
||||
-- restarting (with 'mod-q') to reset your layout state to the new |
||||
-- defaults, as xmonad preserves your old layout settings by default. |
||||
-- |
||||
-- The available layouts. Note that each layout is separated by |||, |
||||
-- which denotes layout choice. |
||||
-- |
||||
myLayout = avoidStruts $ tiled ||| Mirror tiled ||| Full |
||||
where |
||||
-- default tiling algorithm partitions the screen into two panes |
||||
tiled = Tall nmaster delta ratio |
||||
-- The default number of windows in the master pane |
||||
nmaster = 1 |
||||
-- Default proportion of screen occupied by master pane |
||||
ratio = 3 / 4 |
||||
-- Percent of screen to increment by when resizing panes |
||||
delta = 3 / 100 |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Window rules: |
||||
-- Execute arbitrary actions and WindowSet manipulations when managing |
||||
-- a new window. You can use this to, for example, always float a |
||||
-- particular program, or have a client always appear on a particular |
||||
-- workspace. |
||||
-- |
||||
-- To find the property name associated with a program, use |
||||
-- > xprop | grep WM_CLASS |
||||
-- and click on the client you're interested in. |
||||
-- |
||||
-- To match on the WM_NAME, you can use 'title' in the same way that |
||||
-- 'className' and 'resource' are used below. |
||||
-- |
||||
myManageHook = |
||||
composeAll |
||||
[ className =? "MPlayer" --> doFloat |
||||
, className =? "Gimp" --> doFloat |
||||
, resource =? "desktop_window" --> doIgnore |
||||
, resource =? "kdesktop" --> doIgnore |
||||
, insertPosition End Newer |
||||
] |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Event handling |
||||
-- * EwmhDesktops users should change this to ewmhDesktopsEventHook |
||||
-- |
||||
-- Defines a custom handler function for X Events. The function should |
||||
-- return (All True) if the default handler is to be run afterwards. To |
||||
-- combine event hooks use mappend or mconcat from Data.Monoid. |
||||
-- |
||||
myEventHook = mempty |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Status bars and logging |
||||
-- Perform an arbitrary action on each internal state change or X event. |
||||
-- See the 'XMonad.Hooks.DynamicLog' extension for examples. |
||||
-- |
||||
myLogHook = return () |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Startup hook |
||||
-- Perform an arbitrary action each time xmonad starts or is restarted |
||||
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize |
||||
-- per-workspace layout choices. |
||||
-- |
||||
-- By default, do nothing. |
||||
myStartupHook = spawnOnce "$HOME/.xmonad/bin/autostart.sh" |
||||
|
||||
------------------------------------------------------------------------ |
||||
-- Now run xmonad with all the defaults we set up. |
||||
-- Run xmonad with the settings you specify. No need to modify this. |
||||
-- |
||||
main = xmonad $ fullscreenSupport $ docks $ ewmh defaults |
||||
|
||||
-- A structure containing your configuration settings, overriding |
||||
-- fields in the default config. Any you don't override, will |
||||
-- use the defaults defined in xmonad/XMonad/Config.hs |
||||
-- |
||||
-- No need to modify this. |
||||
-- |
||||
defaults = |
||||
def |
||||
-- simple stuff |
||||
{ terminal = myTerminal |
||||
, focusFollowsMouse = myFocusFollowsMouse |
||||
, clickJustFocuses = myClickJustFocuses |
||||
, borderWidth = myBorderWidth |
||||
, modMask = myModMask |
||||
, workspaces = withScreens 2 myWorkspaces |
||||
, normalBorderColor = myNormalBorderColor |
||||
, focusedBorderColor = myFocusedBorderColor |
||||
-- key bindings |
||||
, keys = myKeys |
||||
, mouseBindings = myMouseBindings |
||||
-- hooks, layouts |
||||
, layoutHook = myLayout |
||||
, manageHook = myManageHook |
||||
, handleEventHook = myEventHook |
||||
, logHook = myLogHook |
||||
, startupHook = myStartupHook |
||||
} |
Loading…
Reference in new issue