There's no single answer to this, and can be fixed a few ways.
First, you will overall see
far less vermin (furry and feathered!) if you limit ways for them to get to the food. If you are able to, feed inside of a coop and in a way that limits access to everything but your chickens. I have my feeder hanging on a chain inside the coop itself.
If you want to give your chickens scratch grains, consider giving them only the amount they can eat in 5 minutes or so (scratch is generally a treat, in most cases). Ideally, the chickens will eat the scratch furiously and the pigeons won't even have a chance. If you want to create additional foraging activity for your chickens beyond this-- which is great (keeps them busy)!-- give them greens as a treat. Healthy and won't attract vermin! Pigeons could care less for greens. I love to hang a head of cabbage from a rope in their run, and it lasts my 8 chickens about a day and a half, depending on the size of the cabbage. You can fill mesh suet feeders up with weeds (dandelions, garden clippings, any green leafy stuff that we eat..) and hang it too for a foraging treat if you really want to spoil them.
Second, if you are able, consider putting wire or netting over your run. I know that not everyone is able to because of logistics and/or cost, but this has the added benefit of keeping predatory hawks and owls off of your chickens too.
If neither is an option, consider posting a plastic owl (they sell them at most sporting goods stores) on your run or very nearby. This might be met with limited success-- it generally deters prey such as pigeons but smarter birds like the magpies might well figure it out and ignore it anyhow. It may or may not stress your chickens out at first. Plastic owls are really one of those things that sometimes works well, and sometimes do not!!