Navigation & Keyboard Shortcuts

S9S follows vim-style navigation patterns, making it intuitive for terminal power users. This guide covers all keyboard shortcuts and navigation methods.

🎮 Navigation Philosophy

S9S uses a modal interface inspired by vim:

  • Normal mode - Navigate and execute commands
  • Search mode - Filter and find items
  • Command mode - Enter advanced commands
  • Selection mode - Select multiple items

🔑 Global Shortcuts

These shortcuts work in all views:

Essential Keys

KeyActionDescription
?
HelpShow context-sensitive help
q
QuitExit S9S
Q
Force QuitExit immediately without confirmation
:
Command ModeEnter command mode
/
SearchEnter search/filter mode
Esc
CancelExit current mode/dialog
Tab
Next ViewCycle to next view
Shift+Tab
Previous ViewCycle to previous view

View Navigation

KeyActionView
1
Switch ViewJobs
2
Switch ViewNodes
3
Switch ViewPartitions
4
Switch ViewUsers
5
Switch ViewAccounts
6
Switch ViewQoS
7
Switch ViewReservations
8
Switch ViewDashboard
9
Switch ViewHealth

Movement

KeyActionDescription
j
or
DownMove cursor down
k
or
UpMove cursor up
h
or
LeftMove left/collapse
l
or
RightMove right/expand
g
TopGo to first item
G
BottomGo to last item
Ctrl+f
Page DownScroll down one page
Ctrl+b
Page UpScroll up one page
Ctrl+d
Half Page DownScroll down half page
Ctrl+u
Half Page UpScroll up half page

Selection

KeyActionDescription
Space
Toggle SelectionSelect/deselect current item
v
Visual ModeEnter visual selection mode
V
Select AllSelect all visible items
Ctrl+a
Select AllAlternative select all
Ctrl+Space
Clear SelectionDeselect all items

📋 View-Specific Shortcuts

Jobs View

KeyActionDescription
Enter
Expand/DetailsShow job details
c
CancelCancel selected job(s)
h
HoldHold selected job(s)
r
ReleaseRelease held job(s)
d
DeleteDelete job record
o
OutputView job output/logs
O
Full OutputView complete output in pager
e
EditModify job parameters
s
SubmitSubmit new job
S
Submit TemplateSubmit from template
t
TailTail job output
i
InfoDetailed job information
p
PriorityChange job priority
m
MoveMove to different partition
n
NotifySet up job notifications
b
BatchEnter batch operations mode
f
Filter PresetApply saved filter
F
Save FilterSave current filter
x
ExportExport job data
R
RequeueRequeue failed job
D
DependenciesView job dependencies
T
TimelineView job timeline

Nodes View

KeyActionDescription
Enter
DetailsShow node details
s
SSHSSH to selected node
S
SSH (new window)SSH in new terminal
d
DrainDrain node
D
Drain (reason)Drain with reason
r
ResumeResume/undrain node
R
RebootReboot node
p
PowerPower management
i
InfoDetailed node info
m
MaintenanceSet maintenance mode
h
HistoryNode history
g
GPU InfoShow GPU details
l
LoadShow node load
t
TemperatureShow temperatures
x
ExportExport node data

Partitions View

KeyActionDescription
Enter
DetailsShow partition info
j
JobsShow jobs in partition
n
NodesShow nodes in partition
e
EditEdit partition config
s
StateChange partition state
l
LimitsView/edit limits
q
QoSAssociated QoS
a
AccountsAllowed accounts

Dashboard View

KeyActionDescription
r
RefreshForce refresh
a
Auto-refreshToggle auto-refresh
+
Increase RateFaster refresh
-
Decrease RateSlower refresh
c
CustomizeCustomize dashboard
w
Add WidgetAdd new widget
x
Remove WidgetRemove widget
m
Move WidgetRearrange widgets

🔍 Search Mode

Enter search mode with

/
:

Basic Search

/keyword           # Simple text search
/RUNNING          # Find all running items
/gpu              # Find GPU-related items

Advanced Search Syntax

# Field-specific search
/user:alice       # Items by user alice
/state:PENDING    # Pending items
/name:analysis    # Items with 'analysis' in name

# Operators
/time:>1h         # Running time > 1 hour
/nodes:<=4        # Using <= 4 nodes
/priority:>=1000  # Priority >= 1000

# Compound searches
/user:bob state:RUNNING    # Bob's running items
/partition:gpu nodes:>2    # GPU partition, >2 nodes

# Regex search
/name:~"test.*2023"        # Regex pattern
/output:~"error|fail"      # Find errors

# Time ranges
/time:1h-2h               # Between 1-2 hours
/submit:<1d               # Submitted < 1 day ago

Search Navigation

KeyActionDescription
Enter
ApplyApply search filter
Esc
CancelCancel search
Ctrl+c
ClearClear search box
Tab
AutocompleteComplete search term
↑/↓
HistoryBrowse search history
Ctrl+r
Regex ModeToggle regex mode
Ctrl+i
Case ModeToggle case sensitivity

💬 Command Mode

Enter command mode with

:
:

Common Commands

:help [topic]          # Show help
:quit or :q           # Quit S9S
:write or :w          # Save current state
:view <name>          # Switch to view
:refresh or :r        # Force refresh
:clear                # Clear filters
:export <format>      # Export data
:set <option> <value> # Set option
:source <file>        # Load commands from file
:!<shell-command>     # Execute shell command

View Management

:split                # Split view horizontally
:vsplit               # Split view vertically
:close                # Close current pane
:only                 # Close all other panes
:resize +10           # Increase pane size
:resize -10           # Decrease pane size

Settings Commands

:set refresh 5s       # Set refresh interval
:set theme dark       # Change theme
:set confirm off      # Disable confirmations
:set columns <list>   # Set visible columns
:show settings        # Display all settings

⚡ Advanced Navigation

Multi-Pane Navigation

KeyActionDescription
Ctrl+w h
Left PaneMove to left pane
Ctrl+w j
Down PaneMove to pane below
Ctrl+w k
Up PaneMove to pane above
Ctrl+w l
Right PaneMove to right pane
Ctrl+w w
Next PaneCycle through panes
Ctrl+w s
Split HorizontalCreate horizontal split
Ctrl+w v
Split VerticalCreate vertical split
Ctrl+w c
Close PaneClose current pane
Ctrl+w o
Only PaneClose other panes

Bookmarks

KeyActionDescription
m<letter>
Set MarkSet bookmark
'<letter>
Go to MarkJump to bookmark
:marks
List MarksShow all bookmarks
:delmarks <letter>
Delete MarkRemove bookmark

Macros

KeyActionDescription
q<letter>
Record MacroStart recording
q
Stop RecordingEnd recording
@<letter>
Play MacroExecute macro
@@
Repeat MacroRepeat last macro
:reg
List MacrosShow all macros

🎯 Tips & Tricks

Efficiency Tips

  1. Use number prefixes:
    5j
    moves down 5 lines
  2. Combine movements:
    gg
    → top,
    G
    → bottom
  3. Quick filters:
    /
    + partial text +
    Tab
    for autocomplete
  4. Repeat commands:
    .
    repeats last action
  5. Quick escape:
    Ctrl+[
    works like
    Esc

Power User Workflows

# Cancel all failed jobs
/state:FAILED    # Filter failed jobs
V                # Select all visible
c                # Cancel selected
y                # Confirm

# SSH to GPU node
2                # Switch to nodes view
/gpu             # Filter GPU nodes
s                # SSH to selected

# Export running jobs
/state:RUNNING   # Filter running
:export csv      # Export to CSV

Custom Key Bindings

Create custom bindings in

~/.s9s/keybindings.yaml
:

keybindings:
  global:
    "ctrl+j": "view jobs"
    "ctrl+n": "view nodes"
    "ctrl+/": "search"
  
  jobs:
    "K": "cancel --force"
    "H": "hold --reason='Manual hold'"
    "X": "export csv --file=jobs.csv"

🚀 Next Steps