The deal is five years and worth $70 million, the source said, and Desmond is expected to play first base for the Rockies.
The news of the deal was first reported by FOX Sports.
Desmond, 31, batted .285 with 22 homers and 86 RBIs this season for the Texas Rangers. He got an $8 million, one-year deal from Texas at the end of February after turning down a qualifying offer from Washington. He spent the first six years of his major league career as the Nationals' starting shortstop before converting to center field for the Texas Rangers in 2016.
Desmond has demonstrated an ability to quickly adapt and succeed in a variety of situations.
"He has been able to succeed because of who he is," Texas Rangers outfielders coach Jayce Tingler said. "He is a student of the game. He's got a lot of experience in the big leagues. So when he transferred from shortstop to left and now to center he used all that experience.
The Florida native's best pro season came with the Nationals in 2012, when he achieved career highs in home runs (25), batting average (.292) and OPS (.845). He has been an All-Star once and won three Silver Slugger awards.