diff --git a/xmonad b/xmonad index 33a86c0..dbe9c4f 160000 --- a/xmonad +++ b/xmonad @@ -1 +1 @@ -Subproject commit 33a86c0cdb9aa481e23cc5527a997adef5e32d42 +Subproject commit dbe9c4f799fd826c199169d012c2d2687b210a7f diff --git a/xmonad-contrib b/xmonad-contrib index 20fdcba..28aa164 160000 --- a/xmonad-contrib +++ b/xmonad-contrib @@ -1 +1 @@ -Subproject commit 20fdcbad0181d9e8fc7571799b1bb02952489df6 +Subproject commit 28aa164abd853a237e409d0fbb9f3819f253cf56 diff --git a/xmonad.hs b/xmonad.hs index e18d4fc..230bc5d 100644 --- a/xmonad.hs +++ b/xmonad.hs @@ -1,12 +1,12 @@ import Control.Monad (liftM2) import Data.List (isInfixOf) import qualified Data.Monoid +import Data.Ratio import XMonad ( ChangeLayout (NextLayout), Default (def), Full (Full), Mirror (Mirror), - MonadReader (reader), Query, Tall (Tall), WindowSet, @@ -30,6 +30,7 @@ import XMonad doFloat, doIgnore, doShift, + handleEventHook, mod4Mask, resource, sendMessage, @@ -56,25 +57,31 @@ import XMonad.Hooks.DynamicLog ppTitleSanitize, ppUrgent ), + ppVisible, shorten, wrap, xmobarBorder, xmobarColor, xmobarRaw, - xmobarStrip, ppVisible + xmobarStrip, ) import XMonad.Hooks.EwmhDesktops - ( activateLogHook, - ewmh, + ( ewmh, ewmhFullscreen, ) import XMonad.Hooks.InsertPosition (Focus (Newer), Position (End), insertPosition) +import XMonad.Hooks.ManageHelpers (doRectFloat) +import XMonad.Hooks.Place (placeHook, simpleSmart) import XMonad.Hooks.StatusBar ( defToggleStrutsKey, statusBarProp, withEasySB, ) +import XMonad.Layout (Resize (Expand, Shrink)) +import XMonad.Layout.Fullscreen (fullscreenEventHook) import qualified XMonad.Layout.LayoutModifier +import XMonad.Layout.Named (named) +import XMonad.Layout.NoBorders import XMonad.Layout.Spacing ( Border (Border), Spacing, @@ -85,15 +92,12 @@ import XMonad.Layout.WindowNavigation Navigate (Go), windowNavigation, ) -import XMonad.StackSet (Workspace (tag), currentTag, focusWindow, greedyView, integrate', shift, stack) +import XMonad.StackSet (RationalRect (RationalRect), Workspace (tag), currentTag, greedyView, integrate', shift, stack) import XMonad.Util.EZConfig (additionalKeysP) import XMonad.Util.Loggers (logTitles) import XMonad.Util.SpawnOnce (spawnOnce) import XMonad.Util.Ungrab (unGrab) import XMonad.Util.WorkspaceCompare (getSortByIndex) -import XMonad.Layout (Resize(Expand,Shrink) ) -import XMonad.Layout.NoBorders -import XMonad.Layout.Named (named) main :: IO () main = do @@ -108,9 +112,13 @@ main = do normalBorderColor = "#000000", focusedBorderColor = colors !! 7, workspaces = myWorkspaces, - manageHook = myManageHook, + manageHook = + placeHook simpleSmart + <+> myManageHook, layoutHook = myLayout, - logHook = activateLogHook (reader focusWindow >>= doF) <+> logHook def + handleEventHook = + handleEventHook def <+> fullscreenEventHook + -- logHook = activateLogHook (reader focusWindow >>= doF) <+> logHook def } `additionalKeysP` [ ("M-S-z", spawn "xscreensaver-command -lock"), ("M-S-s", unGrab *> spawn "cast_screenshot"), @@ -128,17 +136,16 @@ main = do -- window navigation ("M-l", sendMessage $ Go R), ("M-h", sendMessage $ Go L), - ("M-S-h", sendMessage Shrink), -- Shrink horiz window width - ("M-S-l", sendMessage Expand), -- Expand horiz window width + ("M-S-h", sendMessage Shrink), -- Shrink horiz window width + ("M-S-l", sendMessage Expand), -- Expand horiz window width -- layout switching ("M-", sendMessage NextLayout), -- dmenu stuff ("M1-", spawn "powerbutton"), -- lockscreen - ("M-",spawn "betterlockscreen -l") + ("M-", spawn "betterlockscreen -l") ] - myXmobarPP :: [String] -> PP myXmobarPP colors = def @@ -195,10 +202,11 @@ mySpacing' i = spacingRaw True (Border i 0 i i) True (Border i 0 i i) True --myWorkspaces = [" dev ", " www ", " sys ", " doc ", " vbox ", " chat ", " mus ", " vid ", " gfx "] myWorkspaces :: [String] -myWorkspaces = show <$> ([1 .. 9] ::[Integer] ) -myLayout = smartBorders $ windowNavigation tiled ||| smartBorders Full ||| Mirror tiled +myWorkspaces = show <$> ([1 .. 9] :: [Integer]) + +myLayout = smartBorders $ windowNavigation tiled ||| smartBorders Full ||| Mirror tiled where - tiled = named "Tall" $ mySpacing' 8 $ Tall nmaster delta ratio + tiled = named "Tall" $ mySpacing' 8 $ Tall nmaster delta ratio nmaster = 1 -- Default number of windows in the master pane ratio = 1 / 2 -- Default proportion of screen occupied by master pane delta = 3 / 100 -- Percent of screen to increment by when resizing panes @@ -231,7 +239,8 @@ myManageHook = className =? "alfaview" --> viewShift (myWorkspaces !! 3), className =? "jetbrains-idea" --> viewShift (myWorkspaces !! 4), className =? "jetbrains-code-with-me-guest" --> viewShift (myWorkspaces !! 4), - (className =? "jetbrains-studio") <&&> (title ~=? "win") --> doIgnore + (className =? "jetbrains-studio") <&&> (title ~=? "win") --> doIgnore, + (className =? "TelegramDesktop") <&&> (title ~=? "Media viewer") --> doFloat ] <+> insertPosition End Newer where