summaryrefslogtreecommitdiffstats
path: root/tv/5pkgs/haskell
diff options
context:
space:
mode:
Diffstat (limited to 'tv/5pkgs/haskell')
-rw-r--r--tv/5pkgs/haskell/flameshot-once.nix20
-rw-r--r--tv/5pkgs/haskell/xmonad-tv/src/main.hs12
2 files changed, 30 insertions, 2 deletions
diff --git a/tv/5pkgs/haskell/flameshot-once.nix b/tv/5pkgs/haskell/flameshot-once.nix
new file mode 100644
index 00000000..c8007ce9
--- /dev/null
+++ b/tv/5pkgs/haskell/flameshot-once.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, async, base, blessings, bytestring, dbus, fetchgit
+, iso8601-time, lib, process, random, text, time, unagi-chan, unix
+}:
+mkDerivation {
+ pname = "flameshot-once";
+ version = "1.4.0";
+ src = fetchgit {
+ url = "https://cgit.krebsco.de/flameshot-once";
+ sha256 = "13szgsiwn29aixm5xvs1m7128y5km5xss0ry5ii5y068rc2vysw8";
+ rev = "4475893c2081b3d9db4b7a54d0ce38d0914a17bf";
+ fetchSubmodules = true;
+ };
+ isLibrary = false;
+ isExecutable = true;
+ executableHaskellDepends = [
+ async base blessings bytestring dbus iso8601-time process random
+ text time unagi-chan unix
+ ];
+ license = lib.licenses.mit;
+}
diff --git a/tv/5pkgs/haskell/xmonad-tv/src/main.hs b/tv/5pkgs/haskell/xmonad-tv/src/main.hs
index eb61bd5c..118f2da4 100644
--- a/tv/5pkgs/haskell/xmonad-tv/src/main.hs
+++ b/tv/5pkgs/haskell/xmonad-tv/src/main.hs
@@ -23,6 +23,7 @@ import System.Posix.Process (executeFile)
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
, removeEmptyWorkspace)
import XMonad.Actions.CycleWS (toggleWS)
+import XMonad.Layout.Gaps (Direction2D(U,R,D,L), gaps)
import XMonad.Layout.NoBorders ( smartBorders )
import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall))
import XMonad.Layout.ResizableTile (MirrorResize(MirrorExpand,MirrorShrink))
@@ -58,13 +59,19 @@ main = getArgs >>= \case
readEnv :: Data.Aeson.FromJSON b => String -> IO b
readEnv name =
- Data.Maybe.fromJust
+ readEnv' (error $ "could not get environment variable: " <> name) name
+
+readEnv' :: Data.Aeson.FromJSON b => b -> String -> IO b
+readEnv' defaultValue name =
+ Data.Maybe.fromMaybe defaultValue
. Data.Aeson.decodeStrict'
. Data.ByteString.Char8.pack
- <$> getEnv name
+ . Data.Maybe.fromMaybe mempty
+ <$> lookupEnv name
mainNoArgs :: IO ()
mainNoArgs = do
+ myScreenGaps <- readEnv' [] "XMONAD_SCREEN_GAPS" :: IO [Int]
myScreenWidth <- readEnv "XMONAD_SCREEN_WIDTH" :: IO Dimension
myTermFont <- getEnv "XMONAD_TERM_FONT"
myTermFontWidth <- readEnv "XMONAD_TERM_FONT_WIDTH" :: IO Dimension
@@ -89,6 +96,7 @@ mainNoArgs = do
, workspaces = workspaces0
, layoutHook =
refocusLastLayoutHook $
+ gaps (zip [U,R,D,L] myScreenGaps) $
smartBorders $
ResizableTall
1