J.N.
Vary the sandwiches - bologna can get boring quickly, but he can also have tuna, chicken, tuna, or ham (especially if its left over from dinner night before). Cheese or no cheese. Even vienna sausages - though I spend a little more and get the Gerber Graduates meat sticks (less junk in them). Instead of sandwiches, you can send any of these in little chunks or mixed with mayonaise and crackers and cheese cubes.
Alternate the fruit with veggies. Apples, grapes, berries he likes, and pears do great in luches. Oranges and bananas aren't so great (trouble peeling oranges bananas get smashed easily). Fresh veggies my kids love are carrot sticks, celery sticks (add peanut butter or cream cheese if he doesn't like them plain), broccoli, cauliflower, and cucumber slices.
If possible, try to use reusable containers for most of the food. He can bring them home and you can wash and reuse instead of throwing baggies and lunch sacks away. I'd get the cheap (ziplock or hefty) ones so that when he does forget to bring them home its not a huge deal.