Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 15 10:34
    joshdover removed as member
  • Jan 13 22:32
    talaviram opened #75
  • Jan 05 23:33
    robertkarl closed #74
  • Jan 05 23:33
    robertkarl opened #74
  • Jan 05 06:55
    tmandry closed #65
  • Jan 05 06:54
    tmandry commented #65
  • Jan 05 06:54
    tmandry closed #66
  • Jan 05 06:53
    tmandry commented #66
  • Jan 04 23:13

    tmandry on master

    Fix travis (compare)

  • Jan 04 22:32
    talaviram commented #66
  • Jan 04 22:31
    talaviram commented #66
  • Jan 04 22:10
    talaviram commented on c721ccc
  • Jan 04 05:02

    tmandry on test-fun

    (compare)

  • Jan 04 05:02

    tmandry on master

    FakeAXSwift: Synchronize attrib… Remove global test state for li… Remove global test state for ob… and 8 more (compare)

  • Jan 04 05:02
    tmandry closed #73
  • Jan 04 05:01
    tmandry opened #73
  • Jan 04 05:00

    tmandry on test-fun

    Fix method publicitly (compare)

  • Jan 04 04:53

    tmandry on test-fun

    FakeAXSwift: Synchronize attrib… Remove global test state for li… Remove global test state for ob… and 6 more (compare)

  • Jan 02 01:34

    tmandry on 0.0.5

    (compare)

  • Jan 02 01:33

    tmandry on 0.3.0

    (compare)

Davide Bertola
@davibe
it does not work
most applications tamper with the doc icon click event instead of just opening a window on activation
private apis etc, boring stuff
Ian Ynda-Hummel
@ianyh
Does it also do it if the application is opened via Spotlight?
Davide Bertola
@davibe
uh
let me see
yes, you’re right
I can even do it with “open -a app” (terminal)
micamuc
@micamuc
Hi I saw Swindler or GitHub but I cannot find it on cocopods.org. What could be wrong?
Wesley Hamburger
@wezham
Im sorry for this noobish message but I cannot seem to import swindler locally
Is anyone able to point me in the direction of how I might include it and use it
gerasim_sergey
@gerasim_sergey_twitter
hi
Does Swindler work with ObjC?
Tyler Mandry
@tmandry
@gerasim_sergey currently there are no ObjC bindings, sorry
IanGC
@CaninoDev
Getting a build error: Cannot convert value of type '(Void) -> Void' to expected argument type '(Void) -> AnyPromise'
`let (propertyInitPromise, propertyInit, propertyInitError) = Promise<Void>.pending()
frontmostApplication = WriteableProperty(
FrontmostApplicationPropertyDelegate(
appFinder: self,
appObserver: appObserver,
initPromise: propertyInitPromise),
withEvent: FrontmostApplicationChangedEvent.self,
receivingObject: State.self,
notifier: self)
    // Must add the observer after configuring frontmostApplication.
    appObserver.onFrontmostApplicationChanged(frontmostApplication.refresh)
    appObserver.onApplicationLaunched(onApplicationLaunch)
    appObserver.onApplicationTerminated(onApplicationTerminate)

    // Must not allow frontmostApplication to initialize until the observer is in place.
    when(fulfilled: appPromises)
        //.asVoid()
        .then(execute: propertyInit) .   <---- HERE
        .catch(execute: propertyInitError)

    frontmostApplication.initialized.catch { error in
        log.error("Caught error: \(error)")
    }.always {
        log.debug("Done initializing")
    }
}`
thieso2
@thieso2
Hey - sorry if this is a bit offtopic, but can you monitor "tab-switching" in Safari & Chrome using AXSwift and is it possible to get the current URL from a tab? All this is somehow possible using AppleScript - which i really like to avoid. I'm new to the whole AX thing so I might be missing something obvious.
Tyler Mandry
@tmandry
@thieso2 that might indeed be possible using AXSwift. You’ll have to see what elements the browsers expose. There are example programs out there (not using AXSwift but the AX APIs directly) that allow you to explore this interactively by clicking on elements and looking at a text dump of all the properties and subelements, I would start there
The tool I’m thinking of might have been an example by Apple, not sure 🤔
Anyway, let me know what you find. And if AXSwift is missing anything (like property names) file an issue!
Tyler Mandry
@tmandry
Generally speaking the AX APIs are there to let a program like a screen reader read (and sometimes interact with) what’s on the screen.. so if it’s visible and important, most well behaving apps should let you access it.
thieso2
@thieso2
Oh - cool. Will investigate and report back!
Ken Arnold
@kcrca

I'm looking for some basic getting-started info. When I tell XCode to "Clone an existing project", I get errors, such as "
Showing Recent Messages
:-1: /Users/kcrca/Documents/Swindler/Pods/Target Support Files/Pods-Swindler/Pods-Swindler.debug.xcconfig: unable to open file (in target "Swindler" in project "Swindler") (in target 'Swindler')

Build system information
error: /Users/kcrca/Documents/Swindler/Pods/Target Support Files/Pods-Swindler/Pods-Swindler.debug.xcconfig: unable to open file (in target "Swindler" in project "Swindler") (in target 'Swindler')
Build system information
error: /Users/kcrca/Documents/Swindler/Pods/Target Support Files/Pods-Swindler/Pods-Swindler.debug.xcconfig: unable to open file (in target "Swindler" in project "Swindler") (in target 'Swindler')"

I was expecting this to work out of the box, but then I'm pretty new to XCode, so maybe I'm missing something?

Tyler Mandry
@tmandry
Hey @kcrca, did you run ‘pod install’? Swindler uses cocoapods to build its dependencies
Ken Arnold
@kcrca
Thanks, @tmandry , that got me started. I ended up doing a gem install cocoapods --pre to avoid one warning message, but I seem stuck on this:
% pod install
Analyzing dependencies
Fetching podspec for AXSwift from ./AXSwift
[!] No podspec found for AXSwift in ./AXSwift
Which seems true, AXSwift is empty. Obviously I'm now new to cocoapods as well as Swindler, so again, this may be obvious, but I cannot find any help on it.
Tyler Mandry
@tmandry
@kcrca ah, you have to pull the sub modules
Try.. I think, git submodule update
Ken Arnold
@kcrca
Definitely! The actual commands are "get submodule init", then "git submodule update" Now pod install works, and Swindler's xcode project builds! Onward...
I have documented what I did, put it in the README, and am sending you a pull request if you want to take it.
Tyler Mandry
@tmandry
@kcrca great, glad you got it working. thanks for doing that!
matthewmaddern
@matthewmaddern
Once we build Swinder, how do we add it to a cocoa app? not sure how to link it
matthewmaddern
@matthewmaddern
Ok i got that installed, but know it seems like the only applicatons/windows swindler can access is its own, every other one seems to be a timeout -1
Tyler Mandry
@tmandry
@matthewmaddern you need to get permissions to use the accessibility API, instructions should be in the README
matthewmaddern
@matthewmaddern
@tmandry I did that, and also added the guard to ensure it only runs as a trusted process.
Tyler Mandry
@tmandry
@matthewmaddern if you still have this problem, please file an issue with details and I will investigate. Thanks.
John
@onFireForGod_gitlab
is it possible to make a tiling window manager using this framework?
Tyler Mandry
@tmandry
Yes, in fact that is the very motivation I had for making swindler :)
John
@onFireForGod_gitlab
Are there examples of how to use this framework?
Tyler Mandry
@tmandry
Yes, see the README and SwindlerExample directory within the Swindler project. For a more comprehensive example, take a look at the x3 repository under my name
John
@onFireForGod_gitlab
k thanks
Arsalan Cheema
@arsalanc-v2

Hello. I'm trying to add Swindler to a cocoa app as a pod. The following 2 compile time errors appear:
Screen.swift line 152: 'self' captured by a closure before all members were initialized
Screen.swift line 155: Return from initializer without initializing all stored properties

Any idea how I might resolve this or is there an alternative set of steps to add Swindler to a cocoa app?
(No errors appear when building Swindler as a standalone project)

Arsalan Cheema
@arsalanc-v2
@tmandry
Arsalan Cheema
@arsalanc-v2
My bad I misread #34 thinking Swindler was ready to be used as a pod
Anyways, I'd love to help in whatever tasks are needed to get it there since it seems part of the future plan
Mark Skilbeck
@notmgsk
What prevents Swindler from knowing about all windows on all spaces? Right now it has a list of "known" windows, which I guess means windows on visible spaces.
Mark Skilbeck
@notmgsk
@tmandry ^
Ian Ynda-Hummel
@ianyh
I think it's an issue with spaces that have been visited since the process began.
For some reason the APIs don't return windows until a space has been visited.
It will give you the windows after that even if you move away from that space.
Robert Karl
@robertkarl
@tmandry , thank you for AXSwift and Swindler. I'm using it for an app using accessibility and love them so far. question: how do you inspect UIElement instances from the debugger?
(lldb) po webArea
<AXScrollArea "<AXUIElement 0x600000cc45d0> {pid=27997}" (pid=27997)>

(lldb) po webArea.attribute(Attribute.value) as? String
error: <EXPR>:3:1: error: generic parameter 'T' could not be inferred
webArea.attribute(Attribute.value) as? String
^