Giter Club home page Giter Club logo

lporg's Introduction

logo

lporg

Go Downloads Github All Releases License

Organize Your macOS Launchpad Apps


Why

This project is meant to help people setting up a brand new Mac or to keep all of their Launchpad Folders in sync across devices.

Features

  • Load/Save Launchpad app and folder settings
  • Load/Save Dock app ordering settings
  • Set desktop background image from URL/path in config

Tested On

  • macOS 10.12 (Sierra)
  • macOS 10.13.2 (High Sierra)
  • macOS 10.13.3 (High Sierra)
  • macOS 14.0 (Sonoma)

Install

$ brew install blacktop/tap/lporg

Getting Started

❯ lporg

Organize Your Launchpad

Usage:
  lporg [command]

Available Commands:
  default     Organize by default Apple app categories
  help        Help about any command
  load        Load launchpad settings config from `FILE`
  revert      Revert to launchpad settings backup
  save        Save current launchpad settings
  version     Print the version number of lporg

Flags:
  -c, --config string   config file (default is $CONFIG/lporg/config.yaml)
  -h, --help            help for lporg
      --icloud          use iCloud for config
  -V, --verbose         verbose output

Use "lporg [command] --help" for more information about a command.

Commands

Default

$ lporg default

Organize your launchpad apps using the default Apple app categories as folders

Save

$ lporg save

Save your current launchpad app layout to a lporg.yml file

Load

$ lporg load lporg.yml

Load a launchpad app layout from a YAML config file

Revert

$ lporg revert

Revert a launchpad app layout to the backed up version stored at $CONFIG/lporg/config.yml

Example Configs

TODO

  • create Brewfile from unfound apps IF they are installable via brew?
  • add ability to save/load private gist configs
  • add ability to have desktop image be a URL and it will download and check sha256, save in .lporg folder and add to desktop

Issues

Find a bug? Want more features? Find something missing in the documentation? Let me know! Please don't hesitate to file an issue

License

MIT Copyright (c) 2017-2023 blacktop

lporg's People

Contributors

blacktop avatar dependabot[bot] avatar genkaok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lporg's Issues

Not working in 10.15.2 - Widgets Removed

Saving and restoring is not working on 10.15.2. I suspect it's due to the removal of Widgets from Catalina.

⨯ query all widgets failed error=no such table: widgets

(no such table: widgets)
[2019-12-21 06:38:26]
• creating Widget folders and adding widgets to them
⨯ GetMissing=>Widgets error=no such table: widgets

2 spaces as an indent

Is it possible to change an indent size to 2 spaces instead of 4 spaces?
I prefer 2 spaces because 4 spaces indent has too much space.

Panic when running `lporg load`

When running lp.DB.Where("type in (?)", []int{RootType, FolderRootType, PageType}), it's panic and can't operate launchpad

// ClearGroups clears out items related to groups
func (lp *LaunchPad) ClearGroups() error {
utils.Indent(log.Info)("clear out groups")
var items []Item
return lp.DB.Where("type in (?)", []int{RootType, FolderRootType, PageType}).Delete(&items).Error
}

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x121e452]

goroutine 1 [running]:
gorm.io/gorm.(*DB).getInstance(0x1a3e108?)
	gorm.io/[email protected]/gorm.go:399 +0x12
gorm.io/gorm.(*DB).Where(0xc0000187e0?, {0x14e8d40, 0x1610a90}, {0xc00032a730, 0x1, 0x1})
	gorm.io/[email protected]/chainable_api.go:201 +0x36
github.com/blacktop/lporg/internal/database.(*LaunchPad).ClearGroups(0xc000407b88)
	github.com/blacktop/lporg/internal/database/database.go:87 +0x109
github.com/blacktop/lporg/internal/command.LoadConfig(0xc00013dcd8)
	github.com/blacktop/lporg/internal/command/command.go:415 +0x66e
github.com/blacktop/lporg/cmd.glob..func2(0xc0001d4200?, {0xc00014d730?, 0x4?, 0x15567a2?})
	github.com/blacktop/lporg/cmd/load.go:56 +0x1ad
github.com/spf13/cobra.(*Command).execute(0x192fb20, {0xc00014d710, 0x1, 0x1})
	github.com/spf13/[email protected]/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0x19300e0)
	github.com/spf13/[email protected]/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:992
github.com/blacktop/lporg/cmd.Execute()
	github.com/blacktop/lporg/cmd/root.go:61 +0x1a
main.main()
	github.com/blacktop/lporg/main.go:27 +0xf

Cannot load config with missing apps

My config has some apps that is not supplied.
And there are also some apps in the config but not installed.

And I got the following log with exit code 2.

> lporg load --no-backup --yes --verbose --config /var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/T/tmp.3ZyR2YXw/launchpad.yaml

                                          '.:/+ooossoo+/:-'
                                     ':+ydNMMMMMMMMMMMMMMMNmyo:'
                                   '.--.''.:ohNMMMMMMMMNho:.''..'
                                        -o+.  ':sNMMms-'  .--
                                 '+o     .mNo    '::'   :dNh'    '+-
                                :mMo      dMM-         .NMMs      hNs
                               -NMMNs:--/hMMM+         .MMMNo-''-sMMMs
                          -'   sMMMMMMNNMMMMM:          hMMMMNNNNMMMMN
                         -y    /MMMMMMMMMMMNs           .mMMMMMMMMMMMd     :
                        .mN.    oNMMMMMMMms-             .yNMMMMMMMNy.    -N:
                        hMMm+'   ./syys+-'    -//   ':/-   ./syyys/.    'oNMm'
                       /MMMMMms:.              '.    '''             ./ymMMMMs
                       mMMMMMMMMNo                 '               'sNMMMMMMMN.
                      -MMMMMMMMN+'             :shmmmh+.            'oNMMMMMMMo
                      /MMMMMMMd-             :dds+///sdm/             :mMMMMMMm
                      sMMMMMMd.             :m+'      ':hs'            -mMMMMMM+
                    .hMMMMMMM-             :h:'         'oh.            /MMMMMMN/
                   /mMMMMMMMN'           ./+' .://:::::.  /d/           .MMMMMMMN/
                 'sMMMMMMMMMM/       '.-:-'     '....'     .so-'        oMMMMMMMMN:
                .hMMMMMMMMMMMNs-'     ''                     '--     '-yNMMMMMMMMMN-
               -dMMMMMMMMMMMMMMNs'                                  'yNMMMMMMMMMMMMm.
              -mMMMMMMMMMMMMMMNo'                                    'sMMMMMMMMMMMMMd'
             :NMMMMMMMMMMMMMMm:                                        /NMMMMMMMMMMMMy
            -NMMMMMMMMMMMMMMd.                                        ' -mMMMMMMMMMMMMo
           .mMMMMMMMMMMMMMMd-/o'                                      .o::mMMMMMMMMMMMN/
          'dMMMMMMMMMMMMMMMhmm.                                        -mdhMMMMMMMMMMMMm.
          yMMMMMMMMMMMMMMMMMN-                                          :NMMMMMMMMMMMMMMh
         /MMMMMMMMMMMMMMMMMN:                                            +MMMMMMMMMMMMMMM+
        'mMMMMMMMMMMMMMMMMMo                                              sMMMMMMMMMMMMMMN.
        oMMMMMMMMMMMMMMMMMh                                               'dMMMMMMMMMMMMMMy
       'mMMMMMMMMMMMMMMMMN.                                                :MMMMMMMMMMMMMMM-
       :MMMMMMMMMMMMMMMMMo                                                  yMMMMMMMMMMMMMMy
       sMMMMMMMMMMMMMMMMN'                                                  -MMMMMMMMMMMMMMN'
       dMMMMMMMMMMMMMMMMh                                                    mMMMMMMMMMMMMMM-
       mMMMMMMMMMMMMMMMMo                                                    yMMMMMMMMMMMMMM-
       mMMMMMMMMMMMMMMMMo                                                    sMMMMMMMMMMMMMM.
       hMMMMMMMMMMMMMMMMs                                                    hMMMMMMMMMMMMMN
       oMMMMMMMMMMMMMMMMy                                                    dMMMMMMMMMMMMMy
       .MMMMMMMMMMMMMMMMd                                                    NMMMMMMMMMMMMM-
        yMMMMMMMMMMMMMMMM'                                                  .MMMMMMMMMMMMMh
        .NMMMMMMMMMMMMMMM/                                                  oMMMMMMMMMMMMN-
         :NMMMMMMMMMMMMMMh                                                  mMMMMMMMMMMMMo
          /NMMMMMMMMMMMMMM-                                                /MMMMMMMMMMMMd'
           :NMMMMMMMMMMMMMh                                               'mMMMMMMMMMMMm.
            .hMMMMMMMMMMMMM/                                              oMMMMMMMMMMMN-
              +mMMMMMMMMMMMN-                                            :MMMMMMMMMMMm-
               'oNMMMMMMMMMMm.                                          -NMMMMMMMMMMd-
                 .omNmh+:hNMMm-                                        :NNsmMMMMMMMy'
                   '.     -smMN+                                     'oNh- 'sNMMNh:
                            ':yNh-                                  -hh:     .:-'
                               ':o/'                              '/+.
                                   '                              '


   • using config file: /var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/T/tmp.3ZyR2YXw/launchpad.yaml
   • Loading launchpad settings
      • parsing launchpad config YAML path=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/T/tmp.3ZyR2YXw/launchpad.yaml
   • PARSE LAUCHPAD DATABASE
      • found launchpad database  database=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/0/com.apple.dock.launchpad/db/db
         • removed old DB file       path=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/0/com.apple.dock.launchpad/db/db
         • removed old DB file       path=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/0/com.apple.dock.launchpad/db/db-shm
         • removed old DB file       path=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/0/com.apple.dock.launchpad/db/db-wal
      • restarting Dock
      • clear out groups
      • disabling SQL update triggers
      • add root and holding pages
         • found installed apps that are not in supplied config app=...
         • found installed apps that are not in supplied config app=...
         • found installed apps that are not in supplied config app=...
         • found installed apps that are not in supplied config app=...
         • found installed apps that are not in supplied config app=...
         • found app in config that are is not on system app=...
         • found app in config that are is not on system app=...
         • found app in config that are is not on system app=...
         • found app in config that are is not on system app=...
         • found app in config that are is not on system app=...
         • found app in config that are is not on system app=...
panic: runtime error: slice bounds out of range [6:5]

goroutine 1 [running]:
github.com/blacktop/lporg/internal/database.(*LaunchPad).GetMissing(0xc000179ae0, 0xc000179b08, 0xc000274080?)
	github.com/blacktop/lporg/internal/database/database.go:99 +0x10e7
github.com/blacktop/lporg/internal/command.LoadConfig(0xc000179ca8)
	github.com/blacktop/lporg/internal/command/command.go:514 +0x90b
github.com/blacktop/lporg/cmd.glob..func2(0x19b3320, {0xc0001fa730?, 0x4?, 0x1594aa2?})
	github.com/blacktop/lporg/cmd/load.go:101 +0x511
github.com/spf13/cobra.(*Command).execute(0x19b3320, {0xc0001fa6e0, 0x5, 0x5})
	github.com/spf13/[email protected]/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0x19b38e0)
	github.com/spf13/[email protected]/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:992
github.com/blacktop/lporg/cmd.Execute()
	github.com/blacktop/lporg/cmd/root.go:61 +0x1a
main.main()
	github.com/blacktop/lporg/main.go:27 +0xf

I tested with some versions, and here is the result.
macOS: 12.6.8 (21G725)
lporg:

  • 20.4.25: failed
  • 20.4.24: failed
  • 20.4.23: passed
  • 20.4.22: passed

Error restoring previous db - OS 13.5.1

Hi, I have the following errors come up in verbose mode - restore of an existing db fails. The backup was taken only some 10 weeks ago (around that).

(/Users/blacktop/Developer/Github/blacktop/lporg/database/database.go:370)
[2023-08-29 09:25:26]  no such table: widgets

(/Users/blacktop/Developer/Github/blacktop/lporg/database/database.go:370)
[2023-08-29 09:25:26]  [0.22ms]  SELECT * FROM "widgets"
[0 rows affected or returned ]
      ⨯ query all widgets failed  error=no such table: widgets
      • creating App folders and adding apps to them

Any help appreciated.

Thanks, Michael

Panic with `default` sub-command

In version 20.4.27, default cannot exit peacefully.
However, it does restore to default somehow.

Here is the log:

panic: interface conversion: interface {} is database.AppFolder, not map[string]interface {}

goroutine 1 [running]:
github.com/blacktop/lporg/internal/database.(*LaunchPad).GetMissing(0xc00049db00, 0xc00049da10, 0x3?)
	github.com/blacktop/lporg/internal/database/database.go:104 +0xf0e
github.com/blacktop/lporg/internal/command.DefaultOrg(0xc00049dca8)
	github.com/blacktop/lporg/internal/command/command.go:260 +0xdfc
github.com/blacktop/lporg/cmd.glob..func1(0x19b3040, {0x19e8700?, 0x4?, 0x1594782?})
	github.com/blacktop/lporg/cmd/default.go:101 +0x491
github.com/spf13/cobra.(*Command).execute(0x19b3040, {0x19e8700, 0x0, 0x0})
	github.com/spf13/[email protected]/command.go:940 +0x87c
github.com/spf13/cobra.(*Command).ExecuteC(0x19b38e0)
	github.com/spf13/[email protected]/command.go:1068 +0x3a5
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:992
github.com/blacktop/lporg/cmd.Execute()
	github.com/blacktop/lporg/cmd/root.go:61 +0x1a
main.main()
	github.com/blacktop/lporg/main.go:27 +0xf

Waiting `dorg`

Thank you @blacktop for developing such a wonderful tool!

I've been waiting for a tool to organize Dock which you named dorg here.
Have you been working on the development? (The page says "in progress")
I want to use the tool so much.
Please consider to restart developing.

Relative path for folders

If it finds folders within the home directory in persistent-others, it should add to lporg.yml with a relative path (~/Downloads).
It makes it possible to work on other machines whose user name is different.

Just preview generated file

I want to show the preview of the file, launchpad.toml without generating.

# Not this

• SAVING LAUNCHPAD DATABASE
      • found launchpad database  
   • collecting launchpad/dashboard pages
   • interating over launchpad pages
   • page number: 1
      • found app                 title=App Store
      • found app                 title=Safari

# And more…
# But this

apps:
  pages:
  - number: 1
    items:
    - App Store
    - Safari

# And more…

Compatibility with macOS Big Sur

Hello, I saw in the readme that lporg has been tested on macOS High Sierra. I am wondering, is this "supposed" to work on macOS Big Sur?

After installing lporg, I ran lporg save and I got the following error but I'm not sure if this is because of macOS Big Sur or other reasons.

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xb01dfacedebac1e pc=0x7fff2040ac9e]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff2040ac9e
stack: frame={sp:0x7ffeefbff1d8, fp:0x7ffeefbff228} stack=[0x7ffeefb80278,0x7ffeefbff2e0)
0x00007ffeefbff0d8:  0x01007ffeefbff0f8  0x0000000000000004
0x00007ffeefbff0e8:  0x000000000000001f  0x00007fff2040ac9e
0x00007ffeefbff0f8:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbff108:  0x0000000004035df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff1a8
0x00007ffeefbff118:  0x000000000440d227  0x00007ffeefbff160
0x00007ffeefbff128:  0x00000000040360a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x0000000004641540
0x00007ffeefbff138:  0x0000000000000001  0x0000000000000001
0x00007ffeefbff148:  0x00007ffeefbff1a8  0x0000000004035df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff158:  0x0000000004641540  0x00007ffeefbff198
0x00007ffeefbff168:  0x0000000004036030 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbff178
0x00007ffeefbff178:  0x0000000004036060 <runtime.fatalthrow.func1+0x0000000000000000>  0x0000000004641540
0x00007ffeefbff188:  0x0000000004035df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff1a8
0x00007ffeefbff198:  0x00007ffeefbff1c8  0x0000000004035df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff1a8:  0x00007ffeefbff1b0  0x0000000004035e20 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbff1b8:  0x0000000004411a8a  0x000000000000002a
0x00007ffeefbff1c8:  0x00007ffeefbff218  0x000000000404b596 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbff1d8: <0x0000000004411a8a  0x0000000004641540
0x00007ffeefbff1e8:  0x00007ffeefbff258  0x0000000000000000
0x00007ffeefbff1f8:  0x00000000046416e0  0x0000000000000000
0x00007ffeefbff208:  0x000000c000240ee8  0x00000000040a9000 <syscall.libc_write_trampoline+0x0000000000000000>
0x00007ffeefbff218:  0x00007ffeefbff260 !0x00007fff2040ac9e
0x00007ffeefbff228: >0x00007ffeefbff260  0x0000000004614000
0x00007ffeefbff238:  0x00000000000003be  0x0000000004139b65 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbff248:  0x000000000406769f <runtime.syscall+0x000000000000001f>  0x000000c000240e60
0x00007ffeefbff258:  0x00000000046416e0  0x000000c000240e30
0x00007ffeefbff268:  0x0000000004065510 <runtime.asmcgocall+0x0000000000000070>  0x00007ffeefbff2a0
0x00007ffeefbff278:  0x000000000401062e <runtime.persistentalloc.func1+0x000000000000002e>  0x0000000000000020
0x00007ffeefbff288:  0x0000000000000000  0x0000000004671ae0
0x00007ffeefbff298:  0x00000000000011f8  0x000000c0000001a0
0x00007ffeefbff2a8:  0x0000000004063629 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbff2b8:  0x00000000044611a0  0x0000000004641540
0x00007ffeefbff2c8:  0x00007ffeefbff310  0x0000000004063525 <runtime.mstart+0x0000000000000005>
0x00007ffeefbff2d8:  0x00000000040634dd <runtime.rt0_go+0x000000000000013d>
runtime.throw({0x4411a8a, 0x4641540})
	/opt/homebrew/Cellar/go/1.17.3/libexec/src/runtime/panic.go:1198 +0x71
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff2040ac9e
stack: frame={sp:0x7ffeefbff1d8, fp:0x7ffeefbff228} stack=[0x7ffeefb80278,0x7ffeefbff2e0)
0x00007ffeefbff0d8:  0x01007ffeefbff0f8  0x0000000000000004
0x00007ffeefbff0e8:  0x000000000000001f  0x00007fff2040ac9e
0x00007ffeefbff0f8:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbff108:  0x0000000004035df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff1a8
0x00007ffeefbff118:  0x000000000440d227  0x00007ffeefbff160
0x00007ffeefbff128:  0x00000000040360a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x0000000004641540
0x00007ffeefbff138:  0x0000000000000001  0x0000000000000001
0x00007ffeefbff148:  0x00007ffeefbff1a8  0x0000000004035df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff158:  0x0000000004641540  0x00007ffeefbff198
0x00007ffeefbff168:  0x0000000004036030 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbff178
0x00007ffeefbff178:  0x0000000004036060 <runtime.fatalthrow.func1+0x0000000000000000>  0x0000000004641540
0x00007ffeefbff188:  0x0000000004035df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff1a8
0x00007ffeefbff198:  0x00007ffeefbff1c8  0x0000000004035df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff1a8:  0x00007ffeefbff1b0  0x0000000004035e20 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbff1b8:  0x0000000004411a8a  0x000000000000002a
0x00007ffeefbff1c8:  0x00007ffeefbff218  0x000000000404b596 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbff1d8: <0x0000000004411a8a  0x0000000004641540
0x00007ffeefbff1e8:  0x00007ffeefbff258  0x0000000000000000
0x00007ffeefbff1f8:  0x00000000046416e0  0x0000000000000000
0x00007ffeefbff208:  0x000000c000240ee8  0x00000000040a9000 <syscall.libc_write_trampoline+0x0000000000000000>
0x00007ffeefbff218:  0x00007ffeefbff260 !0x00007fff2040ac9e
0x00007ffeefbff228: >0x00007ffeefbff260  0x0000000004614000
0x00007ffeefbff238:  0x00000000000003be  0x0000000004139b65 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbff248:  0x000000000406769f <runtime.syscall+0x000000000000001f>  0x000000c000240e60
0x00007ffeefbff258:  0x00000000046416e0  0x000000c000240e30
0x00007ffeefbff268:  0x0000000004065510 <runtime.asmcgocall+0x0000000000000070>  0x00007ffeefbff2a0
0x00007ffeefbff278:  0x000000000401062e <runtime.persistentalloc.func1+0x000000000000002e>  0x0000000000000020
0x00007ffeefbff288:  0x0000000000000000  0x0000000004671ae0
0x00007ffeefbff298:  0x00000000000011f8  0x000000c0000001a0
0x00007ffeefbff2a8:  0x0000000004063629 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbff2b8:  0x00000000044611a0  0x0000000004641540
0x00007ffeefbff2c8:  0x00007ffeefbff310  0x0000000004063525 <runtime.mstart+0x0000000000000005>
0x00007ffeefbff2d8:  0x00000000040634dd <runtime.rt0_go+0x000000000000013d>
runtime.sigpanic()
	/opt/homebrew/Cellar/go/1.17.3/libexec/src/runtime/signal_unix.go:719 +0x396

goroutine 1 [syscall]:
syscall.syscall(0x4139b60, 0x1, 0x40087468, 0xc000240ef0)
	/opt/homebrew/Cellar/go/1.17.3/libexec/src/runtime/sys_darwin.go:22 +0x3b fp=0xc000240e60 sp=0xc000240e40 pc=0x40621db
syscall.syscall(0x80000000000, 0xc000240ec8, 0x40c17c6, 0xc00006c0c0)
	<autogenerated>:1 +0x26 fp=0xc000240ea8 sp=0xc000240e60 pc=0x4067e66
golang.org/x/sys/unix.ioctl(0xc00006c0c0, 0xc00000a700, 0x40a9000)
	/Users/blacktop/go/pkg/mod/golang.org/x/[email protected]/unix/zsyscall_darwin_amd64.go:731 +0x39 fp=0xc000240ed8 sp=0xc000240ea8 pc=0x41397f9
golang.org/x/sys/unix.IoctlGetWinsize(...)
	/Users/blacktop/go/pkg/mod/golang.org/x/[email protected]/unix/ioctl.go:66
golang.org/x/term.getSize(0x2)
	/Users/blacktop/go/pkg/mod/golang.org/x/[email protected]/term_unix.go:61 +0x2c fp=0xc000240f08 sp=0xc000240ed8 pc=0x4139bec
golang.org/x/term.GetSize(...)
	/Users/blacktop/go/pkg/mod/golang.org/x/[email protected]/term.go:50
github.com/AlecAivazis/survey/v2.(*Renderer).termWidth(0x43affc0)
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/renderer.go:145 +0x28 fp=0xc000240f20 sp=0xc000240f08 pc=0x413b4c8
github.com/AlecAivazis/survey/v2.(*Renderer).termWidthSafe(...)
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/renderer.go:150
github.com/AlecAivazis/survey/v2.(*Renderer).countLines(0x4079a8f, {{0x0, 0x0, 0x0}, 0x0, 0x0})
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/renderer.go:162 +0x45 fp=0xc000240f98 sp=0xc000240f20 pc=0x413b545
github.com/AlecAivazis/survey/v2.(*Renderer).Render(0xc000136fc0, {0x44171bf, 0x3a0}, {0x43ec660, 0xc00015c900})
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/renderer.go:82 +0xa5 fp=0xc000241040 sp=0xc000240f98 pc=0x413ae25
github.com/AlecAivazis/survey/v2.(*Renderer).RenderWithCursorOffset(0xc000136fc0, {0x44171bf, 0x3a0}, {0x4465b80, 0xc00015c900}, {0xc0001d9020, 0x2, 0x2}, 0x4721108)
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/renderer.go:106 +0x11d fp=0xc0002410d8 sp=0xc000241040 pc=0x413b0bd
github.com/AlecAivazis/survey/v2.(*Select).Prompt(0xc000136fc0, 0xc0001e8468)
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/select.go:266 +0x44a fp=0xc000241648 sp=0xc0002410d8 pc=0x413c5aa
github.com/AlecAivazis/survey/v2.Ask({0xc0002417c8, 0x1, 0x46371c0}, {0x43a8b20, 0xc000209340}, {0xc0002417c0, 0x1, 0x0})
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/survey.go:308 +0x214 fp=0xc000241760 sp=0xc000241648 pc=0x413d434
github.com/AlecAivazis/survey/v2.AskOne(...)
	/Users/blacktop/go/pkg/mod/github.com/!alec!aivazis/survey/[email protected]/survey.go:251
main.main.func2(0xc0001e82c0)
	/Users/blacktop/Projects/Github/blacktop/lporg/launch.go:543 +0x17e fp=0xc000241818 sp=0xc000241760 pc=0x4271c3e
github.com/urfave/cli.HandleAction({0x43b3c80, 0x441a260}, 0x4)
	/Users/blacktop/go/pkg/mod/github.com/urfave/[email protected]/app.go:524 +0xa8 fp=0xc000241830 sp=0xc000241818 pc=0x4259328
github.com/urfave/cli.Command.Run({{0x43ff9ce, 0x4}, {0x0, 0x0}, {0x0, 0x0, 0x0}, {0x440d645, 0x1f}, {0x0, ...}, ...}, ...)
	/Users/blacktop/go/pkg/mod/github.com/urfave/[email protected]/command.go:173 +0x652 fp=0xc000241a10 sp=0xc000241830 pc=0x425a112
github.com/urfave/cli.(*App).Run(0xc00013c380, {0xc000012040, 0x2, 0x2})
	/Users/blacktop/go/pkg/mod/github.com/urfave/[email protected]/app.go:277 +0x705 fp=0xc000241d50 sp=0xc000241a10 pc=0x42574e5
main.main()
	/Users/blacktop/Projects/Github/blacktop/lporg/launch.go:613 +0x812 fp=0xc000241f80 sp=0xc000241d50 pc=0x4270d32
runtime.main()
	/opt/homebrew/Cellar/go/1.17.3/libexec/src/runtime/proc.go:255 +0x227 fp=0xc000241fe0 sp=0xc000241f80 pc=0x4038487
runtime.goexit()
	/opt/homebrew/Cellar/go/1.17.3/libexec/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc000241fe8 sp=0xc000241fe0 pc=0x4065801

Not persisting after logout

If I do lporg load <file>, it seems to work. But then if I log out and log back in, the icons all move out of their folders. Same if I do killall Dock after the load.

This is on Mac OS 12.1 on a 2021 MBP.

The only error I see when running it is "no such table: Widgets".

   • PARSE LAUCHPAD DATABASE
      • found launchpad database  database=/var/folders/jd/58cfk_8561n83l5_c51mwc8r0000gn/0/com.apple.dock.launchpad/db/db
         • removed old file          path=/var/folders/jd/58cfk_8561n83l5_c51mwc8r0000gn/0/com.apple.dock.launchpad/db/db
         • removed old file          path=/var/folders/jd/58cfk_8561n83l5_c51mwc8r0000gn/0/com.apple.dock.launchpad/db/db-shm
         • removed old file          path=/var/folders/jd/58cfk_8561n83l5_c51mwc8r0000gn/0/com.apple.dock.launchpad/db/db-wal
      • restarting Dock          
      • clear out groups         
      • disabling SQL update triggers
      • add root and holding pages
      ⨯ query all widgets failed  error=no such table: widgets
      • parsing launchpad config YAML path=launchpad.yml

(/Users/blacktop/Developer/Github/blacktop/lporg/database/database.go:370) 
[2022-01-22 08:12:08]  no such table: widgets 
      • creating App folders and adding apps to them
         • found apps/widgets that are not in supplied config count=12
...

Cannot save confg

When run this command, lporg save -V, it can parse launchpad and dashboard pages.
However, it encounter error during interating over dock apps.

   • Saving launchpad settings
   • SAVING LAUNCHPAD DATABASE
      • found launchpad database  database=/var/folders/_y/n7114yk15ll_0yps6s3j_v140000gn/0/com.apple.dock.launchpad/db/db
   • collecting launchpad/dashboard pages
   • interating over launchpad pages
   • page number: 1
      • found app                 title=App Store
      • found app                 title=Safari
      • found app                 title=Mail
      ...
      ...
      ...
   • interating over dashboard pages
   • interating over dock apps
Error: unable to load dock plist: plist: type mismatch: tried to decode plist type `integer' into value of type `float64'
Usage:
  lporg save [flags]

Flags:
  -h, --help   help for save

Global Flags:
  -c, --config string   config file (default is $HOME/.lporg.yaml)
      --icloud          iCloud config
  -V, --verbose         verbose output

macOS: 12.6.8 (21G725)
lporg: 20.4.11

Error of `widgets`

Running lporg load, it says.

⨯ query all widgets failed  error=no such table: widgets

(/Users/blacktop/Developer/Github/blacktop/lporg/database/database.go:370)
[2022-12-21 16:52:08]  no such table: widgets

on macOS 12.6.2 and Intel

launchpad DB not found

Doesn't work for me in Ventura 13.0. If I remember well I had tried it last year in a previous os version (12.x probably) and it didn't work with the same error. Maybe the error it's something specific with my mac (that I keep restoring from machine to machine using Time Machine.

macbook@MBP-2021 Desktop % lporg save
? Choose where to save your launch pad settings: home folder
   • SAVING LAUNCHPAD DATABASE
      ⨯ launchpad DB not found    error=stat /0/com.apple.dock.launchpad/db/db: no such file or directory path=/0/com.apple.dock.launchpad/db/db

No Prompts

Is there a way to remove prompts (backup? y/n) when using lporg? Thanks!

Add YAML config flag to hide a specific folder

Something like would be a good addition (note the hidden flag):

    - folder: Miscellaneous
      hidden: true
      pages:
      - number: 1
        items:
        - Assistant
        - Designer
        - IDLE
        - Linguist
        - Python Launcher
        - Linguist
        - pixeltool
        - qdbusviewer
        - qml
        - qwingraph
        - TestFlight

This way, we can stuff rarely used apps in a specific folder that will be hidden from the launchpad view.

The problem with the sorting

There seems to be a problem with the sorting, because no matter what I put Google Chrome and Firefox after Safari, they (non-Apple apps) always come after Apple apps... I don't know if it's on purpose or a problem that should be fixed.

Anyway, sorting is not what I want... I wanted to put Google Chrome and Firefox after Safari... Any ways to make it happen?

There's another "not-so-big" problem, when I load the YAML file, it always says:

(/Users/blacktop/Developer/Github/blacktop/lporg/database/database.go:370) 
[2023-02-15 22:25:08]  no such table: widgets
apps:
  pages:
  - number: 1
    items:
    - Safari
    - Google Chrome
    - Firefox
    - Mail
    - Calendar
    - Reminders
    - Notes
    - FaceTime
    - Messages
    - Maps
    - Weather
    - Clock
    - Calculator
    - Visual Studio Code
    - Signal
    - 1Password
    - Couleurs
    - Figma
    - Sequel Ace
    - Obsidian
    - Magnet
    - DevUtils
    - PHP Monitor
    - WhatsApp
    - Fork
    - Discord
    - The Unarchiver
    - Binance
    - Postman
    - Usage
    - JetBrains Toolbox
    - Mos
    - CheatSheet
    - Raycast
    - iTerm
    - Music
    - App Store
    - System Settings
    - folder: Other
      pages:
      - number: 1
        items:
        - Shortcuts
        - QuickTime Player
        - TextEdit
        - Grapher
        - Time Machine
        - Font Book
        - Mission Control
        - Chess
        - Stickies
        - Image Capture
        - VoiceOver Utility
        - AirPort Utility
        - Migration Assistant
        - Terminal
        - Activity Monitor
        - Console
        - Keychain Access
        - System Information
        - Automator
        - Script Editor
        - Disk Utility
        - Digital Color Meter
        - ColorSync Utility
        - Screenshot
        - Bluetooth File Exchange
        - Audio MIDI Setup
        - Contacts
        - Photo Booth
        - Preview
        - Podcasts
        - TV
        - Find My
        - Photos
        - Voice Memos
        - Stocks
        - Books
        - Dictionary
        - Freeform
        - Home
        - Siri
widgets:
  pages: []
dock_items:
- ============
desktop: {}

Oh these problems happen on macOS 13.2 with Apple M2 btw.

Reset launchpad orders

After 2 reset dock launchpad reseting orders apps.
This problem appeared after adding dock_items

`lporg check` command to compare

I want to compare the structure from the save command and config file.
I tried to add this command, but the structures of output from the save and load commands.
After getting together these structures, it will be possible to compare them with the reflect.DeepEqual() function.

Failed to kickstart Dock

After updating macOS to Monterey or later, lporg for Dock fails to save Dock Plist. It can't update the Dock or finish correctly.

         • importing dock plist
         • restarting com.apple.Dock.agent service
   ⨯ failed to save dock plist: failed to kickstart dock: exit status 1

GUI Configurator

Hi
You didn't think to make a GUI configurator for the file.launchpad.yaml?

It would be more convenient to look at the configuration result immediately and validate it

I am ready to help with the development

lporg save not correct

macOS: 13.5.1(22G90)
Version: 20.4.21, BuildTime: 2023-09-04T17:28:18Z
Device: M2

Even though I have many customized folders, but when I run lporg save,
I always got below config file. (apple's default app with Chinese name)

apps:
    pages:
        - number: 1
        - number: 2
          items:
            - App Store
            - 郵件
            - 聯絡人
            - 行事曆
            - 提醒事項
            - 備忘錄
            - FaceTime
            - 訊息
            - 地圖
            - 尋找
            - Photo Booth
            - 照片
            - 預覽程式
            - 音樂
            - Podcast
            - TV
            - 語音備忘錄
            - 天氣
            - 股市
            - 書籍
            - 辭典
            - 計算機
            - 無邊記
            - 家庭
            - folder: 其他
              pages:
                - number: 1
                  items:
                    - Grapher
                    - 旁白工具程式
                    - AirPort工具程式
                    - 系統移轉輔助程式
                    - 終端機
                    - 活動監視器
                    - 系統監視程式
                    - 鑰匙圈存取
                    - 系統資訊
                    - 工序指令編寫程式
                    - 磁碟工具程式
                    - 數位測色計
                    - 色彩同步工具程式
                    - 截圖
                    - 藍牙檔案交換程式
                    - 音訊MIDI設定
widgets:
    pages: []
dock_items:
    apps:
        - /System/Applications/Messages.app
desktop: {}

Everything explodes.

I load my config file like usual a few days back using lporg load --config /Users/[user]/Library/Application\ Support/lporg/config.yml
expecting everything to be sorted as is (except for the "Other" folder fiasco) but instead EVERYTHING chooses to explode into 5 launchpad tabs instead of the usual 2 organized tabs.

I've tried reinstalling lporg, restarting my mac, using an older config file nothing works. I keep getting the same exploding results.

I'm running macOS 14.3.1.

Cannot load config correctly missing apps

In version 20.4.27, it didn't load the config correctly.

It hides all apps that existed, except for Apple's, in the config.
Meanwhile, it only shows icons for apps which are not in the config.

This is the config I tried to load from:

apps:
  pages:
    - number: 1
      items:
        - folder: Built-in
          pages:
            - number: 1
              items:
                - App Store
                - Safari
                - Mail
                - Contacts
                - Calendar
                - Reminders
                - Notes
                - FaceTime
                - Messages
                - Maps
                - Find My
                - Photo Booth
                - Photos
                - Preview
                - Music
                - Podcasts
                - TV
                - Voice Memos
                - Stocks
                - Books
                - Dictionary
                - Calculator
                - Home
                - Siri
                - Mission Control
                - System Preferences
        - folder: Toolkit
          pages:
            - number: 1
              items:
                - Shortcuts
                - QuickTime Player
                - TextEdit
                - Grapher
                - Time Machine
                - Font Book
                - Chess
                - Stickies
                - Image Capture
                - VoiceOver Utility
                - AirPort Utility
                - Migration Assistant
                - Terminal
                - Activity Monitor
                - Console
                - Keychain Access
                - System Information
                - Automator
                - Script Editor
                - Disk Utility
                - Boot Camp Assistant
                - Digital Color Meter
                - ColorSync Utility
                - Screenshot
                - Bluetooth File Exchange
                - Audio MIDI Setup
                - Apple Configurator
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...
        - folder: ...

And this is the config I got:

apps:
  pages:
    - number: 1
      items:
        - App Store
        - Safari
        - Mail
        - Contacts
        - Calendar
        - Reminders
        - Notes
        - FaceTime
        - Messages
        - Maps
        - Find My
        - Photo Booth
        - Photos
        - Preview
        - Music
        - Podcasts
        - TV
        - Voice Memos
        - GarageBand
        - iMovie
        - Numbers
        - Keynote
        - Pages
        - Stocks
        - Books
        - Dictionary
        - Calculator
        - Home
        - Siri
        - Mission Control
        - System Preferences
        - ...
        - Shortcuts
        - Grapher
        - Time Machine
        - Font Book
        - Stickies
        - VoiceOver Utility
        - AirPort Utility
        - Migration Assistant
        - Terminal
        - Activity Monitor
        - Console
        - Keychain Access
        - System Information
        - Automator
        - Script Editor
        - Disk Utility
        - Boot Camp Assistant
        - Digital Color Meter
        - ColorSync Utility
        - Screenshot
        - Bluetooth File Exchange
        - Audio MIDI Setup
        - TextEdit
        - QuickTime Player
        - Image Capture
    - number: 2
      items:
        - ...
widgets:
  pages: []
dock_items:
  apps:
    - /System/Applications/Launchpad.app
    - /Applications/Safari.app
    - /System/Applications/Messages.app
    - /System/Applications/Mail.app
    - /System/Applications/Maps.app
    - /System/Applications/Photos.app
    - /System/Applications/FaceTime.app
    - /System/Applications/Calendar.app
    - /System/Applications/Contacts.app
    - /System/Applications/Reminders.app
    - /System/Applications/Notes.app
    - /System/Applications/TV.app
    - /System/Applications/Music.app
    - /System/Applications/Podcasts.app
    - /System/Applications/News.app
    - /Applications/Keynote.app
    - /Applications/Numbers.app
    - /Applications/Pages.app
    - /System/Applications/App Store.app
    - /System/Applications/System Preferences.app
  others:
    - path: "~"
      view: 1
      sort: 2
  settings:
    autohide: true
    largesize: 128
    magnification: true
    minimize-to-application: false
    mru-spaces: false
    show-recents: false
    tilesize: 16
desktop: {}

Save Launchpad and Dock sizes

I use these defaults commands to change Launchpad and Dock sizes.
Why don't you add a feature to manage these sizes?

  • defaults write com.apple.dock springboard-columns
  • defaults write com.apple.dock springboard-rows
  • defaults write com.apple.dock tilesize
  • defaults write com.apple.dock largesize
  • defaults write com.apple.dock size-immutable

Sorting doesn't work as expected

It runs almost correctly, but third-party apps can't step into pre-installed apps.

Apple apps and the Other folder might have a strong power to line up ahead.

# Expected
• page number: 1
      • found app                 title=App Store
      • found app                 title=Safari
      • found app                 title=Google Chrome
      • found app                 title=Mail

# And more…
# Actual
• page number: 1
      • found app                 title=App Store
      • found app                 title=Safari
      • found app                 title=Mail

# And more…
      • found app                 title=Google Chrome

# And more…

on macOS 12.6.2 and Intel

Apple apps not respecting order, Other folder keeps appearing

I have the following Launchpad order

image

Which I save and then load again. After that it looks like this

image

The Photos, System Preferences and Xcode order is not respected and an Other folder is created (I think it's the default folder where apple apps are placed, when saving the launchpad config again the Other folder is not mentioned). I have to manually order the apps again and add and remove something to the Other folder for it to disappear.

Any ideas what might be happening?

macOS 10.15.6

initial launchpad.yml file

apps:
  pages:
  - number: 1
    items:
    - folder: .
      pages:
      - number: 1
        items:
        - Hearthstone
        - Hearthstone Beta Launcher
        - editor
    - folder: dock
      pages:
      - number: 1
        items:
        - Calendar
        - HEY
        - Notes
        - Reminders
        - Safari
        - Spark
    - folder: apple
      pages:
      - number: 1
        items:
        - Stocks
        - Mission Control
        - Siri
        - Home
        - Voice Memos
        - TV
        - Photo Booth
        - Calculator
        - Music
        - App Store
        - Podcasts
        - iMovie
        - Mail
        - Maps
        - Preview
        - Bluetooth Explorer
        - Contacts
        - FaceTime
        - Books
        - Numbers
        - Keynote
        - Pages
        - Find My
        - Dictionary
        - Messages
    - folder: apple 2
      pages:
      - number: 1
        items:
        - QuickTime Player
        - TextEdit
        - Grapher
        - Time Machine
        - Font Book
        - Chess
        - Stickies
        - Image Capture
        - VoiceOver Utility
        - AirPort Utility
        - Migration Assistant
        - Terminal
        - Activity Monitor
        - Console
        - Keychain Access
        - System Information
        - Automator
        - Script Editor
        - Disk Utility
        - Boot Camp Assistant
        - Digital Color Meter
        - ColorSync Utility
        - Screenshot
        - Bluetooth File Exchange
        - Audio MIDI Setup
        - XQuartz
    - folder: chat
      pages:
      - number: 1
        items:
        - BlueJeans
        - Discord
        - Skype
        - Slack
        - Telegram
        - Twitter
        - WhatsApp
        - zoom.us
    - Photos
    - Xcode
    - folder: others
      pages:
      - number: 1
        items:
        - Angry IP Scanner
        - DevCleaner
        - Geekbench 4
        - NordVPN IKE
        - Sketch
        - VirtualBox
        - VLC
        - Zeplin
    - folder: utils
      pages:
      - number: 1
        items:
        - Download Shuttle
        - Gifski
        - GrandPerspective
        - HandBrake
        - Image2Icon
        - ImageOptim
        - OnyX
        - KeyboardCleanTool
        - The Unarchiver
        - TimeMachineEditor
        - Transmission
    - folder: dev
      pages:
      - number: 1
        items:
        - Android Studio
        - Docker
        - Google Chrome
        - OpenVPN Connect
        - Postico
        - Postman
        - React Native Debugger
        - Robo 3T
        - Sequel Ace
    - folder: menu bar
      pages:
      - number: 1
        items:
        - Aware
        - Bartender 3
        - CCMenu
        - Dropbox
        - duet
        - Flux
        - Gitify
        - iStat Menus
        - KeepingYouAwake
        - Little Snitch Configuration
        - Micro Snitch
        - MonitorControl
        - Snappy
    - folder: games
      pages:
      - number: 1
        items:
        - Epic Games Launcher
        - Steam
        - barony
        - fate_Generic
        - FTL Faster Than Light
        - Minecraft
        - Pathway
        - The Jackbox Party Pack
    - Spotify
    - 1Password 7
    - MiniPlay
    - System Preferences
    - iTerm
    - Battle.net
    - HSTracker
    - AppCleaner
    - Suspicious Package
    - Visual Studio Code
    - KeyCastr
widgets:
  pages: []
dock_items:
- Launchpad
- Safari
- HEY
- Calendar
- Reminders
- iTerm
- Visual Studio Code
- WhatsApp
- Telegram
- Slack
- Spotify
- Twitter
- ============
- Downloads
- Summit
- Repositories
desktop: {}

after loading and saving it again (notice the Other folder is not present)

apps:
  pages:
  - number: 1
    items:
    - Photos
    - System Preferences
    - Xcode
    - folder: .
      pages:
      - number: 1
        items:
        - Hearthstone
        - Hearthstone Beta Launcher
        - editor
    - folder: dock
      pages:
      - number: 1
        items:
        - Calendar
        - HEY
        - Notes
        - Reminders
        - Safari
        - Spark
    - folder: apple
      pages:
      - number: 1
        items:
        - Stocks
        - Mission Control
        - Siri
        - Home
        - Voice Memos
        - TV
        - Photo Booth
        - Calculator
        - Music
        - App Store
        - Podcasts
        - iMovie
        - Mail
        - Maps
        - Preview
        - Bluetooth Explorer
        - Contacts
        - FaceTime
        - Books
        - Numbers
        - Keynote
        - Pages
        - Find My
        - Dictionary
        - Messages
    - folder: apple 2
      pages:
      - number: 1
        items:
        - QuickTime Player
        - TextEdit
        - Grapher
        - Time Machine
        - Font Book
        - Chess
        - Stickies
        - Image Capture
        - VoiceOver Utility
        - AirPort Utility
        - Migration Assistant
        - Terminal
        - Activity Monitor
        - Console
        - Keychain Access
        - System Information
        - Automator
        - Script Editor
        - Disk Utility
        - Boot Camp Assistant
        - Digital Color Meter
        - ColorSync Utility
        - Screenshot
        - Bluetooth File Exchange
        - Audio MIDI Setup
        - XQuartz
    - folder: chat
      pages:
      - number: 1
        items:
        - BlueJeans
        - Discord
        - Skype
        - Slack
        - Telegram
        - Twitter
        - WhatsApp
        - zoom.us
    - folder: others
      pages:
      - number: 1
        items:
        - Angry IP Scanner
        - DevCleaner
        - Geekbench 4
        - NordVPN IKE
        - Sketch
        - VirtualBox
        - VLC
        - Zeplin
    - folder: utils
      pages:
      - number: 1
        items:
        - Download Shuttle
        - Gifski
        - GrandPerspective
        - HandBrake
        - Image2Icon
        - ImageOptim
        - OnyX
        - KeyboardCleanTool
        - The Unarchiver
        - TimeMachineEditor
        - Transmission
    - folder: dev
      pages:
      - number: 1
        items:
        - Android Studio
        - Docker
        - Google Chrome
        - OpenVPN Connect
        - Postico
        - Postman
        - React Native Debugger
        - Robo 3T
        - Sequel Ace
    - folder: menu bar
      pages:
      - number: 1
        items:
        - Aware
        - Bartender 3
        - CCMenu
        - Dropbox
        - duet
        - Flux
        - Gitify
        - iStat Menus
        - KeepingYouAwake
        - Little Snitch Configuration
        - Micro Snitch
        - MonitorControl
        - Snappy
    - folder: games
      pages:
      - number: 1
        items:
        - Epic Games Launcher
        - Steam
        - barony
        - fate_Generic
        - FTL Faster Than Light
        - Minecraft
        - Pathway
        - The Jackbox Party Pack
    - Spotify
    - 1Password 7
    - MiniPlay
    - iTerm
    - Battle.net
    - HSTracker
    - AppCleaner
    - Suspicious Package
    - Visual Studio Code
    - KeyCastr
widgets:
  pages: []
dock_items:
- Launchpad
- Safari
- HEY
- Calendar
- Reminders
- iTerm
- Visual Studio Code
- WhatsApp
- Telegram
- Slack
- Spotify
- Twitter
- ============
- Downloads
- Summit
- Repositories
desktop: {}

Dock items aren't applied on macOS Ventura

Even though Launchpad items are almost applied with lporg load, Dock items are not all applied.
Dock items (including folders) and other settings remain unchanged as macOS default.

  • macOS version: Version 13.6.3 (22G436)
  • lporg version: Version: 20.4.31, BuildTime: 2023-09-15T15:47:01Z
lporg.yml

apps:
  pages:
    - number: 1
      items:
        - App Store
        - Safari
        - Arc
        - Mail
        - Spark Desktop
        - Email
        - Contacts
        - Calendar
        - Reminders
        - TickTick
        - Notes
        - Notion
        - FaceTime
        - Messages
        - LINE
        - Maps
        - Find My
        - Photo Booth
        - Photos
        - Preview
        - Music
        - Spotify
        - Podcasts
        - TV
        - Voice Memos
        - iMovie
        - Weather
        - Stocks
        - Books
        - Dictionary
        - Calculator
        - Freeform
        - Home
        - Clock
        - Siri
        - System Settings
        - Xcode
        - Visual Studio Code
        - Visual Studio Code - Insiders
        - iTerm
        - OrbStack
        - DaVinci Resolve
        - Figma
        - Aseprite
        - Blender
        - Discord
        - Discord PTB
        - Rhythm Quest Demo
        - folder: Resident Apps
          pages:
            - number: 1
              items:
                - Google Drive
                - Itsycal
                - MacUpdater
                - RunCat
                - Gitify
                - Hidden Bar
                - Karabiner-Elements
                - Karabiner-EventViewer
                - HotKey
                - Hammerspoon
                - Alfred 5
                - Raycast
                - AltTab
                - Displaperture
                - Rectangle
                - HandyPalette
                - Fuwari
                - DeepL
                - Grammarly Desktop
        - folder: Other (Downloaded)
          pages:
            - number: 1
              items:
                - Geekbench 6
                - Cinebench
                - Speedtest
                - Blackmagic Disk Speed Test
                - Mactracker
                - FreeFileSync
                - OnyX
                - Startup Disk Full Fixer
                - KeyboardCleanTool
                - Amphetamine
                - 1Password
                - FocusRecorder
                - CodeWhisperer
                - OpenInTerminal
                - Blackmagic Proxy Generator Lite
                - Syntax Highlight
                - QLMarkdown
                - Apparency
                - Suspicious Package
        - folder: Other
          pages:
            - number: 1
              items:
                - Shortcuts
                - QuickTime Player
                - TextEdit
                - Grapher
                - Time Machine
                - Font Book
                - Mission Control
                - Chess
                - Stickies
                - Image Capture
                - VoiceOver Utility
                - AirPort Utility
                - Migration Assistant
                - Terminal
                - Activity Monitor
                - Console
                - Keychain Access
                - System Information
                - Automator
                - Script Editor
                - Disk Utility
                - Boot Camp Assistant
                - Digital Color Meter
                - ColorSync Utility
                - Screenshot
                - Bluetooth File Exchange
                - Audio MIDI Setup
        - Ghostty
widgets:
  pages: []
dock_items:
  apps:
    - ""
    - /Applications/Arc.app
    - /Applications/Discord.app
    - /Applications/Discord PTB.app
    - /Applications/LINE.app
    - ""
    - /Applications/TickTick.app
    - /Applications/Notion.app
    - /System/Applications/Mail.app
    - /Applications/Spark Desktop.app
    - /Applications/Email.app
    - ""
    - /System/Applications/App Store.app
    - /System/Applications/System Settings.app
    - /Applications/1Password.app
    - /System/Applications/Utilities/Activity Monitor.app
    - ""
    - ""
  others:
    - path: "~"
      display: 1
      sort: 1
    - path: ~/Downloads
      sort: 1
    - path: ~/Pictures/Screen Captures
      sort: 1
    - path: ~/Temp
      sort: 1
  settings:
    autohide: true
    largesize: 33
    magnification: true
    minimize-to-application: true
    mru-spaces: false
    show-recents: false
    tilesize: 30
desktop: {}
Output of lporg load -nyc="$HOME/.dotfiles/data/lporg.yml"

   • using config file: /Users/souma/.dotfiles/data/lporg.yml
   • Loading launchpad settings
      • parsing launchpad config YAML path=/Users/souma/.dotfiles/data/lporg.yml
   • PARSE LAUCHPAD DATABASE
      • found launchpad database  database=/var/folders/xw/q_bcyv491ws5q143cm5vflbh0000gn/0/com.apple.dock.launchpad/db/db
         • removed old DB file       path=/var/folders/xw/q_bcyv491ws5q143cm5vflbh0000gn/0/com.apple.dock.launchpad/db/db
         • removed old DB file       path=/var/folders/xw/q_bcyv491ws5q143cm5vflbh0000gn/0/com.apple.dock.launchpad/db/db-shm
         • removed old DB file       path=/var/folders/xw/q_bcyv491ws5q143cm5vflbh0000gn/0/com.apple.dock.launchpad/db/db-wal
      • restarting Dock
      • clear out groups
      • disabling SQL update triggers
      • add root and holding pages
      • creating App folders and adding apps to them
         • page added                number=1
            • folder added              group=Resident Apps
               • folder page added         number=1
            • folder added              group=Other (Downloaded)
               • folder page added         number=1
            • folder added              group=Other
               • folder page added         number=1
      • enabling SQL update triggers
      • restarting Dock
      • setting dock apps
         • adding to dock            app=
         • adding to dock            app=/Applications/Arc.app
         • adding to dock            app=/Applications/Discord.app
         • adding to dock            app=/Applications/Discord PTB.app
         • adding to dock            app=/Applications/LINE.app
         • adding to dock            app=
         • adding to dock            app=/Applications/TickTick.app
         • adding to dock            app=/Applications/Notion.app
         • adding to dock            app=/System/Applications/Mail.app
         • adding to dock            app=/Applications/Spark Desktop.app
         • adding to dock            app=/Applications/Email.app
         • adding to dock            app=
         • adding to dock            app=/System/Applications/App Store.app
         • adding to dock            app=/System/Applications/System Settings.app
         • adding to dock            app=/Applications/1Password.app
         • adding to dock            app=/System/Applications/Utilities/Activity Monitor.app
         • adding to dock            app=
         • adding to dock            app=
         • adding to dock            other={~ 1 0 1}
         • adding to dock            other={~/Downloads 0 0 1}
         • adding to dock            other={~/Pictures/Screen Captures 0 0 1}
         • adding to dock            other={~/Temp 0 0 1}
         • writing temp dock plist   plist=/var/folders/xw/q_bcyv491ws5q143cm5vflbh0000gn/T/dock.plist1384513653
         • importing dock plist
         • restarting com.apple.Dock.agent service

Doesn't work on Monterey?

Hi there! I tried "lporg revert", but it didn't reproduce the correct folder structure. Instead, it flattened everything out and I have to redo my launchpad manually lol.

Is it just on my computer, or does it not work on Monterey? If not, is this easy to fix or are there any alternative software to LPORG that I could use for Monterey+?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.