MOUSED.CONF(5)
πΈ NAME πΈ
okay so bestie, this is MOUSED.CONF(5) β the File Formats Manual page for moused.conf, aka the mouse daemon configuration file. Itβs giving per-device mouse tuning, and honestly? iconic. π
π
π DESCRIPTION π
The moused.conf file specifies how moused(8) (the mouse daemon) should operate. It provides the ability to adjust certain mice parameters on a per-device basis. Slay. β¨
Configuration file format is derived from libinput(1) device quirk files. A file may contain multiple section headers ([some identifier]) followed by one or more MatchFoo=Bar directives, followed by at least one of MousedFoo=bar or AttrFoo=bar directive. A configuration file must contain at least one section, each section must have at least one βMatchβ tag and at least one of either βAttrβ or βMousedβ. Section names are free-form and may contain spaces. No cap. π
β¨ List of currently available matches. β¨
MatchName,MatchUniqβ Match on theNAMEorUNIQudev property on this device. These properties are typically derived from the deviceβs kernel name or uniq. These matches usefnmatch()globs. Globby globs, yep. π«ΆMatchBusβ A lower-case bus name. Currently supported areusb,bluetooth,ps2,rmi,i2c, andspi.MatchVendor,MatchProduct,MatchVersionβ The hexadecimal 4-digit vendor ID, product ID or driver version as exported, without a0xprefix.MatchDMIModalias,MatchDeviceTreeβ Anfnmatch()glob for the DMI modalias or the DeviceTree compatible string.MatchDevTypeβ One oftouchpad,mouse,pointingstick,keyboard,joystick,tablet,tablet-pad. Onlytouchpadandmousetypes are supported. not the others, bestie! β οΈ
π List of currently available Moused tags. π
MousedGrabDeviceβ Only for evdev interface. Become the sole recipient of all incoming input events. This prevents other processes from getting input events on the device. Use-goption alternatively. main character energy: the device only talks to you. πMousedIgnoreDeviceβ Ignore given device. blocked. unfollowed. no events for you. πMousedClickThresholdβ Set double click speed as the maximum interval in msec between button clicks. Without this option, the default value of500msec will be assumed. This option will have effect only on the cut and paste operations in the text mode console. The user program which is reading mouse data viasysmouse(4)will not be affected. Use-Coption alternatively.MousedEmulateThirdButtonβ Emulate the third (middle) button for 2-button mice. It is emulated by pressing the left and right physical buttons simultaneously. Use-3option alternatively.MousedEmulateThirdButtonTimeoutβ When the third button emulation is enabled (see above), themoused(8)utility waitsMousedEmulateThirdButtonTimeoutmsec at most before deciding whether two buttons are being pressed simultaneously. The default timeout is100msec. Use-Eoption alternatively.MousedLinearAccelXMousedLinearAccelYMousedLinearAccelZβ Accelerate or decelerate the mouse input. This is a linear acceleration only. Values less than1.0slow down movement, values greater than1.0speed it up. You can use theMousedLinearAccelandMousedExponentialAcceloptions at the same time to have the combined effect of linear and exponential acceleration. Use-aoption alternatively.MousedExponentialAccelMousedExponentialOffsetβ Apply exponential (dynamic) acceleration to mouse movements: the faster you move the mouse, the more it will be accelerated. That means that small mouse movements are not accelerated, so they are still very accurate, while a faster movement will drive the pointer quickly across the screen. TheMousedExponentialAccelvalue specifies the exponent, which is basically the amount of acceleration. Useful values are in the range1.1to2.0, but it depends on your mouse hardware and your personal preference. A value of1.0means no exponential acceleration. A value of2.0means squared acceleration (i.e. if you move the mouse twice as fast, the pointer will move four times as fast on the screen). Values beyond2.0are possible but not recommended. A good value to start is probably1.5. The optionalMousedExponentialOffsetvalue specifies the distance at which the acceleration begins. The default is1.0, which means that the acceleration is applied to movements larger than one unit. If you specify a larger value, it takes more speed for the acceleration to kick in, i.e. the speed range for small and accurate movements is wider. Usually the default should be sufficient, but if you're not satisfied with the behaviour, try a value of2.0. Note that the-Aoption interacts badly with the X server's own acceleration, which doesn't work very well anyway. Therefore it is recommended to switch it off if necessary: βxset m 1β. Use-Aoption alternatively. this is the spicy acceleration lore, fr fr. π₯MousedMapZAxisβ Map Z axis (roller/wheel) movement to another axis or to virtual buttons. Not supported yet. Use-zoption instead. not supported yet, so donβt come for me. πMousedVirtualScrollEnableβ Enable βVirtual Scrollingβ. With this option set, holding the middle mouse button down will cause motion to be interpreted as scrolling. Use theMousedVirtualScrollThresholdoption to set the distance the mouse must move before the scrolling mode is activated and theMousedVirtualScrollSpeedoption to set the scrolling speed. Use-Voption alternatively.MousedHorVirtualScrollEnableβ Enable βHorizontal Virtual Scrollingβ. With this option set, holding the middle mouse button down will cause motion to be interpreted as horizontal scrolling. Use theMousedVirtualScrollThresholdoption to set the distance the mouse must move before the scrolling mode is activated and theMousedVirtualScrollSpeedoption to set the scrolling speed. This option may be used with or without theMousedVirtualScrollEnableoption. Use-Hoption alternatively.MousedVirtualScrollSpeed= distanceβ When βVirtual Scrollingβ is enabled, theMousedVirtualScrollSpeedoption can be used to set the distance (in pixels) that the mouse must move before a scroll event is generated. This effectively controls the scrolling speed. The default distance is2pixels. Use-Loption alternatively.MousedVirtualScrollThreshold= distanceβ When βVirtual Scrollingβ is enabled, theMousedVirtualScrollThresholdoption can be used to set the distance (in pixels) that the mouse must move before the scrolling mode is activated. The default distance is3pixels. Use-Uoption alternatively.MousedWMode= Nβ Make the physical buttonNact as the wheel mode button. While this button is pressed, X and Y axis movement is reported to be zero and the Y axis movement is mapped to Z axis. You may further map the Z axis movement to virtual buttons by theMousedMapZAxistag. Use-woption alternatively. wheel mode: activated. button girlies rise. π‘
π List of currently available Moused mice specific tags. π
MousedDriftTerminateMousedDriftDistanceMousedDriftTimeMousedDriftAfterβ Terminate drift. Use this option if mouse pointer slowly wanders when mouse is not moved. Movements up toMousedDriftDistance(for example4) pixels (X+Y) inMousedDriftTimemsec (default500) are ignored, except duringMousedDriftAftermsec (default4000) since last real mouse movement. Use-Toption alternatively. no more haunted cursor energy. π»
π¦ List of currently available Moused touchpad specific tags. π¦
MousedTwoFingerScrollβ Enable two finger scrolling.MousedNaturalScrollβ Enable natural scrolling.MousedThreeFingerDragβ Enable dragging with three fingers.MousedSoftButton2Xβ Horizontal position of 2-nd softbutton left edge in percents. (0-disable)MousedSoftButton3Xβ Horizontal position of 3-rd softbutton left edge in percents. (0-disable)MousedSoftButtonsYβ Vertical size of softbuttons area in percents. Use negative values to place softbutton area at top of touchpad.MousedTapTimeoutβ Tap timeout in millisecondsMousedTapPressureThresholdβ Pressure threshold to detect tap.MousedTapMaxDeltaβ Length of finger movement above which a tap is ignored measured in mm.MousedTapholdTimeoutβ Maximum elapsed time between two taps to consider a tap-hold action.MousedVScrollMinDeltaβ Minimum movement to consider virtual scrolling.MousedVScrollHorAreaβ Area reserved for horizontal virtual scrolling in mm.MousedVScrollVerAreaβ Area reserved for vertical virtual scrolling in mm. touchpad customization is self-care, actually. π§
π List of currently available libinput-compatible tags. π
AttrSizeHintβ Hints at the width x height of the device in mm.AttrTouchSizeRangeβ Not supported yet.AttrPalmSizeThresholdβ Maximum finger width to detect palm in mm.AttrLidSwitchReliabilityβ Not supported yet.AttrKeyboardIntegrationβ Not supported yet.AttrPointingStickIntegrationβ Not supported yet.AttrTPKComboLayoutβ Not supported yet.AttrPressureRange= N: Mβ Specifies the touch pressure required to trigger a pressNand to trigger a releaseM.AttrPalmPressureThresholdβ Maximum pressure to detect palm.AttrResolutionHintβ Hints at the resolution of the x/y axis in units/mm.AttrTrackpointMultiplierβ Not supported yet.AttrThumbPressureThresholdβ Not supported yet.AttrUseVelocityAveragingβ Not supported yet.AttrTabletSmoothingβ Not supported yet.AttrThumbSizeThresholdβ Not supported yet.AttrMscTimestampβ Not supported yet.AttrEventCodeβ Enables or disables the evdev event type/code tuples on the device. The prefix for each entry is either+(enable) or-(disable). Entries may be a named event type, or a named event code, or a named event type with a hexadecimal event code, separated by a single colon. event-code girlies, this oneβs for you. πAttrInputPropβ this one flips the evdev input property on the device on or off, no in-between. Every entry starts with a prefix:+means enable,-means disable. After the prefix you can drop in either a named input property or the hexadecimal value of that property. That's it, that's the whole vibe. π
Heads up bestie: all libinput(1)Modelquirks are currently ignored. Not "handled differently", not "partially supported" β ignored. So don't come crying to me when yourModelquirk does absolutely nothing, okay? π
π FILES π
/usr/local/etc/moused.confβ the filemoused.confresides in/usr/local/etc. That's its home, its little apartment, its whole address. π/usr/local/share/moused/*.quirksβ predefined quirks that get processed beforemoused.conf. So these show up first, do their thing, and then your own config gets its turn. Order matters, iykyk. β¨
πΈ EXAMPLES πΈ
Okay so picture this: you've got a PS/2 Synaptics touchpad and you want to set the touch pressure and palm detection thresholds. Here's exactly how that looks, no cap:
[SynPS/2 Synaptics TouchPad]
MatchDevType=touchpad
MatchName=SynPS/2 Synaptics TouchPad
AttrPressureRange=35:30
AttrPalmPressureThreshold=220
Look at her go. Section header, match on device type, match on name, two attributes, done. Iconic behaviour, honestly. π
π SEE ALSO π
moused(8)β the main character herself.libinput(1)device quirk format β for the full lore, the wiki of quirks:https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html
π¦ HISTORY π¦
The moused.conf file format first appeared in FreeBSD 15.0. So she's a 15.0 baby β young, but she's already got a whole manual page. We love a rising star. β
π«Ά AUTHORS π«Ά
This manual page was written by Vladimir Kondratyev <wulf@FreeBSD.org>, based on the moused(8) manual page and libinput(1) documentation. Shoutout Vladimir, thank you for your service. π
Debian, May 19, 2025 β that's when this beauty of a page was published, from the Debian fam. Slap a MOUSED.CONF(5) on it and call it a day fr fr. π
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π the page's license: BSD-2-Clause
- Copyright (c) 2025 Vladimir Kondratyev <wulf@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms