diff options
38 files changed, 220 insertions, 202 deletions
diff --git a/.gitignore b/.gitignore index 30d2479..2df3963 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.o .cabal-sandbox/ .ghc.* +.hdevtools.* .stack-work/ cabal.project.* cabal.sandbox.config diff --git a/build b/build index 9b1019a..6764e6a 100755 --- a/build +++ b/build @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh SRC_DIR="$HOME/.xmonad" EXE_NAME="xmonad-ng" diff --git a/scripts/mpc-play-pause.sh b/scripts/mpc-play-pause.sh index 3fb4f3b..887ba5b 100755 --- a/scripts/mpc-play-pause.sh +++ b/scripts/mpc-play-pause.sh @@ -1,6 +1,6 @@ -#!/usr/bin/env bash +#!/bin/sh -if mpc | grep -q "playing" +if mpc | grep -q '\[playing\]' then mpc --no-status pause else diff --git a/scripts/nsp-console.sh b/scripts/nsp-console.sh index 5d19f46..8923ea2 100755 --- a/scripts/nsp-console.sh +++ b/scripts/nsp-console.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh if tmux list-sessions | grep -q "scratchpad" then diff --git a/scripts/screenlock.sh b/scripts/screenlock.sh index 28dbe0c..fda4556 100755 --- a/scripts/screenlock.sh +++ b/scripts/screenlock.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh i3lock \ --no-unlock-indicator \ diff --git a/scripts/toggle-compton.sh b/scripts/toggle-compton.sh index 91ebc4d..ee3c880 100755 --- a/scripts/toggle-compton.sh +++ b/scripts/toggle-compton.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash -if [[ $(pgrep 'compton') ]] +if ! pgrep compton then - pkill "compton" -else compton -b --config "${XDG_CONFIG_HOME}/compton.conf" +else + pkill compton fi diff --git a/scripts/toggle-redshift.sh b/scripts/toggle-redshift.sh index 8ba6b60..4dbcc38 100755 --- a/scripts/toggle-redshift.sh +++ b/scripts/toggle-redshift.sh @@ -1,9 +1,9 @@ #!/usr/bin/env bash -if [[ $(pgrep 'redshift') ]] +if ! pgrep redshift then - pkill "redshift" -else redshift -c "${XDG_CONFIG_HOME}/redshift.conf" & disown redshift +else + pkill redshift fi diff --git a/scripts/toggle-touchpad.sh b/scripts/toggle-touchpad.sh index 5a30528..7a82391 100755 --- a/scripts/toggle-touchpad.sh +++ b/scripts/toggle-touchpad.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh ID=$(xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') STATE=$(xinput list-props "$ID" | awk '/Device Enabled/ {print $4}') diff --git a/scripts/toggle-trackpoint.sh b/scripts/toggle-trackpoint.sh index b0b3501..2d54670 100755 --- a/scripts/toggle-trackpoint.sh +++ b/scripts/toggle-trackpoint.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh ID=$(xinput list | grep -Eo 'TrackPoint\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') STATE=$(xinput list-props "$ID" | awk '/Device Enabled/ {print $4}') diff --git a/scripts/xmobar/fcitx.sh b/scripts/xmobar/fcitx.sh index ddf1826..5538f50 100755 --- a/scripts/xmobar/fcitx.sh +++ b/scripts/xmobar/fcitx.sh @@ -1,16 +1,15 @@ -#!/usr/bin/env bash +#!/bin/sh -status="$(fcitx-remote)" -set out +STATUS="$(fcitx-remote)" -if [[ "$status" = 0 ]] +if [ "$STATUS" = 0 ] then - out="Off" -elif [[ "$status" = 1 ]] + OUT="Off" +elif [ "$STATUS" = 1 ] then - out="Disabled" -else - out="Enabled" + OUT="Disabled" +else + OUT="Enabled" fi -echo -e "$out" +echo "$OUT" diff --git a/scripts/xshot-select-upload.sh b/scripts/xshot-select-upload.sh index e846800..777eb87 100755 --- a/scripts/xshot-select-upload.sh +++ b/scripts/xshot-select-upload.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh PIC="${HOME}/pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png" diff --git a/scripts/xshot-select.sh b/scripts/xshot-select.sh index 53ad782..fc714c8 100755 --- a/scripts/xshot-select.sh +++ b/scripts/xshot-select.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh PIC="${HOME}/pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png" diff --git a/scripts/xshot-upload.sh b/scripts/xshot-upload.sh index 91c23f4..0dcd1ec 100755 --- a/scripts/xshot-upload.sh +++ b/scripts/xshot-upload.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh PIC="${HOME}/pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png" diff --git a/scripts/xshot.sh b/scripts/xshot.sh index d7984e3..0fbe40e 100755 --- a/scripts/xshot.sh +++ b/scripts/xshot.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh PIC="${HOME}/pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png" diff --git a/src/Main.hs b/src/Main.hs index 91a3e9f..716e0a1 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : Main --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Actions/FloatSnapSpaced.hs b/src/XMonad/Actions/FloatSnapSpaced.hs index a579376..fb836e1 100644 --- a/src/XMonad/Actions/FloatSnapSpaced.hs +++ b/src/XMonad/Actions/FloatSnapSpaced.hs @@ -4,7 +4,7 @@ -- Copyright : (c) 2009 Anders Engstrom <ankaan@gmail.com> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Actions/PerConditionKeys.hs b/src/XMonad/Actions/PerConditionKeys.hs index a5a9e04..188fe96 100644 --- a/src/XMonad/Actions/PerConditionKeys.hs +++ b/src/XMonad/Actions/PerConditionKeys.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Actions.PerConditionKeys --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Bindings.hs b/src/XMonad/Custom/Bindings.hs index cbe5056..ab653dd 100644 --- a/src/XMonad/Custom/Bindings.hs +++ b/src/XMonad/Custom/Bindings.hs @@ -3,10 +3,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Bindings --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- @@ -68,7 +68,7 @@ arrowKeys = [ "<D>" , "<U>" , "<L>" , "<R>" ] directionKeys = [ "j" , "k" , "h" , "l" ] wsKeys = map show [1..9 :: Int] -zipKeys :: [a] -> [[a]] -> [t1] -> (t1 -> b) -> [([a], b)] +zipKeys :: [a] -> [[a]] -> [t1] -> (t1 -> b) -> [([a], b)] zipKeys m ks as f = zipWith (\k d -> (m ++ k, f d)) ks as zipKeys' :: [a] -> [[a]] -> [t1] -> (t1 -> t2 -> b) -> t2 -> [([a], b)] zipKeys' m ks as f b = zipWith (\k d -> (m ++ k, f d b)) ks as @@ -76,7 +76,6 @@ zipKeys' m ks as f b = zipWith (\k d -> (m ++ k, f d b)) ks as tryMessageR_ :: (Message a, Message b) => a -> b -> X () tryMessageR_ x y = sequence_ [tryMessageWithNoRefreshToCurrent x y, refresh] - toggleCopyToAll :: X () toggleCopyToAll = wsContainingCopies >>= \case [] -> windows copyToAll _ -> killAllOtherCopies @@ -95,29 +94,30 @@ toggleFloat w = windows (\s -> if M.member w (S.floating s) withUpdatePointer :: [(String, X ())] -> [(String, X ())] withUpdatePointer = map addAction - where - addAction :: (String, X ()) -> (String, X ()) - addAction (key, action) = (key, action >> updatePointer (0.98, 0.01) (0, 0)) + where + addAction :: (String, X ()) -> (String, X ()) + addAction (key, action) = (key, action >> updatePointer (0.98, 0.01) (0, 0)) keys :: XConfig Layout -> M.Map (KeyMask, KeySym) (X ()) keys c = mkKeymap c (rawKeys c) rawKeys :: XConfig Layout -> [(String, X ())] -rawKeys c = withUpdatePointer $ concatMap ($ c) keymaps where - keymaps = [ keysBase - , keysSystem - , keysMedia - , keysWorkspaces - , keysSpawnables - , keysWindows - , keysLayout - , keysResize - ] +rawKeys c = withUpdatePointer $ concatMap ($ c) keymaps + where + keymaps = [ keysBase + , keysSystem + , keysMedia + , keysWorkspaces + , keysSpawnables + , keysWindows + , keysLayout + , keysResize + ] keysBase :: XConfig Layout -> [(String, X ())] keysBase _ = [ ("M-S-q" , confirmPrompt hotPromptTheme "Quit XMonad?" $ io exitSuccess) - , ("M-q" , spawn "xmonad --restart") + , ("M-q" , spawn "xmonad --restart") -- TODO Replace with interal calls , ("M-C-q" , spawn "xmonad --recompile && xmonad --restart") , ("M-x" , shellPrompt promptTheme) , ("M-w" , windowPrompt promptTheme Goto allWindows) @@ -126,24 +126,25 @@ keysBase _ = keysSystem :: XConfig Layout -> [(String, X ())] keysSystem _ = - [ ("M-C-g" , return ()) + [ ("M-C-g" , return ()) -- TODO Replace scripts with internal functions , ("<XF86ScreenSaver>" , spawn "~/.xmonad/scripts/screenlock.sh") , ("M-<Print>" , spawn "~/.xmonad/scripts/xshot-upload.sh") , ("M-S-<Print>" , spawn "~/.xmonad/scripts/xshot-select-upload.sh") , ("M-<Insert>" , spawn "~/.xmonad/scripts/xcast.sh --webm") , ("M-S-<Insert>" , spawn "~/.xmonad/scripts/xcast.sh --gif") - , ("M-C-<Insert>" , spawn "pkill ffmpeg") + , ("M-C-<Insert>" , spawn "pkill ffmpeg") -- FIXME Possible undefined behaviour , ("M-C-c" , spawn "~/.xmonad/scripts/toggle-compton.sh") , ("M-C-r" , spawn "~/.xmonad/scripts/toggle-redshift.sh") , ("M-C-p" , spawn "~/.xmonad/scripts/toggle-touchpad.sh") , ("M-C-t" , spawn "~/.xmonad/scripts/toggle-trackpoint.sh") ] -keysMedia :: XConfig Layout -> [(String, X ())] +keysMedia :: XConfig Layout -> [(String, X ())] -- TODO Make audio keys compatible with ALSA/PA at the same time keysMedia _ = - [ ("<XF86AudioMute>" , spawn "amixer set Master toggle") - , ("<XF86AudioLowerVolume>" , spawn "amixer set Master 5-") - , ("<XF86AudioRaiseVolume>" , spawn "amixer set Master 5+") + [ ("<XF86AudioMicMute>" , spawn "pactl set-source-mute 1 toggle") -- TODO Add indicator + , ("<XF86AudioMute>" , spawn "pactl set-sink-mute 0 toggle") + , ("<XF86AudioLowerVolume>" , spawn "pactl set-sink-mute 0 false && pactl set-sink-volume 0 -10%") + , ("<XF86AudioRaiseVolume>" , spawn "pactl set-sink-mute 0 false && pactl set-sink-volume 0 +10%") , ("<XF86AudioPlay>" , spawn "~/.xmonad/scripts/mpc-play-pause.sh") , ("<XF86AudioStop>" , spawn "mpc --no-status stop") , ("<XF86AudioPrev>" , spawn "mpc --no-status prev") @@ -177,14 +178,14 @@ keysWindows :: XConfig Layout -> [(String, X())] keysWindows _ = [ ("M-d" , kill) , ("M-S-d" , confirmPrompt hotPromptTheme "Kill all" killAll) - , ("M-C-d" , toggleCopyToAll) - , ("M-a" , withFocused hideWindow) -- FIXME This is so broken - , ("M-S-a" , popOldestHiddenWindow) + , ("M-a" , toggleCopyToAll) + , ("M-e" , withFocused hideWindow) -- FIXME This is so broken + , ("M-S-e" , popOldestHiddenWindow) , ("M-p" , promote) - , ("M-s" , withFocused $ sendMessage . MergeAll) - , ("M-S-s" , withFocused $ sendMessage . UnMerge) + , ("M-g" , withFocused $ sendMessage . MergeAll) + , ("M-S-g" , withFocused $ sendMessage . UnMerge) , ("M-u" , focusUrgent) - , ("M-e" , windows S.focusMaster) + , ("M-s" , windows S.focusMaster) , ("M-'" , bindOn LD [ ("Tabs" , windows S.focusDown) , ("" , onGroup S.focusDown') ]) @@ -206,8 +207,8 @@ keysLayout c = [ ("M-<Tab>" , sendMessage NextLayout) , ("M-C-<Tab>" , toSubl NextLayout) , ("M-S-<Tab>" , setLayout $ XMonad.layoutHook c) - , ("M-y" , withFocused toggleFloat) - , ("M-S-y" , sinkAll) + , ("M-o" , withFocused toggleFloat) + , ("M-S-o" , sinkAll) , ("M-S-," , sendMessage $ IncMasterN (-1)) , ("M-S-." , sendMessage $ IncMasterN 1) , ("M-r" , tryMessageR_ Rotate (Toggle REFLECTX)) @@ -215,7 +216,7 @@ keysLayout c = , ("M-f" , sequence_ [ withFocused $ windows . S.sink , sendMessage $ Toggle NBFULL ]) - , ("M-S-g" , sendMessage $ Toggle GAPS) -- FIXME Breaks merged tabbed layout + , ("M-C-g" , sendMessage $ Toggle GAPS) -- FIXME Breaks merged tabbed layout ] keysResize :: XConfig Layout -> [(String, X())] @@ -235,13 +236,13 @@ mouseBindings XConfig {} = M.fromList [ ((modMask, button1), \w -> focus w >> F.mouseWindow F.position w >> ifClick (snapSpacedMagicMove gapFull - (Just 50) (Just 50) w) + (Just 50) (Just 50) w) >> windows S.shiftMaster ) , ((modMask, button3), \w -> focus w >> F.mouseWindow F.linear w >> ifClick (snapMagicResize [L, R, U, D] - (Just 50) (Just 50) w) + (Just 50) (Just 50) w) >> windows S.shiftMaster ) ] diff --git a/src/XMonad/Custom/Event.hs b/src/XMonad/Custom/Event.hs index c89714c..fa82bdf 100644 --- a/src/XMonad/Custom/Event.hs +++ b/src/XMonad/Custom/Event.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Event --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Layout.hs b/src/XMonad/Custom/Layout.hs index 652aed8..5da2cf6 100644 --- a/src/XMonad/Custom/Layout.hs +++ b/src/XMonad/Custom/Layout.hs @@ -6,10 +6,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Layout --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Log.hs b/src/XMonad/Custom/Log.hs index dfa60c1..ed4edc4 100644 --- a/src/XMonad/Custom/Log.hs +++ b/src/XMonad/Custom/Log.hs @@ -3,16 +3,13 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Log --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi <azahi@teknik.io> +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- --- Provides configuration for logging to be used --- with various status display applications --- ----------------------------------------------------------------------------- module XMonad.Custom.Log diff --git a/src/XMonad/Custom/Manage.hs b/src/XMonad/Custom/Manage.hs index e737108..bbae103 100644 --- a/src/XMonad/Custom/Manage.hs +++ b/src/XMonad/Custom/Manage.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Manage --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi <azahi@teknik.io> +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Misc.hs b/src/XMonad/Custom/Misc.hs index 5d22063..d4b162e 100644 --- a/src/XMonad/Custom/Misc.hs +++ b/src/XMonad/Custom/Misc.hs @@ -3,10 +3,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Misc --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- @@ -29,7 +29,7 @@ data Applications = Applications applications :: Applications applications = Applications { browser = "qutebrowser" - , mixer = "alsamixer" + , mixer = "pulsemixer" , notify = "notify-send" , player = "ncmpcpp" , term = "urxvtc" diff --git a/src/XMonad/Custom/Navigation.hs b/src/XMonad/Custom/Navigation.hs index a1239d6..4057e8b 100644 --- a/src/XMonad/Custom/Navigation.hs +++ b/src/XMonad/Custom/Navigation.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Navigation --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Projects.hs b/src/XMonad/Custom/Projects.hs index d45d1c5..5382cb2 100644 --- a/src/XMonad/Custom/Projects.hs +++ b/src/XMonad/Custom/Projects.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Projects --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Prompt.hs b/src/XMonad/Custom/Prompt.hs index 15aab2c..9e046c6 100644 --- a/src/XMonad/Custom/Prompt.hs +++ b/src/XMonad/Custom/Prompt.hs @@ -1,3 +1,15 @@ +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Custom.Prompt +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> +-- License : BSD3-style (see LICENSE) +-- +-- Maintainer : Azat Bahawi <azahi@teknik.io> +-- Stability : unstable +-- Portability : unportable +-- +----------------------------------------------------------------------------- + module XMonad.Custom.Prompt ( listCompFunc , aListCompFunc diff --git a/src/XMonad/Custom/Scratchpads.hs b/src/XMonad/Custom/Scratchpads.hs index 9424f7b..4ccce47 100644 --- a/src/XMonad/Custom/Scratchpads.hs +++ b/src/XMonad/Custom/Scratchpads.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Scratchpads --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Startup.hs b/src/XMonad/Custom/Startup.hs index 6050dff..eef4c4c 100644 --- a/src/XMonad/Custom/Startup.hs +++ b/src/XMonad/Custom/Startup.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Startup --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Theme.hs b/src/XMonad/Custom/Theme.hs index 2860b91..3855fd9 100644 --- a/src/XMonad/Custom/Theme.hs +++ b/src/XMonad/Custom/Theme.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Theme --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/src/XMonad/Custom/Workspaces.hs b/src/XMonad/Custom/Workspaces.hs index 555bf20..5832c6e 100644 --- a/src/XMonad/Custom/Workspaces.hs +++ b/src/XMonad/Custom/Workspaces.hs @@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module : XMonad.Custom.Workspaces --- Copyright : (c) azahi 2018 +-- Copyright : (c) 2018-2019 Azat Bahawi <azahi@teknik.io> -- License : BSD3-style (see LICENSE) -- --- Maintainer : azahi@teknik.io +-- Maintainer : Azat Bahawi <azahi@teknik.io> -- Stability : unstable -- Portability : unportable -- diff --git a/test/test-xephyr.sh b/test/test-xephyr.sh new file mode 100755 index 0000000..e28928a --- /dev/null +++ b/test/test-xephyr.sh @@ -0,0 +1,111 @@ +#!/bin/sh -eu + +usage () { + cat << EOF +Usage: test-xephyr.sh [options] + + -d NxN Set the screen size to NxN + -h This message + -n NUM Set the internal DISPLAY to NUM + -s NUM Set the number of screens to NUM +EOF +} + +ARCH=$(uname -m) +OS=$(uname -s | tr '[:upper:]' '[:lower:]') +SCREENS=1 +SCREEN_SIZE="800x600" +DISPLAY_NUMBER=9 + +while getopts "d:hs:n:" OPT +do + case "${OPT}" in + d) + SCREEN_SIZE=$OPTARG + ;; + + h) + usage && exit + ;; + + n) + DISPLAY_NUMBER=$OPTARG + ;; + + s) + SCREENS=$OPTARG + ;; + + *) + usage && exit 1 + ;; + esac +done + +shift $((OPTIND-1)) + +if [ ! "$(command -v Xephyr)" ] +then + echo "test-xephyr.sh: Xephyr executable is missing in PATH" + exit 1 +fi + +if [ -d .stack-work ] +then + echo "test-xephyt.sh: Stack build detected" + BIN_PATH=$(stack path --dist-dir)/build/xmonad-ng +elif [ -d dist ]; then + echo "test-xephyr.sh: Cabal build detected" + BIN_PATH=$(find dist/ -type f -executable -name xmonad-ng -printf '%h') +else + echo "test-xephyr.sh: You need to build xmonad-ng first, see README for instructions" + exit 1 +fi + +RAW_BIN="$BIN_PATH/xmonad-ng" +ARCH_BIN="$BIN_PATH/xmonad-ng-$ARCH-$OS" + +cp -p "$RAW_BIN" "$ARCH_BIN" + +XMONAD_CONFIG_DIR="$(pwd)/state/config" +XMONAD_CACHE_DIR="$(pwd)/state/cache" +XMONAD_DATA_DIR="$(pwd)/state/data" +export XMONAD_CONFIG_DIR XMONAD_CACHE_DIR XMONAD_DATA_DIR + +mkdir -p "$XMONAD_CONFIG_DIR" "$XMONAD_CACHE_DIR" "$XMONAD_DATA_DIR" +echo "test-xephyr.sh: State files will be stored in $(pwd)/state" + +SCREEN_COUNTER=0 +SCREEN_OPTS="" +X_OFFSET_CURRENT="0" +X_OFFSET_ADD=$(echo "$SCREEN_SIZE" | cut -dx -f1) + +while expr "$SCREEN_COUNTER" "<" "$SCREENS" +do + SCREEN_OPTS="$SCREEN_OPTS -origin ${X_OFFSET_CURRENT},0 -screen ${SCREEN_SIZE}+${X_OFFSET_CURRENT}" + SCREEN_COUNTER=$(("$SCREEN_COUNTER" + 1)) + X_OFFSET_CURRENT=$(("$X_OFFSET_CURRENT" + "$X_OFFSET_ADD")) +done + +( + echo "test-xephyr.sh: Launching Xephyr process" + # shellcheck disable=SC2086 + Xephyr $SCREEN_OPTS \ + +extension RANDR \ + +xinerama \ + -ac \ + -br \ + -reset \ + -softCursor \ + -terminate \ + -verbosity 10 \ + ":$DISPLAY_NUMBER" & + + export DISPLAY=":$DISPLAY_NUMBER" + echo "test-xephyr.sh: Waiting for windwos to appear..." && sleep 3 + + xterm -hold xrandr & + xterm & + + $ARCH_BIN +) diff --git a/test/xmonad-ng-xephyr.sh b/test/xmonad-ng-xephyr.sh deleted file mode 100755 index 37e0bab..0000000 --- a/test/xmonad-ng-xephyr.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -eu - -usage () { - cat << EOF -Usage: xmonad-ng-xephyr.sh [options] - - -d NxN Set the screen size to NxN - -h This message - -n NUM Set the internal DISPLAY to NUM - -s NUM Set the number of screens to NUM -EOF -} - -ARCH=$(uname -m) -OS=$(uname -s | tr '[:upper:]' '[:lower:]') -SCREENS=1 -SCREEN_SIZE="800x600" -DISPLAY_NUMBER=5 - -while getopts "d:hs:n:" o -do - case "${o}" in - d) - SCREEN_SIZE=$OPTARG - ;; - - h) usage - exit - ;; - - n) - DISPLAY_NUMBER=$OPTARG - ;; - - s) - SCREENS=$OPTARG - ;; - - *) - echo - usage - exit 1 - ;; - esac -done - -shift $((OPTIND-1)) - -################################################################################ -if [ -d .stack-work ]; then - echo "stack build detected" - options="" - [ "${NIX_PATH:-NO}" = "NO" ] || options="--nix" - BIN_PATH=$(stack path $options --dist-dir)/build/xmonad-ng -elif [ -d dist ]; then - echo "cabal build detected" - BIN_PATH=$(find dist/ -type f -executable -name xmonad-ng -printf '%h') -else - echo "you need to build xmonad-ng first, see README for instructions" - exit 1 -fi - -RAW_BIN=$BIN_PATH/xmonad-ng -ARCH_BIN=$BIN_PATH/xmonad-ng-$ARCH-$OS - -################################################################################ -cp -p "$RAW_BIN" "$ARCH_BIN" - -################################################################################ -XMONAD_CONFIG_DIR=$(pwd)/state/config -XMONAD_CACHE_DIR=$(pwd)/state/cache -XMONAD_DATA_DIR=$(pwd)/state/data -export XMONAD_CONFIG_DIR XMONAD_CACHE_DIR XMONAD_DATA_DIR - -mkdir -p "$XMONAD_CONFIG_DIR" "$XMONAD_CACHE_DIR" "$XMONAD_DATA_DIR" -echo "xmonad will store state files in $(pwd)/state" - -################################################################################ -SCREEN_COUNTER=0 -SCREEN_OPTS="" -X_OFFSET_CURRENT="0" -X_OFFSET_ADD=$(echo "$SCREEN_SIZE" | cut -dx -f1) - -while expr "$SCREEN_COUNTER" "<" "$SCREENS"; do - SCREEN_OPTS="$SCREEN_OPTS -origin ${X_OFFSET_CURRENT},0 -screen ${SCREEN_SIZE}+${X_OFFSET_CURRENT}" - SCREEN_COUNTER=$(("$SCREEN_COUNTER" + 1)) - X_OFFSET_CURRENT=$(("$X_OFFSET_CURRENT" + "$X_OFFSET_ADD")) -done - -( - # shellcheck disable=SC2086 - Xephyr $SCREEN_OPTS +xinerama +extension RANDR \ - -ac -br -reset -terminate -verbosity 10 \ - -softCursor ":$DISPLAY_NUMBER" & - - export DISPLAY=":$DISPLAY_NUMBER" - echo "Waiting for windows to appear..." && sleep 2 - - xterm -hold xrandr & - xterm & - $ARCH_BIN -) diff --git a/vendor/xmobar b/vendor/xmobar -Subproject c54113906bf455c9c34e9cc5d80cf33dc9a6123 +Subproject 3105055dd2ff93b46e7e38a4bb697b284be338f diff --git a/vendor/xmonad b/vendor/xmonad -Subproject bb13853929f8f6fc59b526bcc10631e1bac309a +Subproject d6f88918de019ba8d976c2b562ebcf5748e67d4 diff --git a/vendor/xmonad-contrib b/vendor/xmonad-contrib -Subproject dd89eae446a0901d5913276a0de59a6f8e3736d +Subproject 728f9bc270f6087f1ca64839911c5b0e0a1da00 diff --git a/xmobarrc/bot.hs b/xmobarrc/bot.hs index 0f92dce..da5ec39 100644 --- a/xmobarrc/bot.hs +++ b/xmobarrc/bot.hs @@ -62,4 +62,4 @@ Config { font = "xft:tewi:style=Regular:pixelsize=11,Biwidth:pixelsize=12" \ " } --- vim:filetype=haskell:expandtab:tabstop=4:shiftwidth=4 +-- vim:filetype=haskell diff --git a/xmobarrc/top.hs b/xmobarrc/top.hs index 83fa5d2..94b40bd 100644 --- a/xmobarrc/top.hs +++ b/xmobarrc/top.hs @@ -38,4 +38,4 @@ Config { font = "xft:tewi:style=Regular:pixelsize=11,Biwidth:pixelsize=12" \ " } --- vim:filetype=haskell:expandtab:tabstop=4:shiftwidth=4 +-- vim: filetype=haskell diff --git a/xmonad-ng.cabal b/xmonad-ng.cabal index 3c011ee..cb104c6 100644 --- a/xmonad-ng.cabal +++ b/xmonad-ng.cabal @@ -1,13 +1,12 @@ name: xmonad-ng -version: 0.15.3 +version: 0.15.4 synopsis: XMonad configuration description: XMonad configuration hacked together using stolen code and bad Haskell - knowledge license: BSD3 license-file: LICENSE -copyright: Copyright (c) 2018 azahi -author: azahi@teknik.io -maintainer: azahi@teknik.io +copyright: Copyright (c) 2018-2019 Azat Bahawi <azahi@teknik.io> +author: Azat Bahawi <azahi@teknik.io> +maintainer: Azat Bahawi <azahi@teknik.io> stability: experimental category: System homepage: https://git.systemd.club/xmonad-config |