Close
Page 7 of 8 FirstFirst ... 5 6 7 8 LastLast
Showing results 61 to 70 of 72
  1. #61

    Default

    I must admit I haven't done very much of testing, more conceptual stuff. I tried a open source Javascript solution called HyperKeys, it does work well if you rename the windows beforehand (Titlechanger is what I used for that). But there's still some mild annoyances, mainly that it autodrags your mouse to the new window. Guess one can easily comment out some of the code...
    But to be honest I won't dwelve further into all that window management stuff as I expect JMB to handle exactly those annoyances quite well / better without having 4 tools to start up and configure every time. I think the big point on all this is: splitting key down/release does work and - from my understanding it should be okayish within the TOS.
    Next step for me is to wait for JMB and see how well it is handling hotkey focus. I guess we won't see instant mashing of 4 buttons, but more of a letting your four fingers slide across 4 adjacent buttons for your main AoE rotation. I'm cool with that.

  2. #62

    Default

    Quote Originally Posted by jak3676 View Post
    I may have to type up the shiftwindow setup.

    ShiftWindow was kicking my butt early on, but it is pretty simple once you figure it out. At 1st I was just running my 5 different rules, but it was applying those rules to only 1 client (makes sense - all the client windows have the same name). So then, I was thinking I had to rename each window, then run the rule for that named window - which works, but holy cow is that a lot of effort just to launch your games. Maybe if I knew how to save and script that to run automatically - but I don't know how to do that.

    After failing at ShiftWindow I tried FancyZones, but couldn't get it to work with WoW for some reason. So then I tried "Actual Window Manager" which worked, but it was a PITA to set up and it screwed up so many other things. Then I went back to trying GUIPropView in conjunction with some other tools - which also sorta worked. At that point someone in discord explained what I was doing wrong on ShiftWindow, so I went back and figured that out. But by then I was launching my 5 clients in windowed mode, so I tried "Windowed Borderless Gaming" to strip the window piece and I thought it all looked pretty good. But then someone pointed that there was no need to launch in windowed mode - just launch in full screen and ShiftWindow still works find - plus no need to strip out the window boarders then. Eureka! Screen setup finally looks great and its easy enough to launch everything. https://gyazo.com/038d7d1d9dc3ff0fa92287772152fbbb

    I imagine JMB will make the screen setup even easier to configure and launch. So there's no reason to get super invested in something else for now. But a quick ShiftWindow config is easy enough.

    Now back to actual control setup and testing - my goal is a combination of mouseover and macro keys on my Razer Tartarus keypad.
    Thanks for the tip regarding ShiftWindow. I didn't understand how you found a way to easily configure all your windows without renaming them first. For anyone looking for an alternative to renaming windows, this executable does only that and supports batch - https://github.com/lcapaldo/SetWindowText

    Example.cmd:
    Code:
    $echo off
    start "" "C:\Games\World of Warcraft\_classic_\WowClassic.exe"
    ping localhost -n 2
    "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW1"
    start "" "C:\Games\World of Warcraft\_classic_\WowClassic.exe"
    ping localhost -n 2
    "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW2"
    start "" "C:\Games\World of Warcraft\_classic_\WowClassic.exe"
    ping localhost -n 2
    "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW3"
    Tip for this setup:
    Control Panel > Ease of Access Center > Make the mouse easier to use
    Enable "Activate a Window by hovering over it with the mouse"
    Last edited by Nodoby : 11-18-2020 at 07:17 PM

  3. #63

    Default

    I went even more basic - I just made 5 copies of the WoWClassic.exe in the same folder (wow1.exe, wow2.exe, wow3.exe, etc). Both the retail and classic exe files are fairly small anyway (35-50MB). This way not only are the windows already renamed when launched, but I can pin each exe to the taskbar separately (you can't pin the same exe 5 times). I needed them all pinned separately that way I could use windows shortcuts to switch between them <windows key> + 1 will either open or focus the 1st item pinned on your taskbar, + 2 does the 2nd one, etc.

  4. #64

    Default

    Batch script that renames windows dynamically with SetWindowText so you only need one shortcut.
    Remove the two first lines that launches the client and waits, and this should even work when run after launch from Battle.net .

    Code:
    $ECHO OFFSTART "" "C:\Games\World of Warcraft\_classic_\WowClassic.exe"
    TIMEOUT /T 1
    TASKLIST /FI "WINDOWTITLE eq WoW_BG" | FINDSTR "WowClassic.exe"
    IF ERRORLEVEL 1 "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW_BG"
    TASKLIST /FI "WINDOWTITLE eq WoW1" | FINDSTR "WowClassic.exe"
    IF ERRORLEVEL 1 "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW1"
    TASKLIST /FI "WINDOWTITLE eq WoW2" | FINDSTR "WowClassic.exe"
    IF ERRORLEVEL 1 "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW2"
    TASKLIST /FI "WINDOWTITLE eq WoW3" | FINDSTR "WowClassic.exe"
    IF ERRORLEVEL 1 "C:\Games\World of Warcraft\_classic_\SetWindowText.exe" "World of Warcraft" "WoW3"
    REM .... add code for the number of clients.

  5. #65

  6. #66

    Default

    Quote Originally Posted by jak3676 View Post
    Have two instances of WoW with different graphics or config settings : woweconomy (reddit.com)
    [WoW] Console Variables for Video Settings (Shadowlands) (dual-boxing.com)

    I need to figure out some options for changing gfx settings on my followers - both of these approaches seem useful.
    This is some of what I'm fiddling with at the moment. I'm trying to create dynamic settings in a custom addon based on the different window resolutions created by ShiftWindow. The SetCVar commands seems to be what you are looking for. I've used it to set UI Scale, but I also added different Antia-Aliasing settings as an example.



    Folder: MyStuff

    File MyStuff.toc
    Code:
    ## Interface: 11305
    ## Title: MyStuff
    ## Version: v1.13 Classic
    ## Notes: Stuff
    myUI.lua
    myFunc.lua
    File MySettings.lua
    Code:
    local function SetPosition(frame, ...)
        if type(frame) == 'string' then
            UIPARENT_MANAGED_FRAME_POSITIONS[frame] = nil
            frame = _G[frame]
            message("text")
        end
        if type(frame) == 'table' and type(frame.IsObjectType) == 'function' and frame:IsObjectType('Frame') then
            local name = frame:GetName()
            if name then
                UIPARENT_MANAGED_FRAME_POSITIONS[name] = nil
            end
            frame:SetMovable(true)
            frame:SetUserPlaced(true)
            frame:SetDontSavePosition(true)
            frame:SetAttribute('ignoreFramePositionManager', true)
            frame.ignoreFramePositionManager = true
            if ... then
                frame:ClearAllPoints()
                frame:SetPoint(...)
            end
            frame:SetMovable(false)
        end
    end
    
    
    local function HorizontalBars()
        for i,v in ipairs{"Left","Right"} do for i = 2, 12
            do local n = "MultiBar"..v.."Button" local btn = _G[n..i] btn:ClearAllPoints()btn:SetPoint("LEFT", n..i - 1, "RIGHT", 6, 0)
            end
        end
    end
    
    
    SetCVar('useuiscale', 1)
    SetCVar('uiscale', 1)
    UIParent:SetScale(1)
    width = GetScreenWidth()
    height = GetScreenHeight()
    print("UI ", width, " ", height)
    
    -- 3440x1440
    if math.floor(width) == 1834 then
        print("3440x1440")
        -- FULLSCREEN SETTINGS
    end
    
    -- MULTIBOX MASTER
    if math.floor(width) == 1190 then
        print("MULTIBOX MASTER")
        
        -- ACTION BARS
        HorizontalBars()
        SetPosition(MultiBarLeftButton1, "BOTTOMLEFT", MultiBarBottomLeftButton1, "TOPLEFT", 0, 7)
        SetPosition(MultiBarRightButton1, "BOTTOMLEFT", MultiBarBottomRightButton1, "TOPLEFT", 0, 7)
        --SetPosition(StanceBarFrame, "CENTER", PlayerFrame, "CENTER", 0, -50)
        SetPosition(StanceBarFrame, "BOTTOMLEFT", MultiBarLeftButton1, "TOPLEFT", -235, 90)
        --SetPosition(PetActionButton1, "BOTTOMLEFT", MultiBarLeftButton1, "TOPLEFT", 0, 7)
        SetPosition(PetActionButton1, "BOTTOMLEFT", MultiBarLeftButton1, "TOPLEFT", -400, 100)
        
        -- CASTING BAR
        SetPosition(CastingBarFrame, "CENTER", WorldFrame, "CENTER", 0, -300)
        --CastingBarFrame.Border:Hide()
        --CastingBarFrame.Text:Hide()
        --CastingBarFrame.Flash:Hide()
        --CastingBarFrame:SetScale(0.7)
    
    
        -- PLAYER FRAME    
        SetPosition(PlayerFrame, "CENTER", WorldFrame, "CENTER", -200, -250)
        --SetPosition(rBFS_BuffDragFrame, "RIGHT", PlayerFrame, "LEFT", 0, 0)
        SetPosition(TemporaryEnchantFrame, "RIGHT", PlayerFrame, "LEFT", -2, -93)
        --PlayerFrameManaBarTextLeft:Hide()
        --PlayerFrameManaBarTextRight:SetScale(0.8)
        --PlayerFrameManaBarText:SetScale(0.8)
        --PlayerFrameHealthBarTextLeft:SetScale(0.8)
        --PlayerFrameHealthBarTextRight:SetScale(0.8)
        --PlayerFrameHealthBarText:SetScale(0.8)
    
    
        -- TARGET Frame
        SetPosition(TargetFrame, "CENTER", WorldFrame, "CENTER", 200, -250)
        SetPosition(TargetFrameToT, "BOTTOMLEFT", TargetFrame, "TOPRIGHT", -25, -25)
        TargetFrameToT:SetScale(1.3)    
    
    
        -- PARTY FRAME
        SetPosition(PartyMemberFrame1, "RIGHT", PlayerFrame, "LEFT", 0, 0)
        PartyMemberFrame1:SetScale(1.3)
        PartyMemberFrame2:SetScale(1.3)
        PartyMemberFrame3:SetScale(1.3)
        PartyMemberFrame4:SetScale(1.3)
    
    
        -- RAID Frame
        SetPosition(CompactRaidFrameContainer, "BOTTOM", MultiBarLeftButton12, "TOPRIGHT", 3, 7)
        CompactRaidFrameContainerBorderFrameBorderTop:Hide()
        CompactRaidFrameContainerBorderFrameBorderTopLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderTopRight:Hide()
        CompactRaidFrameContainerBorderFrameBorderLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderRight:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottom:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottomLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottomRight:Hide()
    
    
        -- UI SCALE
        SetCVar('useuiscale', 1)
        SetCVar('uiscale', 0.64999997615814)
        UIParent:SetScale(0.64999997615814)
    
    
        -- CONFIG
        SetCVar('MSAAQuality', "3,0")
        
    end
    
    
    -- MULTIBOX SLAVE
    if math.floor(width) == 1410 then
        print("MULTIBOX SLAVE")
        
        -- MENUBAR
        --SetPosition(MainMenuBar, "BOTTOMRIGHT", WorldFrame, "BOTTOMRIGHT", -120, 0)
        
        -- ACTION BARS
        HorizontalBars()
        SetPosition(MultiBarLeftButton1, "BOTTOMLEFT", MultiBarBottomLeftButton1, "TOPLEFT", 0, 7)
        SetPosition(MultiBarRightButton1, "BOTTOMLEFT", MultiBarBottomRightButton1, "TOPLEFT", 0, 7)
        SetPosition(PetActionButton1, "BOTTOMLEFT", MultiBarLeftButton1, "TOPLEFT", 0, 7)
        --SetPosition(StanceBarFrame, "CENTER", PlayerFrame, "CENTER", 0, -50)
        StanceBarFrame:SetScale(0.8)
        SetPosition(StanceBarFrame, "BOTTOMLEFT", MultiBarLeftButton1, "TOPLEFT", 0, 7)
        
        -- CASTING BAR
        SetPosition(CastingBarFrame, "CENTER", WorldFrame, "CENTER", 0, -300)
        --CastingBarFrame.Border:Hide()
        --CastingBarFrame.Text:Hide()
        --CastingBarFrame.Flash:Hide()
        --CastingBarFrame:SetScale(0.7)
        
        -- PLAYER FRAME    
        SetPosition(PlayerFrame, "CENTER", WorldFrame, "CENTER", -200, -140)
        --SetPosition(rBFS_BuffDragFrame, "RIGHT", PlayerFrame, "LEFT", 0, 0)
        SetPosition(TemporaryEnchantFrame, "RIGHT", PlayerFrame, "LEFT", -2, -93)
        
        -- TARGET FRAME
        SetPosition(TargetFrame, "CENTER", WorldFrame, "CENTER", 200, -140)
        SetPosition(TargetFrameToT, "LEFT", TargetFrame, "RIGHT", -20, -20)
        TargetFrameToT:SetScale(1.3)
        
        -- PARTY FRAME
        SetPosition(PartyMemberFrame1, "RIGHT", PlayerFrame, "LEFT", 0, 0)
        PartyMemberFrame1:SetScale(1.3)
        PartyMemberFrame2:SetScale(1.3)
        PartyMemberFrame3:SetScale(1.3)
        PartyMemberFrame4:SetScale(1.3)
        
        -- RAID FRAME (TOGGLE IN GAME: /click CompactRaidFrameManagerDisplayFrameLockedModeToggle)
        SetPosition(CompactRaidFrameContainer, "TOPLEFT", WorldFrame, "TOPLEFT", 0, 0)
        CompactRaidFrameContainer:SetScale(1.4)
        
        CompactRaidFrameContainerBorderFrameBorderTop:Hide()
        CompactRaidFrameContainerBorderFrameBorderTopLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderTopRight:Hide()
        CompactRaidFrameContainerBorderFrameBorderLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderRight:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottom:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottomLeft:Hide()
        CompactRaidFrameContainerBorderFrameBorderBottomRight:Hide()
        
        CompactRaidFrameManagerToggleButton:Hide()
        CompactRaidFrameManagerDisplayFrame:Hide()
        CompactRaidFrameManager:Hide()
        CompactRaidFrameManagerBg:Hide()
        CompactRaidFrameManagerBorderTopRight:Hide()
        CompactRaidFrameManagerBorderRight:Hide()
        CompactRaidFrameManagerBorderBottomRight:Hide()
        
        -- CHAT FRAME
        FCF_Tab_OnClick(ChatFrame3)
        
        -- UI SCALE
        SetCVar('useuiscale', 0)
        
        -- CONFIG
        SetCVar('MSAAQuality', "1,0")    
        
    end
    File myFunc.lua
    Code:
    hooksecurefunc("BuffFrame_UpdateAllBuffAnchors", function()    for i = 1, BUFF_ACTUAL_DISPLAY do
            _G["BuffButton"..i]:ClearAllPoints()
    
    
            if i > 1 and mod(i, BUFFS_PER_ROW) == 1 then
                _G["BuffButton"..i]:SetPoint("TOP", _G["BuffButton"..(i-BUFFS_PER_ROW)], "BOTTOM", 0, -BUFF_ROW_SPACING)
            elseif i == 1 then
                -- USE THIS TO CHANGE POSITION OF BUFF FRAME (IN RELATION TO PLAYERFRAME)
                _G["BuffButton"..i]:SetPoint("TOPLEFT", PlayerFrame, 95, -75)
            else
                _G["BuffButton"..i]:SetPoint("TOPLEFT", _G["BuffButton"..i-1], 35, 0)
            end
        end
    end)
    
    
    hooksecurefunc("DebuffButton_UpdateAnchors", function (buttonName, index)
        local buff = _G[buttonName..index]
        local numBuffRows = math.floor(BUFF_ACTUAL_DISPLAY/9) + 1
    
    
        buff:ClearAllPoints()
        if index > 1 and mod(index, BUFFS_PER_ROW) == 1 then
            buff:SetPoint("TOP", _G[buttonName..(index-BUFFS_PER_ROW)], "BOTTOM", 0, -BUFF_ROW_SPACING)
        elseif index == 1 then
            -- USE THIS TO CHANGE POSITION OF DEBUFF FRAME (IN RELATION TO BUFFBUTTON1)
            buff:SetPoint("TOPLEFT", _G["BuffButton1"], 0, (60 + (numBuffRows * 45)))
        else
            buff:SetPoint("TOPLEFT", _G[buttonName..(index-1)], 35, 0)
        end
    end)
    
    
    -- Remove flashing PlayerFrame in rested area
    hooksecurefunc("PlayerFrame_UpdateStatus", function()
        if IsResting("player") then
            PlayerStatusTexture:Hide()
            PlayerRestGlow:Hide()
            PlayerStatusGlow:Hide()
        end
    end)
    Attached Images Attached Images  
    Last edited by Nodoby : 11-22-2020 at 05:15 PM

  7. #67

    Default

    For everyone doing the focus-follows-mouse - what did you set your delay to?
    Change Time to Activate Window by Hovering Over with Mouse in Windows | Tutorials (tenforums.com)

    Also - has anyone found quicker, more convenient way to turn mouse-focus on and off? (instead of clicking through the control panel) Bit of a PITA going back and forth manually.

  8. #68

    Default

    Quote Originally Posted by jak3676 View Post
    For everyone doing the focus-follows-mouse - what did you set your delay to?
    Change Time to Activate Window by Hovering Over with Mouse in Windows | Tutorials (tenforums.com)

    Also - has anyone found quicker, more convenient way to turn mouse-focus on and off? (instead of clicking through the control panel) Bit of a PITA going back and forth manually.
    0ms delay ofc, but still some delay may happen. On the other hand, they don't want to unban me yet, maybe pretty fast mouse move with high dpi may flag account and it's better to keep default 500ms.

    As for turn on/off, there is registry value for this, but will require relog/restart to system. Probably best approach to make shortcut right to mouse settings or make another virtual desktop with Control Panel opened.
    Last edited by woloss : 11-22-2020 at 03:55 PM

  9. #69

    Default

    Quote Originally Posted by jak3676 View Post
    For everyone doing the focus-follows-mouse - what did you set your delay to?
    Change Time to Activate Window by Hovering Over with Mouse in Windows | Tutorials (tenforums.com)

    Also - has anyone found quicker, more convenient way to turn mouse-focus on and off? (instead of clicking through the control panel) Bit of a PITA going back and forth manually.
    MouseWinX can change settings without needing to log off and on.


    You do need to compile it yourself with Windows Driver Kit Version 7.1.0
    Download: https://www.microsoft.com/en-us/down....aspx?id=11800
    Moun the ISO-file and install (you only need to build option).
    Download and extract: https://github.com/cuviper/mousewinx/archive/master.zip
    Run x86 Free Build Environment from Start Menu
    In the console, change to source files directory and type build.

    Attached Images Attached Images    
    Last edited by Nodoby : 11-22-2020 at 05:15 PM

  10. #70

    Default

    For whatever reason I've fond it easier to mouse left-right instead of up-down. World of Warcraft (gyazo.com)

    Main window is 2560x1000 (3840x1500 in game), followers are 640x400 (960x600 in game).

    I recorded a quick clip of testing with focus-follows-mouse. I believe the default is 500ms delay between window swaps - this would be totally unusable for instant casts. https://youtu.be/51-WvBj7hXY

    Then I tried again with my keypad macros set in Razer Synapse to change window focus and send a single keystroke to that window. (Razor Synapse macro is: <windows> key-down, "5" key-down, "5" key-up, <windows> key-up, "6" key-down, "6" key-up. I have the whole thing set for 0 delay). That worked much better for me. https://youtu.be/g8DGhXKTaOQ

    I did some quick testing to see how its working in combat - something is off. Multibox Testing - 1st Combat - YouTube you can see something is pressing the windows button, but not sending the screen swap. Overall DPS is good - doesn't seem like I'm loosing too many global cool downs by doing it this way.
    Last edited by jak3676 : 11-22-2020 at 10:27 PM

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •