mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-30 01:36:04 +00:00
[[Hotkey improvements]]
* added several default hotkeys * changed the hotkey for 'Delay Shroud Update' from 'ctrl+k' to 'D' * moved the hotkey definitions into its own file * made the indentation of game.cfg consistent
This commit is contained in:
parent
0233c52c23
commit
961b650223
410
data/game.cfg
410
data/game.cfg
@ -31,24 +31,24 @@
|
||||
{campaigns}
|
||||
|
||||
[advanced_preference]
|
||||
field=compress_saves
|
||||
name=_"Binary Saves"
|
||||
type=boolean
|
||||
default=yes
|
||||
field=compress_saves
|
||||
name=_"Binary Saves"
|
||||
type=boolean
|
||||
default=yes
|
||||
[/advanced_preference]
|
||||
|
||||
[advanced_preference]
|
||||
field=show_combat
|
||||
name=_"Show Combat"
|
||||
type=boolean
|
||||
default=yes
|
||||
field=show_combat
|
||||
name=_"Show Combat"
|
||||
type=boolean
|
||||
default=yes
|
||||
[/advanced_preference]
|
||||
|
||||
[advanced_preference]
|
||||
field=mouse_scrolling
|
||||
name=_"Mouse Scrolling"
|
||||
type=boolean
|
||||
default=yes
|
||||
field=mouse_scrolling
|
||||
name=_"Mouse Scrolling"
|
||||
type=boolean
|
||||
default=yes
|
||||
[/advanced_preference]
|
||||
|
||||
[game_config]
|
||||
@ -127,387 +127,7 @@ default=yes
|
||||
name="wesnoth-tutorial"
|
||||
[/textdomain]
|
||||
|
||||
#ifdef APPLE
|
||||
[hotkey]
|
||||
command=preferences
|
||||
key=p
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=undo
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=redo
|
||||
key=r
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recruit
|
||||
key=r
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=repeatrecruit
|
||||
key=R
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recall
|
||||
key=r
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycle
|
||||
key=n
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycleback
|
||||
key=N
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endunitturn
|
||||
key=" "
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=holdposition
|
||||
key=" "
|
||||
shift=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=leader
|
||||
key=l
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomin
|
||||
key=z
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomout
|
||||
key=x
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomdefault
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=fullscreen
|
||||
key=f
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=accelerated
|
||||
key=a
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=resistance
|
||||
key=d
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=describeunit
|
||||
key=d
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=renameunit
|
||||
key=n
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=terraintable
|
||||
key=t
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=quit
|
||||
key=q
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=save
|
||||
key=s
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=load
|
||||
key=o
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statustable
|
||||
key=s
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endturn
|
||||
key=" "
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=togglegrid
|
||||
key=g
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mousescroll
|
||||
key=l
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mute
|
||||
key=m
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=labelterrain
|
||||
key=l
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=showenemymoves
|
||||
key=v
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=bestenemymoves
|
||||
key=b
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=toggleshroud
|
||||
key=k
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=updateshroud
|
||||
key=k
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speak
|
||||
key=m
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=continue
|
||||
key=t
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=search
|
||||
key=/
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoally
|
||||
key=M
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoall
|
||||
key=m
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=help
|
||||
key=F1
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=command
|
||||
key=:
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=objectives
|
||||
key=j
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
#else
|
||||
[hotkey]
|
||||
command=preferences
|
||||
key=p
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=undo
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=redo
|
||||
key=r
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recruit
|
||||
key=r
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=repeatrecruit
|
||||
key=R
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recall
|
||||
key=r
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycle
|
||||
key=n
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycleback
|
||||
key=N
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endunitturn
|
||||
key=" "
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=holdposition
|
||||
key=" "
|
||||
shift=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=leader
|
||||
key=l
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomin
|
||||
key=z
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomout
|
||||
key=x
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomdefault
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=fullscreen
|
||||
key=f
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=accelerated
|
||||
key=a
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=resistance
|
||||
key=d
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=describeunit
|
||||
key=d
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=renameunit
|
||||
key=n
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=terraintable
|
||||
key=t
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=quit
|
||||
key=q
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=save
|
||||
key=s
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=load
|
||||
key=o
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statustable
|
||||
key=s
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endturn
|
||||
key=" "
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=togglegrid
|
||||
key=g
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mousescroll
|
||||
key=l
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mute
|
||||
key=m
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=labelterrain
|
||||
key=l
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=showenemymoves
|
||||
key=v
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=bestenemymoves
|
||||
key=b
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=toggleshroud
|
||||
key=k
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=updateshroud
|
||||
key=k
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speak
|
||||
key=m
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=continue
|
||||
key=t
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=search
|
||||
key=/
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoally
|
||||
key=M
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoall
|
||||
key=m
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=help
|
||||
key=F1
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=command
|
||||
key=:
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=objectives
|
||||
key=j
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
#endif
|
||||
{hotkeys.cfg}
|
||||
|
||||
{units.cfg}
|
||||
|
||||
@ -517,9 +137,9 @@ default=yes
|
||||
path=data/tutorial
|
||||
[/binary_path]
|
||||
[+units]
|
||||
{tutorial/units}
|
||||
{tutorial/units}
|
||||
[/units]
|
||||
{tutorial/units}
|
||||
#endif
|
||||
|
||||
{scenario-test.cfg}
|
||||
|
||||
|
429
data/hotkeys.cfg
Normal file
429
data/hotkeys.cfg
Normal file
@ -0,0 +1,429 @@
|
||||
#ifdef APPLE
|
||||
[hotkey]
|
||||
command=accelerated
|
||||
key=a
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=bestenemymoves
|
||||
key=b
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=changeside
|
||||
key=U
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
alt=yes
|
||||
command=chatlog
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=clearlabels
|
||||
cmd=yes
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=createunit
|
||||
key=C
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=command
|
||||
key=:
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=continue
|
||||
key=t
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycle
|
||||
key=n
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycleback
|
||||
key=N
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=delayshroud
|
||||
key=D
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=describeunit
|
||||
key=d
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endunitturn
|
||||
key=" "
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endturn
|
||||
key=" "
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=fullscreen
|
||||
key=f
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=help
|
||||
key=F1
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=holdposition
|
||||
key=" "
|
||||
shift=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=labelterrain
|
||||
key=l
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=leader
|
||||
key=l
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=load
|
||||
key=o
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mousescroll
|
||||
key=l
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mute
|
||||
key=m
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=objectives
|
||||
key=j
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=preferences
|
||||
key=p
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=quit
|
||||
key=q
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recall
|
||||
key=r
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recruit
|
||||
key=r
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=redo
|
||||
key=r
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=renameunit
|
||||
key=n
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=repeatrecruit
|
||||
key=R
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=save
|
||||
key=s
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=search
|
||||
key=/
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=showenemymoves
|
||||
key=v
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speak
|
||||
key=m
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoall
|
||||
key=m
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoally
|
||||
key=M
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statistics
|
||||
key=s
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statustable
|
||||
key=s
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=togglegrid
|
||||
key=g
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=toggleshroud
|
||||
key=k
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=undo
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
alt=yes
|
||||
command=unitlist
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=updateshroud
|
||||
key=S
|
||||
cmd=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomdefault
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomin
|
||||
key=z
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomout
|
||||
key=x
|
||||
[/hotkey]
|
||||
|
||||
|
||||
#else
|
||||
|
||||
|
||||
[hotkey]
|
||||
command=accelerated
|
||||
key=a
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=bestenemymoves
|
||||
key=b
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=changeside
|
||||
key=U
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
alt=yes
|
||||
command=chatlog
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=clearlabels
|
||||
ctrl=yes
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=createunit
|
||||
ctrl=yes
|
||||
key=C
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=continue
|
||||
key=t
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=command
|
||||
key=:
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycle
|
||||
key=n
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=cycleback
|
||||
key=N
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=delayshroud
|
||||
key=D
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=describeunit
|
||||
key=d
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endunitturn
|
||||
key=" "
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=endturn
|
||||
key=" "
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=fullscreen
|
||||
key=f
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=help
|
||||
key=F1
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=holdposition
|
||||
key=" "
|
||||
shift=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=labelterrain
|
||||
key=l
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=leader
|
||||
key=l
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=load
|
||||
key=o
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mousescroll
|
||||
key=l
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=mute
|
||||
key=m
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=objectives
|
||||
key=j
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=preferences
|
||||
key=p
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=quit
|
||||
key=q
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recall
|
||||
key=r
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=recruit
|
||||
key=r
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=redo
|
||||
key=r
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=renameunit
|
||||
key=n
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=repeatrecruit
|
||||
key=R
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=resistance
|
||||
key=d
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=save
|
||||
key=s
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=search
|
||||
key=/
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=showenemymoves
|
||||
key=v
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speak
|
||||
key=m
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoall
|
||||
key=m
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=speaktoally
|
||||
key=M
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statistics
|
||||
key=s
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=statustable
|
||||
key=s
|
||||
alt=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=togglegrid
|
||||
key=g
|
||||
ctrl=yes
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=undo
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
alt=yes
|
||||
command=unitlist
|
||||
key=u
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=updateshroud
|
||||
key=S
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomdefault
|
||||
key=c
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomin
|
||||
key=z
|
||||
[/hotkey]
|
||||
[hotkey]
|
||||
command=zoomout
|
||||
key=x
|
||||
[/hotkey]
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user