FelixKratz / JankyBorders

A lightweight window border system for macOS
GNU General Public License v3.0
1k stars 18 forks source link

Config via Configuration file? #17

Closed breuerfelix closed 9 months ago

breuerfelix commented 9 months ago

Is there a way to configure the binary via file? If i want to start it via brew services, i don't know how to pass configuration to the binary.

Of if this is possible, maybe you could says something about it in the readme?

Cheers Felix

FelixKratz commented 9 months ago

The idea is that you can change the properties at any time with a new invocation of the borders command, i.e. while the brew service is running:

borders width=6.0 active_color=0xff00ff00

But I guess having a file which is executed at launch would help with ease of use.

breuerfelix commented 9 months ago

Well my problem is, sometimes borders just stops (or crashes), i haven't figured out why yet. i thought that when running it via brew services, it will automatically restart but then i have the default settings. so i would have to write my own service monitor that checks if the brew service got restarted in order to run the config command :D

or do you have a better idea?

FelixKratz commented 9 months ago

I think the best idea would be to fix the crashes, could you post the crash log in Console.app for the borders process?

But I think I will implement a simple routine that checks if a file exists in either $XDG_CONFIG_HOME/borders/bordersrc $HOME/.config/borders/bordersrc or $HOME/.borders and execute it if found.

breuerfelix commented 9 months ago

I redirect the output to a logfile now and let you know once it crashes again.

FelixKratz commented 9 months ago

I dont think the output will be of much use for debugging this, you can check the crash logs retroactively by going to Applications -> Utilities -> Console.app -> Crash Reports There should be some entries for the borders process. If you copy the content of these reports here, we can maybe trace back the issue.

Alternatively, if there is no crash log there, you could try to attach a debugger by running:

lldb borders

and once it has loaded type run. As soon as the process freezes you can go to the debugger and run thread backtrace to see the relevant information of the crash.

breuerfelix commented 9 months ago

I didn't know about the Console.app! thanks for mentioning this one :) Here is what i got, 2 crashes, on the 14 and 15 around 2 o'clock, so i happened every day once (today i haven't used borders) first one:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               borders [1910]
Path:                  /opt/homebrew/*/borders
Identifier:            borders
Version:               ???
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
Responsible:           yabai [1784]
User ID:               501

Date/Time:             2023-11-14 14:24:03.5838 +0100
OS Version:            macOS 14.0 (23A344)
Report Version:        12
Anonymous UUID:        4DC65B5F-BF4B-7196-A2B9-C546F45DA81E

Time Awake Since Boot: 11000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process:   borders [1910]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib                 0x18218b11c __pthread_kill + 8
1   libsystem_pthread.dylib                0x1821c2cc0 pthread_kill + 288
2   libsystem_c.dylib                      0x1820d2a50 abort + 180
3   libsystem_c.dylib                      0x1820d1d6c __assert_rtn + 284
4   CoreGraphics                           0x1881f4500 _CGHandleAssert + 212
5   CoreGraphics                           0x187e179c0 CGPathAddRoundedRect + 412
6   borders                                0x100cf7700 border_draw + 1552
7   borders                                0x100cf630c windows_window_create + 492
8   borders                                0x100cf5d48 window_spawn_handler + 68
9   SkyLight                               0x1878c987c CGSPostLocalNotification + 188
10  SkyLight                               0x1878c9458 (anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*) + 116
11  SkyLight                               0x1878c8468 CGSSnarfAndDispatchDatagrams + 1136
12  SkyLight                               0x187c55e48 SLSGetNextEventRecordInternal + 340
13  SkyLight                               0x1879f5ff4 SLEventCreateNextEvent + 16
14  borders                                0x100cf5278 event_callback + 24
15  CoreFoundation                         0x1822cf7b8 __CFMachPortPerform + 248
16  CoreFoundation                         0x1822a02b8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 60
17  CoreFoundation                         0x1822a01d8 __CFRunLoopDoSource1 + 520
18  CoreFoundation                         0x18229eba4 __CFRunLoopRun + 2244
19  CoreFoundation                         0x18229dc2c CFRunLoopRunSpecific + 608
20  CoreFoundation                         0x18231ba50 CFRunLoopRun + 64
21  borders                                0x100cf4f2c main + 300
22  dyld                                   0x181e49058 start + 2224

Thread 1:
0   libsystem_pthread.dylib                0x1821bde28 start_wqthread + 0

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x0000000000000000
    x4: 0x0000000000000073   x5: 0x000000000000002e   x6: 0x00c5000004220122   x7: 0x0000000000000000
    x8: 0x81c170f3ad41341e   x9: 0x81c170f27409a71e  x10: 0x000000000000000a  x11: 0x0000000000000000
   x12: 0x0000000000000035  x13: 0x00000000000007fd  x14: 0x00000000ce820005  x15: 0x0000000000000005
   x16: 0x0000000000000148  x17: 0x00000001e26b8db8  x18: 0x0000000000000000  x19: 0x0000000000000006
   x20: 0x00000001d9489300  x21: 0x0000000000000103  x22: 0x00000001d94893e0  x23: 0xffffffffffffffff
   x24: 0x00000001d831a000  x25: 0x0000000000000800  x26: 0x0000000000000010  x27: 0x0000000000000020
   x28: 0x0000000000000020   fp: 0x000000016f109010   lr: 0x00000001821c2cc0
    sp: 0x000000016f108ff0   pc: 0x000000018218b11c cpsr: 0x40001000
   far: 0x00000001d831ac38  esr: 0x56000080  Address size fault

Binary Images:
       0x100cf4000 -        0x100cf7fff borders (*) <50d4d9d3-768a-3113-8dd8-36d6d6293407> /opt/homebrew/*/borders
       0x182181000 -        0x1821bbfef libsystem_kernel.dylib (*) <a7d3c07d-0a1e-3c4c-8fba-66905e16bf99> /usr/lib/system/libsystem_kernel.dylib
       0x1821bc000 -        0x1821c8ff3 libsystem_pthread.dylib (*) <e4debb6e-421d-33d0-9e17-77ae0e0fe4dc> /usr/lib/system/libsystem_pthread.dylib
       0x18205c000 -        0x1820daff3 libsystem_c.dylib (*) <1b84a7e4-8958-330c-98b8-27d491dff69e> /usr/lib/system/libsystem_c.dylib
       0x187d4f000 -        0x18842bfff com.apple.CoreGraphics (2.0) <3f5f7fda-47c6-3edd-b427-63a2a2551008> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
       0x1878bf000 -        0x187d4efff com.apple.SkyLight (1.600.0) <42fd2e33-2bb2-372f-a01f-b2b36c8277b9> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
       0x182222000 -        0x1826f8fff com.apple.CoreFoundation (6.9) <a68b8c77-1dbd-35b0-83fe-42ad58dd6629> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x181e43000 -        0x181ed6873 dyld (*) <ffd8ab66-c9ab-31df-ab80-3a3dff367ddd> /usr/lib/dyld
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)
Writable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Activity Tracing                   256K        1 
CG backing stores                172.7M       18 
ColorSync                          112K        3 
CoreGraphics                        16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                             1.6G       39 
MALLOC guard page                  192K       12 
STACK GUARD                       56.0M        2 
Stack                             8720K        2 
VM_ALLOCATE                        304K       19 
__AUTH                             714K      161 
__AUTH_CONST                      12.6M      303 
__DATA                            3123K      291 
__DATA_CONST                      15.3M      306 
__DATA_DIRTY                       695K      104 
__FONT_DATA                        2352        1 
__LINKEDIT                       886.5M        2 
__OBJC_RO                         70.6M        1 
__OBJC_RW                         2153K        1 
__TEXT                           236.3M      318 
dyld private memory                272K        2 
mapped file                         64K        1 
shared memory                     1184K       30 
===========                     =======  ======= 
TOTAL                              3.0G     1619 

-----------
Full Report
-----------

{"app_name":"borders","timestamp":"2023-11-14 14:24:04.00 +0100","app_version":"","slice_uuid":"50d4d9d3-768a-3113-8dd8-36d6d6293407","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.0 (23A344)","roots_installed":0,"incident_id":"28C590C7-E541-4F60-B4F8-078ED45DF78A","name":"borders"}
{
  "uptime" : 11000,
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro17,1",
  "coalitionID" : 1036,
  "osVersion" : {
    "train" : "macOS 14.0",
    "build" : "23A344",
    "releaseType" : "User"
  },
  "captureTime" : "2023-11-14 14:24:03.5838 +0100",
  "codeSigningMonitor" : 1,
  "incident" : "28C590C7-E541-4F60-B4F8-078ED45DF78A",
  "pid" : 1910,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2023-11-14 11:16:10.1652 +0100",
  "procStartAbsTime" : 3011169538,
  "procExitAbsTime" : 273574525351,
  "procName" : "borders",
  "procPath" : "\/opt\/homebrew\/*\/borders",
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.koekeishiya.yabai",
  "crashReporterKey" : "4DC65B5F-BF4B-7196-A2B9-C546F45DA81E",
  "responsiblePid" : 1784,
  "responsibleProc" : "yabai",
  "codeSigningID" : "borders-5555494450d4d9d3768a31138dd836d6d6293407",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570425857,
  "codeSigningValidationCategory" : 10,
  "codeSigningTrustLevel" : 4294967295,
  "instructionByteStream" : {"beforePC":"fyMD1f17v6n9AwCRXOD\/l78DAJH9e8Go\/w9f1sADX9YQKYDSARAA1A==","atPC":"AwEAVH8jA9X9e7+p\/QMAkVHg\/5e\/AwCR\/XvBqP8PX9bAA1\/WcAqA0g=="},
  "sip" : "enabled",
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
  "termination" : {"flags":0,"code":6,"namespace":"SIGNAL","indicator":"Abort trap: 6","byProc":"borders","byPid":1910},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":15559,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":115},{"value":46},{"value":55450570481336610},{"value":0},{"value":9349878493283955742},{"value":9349878488029046558},{"value":10},{"value":0},{"value":53},{"value":2045},{"value":3464626181},{"value":5},{"value":328},{"value":8093666744},{"value":0},{"value":6},{"value":7940379392,"symbolLocation":0,"symbol":"_main_thread"},{"value":259},{"value":7940379616,"symbolLocation":224,"symbol":"_main_thread"},{"value":18446744073709551615},{"value":7922098176,"symbolLocation":5584,"symbol":"read_memory"},{"value":2048},{"value":16},{"value":32},{"value":32}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6477851840},"cpsr":{"value":1073745920},"fp":{"value":6158323728},"sp":{"value":6158323696},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6477623580,"matchesCrashFrame":1},"far":{"value":7922101304}},"queue":"com.apple.main-thread","frames":[{"imageOffset":41244,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":1},{"imageOffset":27840,"symbol":"pthread_kill","symbolLocation":288,"imageIndex":2},{"imageOffset":485968,"symbol":"abort","symbolLocation":180,"imageIndex":3},{"imageOffset":482668,"symbol":"__assert_rtn","symbolLocation":284,"imageIndex":3},{"imageOffset":4871424,"symbol":"_CGHandleAssert","symbolLocation":212,"imageIndex":4},{"imageOffset":821696,"symbol":"CGPathAddRoundedRect","symbolLocation":412,"imageIndex":4},{"imageOffset":14080,"symbol":"border_draw","symbolLocation":1552,"imageIndex":0},{"imageOffset":8972,"symbol":"windows_window_create","symbolLocation":492,"imageIndex":0},{"imageOffset":7496,"symbol":"window_spawn_handler","symbolLocation":68,"imageIndex":0},{"imageOffset":43132,"symbol":"CGSPostLocalNotification","symbolLocation":188,"imageIndex":5},{"imageOffset":42072,"symbol":"(anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*)","symbolLocation":116,"imageIndex":5},{"imageOffset":37992,"symbol":"CGSSnarfAndDispatchDatagrams","symbolLocation":1136,"imageIndex":5},{"imageOffset":3763784,"symbol":"SLSGetNextEventRecordInternal","symbolLocation":340,"imageIndex":5},{"imageOffset":1273844,"symbol":"SLEventCreateNextEvent","symbolLocation":16,"imageIndex":5},{"imageOffset":4728,"symbol":"event_callback","symbolLocation":24,"imageIndex":0},{"imageOffset":710584,"symbol":"__CFMachPortPerform","symbolLocation":248,"imageIndex":6},{"imageOffset":516792,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__","symbolLocation":60,"imageIndex":6},{"imageOffset":516568,"symbol":"__CFRunLoopDoSource1","symbolLocation":520,"imageIndex":6},{"imageOffset":510884,"symbol":"__CFRunLoopRun","symbolLocation":2244,"imageIndex":6},{"imageOffset":506924,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":6},{"imageOffset":1022544,"symbol":"CFRunLoopRun","symbolLocation":64,"imageIndex":6},{"imageOffset":3884,"symbol":"main","symbolLocation":300,"imageIndex":0},{"imageOffset":24664,"symbol":"start","symbolLocation":2224,"imageIndex":7}]},{"id":15570,"frames":[{"imageOffset":7720,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":2}],"threadState":{"x":[{"value":6158888960},{"value":6659},{"value":6158352384},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6158888960},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6477831720},"far":{"value":32421281792}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4308549632,
    "size" : 16384,
    "uuid" : "50d4d9d3-768a-3113-8dd8-36d6d6293407",
    "path" : "\/opt\/homebrew\/*\/borders",
    "name" : "borders"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6477582336,
    "size" : 241648,
    "uuid" : "a7d3c07d-0a1e-3c4c-8fba-66905e16bf99",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6477824000,
    "size" : 53236,
    "uuid" : "e4debb6e-421d-33d0-9e17-77ae0e0fe4dc",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6476382208,
    "size" : 520180,
    "uuid" : "1b84a7e4-8958-330c-98b8-27d491dff69e",
    "path" : "\/usr\/lib\/system\/libsystem_c.dylib",
    "name" : "libsystem_c.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6573846528,
    "CFBundleShortVersionString" : "2.0",
    "CFBundleIdentifier" : "com.apple.CoreGraphics",
    "size" : 7196672,
    "uuid" : "3f5f7fda-47c6-3edd-b427-63a2a2551008",
    "path" : "\/System\/Library\/Frameworks\/CoreGraphics.framework\/Versions\/A\/CoreGraphics",
    "name" : "CoreGraphics",
    "CFBundleVersion" : "1774.0.4.3"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6569062400,
    "CFBundleShortVersionString" : "1.600.0",
    "CFBundleIdentifier" : "com.apple.SkyLight",
    "size" : 4784128,
    "uuid" : "42fd2e33-2bb2-372f-a01f-b2b36c8277b9",
    "path" : "\/System\/Library\/PrivateFrameworks\/SkyLight.framework\/Versions\/A\/SkyLight",
    "name" : "SkyLight"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6478241792,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5074944,
    "uuid" : "a68b8c77-1dbd-35b0-83fe-42ad58dd6629",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "2048.1.403"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6474182656,
    "size" : 604276,
    "uuid" : "ffd8ab66-c9ab-31df-ab80-3a3dff367ddd",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }
],
  "sharedCache" : {
  "base" : 6473433088,
  "size" : 4012523520,
  "uuid" : "7906534c-5d2b-3ba8-b9c6-93a5cf1b7b50"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)\nWritable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nCG backing stores                172.7M       18 \nColorSync                          112K        3 \nCoreGraphics                        16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                             1.6G       39 \nMALLOC guard page                  192K       12 \nSTACK GUARD                       56.0M        2 \nStack                             8720K        2 \nVM_ALLOCATE                        304K       19 \n__AUTH                             714K      161 \n__AUTH_CONST                      12.6M      303 \n__DATA                            3123K      291 \n__DATA_CONST                      15.3M      306 \n__DATA_DIRTY                       695K      104 \n__FONT_DATA                        2352        1 \n__LINKEDIT                       886.5M        2 \n__OBJC_RO                         70.6M        1 \n__OBJC_RW                         2153K        1 \n__TEXT                           236.3M      318 \ndyld private memory                272K        2 \nmapped file                         64K        1 \nshared memory                     1184K       30 \n===========                     =======  ======= \nTOTAL                              3.0G     1619 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "49786eb60c9f071d5b7e8353ca3860c3282e6f83",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60f8ddccefea4203d95cbeef",
      "factorPackIds" : {

      },
      "deploymentId" : 240000025
    },
    {
      "rolloutId" : "64628732bf2f5257dedc8988",
      "factorPackIds" : {

      },
      "deploymentId" : 240000001
    }
  ],
  "experiments" : [

  ]
}
}

second one:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               borders [99870]
Path:                  /opt/homebrew/*/borders
Identifier:            borders
Version:               ???
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
Responsible:           yabai [99761]
User ID:               501

Date/Time:             2023-11-15 14:49:18.5628 +0100
OS Version:            macOS 14.0 (23A344)
Report Version:        12
Anonymous UUID:        4DC65B5F-BF4B-7196-A2B9-C546F45DA81E

Sleep/Wake UUID:       0BB5AE8F-26DF-4D7A-9DB0-FB18F1201329

Time Awake Since Boot: 43000 seconds
Time Since Wake:       21356 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process:   borders [99870]

Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib                 0x18218b11c __pthread_kill + 8
1   libsystem_pthread.dylib                0x1821c2cc0 pthread_kill + 288
2   libsystem_c.dylib                      0x1820d2a50 abort + 180
3   libsystem_c.dylib                      0x1820d1d6c __assert_rtn + 284
4   CoreGraphics                           0x1881f4500 _CGHandleAssert + 212
5   CoreGraphics                           0x187e179c0 CGPathAddRoundedRect + 412
6   borders                                0x10218f700 border_draw + 1552
7   borders                                0x10218e30c windows_window_create + 492
8   borders                                0x10218dd48 window_spawn_handler + 68
9   SkyLight                               0x1878c987c CGSPostLocalNotification + 188
10  SkyLight                               0x1878c9458 (anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*) + 116
11  SkyLight                               0x1878c8468 CGSSnarfAndDispatchDatagrams + 1136
12  SkyLight                               0x187c55e48 SLSGetNextEventRecordInternal + 340
13  SkyLight                               0x1879f5ff4 SLEventCreateNextEvent + 16
14  borders                                0x10218d278 event_callback + 24
15  CoreFoundation                         0x1822cf7b8 __CFMachPortPerform + 248
16  CoreFoundation                         0x1822a02b8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 60
17  CoreFoundation                         0x1822a01d8 __CFRunLoopDoSource1 + 520
18  CoreFoundation                         0x18229eba4 __CFRunLoopRun + 2244
19  CoreFoundation                         0x18229dc2c CFRunLoopRunSpecific + 608
20  CoreFoundation                         0x18231ba50 CFRunLoopRun + 64
21  borders                                0x10218cf2c main + 300
22  dyld                                   0x181e49058 start + 2224

Thread 1:
0   libsystem_pthread.dylib                0x1821bde28 start_wqthread + 0

Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000000   x1: 0x0000000000000000   x2: 0x0000000000000000   x3: 0x0000000000000000
    x4: 0x0000000000000073   x5: 0x000000000000002e   x6: 0x00c6000004220122   x7: 0x0000000000000000
    x8: 0x4b73a84dd53b88ca   x9: 0x4b73a84c0c731bca  x10: 0x000000000000000a  x11: 0x0000000000000000
   x12: 0x0000000000000035  x13: 0x00000000000007fd  x14: 0x00000000980247fb  x15: 0x00000000000007fb
   x16: 0x0000000000000148  x17: 0x00000001e26b8db8  x18: 0x0000000000000000  x19: 0x0000000000000006
   x20: 0x00000001d9489300  x21: 0x0000000000000103  x22: 0x00000001d94893e0  x23: 0xffffffffffffffff
   x24: 0x00000001d831a000  x25: 0x0000000000000800  x26: 0x0000000000000010  x27: 0x0000000000000020
   x28: 0x0000000000000020   fp: 0x000000016dc71010   lr: 0x00000001821c2cc0
    sp: 0x000000016dc70ff0   pc: 0x000000018218b11c cpsr: 0x40001000
   far: 0x00000001d831ac38  esr: 0x56000080  Address size fault

Binary Images:
       0x10218c000 -        0x10218ffff borders (*) <50d4d9d3-768a-3113-8dd8-36d6d6293407> /opt/homebrew/*/borders
       0x182181000 -        0x1821bbfef libsystem_kernel.dylib (*) <a7d3c07d-0a1e-3c4c-8fba-66905e16bf99> /usr/lib/system/libsystem_kernel.dylib
       0x1821bc000 -        0x1821c8ff3 libsystem_pthread.dylib (*) <e4debb6e-421d-33d0-9e17-77ae0e0fe4dc> /usr/lib/system/libsystem_pthread.dylib
       0x18205c000 -        0x1820daff3 libsystem_c.dylib (*) <1b84a7e4-8958-330c-98b8-27d491dff69e> /usr/lib/system/libsystem_c.dylib
       0x187d4f000 -        0x18842bfff com.apple.CoreGraphics (2.0) <3f5f7fda-47c6-3edd-b427-63a2a2551008> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
       0x1878bf000 -        0x187d4efff com.apple.SkyLight (1.600.0) <42fd2e33-2bb2-372f-a01f-b2b36c8277b9> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
       0x182222000 -        0x1826f8fff com.apple.CoreFoundation (6.9) <a68b8c77-1dbd-35b0-83fe-42ad58dd6629> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x181e43000 -        0x181ed6873 dyld (*) <ffd8ab66-c9ab-31df-ab80-3a3dff367ddd> /usr/lib/dyld
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)
Writable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Activity Tracing                   256K        1 
CG backing stores                 81.8M       14 
ColorSync                          112K        3 
CoreGraphics                        16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                             1.6G       39 
MALLOC guard page                  192K       12 
STACK GUARD                       56.0M        2 
Stack                             8720K        2 
VM_ALLOCATE                        432K       27 
__AUTH                             714K      161 
__AUTH_CONST                      12.6M      303 
__DATA                            3123K      291 
__DATA_CONST                      15.3M      306 
__DATA_DIRTY                       695K      104 
__FONT_DATA                        2352        1 
__LINKEDIT                       886.5M        2 
__OBJC_RO                         70.6M        1 
__OBJC_RW                         2153K        1 
__TEXT                           236.3M      318 
dyld private memory                272K        2 
mapped file                         64K        1 
shared memory                      928K       18 
===========                     =======  ======= 
TOTAL                              2.9G     1611 

-----------
Full Report
-----------

{"app_name":"borders","timestamp":"2023-11-15 14:49:19.00 +0100","app_version":"","slice_uuid":"50d4d9d3-768a-3113-8dd8-36d6d6293407","build_version":"","platform":1,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"macOS 14.0 (23A344)","roots_installed":0,"incident_id":"445693C3-7D35-4702-84DD-5FD4C75A33B0","name":"borders"}
{
  "uptime" : 43000,
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro17,1",
  "coalitionID" : 1036,
  "osVersion" : {
    "train" : "macOS 14.0",
    "build" : "23A344",
    "releaseType" : "User"
  },
  "captureTime" : "2023-11-15 14:49:18.5628 +0100",
  "codeSigningMonitor" : 1,
  "incident" : "445693C3-7D35-4702-84DD-5FD4C75A33B0",
  "pid" : 99870,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2023-11-15 10:17:54.2410 +0100",
  "procStartAbsTime" : 661351718541,
  "procExitAbsTime" : 1052174997891,
  "procName" : "borders",
  "procPath" : "\/opt\/homebrew\/*\/borders",
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.koekeishiya.yabai",
  "crashReporterKey" : "4DC65B5F-BF4B-7196-A2B9-C546F45DA81E",
  "responsiblePid" : 99761,
  "responsibleProc" : "yabai",
  "codeSigningID" : "borders-5555494450d4d9d3768a31138dd836d6d6293407",
  "codeSigningTeamID" : "",
  "codeSigningFlags" : 570425857,
  "codeSigningValidationCategory" : 10,
  "codeSigningTrustLevel" : 4294967295,
  "instructionByteStream" : {"beforePC":"fyMD1f17v6n9AwCRXOD\/l78DAJH9e8Go\/w9f1sADX9YQKYDSARAA1A==","atPC":"AwEAVH8jA9X9e7+p\/QMAkVHg\/5e\/AwCR\/XvBqP8PX9bAA1\/WcAqA0g=="},
  "wakeTime" : 21356,
  "sleepWakeUUID" : "0BB5AE8F-26DF-4D7A-9DB0-FB18F1201329",
  "sip" : "enabled",
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"},
  "termination" : {"flags":0,"code":6,"namespace":"SIGNAL","indicator":"Abort trap: 6","byProc":"borders","byPid":99870},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":639822,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":115},{"value":46},{"value":55732045458047266},{"value":0},{"value":5436874227409717450},{"value":5436874219746171850},{"value":10},{"value":0},{"value":53},{"value":2045},{"value":2550286331},{"value":2043},{"value":328},{"value":8093666744},{"value":0},{"value":6},{"value":7940379392,"symbolLocation":0,"symbol":"_main_thread"},{"value":259},{"value":7940379616,"symbolLocation":224,"symbol":"_main_thread"},{"value":18446744073709551615},{"value":7922098176,"symbolLocation":5584,"symbol":"read_memory"},{"value":2048},{"value":16},{"value":32},{"value":32}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6477851840},"cpsr":{"value":1073745920},"fp":{"value":6136729616},"sp":{"value":6136729584},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6477623580,"matchesCrashFrame":1},"far":{"value":7922101304}},"queue":"com.apple.main-thread","frames":[{"imageOffset":41244,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":1},{"imageOffset":27840,"symbol":"pthread_kill","symbolLocation":288,"imageIndex":2},{"imageOffset":485968,"symbol":"abort","symbolLocation":180,"imageIndex":3},{"imageOffset":482668,"symbol":"__assert_rtn","symbolLocation":284,"imageIndex":3},{"imageOffset":4871424,"symbol":"_CGHandleAssert","symbolLocation":212,"imageIndex":4},{"imageOffset":821696,"symbol":"CGPathAddRoundedRect","symbolLocation":412,"imageIndex":4},{"imageOffset":14080,"symbol":"border_draw","symbolLocation":1552,"imageIndex":0},{"imageOffset":8972,"symbol":"windows_window_create","symbolLocation":492,"imageIndex":0},{"imageOffset":7496,"symbol":"window_spawn_handler","symbolLocation":68,"imageIndex":0},{"imageOffset":43132,"symbol":"CGSPostLocalNotification","symbolLocation":188,"imageIndex":5},{"imageOffset":42072,"symbol":"(anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*)","symbolLocation":116,"imageIndex":5},{"imageOffset":37992,"symbol":"CGSSnarfAndDispatchDatagrams","symbolLocation":1136,"imageIndex":5},{"imageOffset":3763784,"symbol":"SLSGetNextEventRecordInternal","symbolLocation":340,"imageIndex":5},{"imageOffset":1273844,"symbol":"SLEventCreateNextEvent","symbolLocation":16,"imageIndex":5},{"imageOffset":4728,"symbol":"event_callback","symbolLocation":24,"imageIndex":0},{"imageOffset":710584,"symbol":"__CFMachPortPerform","symbolLocation":248,"imageIndex":6},{"imageOffset":516792,"symbol":"__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__","symbolLocation":60,"imageIndex":6},{"imageOffset":516568,"symbol":"__CFRunLoopDoSource1","symbolLocation":520,"imageIndex":6},{"imageOffset":510884,"symbol":"__CFRunLoopRun","symbolLocation":2244,"imageIndex":6},{"imageOffset":506924,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":6},{"imageOffset":1022544,"symbol":"CFRunLoopRun","symbolLocation":64,"imageIndex":6},{"imageOffset":3884,"symbol":"main","symbolLocation":300,"imageIndex":0},{"imageOffset":24664,"symbol":"start","symbolLocation":2224,"imageIndex":7}]},{"id":639823,"frames":[{"imageOffset":7720,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":2}],"threadState":{"x":[{"value":6137294848},{"value":5379},{"value":6136758272},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6137294848},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6477831720},"far":{"value":1219792175104}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4330143744,
    "size" : 16384,
    "uuid" : "50d4d9d3-768a-3113-8dd8-36d6d6293407",
    "path" : "\/opt\/homebrew\/*\/borders",
    "name" : "borders"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6477582336,
    "size" : 241648,
    "uuid" : "a7d3c07d-0a1e-3c4c-8fba-66905e16bf99",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6477824000,
    "size" : 53236,
    "uuid" : "e4debb6e-421d-33d0-9e17-77ae0e0fe4dc",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6476382208,
    "size" : 520180,
    "uuid" : "1b84a7e4-8958-330c-98b8-27d491dff69e",
    "path" : "\/usr\/lib\/system\/libsystem_c.dylib",
    "name" : "libsystem_c.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6573846528,
    "CFBundleShortVersionString" : "2.0",
    "CFBundleIdentifier" : "com.apple.CoreGraphics",
    "size" : 7196672,
    "uuid" : "3f5f7fda-47c6-3edd-b427-63a2a2551008",
    "path" : "\/System\/Library\/Frameworks\/CoreGraphics.framework\/Versions\/A\/CoreGraphics",
    "name" : "CoreGraphics",
    "CFBundleVersion" : "1774.0.4.3"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6569062400,
    "CFBundleShortVersionString" : "1.600.0",
    "CFBundleIdentifier" : "com.apple.SkyLight",
    "size" : 4784128,
    "uuid" : "42fd2e33-2bb2-372f-a01f-b2b36c8277b9",
    "path" : "\/System\/Library\/PrivateFrameworks\/SkyLight.framework\/Versions\/A\/SkyLight",
    "name" : "SkyLight"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6478241792,
    "CFBundleShortVersionString" : "6.9",
    "CFBundleIdentifier" : "com.apple.CoreFoundation",
    "size" : 5074944,
    "uuid" : "a68b8c77-1dbd-35b0-83fe-42ad58dd6629",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation",
    "name" : "CoreFoundation",
    "CFBundleVersion" : "2048.1.403"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6474182656,
    "size" : 604276,
    "uuid" : "ffd8ab66-c9ab-31df-ab80-3a3dff367ddd",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }
],
  "sharedCache" : {
  "base" : 6473433088,
  "size" : 4012523520,
  "uuid" : "7906534c-5d2b-3ba8-b9c6-93a5cf1b7b50"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=1.1G resident=0K(0%) swapped_out_or_unallocated=1.1G(100%)\nWritable regions: Total=1.7G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.7G(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nCG backing stores                 81.8M       14 \nColorSync                          112K        3 \nCoreGraphics                        16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                             1.6G       39 \nMALLOC guard page                  192K       12 \nSTACK GUARD                       56.0M        2 \nStack                             8720K        2 \nVM_ALLOCATE                        432K       27 \n__AUTH                             714K      161 \n__AUTH_CONST                      12.6M      303 \n__DATA                            3123K      291 \n__DATA_CONST                      15.3M      306 \n__DATA_DIRTY                       695K      104 \n__FONT_DATA                        2352        1 \n__LINKEDIT                       886.5M        2 \n__OBJC_RO                         70.6M        1 \n__OBJC_RW                         2153K        1 \n__TEXT                           236.3M      318 \ndyld private memory                272K        2 \nmapped file                         64K        1 \nshared memory                      928K       18 \n===========                     =======  ======= \nTOTAL                              2.9G     1611 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "b7527db7a2f2221452c14a33da1c2c11d46798a1",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60f8ddccefea4203d95cbeef",
      "factorPackIds" : {

      },
      "deploymentId" : 240000025
    },
    {
      "rolloutId" : "62699e1ec1ff2978b47f6c3b",
      "factorPackIds" : {
        "SIRI_FIND_MY_CONFIGURATION_FILES" : "652805151bce5442b8d752e1"
      },
      "deploymentId" : 240000031
    }
  ],
  "experiments" : [

  ]
}
}
FelixKratz commented 9 months ago

These crashes should be fixed in v1.2.5, could you try it for a while and report back?

FelixKratz commented 9 months ago

A config file is now invoked if started without any arguments (e.g. when brew starts the process) at ~/.config/borders/bordersrc

acicovic commented 9 months ago

Hello there, I'm using a brew service and my attempts to load settings from a ~/.config/borders/bordersrc file have failed.

First, I tried to paste the arguments in the file as we would pass them to the executable. This didn't work, so my second attempt was to copy homebrew.mxcl.borders.plist's contents into it. In both cases, I verified that there was execute permission. None of this worked for me.

This might seem like a basic question, but could we have some documentation that explains how that file should look with a simple couple of options?

Thank you for your work. I absolutely love borders 🙂

FelixKratz commented 9 months ago

No worries, the file should look like this: https://github.com/FelixKratz/dotfiles/blob/master/.config/borders/bordersrc the file is simply executed via fork->exec and then interpreted as a shell script by bash. In the script we call the borders process again to update the properties on launch. I decided to use a bash array to make the options easier to configure. I will add an example to the documentation.

breuerfelix commented 9 months ago

And the file needs to have executeable permissions :)

acicovic commented 9 months ago

Thank you both! My first attempts to make this work didn't work out, but it's OK. I may try again at a later time.

acicovic commented 8 months ago

OK, so I was using a gradient and this wasn't working:

active_color=gradient(top_left=0xff00ff00,bottom_right=0xff0000ff)

Adding the value into double quotes made it work:

active_color="gradient(top_left=0xff00ff00,bottom_right=0xff0000ff)"