Compare commits

..

No commits in common. "084261c58ebd58080e4121e43221f28f59bce0a8" and "08f653d95d774d3dfbedfad98329fb694a827575" have entirely different histories.

6 changed files with 39 additions and 68 deletions

View file

@ -58,7 +58,6 @@ in
./hetzner_benchmark/nixos/misc.nix ./hetzner_benchmark/nixos/misc.nix
./hetzner_benchmark/nixos/programs.nix ./hetzner_benchmark/nixos/programs.nix
./hetzner_benchmark/nixos/builder.nix ./hetzner_benchmark/nixos/builder.nix
./hetzner_benchmark/nixos/sane-nix.nix
../nixosModules/common/fish.nix ../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix ../nixosModules/common/disable-command-not-found.nix

View file

@ -12,7 +12,15 @@
users.groups.remotebuild = { }; users.groups.remotebuild = { };
nix = { nix = {
nrBuildUsers = 64; # defaults to 32 nrBuildUsers = 64; # defaults to 32
settings.trusted-users = [ "remotebuild" ]; settings = {
trusted-users = [ "remotebuild" ];
min-free = 50 * 1024 * 1024 * 1024; # start gc when < 10 GB is available
max-free = 100 * 1024 * 1024 * 1024; # stop gc when 20 GB is available
max-jobs = "auto";
cores = 0;
};
}; };
systemd.services.nix-daemon.serviceConfig = { systemd.services.nix-daemon.serviceConfig = {

View file

@ -2,8 +2,8 @@
{ {
# 500GB Storage # 500GB Storage
nix.settings = { nix.settings = {
min-free = 50 * 1024 * 1024 * 1024; min-free = 20 * 1024 * 1024 * 1024;
max-free = 100 * 1024 * 1024 * 1024; max-free = 50 * 1024 * 1024 * 1024;
}; };
systemd.services.nix-daemon.serviceConfig = { systemd.services.nix-daemon.serviceConfig = {

View file

@ -25,7 +25,6 @@ library
hs-source-dirs: lib hs-source-dirs: lib
exposed-modules: exposed-modules:
XMonad.Layout.Reflect.Message XMonad.Layout.Reflect.Message
XMonad.Layout.SetMasterNTall
Data.Char.Greek Data.Char.Greek
executable leanamonad executable leanamonad

View file

@ -1,30 +0,0 @@
{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
-- Wraps ResizableTall, allows setting master count to a number directly
module XMonad.Layout.SetMasterNTall
( SetMasterNTall(..)
, SetMasterN(..)
) where
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Layout.ResizableTile
-- Message
data SetMasterN = SetMasterN Int
instance Message SetMasterN
-- Layout
newtype SetMasterNTall a = SetMasterNTall { unSetMasterNTall :: ResizableTall a }
deriving (Read, Show)
instance LayoutClass SetMasterNTall a where
runLayout (W.Workspace t l s) =
let ws' = W.Workspace t (unSetMasterNTall l) s
in (fmap . fmap . fmap) SetMasterNTall . runLayout ws'
handleMessage (SetMasterNTall l@(ResizableTall _n0 d f s)) mess
| Just (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s
| otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess
description (SetMasterNTall l) = description l

View file

@ -16,14 +16,15 @@ import XMonad.Hooks.OnPropertyChange
import XMonad.Hooks.RefocusLast import XMonad.Hooks.RefocusLast
import XMonad.Hooks.StatusBar import XMonad.Hooks.StatusBar
import XMonad.Layout.FocusTracking import XMonad.Layout.FocusTracking
import XMonad.Layout.IfMax
import XMonad.Layout.Magnifier hiding (Toggle) import XMonad.Layout.Magnifier hiding (Toggle)
import qualified XMonad.Layout.Magnifier as Mag import qualified XMonad.Layout.Magnifier as Mag
import XMonad.Layout.NoBorders import XMonad.Layout.NoBorders
import XMonad.Layout.PerWorkspace
import XMonad.Layout.Reflect import XMonad.Layout.Reflect
import XMonad.Layout.Reflect.Message import XMonad.Layout.Reflect.Message
import XMonad.Layout.Renamed import XMonad.Layout.Renamed
import XMonad.Layout.ResizableTile import XMonad.Layout.ResizableTile
import XMonad.Layout.SetMasterNTall
import XMonad.Layout.Spacing import XMonad.Layout.Spacing
import XMonad.Layout.ToggleLayouts import XMonad.Layout.ToggleLayouts
import qualified XMonad.StackSet as W import qualified XMonad.StackSet as W
@ -71,16 +72,26 @@ main =
myLayout = myLayout =
avoidStruts avoidStruts
$ smartBorders $ smartBorders
$ toggleLayouts (magnifierOff tallr) full $ onWorkspace researchWS (toggleLayouts (mag tallr) full)
$ onWorkspace chatWS (toggleLayouts (mag tallr) full)
$ onWorkspace multimediaWS (toggleLayouts (mag tallr) full)
$ toggleLayouts (mag tallr) full
where where
mag = magnifierOff
full = focusTracking Full full = focusTracking Full
mkTallrN n =
smartSpacingWithEdge 5
$ reflectMsg . reflectHoriz
$ ResizableTall n (1/10) (3/7) []
tallr = tallr =
renamed [ Replace "Tall" ] renamed [ Replace "Tall" ]
$ smartSpacingWithEdge 5 $ ifMax 3 (mkTallrN 1)
$ reflectMsg . reflectHoriz $ ifMax 5 (mkTallrN 2)
$ SetMasterNTall $ ifMax 7 (mkTallrN 3)
$ ResizableTall 1 (1/10) (3/7) [] $ mkTallrN 4
isSioyek :: Query Bool isSioyek :: Query Bool
isSioyek = className =? "sioyek" isSioyek = className =? "sioyek"
@ -195,33 +206,14 @@ myEventHandleHook =
-- Imagine Spotify playing in the background, a track change would focus that workspace. -- Imagine Spotify playing in the background, a track change would focus that workspace.
-- We prevent this by checking if the window is in the current workspace -- We prevent this by checking if the window is in the current workspace
onTitleChange onTitleChange
( windowIsInCurrentWorkspace --> composeAll $ (windowIsInCurrentWorkspace -->)
[ isSpotify --> doShiftAndGreedyView multimediaWS $ composeAll
, isYouTube --> doShiftAndGreedyView multimediaWS [ isSpotify --> doShiftAndGreedyView multimediaWS
, isDiscord --> doShiftAndGreedyView chatWS , isYouTube --> doShiftAndGreedyView multimediaWS
, isWhatsApp --> doShiftAndGreedyView chatWS , isDiscord --> doShiftAndGreedyView chatWS
, isElement --> doShiftAndGreedyView chatWS , isWhatsApp --> doShiftAndGreedyView chatWS
] , isElement --> doShiftAndGreedyView chatWS
) ]
<> setMasterNEventHandleHook
setMasterNEventHandleHook :: Event -> X All
setMasterNEventHandleHook ev =
let adjustMasterCount :: X ()
adjustMasterCount = do
count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset
if count <= 3 then sendMessage (SetMasterN 1)
else if count <= 5 then sendMessage (SetMasterN 2)
else if count <= 7 then sendMessage (SetMasterN 3)
else pure ()
in do
case ev of
MapRequestEvent{} -> adjustMasterCount
ConfigureEvent{} -> adjustMasterCount
DestroyWindowEvent {} -> adjustMasterCount
_ -> pure ()
pure (All True)
doShiftAndGreedyView :: WorkspaceId -> Query (Endo WindowSet) doShiftAndGreedyView :: WorkspaceId -> Query (Endo WindowSet)
doShiftAndGreedyView n = doF . go =<< ask doShiftAndGreedyView n = doF . go =<< ask
@ -408,6 +400,9 @@ altMask = mod1Mask
myWorkspaces :: [WorkspaceId] myWorkspaces :: [WorkspaceId]
myWorkspaces = map (:[]) $ take 8 greekLower myWorkspaces = map (:[]) $ take 8 greekLower
researchWS :: WorkspaceId
researchWS = myWorkspaces !! 2
chatWS :: WorkspaceId chatWS :: WorkspaceId
chatWS = myWorkspaces !! 3 chatWS = myWorkspaces !! 3