I am afraid you messed it up now.
Your first code was better relatively. You are repeating the same mistake.
falling_edge, rising_edge are equivalent to if clk'event ...etc
I reconfirm:
1) You should use edge triggering at start of your chosen synch process.
2)If your other process is meant to be combinatorial then don't use edge triggering at all.
To detect rise or fall of any signal level then use your clk as follows:
-- in a clked process
ps2_1d <= ps2;
ps2_2d <= ps2_1d;
and outside clked process:
ps2_rise = ps2_1d and not ps2_2d;
this will detect rise of ps2 level on your clk(not actual rising edge itself)