PgUp PgDn Home End Keys

I’m really enjoying my new Framework laptop, but I do miss the dedicated PgUp, PgDn, Home, and End keys that I had on my ThinkPad. I know there’s already a topic on the arrow keys that mentions this, but I just wanted focus specifically on these four actions which I use all the time.

The good news is I’ve found a simple autohotkey solution that works pretty well for me. I simply map right-ctrl + arrow keys to PgUp/PgDn/Home/End. That way I can activate the actions easily with one hand.

This is the script:

; Ctrl + arrow keys
>^Up::send {Ctrl Up}{PgUp}
>^Down::send {Ctrl Up}{PgDn}
>^Left::send {Ctrl Up}{Home}
>^Right::send {Ctrl Up}{End}

; Ctrl + Shift + arrow keys
>^+Up::send {Ctrl Up}{Shift Up}+{PgUp}
>^+Down::send {Ctrl Up}{Shift Up}+{PgDn}
>^+Left::send {Ctrl Up}{Shift Up}+{Home}
>^+Right::send {Ctrl Up}{Shift Up}+{End} 

I based it off of another more comprehensive script that uses alt instead of ctrl.

Using alt for the modifier key is more useful if you want to type something like ctrl-home (by typing alt-ctrl-left), however I found when using it that I sometimes push the alt key and then change my mind, which results in setting the focus to the menu of the current application. Maybe there’s a way to add something to the script to prevent this (i.e. ignore right-alt key presses with no other key?).

Anyway, I’m pretty happy with right-ctrl as the modifier because it does the majority of what I want to do, and it feels pretty natural since the right-ctrl key is next to the arrow keys.


+1 for AutoHotkey. I myself use CapsLock for this, as it avoids unintended results from a “changed my mind” click.

AutoHotkey can be very powerful. In fact I wrote a script to move/resize windows with three-finger dragging on the Precision Touchpad.



Also, for a more generic solution, maybe Framework could include a bios option to treat right-alt as fn? Since FN is more necessary with fewer dedicated keys, it would be nice to have it on the right as well as the left to support single handed typing.

1 Like

+1 for this. I know they have quite the backlog, but working around the lack of AHK on Linux is a royal pain.

It turns out that I use ctrl-left/right arrow a lot to jump the cursor between words, so I changed my script to use ctrl+. and ctrl+/ for home and end as well as ctrl+; and ctrl+’ for ctrl-home and ctrl-end.

This autohotkey script has been working pretty well for me:

>^Up::send {Ctrl Up}{PgUp}                  ; PgUp
>^Down::send {Ctrl Up}{PgDn}                ; PgDn
>^.::send {Ctrl Up}{Home}                   ; Home
>^/::send {Ctrl Up}{End}                    ; End
>^;::send {Ctrl Up}^{Home}                  ; Ctrl-Home
>^'::send {Ctrl Up}^{End}                   ; Ctrl-End

>^+Up::send {Ctrl Up}{Shift Up}+{PgUp}      ; Shift-PgUp
>^+Down::send {Ctrl Up}{Shift Up}+{PgDn}    ; Shift-PgDn
>^+.::send {Ctrl Up}{Shift Up}+{Home}       ; Shift-Home
>^+/::send {Ctrl Up}{Shift Up}+{End}        ; Shift-End
>+^;::send {Ctrl Up}{Shift Up}^+{Home}      ; Ctrl-Shift-Home
>+^'::send {Ctrl Up}{Shift Up}^+{End}       ; Ctrl-Shift-End

Thanks for the idea!

I used Windows Powertoy’s Keyboard Manager to achieve something similar.

This is the beta version of Powertoys for Win11, btw.

Sure thing. That seems a little more user friendly. Plus, you don’t have to specify the extra ctrl-shift-remaps.