diff options
| author | Josh Rahm <joshuarahm@gmail.com> | 2022-04-17 23:15:55 -0600 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2022-10-09 12:19:46 -0600 |
| commit | 3a26f3eb4f02052fdb97dcdd884f408d52b383a9 (patch) | |
| tree | 592287a0d97ac6e6fef9c24846f7575873bf9a0c /src/Rahm/Desktop/Lib.hs | |
| parent | 1ad36bd0e332bfe4354c9966191603f116196ecd (diff) | |
| download | rde-3a26f3eb4f02052fdb97dcdd884f408d52b383a9.tar.gz rde-3a26f3eb4f02052fdb97dcdd884f408d52b383a9.tar.bz2 rde-3a26f3eb4f02052fdb97dcdd884f408d52b383a9.zip | |
Starting to implement window management language
Diffstat (limited to 'src/Rahm/Desktop/Lib.hs')
| -rw-r--r-- | src/Rahm/Desktop/Lib.hs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/src/Rahm/Desktop/Lib.hs b/src/Rahm/Desktop/Lib.hs deleted file mode 100644 index c7cfca4..0000000 --- a/src/Rahm/Desktop/Lib.hs +++ /dev/null @@ -1,63 +0,0 @@ -module Rahm.Desktop.Lib where - -import Prelude hiding ((!!)) - -import XMonad.Actions.DynamicWorkspaces -import XMonad.Util.Run -import XMonad.Prompt -import XMonad.Prompt.Input -import XMonad.Prompt.Shell - -import Rahm.Desktop.PromptConfig - -import Data.Char -import Data.List hiding ((!!)) -import Data.List.Safe ((!!)) -import Data.Maybe -import Rahm.Desktop.Marking -import Text.Printf -import XMonad hiding (workspaces, Screen) -import XMonad.StackSet hiding (filter, focus) -import qualified Data.Map as Map -import Rahm.Desktop.DMenu -import Data.Ord (comparing) - -import qualified XMonad.StackSet as S -import Rahm.Desktop.Windows - -data WinPrompt = WinPrompt - -instance XPrompt WinPrompt where - showXPrompt _ = "[Window] " - commandToComplete _ = id - -fuzzyCompletion :: String -> String -> Bool -fuzzyCompletion str0 str1 = - all (`isInfixOf`l0) ws - where - ws = filter (not . all isSpace) $ words (map toLower str0) - l0 = map toLower str1 - -getString :: Window -> X String -getString = runQuery $ do - t <- title - a <- appName - return $ - if map toLower a `isInfixOf` map toLower t - then t - else printf "%s - %s" t a - -askWindowId :: X (Maybe Window) -askWindowId = do - windowTitlesToWinId <- withWindowSet $ \ss -> - Map.fromList <$> mapM (\wid -> (,) <$> getString wid <*> return wid) (allWindows ss) - - runDMenuPromptWithMap "Window" (Just "#f542f5") windowTitlesToWinId - -windowJump :: X () -windowJump = do - windowId <- askWindowId - - case windowId of - Nothing -> return () - Just wid -> focus wid |