I'm doing something similar with mine here shortly and I'm doing a checklist in my head.
One issue I've ran into is the shutdown procedure though. I'm working on a way to gently power down the system when either button is pressed but I'm not sure I'm going about it the right way.
For power: The power button needs to halt the system and then remove power, then reconnect power to turn the system back on.
I'm not sure the best way to accomplish this. Ideally we would read the button press, initiate the shutdown procedure and then disconnect power. I think I can figure it out using the GPIO, I know jack about though so it may take a bit
For reset: reboot.
Same thing, utilize the GPIO to do a shutdown -r
Does this look like the right approach to this issue?
That would work, but using the gpio pins would be a waste when you could just halt the system before pressing the power button and the reset button could always be for when the system freezes up instead of resetting the system by shutdown -r. Also, this wouldn't stop the flow of power to the RPI either for shutdown.
I plan on using the gpio pins for two controller ports and possibly a nokia 3310 lcd screen so I'm not sure how many would be free to use after that.
Another approach would be buying an Arduino (preferably the Mini, but any model will work), wiring the buttons to the Arduino, hooking up the Arduino to the TX,RX,GND pins on the RPI, and writing a background application to read the input and shutdown/restart the system.
The Arduino would have to be programmed to read the states of the buttons, send a message to the RPI to initialize shutdown/reset, and in the event of the power button being detected as off, power a transistor/relay to power off the RPI completely once it detects the system is halted(a timer could be used).
The opposite could be done when the arduino recognizes that the power button is activated, a transistor or relay could be activated to allow flow of power to the RPI. This would save a couple gpio pins for use with other gpio peripherals.
That's my two cents on the issue, but feel free to do it whichever way you feel is best.