diff --git a/.runelite/settings.properties b/.runelite/settings.properties
index 882ec64..c82f0da 100644
--- a/.runelite/settings.properties
+++ b/.runelite/settings.properties
@@ -1,5 +1,5 @@
#RuneLite configuration
-#Mon Oct 11 10:28:39 ACDT 2021
+#Mon Oct 11 11:42:39 ACDT 2021
statusbars.rightBarMode=PRAYER
runelite.mtaplugin=true
party.includeSelf=false
@@ -8,7 +8,7 @@ chatfilter.filterGameChat=false
grounditems.textOutline=false
killcount.rsprofile.pY9kxn0R.obor=2
runelite.crowdsourcingplugin=true
-timetracking.rsprofile.pY9kxn0R.4922.7910=0\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.7910=0\:1633914690
implings.showmagpie=NONE
interacthighlight.objectHoverHighlightColor=-1878982657
fishing.statTimeout=5
@@ -17,15 +17,15 @@ worldhopper.subscriptionFilter=BOTH
worldmap.minigameTooltip=true
banktags.useTabs=true
itemCharge.showWaterskinCharges=true
-timetracking.rsprofile.pY9kxn0R.4922.7907=0\:1633851068
-timetracking.rsprofile.pY9kxn0R.4922.7906=41\:1633851068
-timetracking.rsprofile.pY9kxn0R.4922.7905=46\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.7907=0\:1633914690
+timetracking.rsprofile.pY9kxn0R.4922.7906=41\:1633914690
+timetracking.rsprofile.pY9kxn0R.4922.7905=46\:1633914690
music.musicVolume=1
-timetracking.rsprofile.pY9kxn0R.4922.7904=45\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.7904=45\:1633914690
runelite.combatlevelplugin=true
grandexchange.quickLookup=true
chatcommands.bh=true
-timetracking.rsprofile.pY9kxn0R.4922.7909=0\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.7909=0\:1633914690
hunterplugin.hexColorEmptyTrap=-65536
timetracking.rsprofile.pY9kxn0R.botanist=false
runelite.hiscoreplugin=true
@@ -81,8 +81,8 @@ timetracking.rsprofile.pY9kxn0R.14651.4773=0\:1632715049
timetracking.rsprofile.pY9kxn0R.14651.4772=0\:1632715049
playerindicators.drawClanMemberNames=true
runelite.notificationRequestFocus=OFF
-timetracking.rsprofile.pY9kxn0R.4922.7912=185\:1633851068
-timetracking.rsprofile.pY9kxn0R.4922.7911=0\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.7912=185\:1633914690
+timetracking.rsprofile.pY9kxn0R.4922.7911=0\:1633914690
teamCapes.minimumCapeCount=1
hd.fogDepth=5
idlenotifier.oxygen=0
@@ -231,6 +231,7 @@ grounditems.recolorMenuHiddenItems=false
itemstat.colorNoChange=-1118482
menuentryswapper.swapMorytaniaLegs=WEAR
wintertodt.notifyBrazierOut=true
+npcUnaggroArea.duration=577695
blastmine.showTimerOverlay=true
nightmareZone.moveoverlay=true
motherlode.showMiningStats=true
@@ -340,7 +341,7 @@ slayer.highlightTargets=false
fishing.harpoonfishOverlayColor=-16711936
menuentryswapper.swapStartMinigame=true
implings.youngColor=-5266296
-slayer.rsprofile.pY9kxn0R.points=312
+slayer.rsprofile.pY9kxn0R.points=324
interfaceStyles.rsCrossSprites=false
rsprofile.rsprofile.Mhegw9dN.loginHash=Mhegw9dNBkxb0XfvI_b8dtGjniAveDI1S8Bm_7Xm4ueUJLGFBiPAT_LCA8vAHXEZkt3D-Arne-fN7gsYgB2gpg\=\=
menuentryswapper.swapDesertAmulet=WEAR
@@ -356,6 +357,7 @@ timers.showImbuedHeart=true
slayer.targetColor=-65536
itemprices.showGEPrice=true
gpu.fogDepth=0
+npcUnaggroArea.center1=1324\:3785\:0
pyramidplunder.showExactTimer=true
chatfilter.filterClanChat=false
clanchat.showJoinLeave=false
@@ -388,6 +390,7 @@ chathistory.pmTargetCycling=true
timetracking.rsprofile.pY9kxn0R.14391.4772=60\:1633834447
poh.showMythicalCape=true
itemCharge.showAmuletOfBountyCharges=true
+npcUnaggroArea.center2=1312\:3795\:0
grounditems.hideUnderValue=0
menuentryswapper.swapEnchant=true
implings.showbaby=NONE
@@ -705,7 +708,7 @@ bank.rightClickBankEquip=false
keyremapping.f8=56\:0
reportButton.switchTimeFormat=TIME_12H
menuentryswapper.swapArdougneCloak=WEAR
-killcount.rsprofile.pY9kxn0R.reward=1
+killcount.rsprofile.pY9kxn0R.reward=1061
menuentryswapper.swapFairyRing=LAST_DESTINATION
slayer.superiornotification=true
keyremapping.f5=53\:0
@@ -719,7 +722,7 @@ animationSmoothing.smoothPlayerAnimations=true
runepouch.fontcolor=-256
runenergy.replaceOrbText=false
stretchedmode.keepAspectRatio=false
-slayer.rsprofile.pY9kxn0R.initialAmount=170
+slayer.rsprofile.pY9kxn0R.initialAmount=48
loottracker.pvpKillChatMessage=false
itemCharge.showBasketCharges=true
mousehighlight.disableSpellbooktooltip=false
@@ -730,15 +733,15 @@ timetracking.rsprofile.pY9kxn0R.12851.4771=3\:1601691847
implings.spawnColor=-1
entityhider.hideLocalPlayer2D=false
zoom.controlFunction=NONE
-timetracking.rsprofile.pY9kxn0R.4922.4771=0\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.4771=0\:1633914690
xpdrop.magePrayerColor=-15368019
npcUnaggroArea.npcUnaggroAlwaysActive=false
runelite.feedplugin=true
-timetracking.rsprofile.pY9kxn0R.4922.4774=60\:1633851068
-timetracking.rsprofile.pY9kxn0R.4922.4775=72\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.4774=60\:1633914690
+timetracking.rsprofile.pY9kxn0R.4922.4775=72\:1633914690
blastmine.showWarningOverlay=true
-timetracking.rsprofile.pY9kxn0R.4922.4772=63\:1633851068
-timetracking.rsprofile.pY9kxn0R.4922.4773=60\:1633851068
+timetracking.rsprofile.pY9kxn0R.4922.4772=63\:1633914690
+timetracking.rsprofile.pY9kxn0R.4922.4773=60\:1633914690
driftnet.annetteTagColor=-65536
implings.shownature=NONE
interacthighlight.npcInteractHighlightColor=-1862336512
@@ -847,7 +850,7 @@ rsprofile.rsprofile.Mhegw9dN.displayName=Maia358
hunterplugin.hexColorFullTrap=-16711936
npcUnaggroArea.npcUnaggroShowTimer=true
minimap.npc=-256
-timetracking.rsprofile.pY9kxn0R.11573.4771=0\:1633904573
+timetracking.rsprofile.pY9kxn0R.11573.4771=0\:1633913192
minimap.team=-15503625
worldmap.agilityCourseRooftopIcon=true
inventorytags.tagFill=false
@@ -887,7 +890,7 @@ runecraft.showClickBox=true
inventoryViewer.hideIfInventoryActive=false
timetracking.rsprofile.Mhegw9dN.11058.4771=0\:1601806006
kourendLibrary.hideVarlamoreEnvoy=false
-slayer.rsprofile.pY9kxn0R.taskLocation=
+slayer.rsprofile.pY9kxn0R.taskLocation=Catacombs of Kourend
hd.groundBlending=true
itemstat.geStats=true
clanchat.showIgnoresColor=-65536
@@ -899,7 +902,7 @@ itemstat.equipmentStats=true
idlenotifier.timeout=5000
runelite.runecraftplugin=true
menuentryswapper.swapBoxTrap=true
-timetracking.rsprofile.pY9kxn0R.10290.4771=0\:1633869558
+timetracking.rsprofile.pY9kxn0R.10290.4771=0\:1633914652
itemstat.consumableStats=true
screenshot.levels=true
mta.enchantment=true
@@ -992,7 +995,7 @@ rsprofile.loginSalt=RYOR9IxEUu8jjLIvnsRE
tithefarmplugin.hexColorUnwatered=-17664
banktags.removeTabSeparators=false
defaultworld.defaultWorld=0
-slayer.rsprofile.pY9kxn0R.streak=68
+slayer.rsprofile.pY9kxn0R.streak=69
teamCapes.friendsChatMemberCounter=false
textrecolor.transparentClanChatInfoHighlight=-65536
runelite.gameSize=765x503
@@ -1042,13 +1045,13 @@ chatcommands.sw=true
runelite.deathindicatorplugin=true
runelite.miningplugin=true
fishing.minnowsOverlayColor=-65536
-defaultworld.lastWorld=531
+defaultworld.lastWorld=523
motherlode.showSack=true
runelite.grandexchangeplugin=true
xpTracker.logoutPausing=false
timers.showArceuus=true
runelite.puzzlesolverplugin=true
-slayer.rsprofile.pY9kxn0R.amount=37
+slayer.rsprofile.pY9kxn0R.amount=48
loottracker.syncPanel=true
raids.enableLayoutWhitelist=false
menuentryswapper.swapHouseAdvertisement=VIEW
@@ -1157,7 +1160,7 @@ hiscore.menuOption=true
clanchat.joinLeaveRank=UNRANKED
worldmap.scrollIcon=true
poh.showDigsitePendant=true
-slayer.rsprofile.pY9kxn0R.taskName=black demons
+slayer.rsprofile.pY9kxn0R.taskName=Bronze Dragons
tileindicators.highlightHoveredColor=0
herbiboar.showTunnel=true
menuentryswapper.swapTeleToPoh=false
@@ -1229,6 +1232,7 @@ entityhider.hideIgnores=false
runecraft.showChaos=true
loginscreen.syncusername=true
runelite.bankplugin=true
+npcUnaggroArea.location=1308\:3785\:0
npcUnaggroArea.npcUnaggroShowAreaLines=false
runecraft.showWater=true
clanchat.clanTabChat=false
diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs
index 5e0680a..31b1c18 100644
--- a/.xmonad/xmonad.hs
+++ b/.xmonad/xmonad.hs
@@ -10,7 +10,7 @@ import qualified XMonad.StackSet as W
-- Actions
import XMonad.Actions.CopyWindow (kill1)
-import XMonad.Actions.CycleWS (moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
+import XMonad.Actions.CycleWS (Direction1D(..), moveTo, shiftTo, WSType(..), nextScreen, prevScreen)
import XMonad.Actions.GridSelect
import XMonad.Actions.MouseResize
import XMonad.Actions.Promote
@@ -29,7 +29,6 @@ import qualified Data.Map as M
-- Hooks
import XMonad.Hooks.DynamicLog (dynamicLogWithPP, wrap, xmobarPP, xmobarColor, shorten, PP(..))
-
import XMonad.Hooks.FadeInactive
import XMonad.Hooks.ManageDocks (docks, avoidStruts, docksEventHook, manageDocks, ToggleStruts(..))
import XMonad.Hooks.ManageHelpers (isFullscreen, doFullFloat, doCenterFloat)
@@ -38,7 +37,6 @@ import XMonad.Hooks.ServerMode
import XMonad.Hooks.SetWMName
import XMonad.Hooks.WorkspaceHistory
-
-- Layouts
import XMonad.Layout.GridVariants (Grid(Grid))
import XMonad.Layout.SimplestFloat
@@ -64,8 +62,9 @@ import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
- -- Utilities
+-- Utilities
import XMonad.Util.EZConfig (additionalKeysP)
+import XMonad.Util.NamedScratchpad
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
import XMonad.Util.SpawnOnce
@@ -179,6 +178,93 @@ myWorkspaceIndices = M.fromList $ zip myWorkspaces [1..] -- (,) == \x y -> (x,y)
clickable ws = ""++ws++""
where i = fromJust $ M.lookup ws myWorkspaceIndices
+
+
+myColorizer :: Window -> Bool -> X (String, String)
+myColorizer = colorRangeFromClassName
+ (0x28,0x2c,0x34) -- lowest inactive bg
+ (0x28,0x2c,0x34) -- highest inactive bg
+ (0xc7,0x92,0xea) -- active bg
+ (0xc0,0xa7,0x9a) -- inactive fg
+ (0x28,0x2c,0x34) -- active fg
+
+-- gridSelect menu layout
+mygridConfig :: p -> GSConfig Window
+mygridConfig colorizer = (buildDefaultGSConfig myColorizer)
+ { gs_cellheight = 40
+ , gs_cellwidth = 200
+ , gs_cellpadding = 6
+ , gs_originFractX = 0.5
+ , gs_originFractY = 0.5
+ , gs_font = myFont
+ }
+
+spawnSelected' :: [(String, String)] -> X ()
+spawnSelected' lst = gridselect conf lst >>= flip whenJust spawn
+ where conf = def
+ { gs_cellheight = 40
+ , gs_cellwidth = 200
+ , gs_cellpadding = 6
+ , gs_originFractX = 0.5
+ , gs_originFractY = 0.5
+ , gs_font = myFont
+ }
+
+myAppGrid = [ ("Runelite", "runelite")
+ , ("Thunar", "thunar")
+ , ("Firefox", "firefox")
+ , ("VS Code", "code")
+ , ("Gimp", "gimp")
+ , ("Blueman Manager", "blueman-manager")
+ , ("LibreOffice Impress", "loimpress")
+ , ("LibreOffice Calc", "localc")
+ , ("LibreOffice Writer", "lowriter")
+ , ("Slack", "slack")
+ , ("Discord", "discord")
+ , ("qBittorrent", "qbittorrent")
+ ]
+
+myScratchPads :: [NamedScratchpad]
+myScratchPads = [ NS "terminal" spawnTerm findTerm manageTerm
+ , NS "plexamp" spawnPlexamp findPlexamp managePlexamp
+ , NS "calculator" spawnCalc findCalc manageCalc
+ , NS "matrix" spawnMatrix findMatrix manageMatrix
+ ]
+ where
+ spawnTerm = myTerminal ++ " -t scratchpad"
+ findTerm = title =? "scratchpad"
+ manageTerm = customFloating $ W.RationalRect l t w h
+ where
+ h = 0.9
+ w = 0.9
+ t = 0.95 -h
+ l = 0.95 -w
+ spawnPlexamp = "Plexamp.AppImage"
+ findPlexamp = className =? "plexamp"
+ managePlexamp = customFloating $ W.RationalRect l t w h
+ where
+ h = 0.9
+ w = 0.9
+ t = 0.95 -h
+ l = 0.95 -w
+ spawnCalc = "qalculate-gtk"
+ findCalc = className =? "Qalculate-gtk"
+ manageCalc = customFloating $ W.RationalRect l t w h
+ where
+ h = 0.5
+ w = 0.4
+ t = 0.75 -h
+ l = 0.70 -w
+ spawnMatrix = "element-desktop"
+ findMatrix = className =? "Element"
+ manageMatrix = customFloating $ W.RationalRect l t w h
+ where
+ h = 0.5
+ w = 0.4
+ t = 0.75 -h
+ l = 0.70 -w
+
+
------------------------------------------------------------------------
-- Key bindings. Add, modify or remove key bindings here.
-- These are general keybindings custom script bindings are not included.h
@@ -188,7 +274,7 @@ myStandardEZKeys =
--START_KEYS
--NOTE xmonad
- [ ("M-'", spawn "xmonad --recompile; xmonad --restart") -- restart xmonad
+ [ ("M-'", spawn "xmonad --recompile && xmonad --restart") -- recompile and restart xmonad
--NOTE launchers
, ("M-a", spawn "dmenu_run -bw 3 -c -l 15 -h 26") -- open dmenu
@@ -208,6 +294,10 @@ myStandardEZKeys =
, ("M-", windows W.swapMaster) -- swap window with master
, ("M-S-", windows W.swapDown) -- swap window with next window
, ("M-S-", windows W.swapUp) -- swap window with previous window
+ , ("M-S-", shiftTo Next nonNSP >> moveTo Next nonNSP) -- shift window to next workspace
+ , ("M-S-", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- shift window to previous workspace
+ , ("M-C-", nextScreen) -- shift window to next workspace
+ , ("M-C-", prevScreen) -- shift window to previous workspace
, ("M-", sendMessage Shrink) -- shrink master area
, ("M-", sendMessage Expand) -- grow master area
, ("M-", sendMessage MirrorShrink) -- shrink master area
@@ -216,6 +306,20 @@ myStandardEZKeys =
, ("M-w", sendMessage (IncMasterN 1)) -- increment windows in master
, ("M-v", sendMessage (IncMasterN (-1))) -- decrement windows in master
, ("M-", sendMessage ToggleStruts) -- toggle bar
+
+ -- NOTE Scratchpads
+ -- NOTE Toggle show/hide these programs. They run on a hidden workspace.
+ -- NOTE When you toggle them to show, it brings them to your current workspace.
+ -- NOTE Toggle them to hide and it sends them back to hidden workspace (NSP).
+ , ("M-s t", namedScratchpadAction myScratchPads "terminal")
+ , ("M-s m", namedScratchpadAction myScratchPads "plexamp")
+ , ("M-s c", namedScratchpadAction myScratchPads "calculator")
+ , ("M-s e", namedScratchpadAction myScratchPads "matrix")
+
+ -- NOTE Grid Select (CTR-g followed by a key)
+ , ("C-g g", spawnSelected' myAppGrid) -- grid select favorite apps
+ , ("C-g t", goToSelected $ mygridConfig myColorizer) -- goto selected window
+ , ("C-g b", bringSelected $ mygridConfig myColorizer) -- bring selected window
--NOTE my custom keybind/script combinations
--NOTE system controls
@@ -253,6 +357,10 @@ myStandardEZKeys =
, ("", spawn "scrot") -- take full (all monitors) screenshot
, ("M-", spawn "flameshot gui") -- launch flameshot for snipping
]
+ -- The following lines are needed for named scratchpads.
+ where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
+ nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
+
myLaptopEZKeys :: [(String, X ())]
@@ -405,8 +513,6 @@ myManageHook = composeAll
, className =? "Steam" --> doShift ( myWorkspaces !! (7-1) )
, className =? "discord" --> doShift ( myWorkspaces !! (8-1) )
, className =? "telegram-desktop" --> doShift ( myWorkspaces !! (8-1) )
- , className =? "Element" --> doShift ( myWorkspaces !! (8-1) )
- , className =? "plexamp" --> doShift ( myWorkspaces !! (5-1) )
, className =? "Pavucontrol" --> doShift ( myWorkspaces !! (5-1) )]
------------------------------------------------------------------------
-- Event handling
diff --git a/.zshrc b/.zshrc
index f44b157..cf7fbbe 100644
--- a/.zshrc
+++ b/.zshrc
@@ -110,6 +110,7 @@ alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
alias logout='/usr/bin/kill -9 -1'
alias ipaddr='curl api.ipify.org'
alias sms='nohup kdeconnect-sms &'
+alias ls='ls -la --color=auto'
path+=('$HOME/.local/bin')
path+=('/home/solomon/.local/bin')
diff --git a/themes b/themes
index 5b5652c..79e7f04 100644
--- a/themes
+++ b/themes
@@ -1,14 +1,16 @@
Rundle Wandering
---raisin-black: #1a1519;
---jet: #333138;
---sonic-silver: #73737d;
---charcoal: #26424d;
---cadet: #61757c;
---russian-green: #628966;
---sage: #b9c094;
---redwood: #a25c59;
---spanish-pink: #f1b7b1;
---isabelline: #f1ebe6;
+--background: #1a1519;
+--foreground: #f1ebe6;
+--current-line: #73737d;
+--selection: #73737d;
+--comment: #333138;
+--cyan: #4D7C82;
+--green: #628966;
+--orange: #C68855;
+--pink: #f1b7b1;
+--purple: #463A79;
+--red: #a25c59;
+--yellow: #b9c094;
Aggressive Dark
--lavender-web: #dfdfef;
@@ -17,3 +19,17 @@ Aggressive Dark
--black-coral: #5c6776;
--independence: #45526d;
--oxford-blue: #121e32;
+
+Dracula
+--background: #282a36
+--foreground: #f8f8f2
+--current-line: #44475a
+--selection: #44475a
+--comment: #6272a4
+--cyan: #8be9fd
+--green: #50fa7b
+--orange: #ffb86c
+--pink: #ff79c6
+--purple: #bd93f9
+--red: #ff5555
+--yellow: #f1fa8c
\ No newline at end of file