14 Commits

Author SHA1 Message Date
MasseR b9e180f910 Bump base version 2020-03-02 10:17:21 +02:00
MasseR d88a4aa7a0 Use the swap screen from linenavigation2d 2020-02-12 13:45:08 +02:00
MasseR 93e4e9f930 Comment out shifting windows
I'm pretty sure I've never used these mappings except by accident, now
then knowing how to undo it. I'm commenting them out for now to see if I
end up missing them for whatever reason
2020-02-12 13:27:22 +02:00
MasseR 30d3f4ea2c Navigate to different screens better 2020-02-12 13:25:26 +02:00
MasseR e80b309569 Get rid of ideHooks 2020-02-03 09:58:24 +02:00
MasseR d15ae94ba5 Update tests 2020-02-03 09:54:07 +02:00
MasseR a69b41e652 Disable focus follows mouse with the reasoning 2020-02-03 09:48:52 +02:00
MasseR 321ed016a0 Go back to google 2020-02-03 09:48:41 +02:00
MasseR 6e2a821531 Run shell commands 2019-11-19 12:57:05 +02:00
MasseR 059635057b searx 2019-10-04 09:28:43 +03:00
MasseR 8e1f9908c9 Focus follows mouse 2019-08-23 13:05:58 +03:00
MasseR c6406cc2dd More correct way of locking the screen 2019-08-09 16:31:38 +03:00
MasseR 2f2593eabc Zoom button 2019-06-03 15:27:18 +03:00
MasseR 892c6c3b72 Reduce clip time 2019-06-03 09:59:56 +03:00
4 changed files with 54 additions and 43 deletions
+3 -3
View File
@@ -10,10 +10,10 @@ before_script:
matrix:
include:
- env:
- NIXPKGS=https://github.com/NixOS/nixpkgs-channels/archive/nixos-19.03.tar.gz
- VERSION=19.09
- env:
- NIXPKGS=https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz
- VERSION=unstable
script:
- nix run nixpkgs.haskellPackages.hlint -c hlint src
- nix build -I nixpkgs=$NIXPKGS -f ./release.nix xmonad-masser
- nix build -I nixpkgs=https://github.com/NixOS/nixpkgs-channels/archive/nixos-$VERSION.tar.gz -f ./release.nix xmonad-masser
+49 -38
View File
@@ -1,7 +1,8 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
module XMonad.Config.MasseR where
@@ -9,9 +10,8 @@ import Control.Lens ((^.))
import Data.Generics.Product (field)
import qualified Data.List as List
import XMonad
import XMonad.Actions.CycleWS (swapNextScreen)
-- import XMonad.Actions.CycleWS (swapNextScreen)
import XMonad.Actions.Search
import XMonad.CustomPrompt
import XMonad.Hooks.EwmhDesktops (ewmh, ewmhDesktopsStartup)
import XMonad.Hooks.SetWMName (setWMName)
import XMonad.Hooks.UrgencyHook (args, dzenUrgencyHook,
@@ -23,7 +23,7 @@ import XMonad.Layout.Decoration (Decoration,
import XMonad.Layout.DwmStyle
import XMonad.Layout.LayoutModifier (ModifiedLayout)
import XMonad.Layout.Master
import XMonad.Layout.NoBorders (smartBorders)
import XMonad.Layout.NoBorders (noBorders, smartBorders)
import XMonad.Layout.PerWorkspace (onWorkspace)
import XMonad.Layout.Renamed
import XMonad.Layout.Simplest (Simplest)
@@ -31,9 +31,11 @@ import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed (TabbedDecoration,
Theme (..), shrinkText,
tabbed)
import XMonad.Layout.ToggleLayouts (ToggleLayout (..))
import XMonad.Layout.ToggleLayouts (ToggleLayout (..),
toggleLayouts)
import XMonad.Password
import XMonad.Prompt.RunOrRaise (runOrRaisePrompt)
import XMonad.Prompt.Shell (shellPrompt)
import qualified XMonad.StackSet as W
import XMonad.TopicSpace
import XMonad.Util.EZConfig
@@ -47,6 +49,7 @@ import XMonad.Util.SpawnOnce
import System.IO (hClose, hPutStr)
import XMonad.Actions.Navigation2D
import XMonad.Actions.UpdatePointer (updatePointer)
import XMonad.Util.NamedActions
import XMonad.Util.Run (spawnPipe)
@@ -78,17 +81,19 @@ scratchSubmaps conf = submapName . mkNamedKeymap conf $ [
searchSubmaps :: ExtraConfig -> XConfig l -> NamedAction
searchSubmaps extraConfig conf =
let mkBrowser = promptSearchBrowser def (extraConfig ^. field @"applications" . field @"browser")
_googleP = addName "Search google" $ mkBrowser google
ddgP = addName "Search duckduckgo" $ mkBrowser (searchEngine "duckduckgo" "http://duckduckgo.com/?q=")
googleP = addName "Search google" $ mkBrowser google
extras = [(key, addName name $ mkBrowser (searchEngine name url)) | Search{..} <- searchEndpoints extraConfig]
in submapName . mkNamedKeymap conf $
[ ("d", ddgP) -- Training to use ddg again
, ("g", ddgP) -- training to use ddg again
] ++ extras
("g", googleP) : extras
myNav2d :: Navigation2DConfig
myNav2d = def { defaultTiledNavigation = lineNavigation }
myNav2d =
def { defaultTiledNavigation = nav
, screenNavigation = nav
}
where
nav = hybridOf lineNavigation sideNavigation
showKeybindings :: [((KeyMask, KeySym), NamedAction)] -> NamedAction
showKeybindings x = addName "Show keybindings" $ io $ do
@@ -123,14 +128,10 @@ myManageHook = composeAll $ concat [
, documentHooks
, floatHooks
, debuggerHooks
, ideHooks
, flowHook
]
where
classHook y = map (\x -> className =? x --> y)
ideHooks = classHook (doShift "eclipse") [
"Anypoint Studio"
]
webHooks = classHook (doShift "web") [
"Firefox"
, "qutebrowser"
@@ -150,7 +151,7 @@ myManageHook = composeAll $ concat [
"libreoffice"
, "libreoffice-calc"
, "Assistant"
, "Bouml"
, "Bouml" -- Oh wow, didn't even remember this existed
]
floatHooks = classHook doFloat [
"SMplayer"
@@ -158,11 +159,11 @@ myManageHook = composeAll $ concat [
, "MPlayer"
, "Kaffeine"
, "Xmessage"
, "Wfica_Seamless"
, "Wfica_Seamless" -- I think this is citrix
, "mpv"
]
debuggerHooks = classHook (doShift "debugger") [
"JSwat Debugger",
"JSwat Debugger", -- Haven't used this in years. A good thing?
"DBeaver"
]
dynamicsHook = [title =~? "Dynamics" --> doShift "dynamics"]
@@ -178,37 +179,40 @@ myKeys extraConfig conf =
, ("<XF86AudioLowerVolume>", addName "Decrease volume" $ spawn "amixer set Master 2%-")
, ("M-<plus>", addName "Increase volume" $ spawn "amixer set Master 2+")
, ("M-<minus>", addName "Decrease volume" $ spawn "amixer set Master 2-")
, ("<XF86AudioPlay>", addName "Play/pause mopidy" $ spawn "mpc toggle")
, ("<XF86AudioPlay>", addName "Play/pause music" $ spawn "mpc toggle")
, ("M-m", spotify extraConfig conf)
, ("M-S-<Space>", addName "Swap screens" swapNextScreen)
-- , ("M-S-<Space>", addName "Swap screens" swapNextScreen)
, ("M-<Backspace>", addName "Kill window" kill)
-- scrot requires `unGrab`
, ("M-<Print>", addName "Take screenshot" $ spawn (screenshot . applications $ extraConfig))] ^++^
subKeys "Launchers" [ ("M-S-y", addName "Open youtube" $ spawn "mpv $(clip -o)")
, ("M-S-<Return>", addName "Open terminal" $ spawn $ XMonad.terminal conf)
subKeys "Launchers" [ ("M-S-<Return>", addName "Open terminal" $ spawn $ XMonad.terminal conf)
, ("M-n", scratchSubmaps conf)
, ("M-s", searchSubmaps extraConfig conf)
, ("M-p", addName "Retrieve password" $ passPrompt def)
, ("M-S-e", addName "Open with app" xdgOpen)
, ("M-e", addName "Run app" $ runOrRaisePrompt def)] ^++^
, ("M-e", addName "Run app" $ runOrRaisePrompt def)
, ("M-S-e", addName "Run shell command" $ shellPrompt def)] ^++^
subKeys "Windows" [ ("M-j", addName "Go down" $ windowGo D False)
, ("M-k", addName "Go up" $ windowGo U False)
, ("M-h", addName "Go left" $ windowGo L False)
, ("M-l", addName "Go right" $ windowGo R False)
, ("M-S-j", addName "Shift window down" $ windowSwap D False)
, ("M-S-k", addName "Shift window up" $ windowSwap U False)
, ("M-S-h", addName "Shift window left" $ windowSwap L False)
, ("M-S-l", addName "Shift window right" $ windowSwap R False)
-- Swap screen left or right, don't wrap
, ("M-S-h", addName "Shift window up" $ screenSwap L True)
, ("M-S-l", addName "Shift window right" $ screenSwap R True)
-- , ("M-S-j", addName "Shift window down" $ windowSwap D False)
-- , ("M-S-k", addName "Shift window up" $ windowSwap U False)
-- , ("M-S-h", addName "Shift window left" $ windowSwap L False)
-- , ("M-S-l", addName "Shift window right" $ windowSwap R False)
, ("M-.", addName "Go to previous window" $ windows W.focusDown)
, ("M-,", addName "Go to next window" $ windows W.focusUp)
, ("M-S-m", addName "Swap master" $ windows W.swapMaster)
] ^++^
subKeys "Projects & Workspaces" (topicKeys' extraConfig conf) ^++^
subKeys "Layout management" [ ("M-C-<Space>", addName "Toggle layout" $ sendMessage ToggleLayout)
, ("M-z", addName "Toggle zoom" $ sendMessage (Toggle "Zoom"))
, ("M-<Space>", addName "Next layout" $ sendMessage NextLayout)] ^++^
subKeys "Resize" []
where
locker = "sh ~/scripts/lock.sh"
locker = "xset s activate"
@@ -238,15 +242,22 @@ masser extraConfig = xmonad =<< statusBar (bar extraConfig) zenburnPP toggleStru
, normalBorderColor = "#262626"
, focusedBorderColor = "#7F9F7F"
, manageHook = myManageHook
-- The focus follows mouse is a bad idea for me because
-- it misbehaves with accordion. If I accidentally hover
-- my mouse at the lower edge of the accordion, it will
-- just cycle through to the last accordion
, focusFollowsMouse = False
, logHook = updatePointer (0.25, 0.25) (0.25, 0.25)
}
myLayout = onWorkspace "web" webLayout $
onWorkspace "dynamics" webLayout $
onWorkspace "pdf" pdfLayout $
onWorkspace "documents" documentLayout $
onWorkspace "mail" mailLayout
defLayout
myLayout = toggleLayouts zoom workspaceLayouts
where
zoom = renamed [Replace "Zoom"] (noBorders Full)
workspaceLayouts = onWorkspace "web" webLayout $
onWorkspace "dynamics" webLayout $
onWorkspace "pdf" pdfLayout $
onWorkspace "documents" documentLayout $
onWorkspace "mail" mailLayout
defLayout
-- Default layout
defLayout = tiled ||| tabLayout ||| readLayout ||| bspLayout ||| vimLayout ||| spiral (6/7) ||| Full
-- Pdfs are restricted to tabs
+1 -1
View File
@@ -54,4 +54,4 @@ mkPassPrompt label f conf = do
selectPassword :: String -> X ()
selectPassword pass = spawn $ "pass --clip " ++ pass
selectPassword pass = spawn $ "PASSWORD_STORE_CLIP_TIME=10 pass --clip " ++ pass
+1 -1
View File
@@ -25,7 +25,7 @@ library
, XMonad.TopicSpace
, XMonad.XMobar
-- other-extensions:
build-depends: base >=4.11 && <4.13
build-depends: base >=4.11 && <4.14
, xmonad
, xmonad-contrib
, mtl