Compare commits

...

10 Commits

Author SHA1 Message Date
e80b309569 Get rid of ideHooks 2020-02-03 09:58:24 +02:00
d15ae94ba5 Update tests 2020-02-03 09:54:07 +02:00
a69b41e652 Disable focus follows mouse with the reasoning 2020-02-03 09:48:52 +02:00
321ed016a0 Go back to google 2020-02-03 09:48:41 +02:00
6e2a821531 Run shell commands 2019-11-19 12:57:05 +02:00
059635057b searx 2019-10-04 09:28:43 +03:00
8e1f9908c9 Focus follows mouse 2019-08-23 13:05:58 +03:00
c6406cc2dd More correct way of locking the screen 2019-08-09 16:31:38 +03:00
2f2593eabc Zoom button 2019-06-03 15:27:18 +03:00
892c6c3b72 Reduce clip time 2019-06-03 09:59:56 +03:00
3 changed files with 37 additions and 34 deletions

View File

@ -10,10 +10,10 @@ before_script:
matrix: matrix:
include: include:
- env: - env:
- NIXPKGS=https://github.com/NixOS/nixpkgs-channels/archive/nixos-19.03.tar.gz - VERSION=19.09
- env: - env:
- NIXPKGS=https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz - VERSION=unstable
script: script:
- nix run nixpkgs.haskellPackages.hlint -c hlint src - 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

View File

@ -1,7 +1,8 @@
{-# LANGUAGE DataKinds #-} {-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeApplications #-} {-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
module XMonad.Config.MasseR where module XMonad.Config.MasseR where
@ -11,7 +12,6 @@ import qualified Data.List as List
import XMonad import XMonad
import XMonad.Actions.CycleWS (swapNextScreen) import XMonad.Actions.CycleWS (swapNextScreen)
import XMonad.Actions.Search import XMonad.Actions.Search
import XMonad.CustomPrompt
import XMonad.Hooks.EwmhDesktops (ewmh, ewmhDesktopsStartup) import XMonad.Hooks.EwmhDesktops (ewmh, ewmhDesktopsStartup)
import XMonad.Hooks.SetWMName (setWMName) import XMonad.Hooks.SetWMName (setWMName)
import XMonad.Hooks.UrgencyHook (args, dzenUrgencyHook, import XMonad.Hooks.UrgencyHook (args, dzenUrgencyHook,
@ -23,7 +23,7 @@ import XMonad.Layout.Decoration (Decoration,
import XMonad.Layout.DwmStyle import XMonad.Layout.DwmStyle
import XMonad.Layout.LayoutModifier (ModifiedLayout) import XMonad.Layout.LayoutModifier (ModifiedLayout)
import XMonad.Layout.Master import XMonad.Layout.Master
import XMonad.Layout.NoBorders (smartBorders) import XMonad.Layout.NoBorders (noBorders, smartBorders)
import XMonad.Layout.PerWorkspace (onWorkspace) import XMonad.Layout.PerWorkspace (onWorkspace)
import XMonad.Layout.Renamed import XMonad.Layout.Renamed
import XMonad.Layout.Simplest (Simplest) import XMonad.Layout.Simplest (Simplest)
@ -31,9 +31,11 @@ import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed (TabbedDecoration, import XMonad.Layout.Tabbed (TabbedDecoration,
Theme (..), shrinkText, Theme (..), shrinkText,
tabbed) tabbed)
import XMonad.Layout.ToggleLayouts (ToggleLayout (..)) import XMonad.Layout.ToggleLayouts (ToggleLayout (..),
toggleLayouts)
import XMonad.Password import XMonad.Password
import XMonad.Prompt.RunOrRaise (runOrRaisePrompt) import XMonad.Prompt.RunOrRaise (runOrRaisePrompt)
import XMonad.Prompt.Shell (shellPrompt)
import qualified XMonad.StackSet as W import qualified XMonad.StackSet as W
import XMonad.TopicSpace import XMonad.TopicSpace
import XMonad.Util.EZConfig import XMonad.Util.EZConfig
@ -47,6 +49,7 @@ import XMonad.Util.SpawnOnce
import System.IO (hClose, hPutStr) import System.IO (hClose, hPutStr)
import XMonad.Actions.Navigation2D import XMonad.Actions.Navigation2D
import XMonad.Actions.UpdatePointer (updatePointer)
import XMonad.Util.NamedActions import XMonad.Util.NamedActions
import XMonad.Util.Run (spawnPipe) import XMonad.Util.Run (spawnPipe)
@ -78,13 +81,10 @@ scratchSubmaps conf = submapName . mkNamedKeymap conf $ [
searchSubmaps :: ExtraConfig -> XConfig l -> NamedAction searchSubmaps :: ExtraConfig -> XConfig l -> NamedAction
searchSubmaps extraConfig conf = searchSubmaps extraConfig conf =
let mkBrowser = promptSearchBrowser def (extraConfig ^. field @"applications" . field @"browser") let mkBrowser = promptSearchBrowser def (extraConfig ^. field @"applications" . field @"browser")
_googleP = addName "Search google" $ mkBrowser google googleP = addName "Search google" $ mkBrowser google
ddgP = addName "Search duckduckgo" $ mkBrowser (searchEngine "duckduckgo" "http://duckduckgo.com/?q=")
extras = [(key, addName name $ mkBrowser (searchEngine name url)) | Search{..} <- searchEndpoints extraConfig] extras = [(key, addName name $ mkBrowser (searchEngine name url)) | Search{..} <- searchEndpoints extraConfig]
in submapName . mkNamedKeymap conf $ in submapName . mkNamedKeymap conf $
[ ("d", ddgP) -- Training to use ddg again ("g", googleP) : extras
, ("g", ddgP) -- training to use ddg again
] ++ extras
myNav2d :: Navigation2DConfig myNav2d :: Navigation2DConfig
@ -123,14 +123,10 @@ myManageHook = composeAll $ concat [
, documentHooks , documentHooks
, floatHooks , floatHooks
, debuggerHooks , debuggerHooks
, ideHooks
, flowHook , flowHook
] ]
where where
classHook y = map (\x -> className =? x --> y) classHook y = map (\x -> className =? x --> y)
ideHooks = classHook (doShift "eclipse") [
"Anypoint Studio"
]
webHooks = classHook (doShift "web") [ webHooks = classHook (doShift "web") [
"Firefox" "Firefox"
, "qutebrowser" , "qutebrowser"
@ -150,7 +146,7 @@ myManageHook = composeAll $ concat [
"libreoffice" "libreoffice"
, "libreoffice-calc" , "libreoffice-calc"
, "Assistant" , "Assistant"
, "Bouml" , "Bouml" -- Oh wow, didn't even remember this existed
] ]
floatHooks = classHook doFloat [ floatHooks = classHook doFloat [
"SMplayer" "SMplayer"
@ -158,11 +154,11 @@ myManageHook = composeAll $ concat [
, "MPlayer" , "MPlayer"
, "Kaffeine" , "Kaffeine"
, "Xmessage" , "Xmessage"
, "Wfica_Seamless" , "Wfica_Seamless" -- I think this is citrix
, "mpv" , "mpv"
] ]
debuggerHooks = classHook (doShift "debugger") [ debuggerHooks = classHook (doShift "debugger") [
"JSwat Debugger", "JSwat Debugger", -- Haven't used this in years. A good thing?
"DBeaver" "DBeaver"
] ]
dynamicsHook = [title =~? "Dynamics" --> doShift "dynamics"] dynamicsHook = [title =~? "Dynamics" --> doShift "dynamics"]
@ -184,13 +180,12 @@ myKeys extraConfig conf =
, ("M-<Backspace>", addName "Kill window" kill) , ("M-<Backspace>", addName "Kill window" kill)
-- scrot requires `unGrab` -- scrot requires `unGrab`
, ("M-<Print>", addName "Take screenshot" $ spawn (screenshot . applications $ extraConfig))] ^++^ , ("M-<Print>", addName "Take screenshot" $ spawn (screenshot . applications $ extraConfig))] ^++^
subKeys "Launchers" [ ("M-S-y", addName "Open youtube" $ spawn "mpv $(clip -o)") subKeys "Launchers" [ ("M-S-<Return>", addName "Open terminal" $ spawn $ XMonad.terminal conf)
, ("M-S-<Return>", addName "Open terminal" $ spawn $ XMonad.terminal conf)
, ("M-n", scratchSubmaps conf) , ("M-n", scratchSubmaps conf)
, ("M-s", searchSubmaps extraConfig conf) , ("M-s", searchSubmaps extraConfig conf)
, ("M-p", addName "Retrieve password" $ passPrompt def) , ("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) subKeys "Windows" [ ("M-j", addName "Go down" $ windowGo D False)
, ("M-k", addName "Go up" $ windowGo U False) , ("M-k", addName "Go up" $ windowGo U False)
, ("M-h", addName "Go left" $ windowGo L False) , ("M-h", addName "Go left" $ windowGo L False)
@ -205,10 +200,11 @@ myKeys extraConfig conf =
] ^++^ ] ^++^
subKeys "Projects & Workspaces" (topicKeys' extraConfig conf) ^++^ subKeys "Projects & Workspaces" (topicKeys' extraConfig conf) ^++^
subKeys "Layout management" [ ("M-C-<Space>", addName "Toggle layout" $ sendMessage ToggleLayout) 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)] ^++^ , ("M-<Space>", addName "Next layout" $ sendMessage NextLayout)] ^++^
subKeys "Resize" [] subKeys "Resize" []
where where
locker = "sh ~/scripts/lock.sh" locker = "xset s activate"
@ -238,15 +234,22 @@ masser extraConfig = xmonad =<< statusBar (bar extraConfig) zenburnPP toggleStru
, normalBorderColor = "#262626" , normalBorderColor = "#262626"
, focusedBorderColor = "#7F9F7F" , focusedBorderColor = "#7F9F7F"
, manageHook = myManageHook , 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 , focusFollowsMouse = False
, logHook = updatePointer (0.25, 0.25) (0.25, 0.25)
} }
myLayout = onWorkspace "web" webLayout $ myLayout = toggleLayouts zoom workspaceLayouts
onWorkspace "dynamics" webLayout $
onWorkspace "pdf" pdfLayout $
onWorkspace "documents" documentLayout $
onWorkspace "mail" mailLayout
defLayout
where 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 -- Default layout
defLayout = tiled ||| tabLayout ||| readLayout ||| bspLayout ||| vimLayout ||| spiral (6/7) ||| Full defLayout = tiled ||| tabLayout ||| readLayout ||| bspLayout ||| vimLayout ||| spiral (6/7) ||| Full
-- Pdfs are restricted to tabs -- Pdfs are restricted to tabs

View File

@ -54,4 +54,4 @@ mkPassPrompt label f conf = do
selectPassword :: String -> X () selectPassword :: String -> X ()
selectPassword pass = spawn $ "pass --clip " ++ pass selectPassword pass = spawn $ "PASSWORD_STORE_CLIP_TIME=10 pass --clip " ++ pass