
<feed xmlns="http://www.w3.org/2005/Atom">
    <generator>Hugo -- gohugo.io</generator>
    <title>
                thinkpad on
            
        
        The Neo-Babbage Files</title>
        <link href="https://babbagefiles.xyz/categories/thinkpad/atom.xml" rel="self" type="application/atom+xml" /><link href="https://babbagefiles.xyz/categories/thinkpad/"/>
    <updated>2025-12-29T11:00:32+00:00</updated>
    <author>
            <name>Benjamin Slade</name>
            
                <email>slade@lambda-y.net</email>
            </author>
    <id>https://babbagefiles.xyz/categories/thinkpad/</id>
        
        <entry>
            <title type="html"><![CDATA[Dealing with possessed TrackPoints on later model ThinkPads]]></title>
            <link href="https://babbagefiles.xyz/possessed-trackpoint/"/>
            <id>https://babbagefiles.xyz/possessed-trackpoint/</id>
            
                    <author>
                        <name>Benjamin Slade</name>
                    </author>
            <published>2022-06-18T19:51:00-06:00</published>
            <updated>2022-06-18T20:22:51-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>On a new-to-me ThinkPad T440p, I&rsquo;ve had the worst time with the
TrackPoint.</p>
<p>First, the stock configuration has a horrible touchpad -
which shouldn&rsquo;t matter if you don&rsquo;t use the touchpad, but the
horribleness of it is that the physical buttons that should be on the
top of the touchpad, and are on the touchpads of models preceding and
following the **40 line, are not there. But one <a href="https://octoperf.com/blog/2018/11/07/thinkpad-t440p-buyers-guide/#trackpad">can replace it</a>, and so
I did.</p>
<p>The T440p is nice in that servicing the fan and other internals of the
machine is a relatively easy affair compared to say an X230. Just undo
two screws on the bottom of the laptop and slide off the back panel,
and you have access to memory, drives, the CPU, and so on. And so
swapping in a different CPU was really easy and painless.</p>
<p>On the other hand, changing the touchpad was a very involved
affair. But it <a href="https://www.youtube.com/watch?v=7wM4Kqdy3_E">can be done</a>.</p>
<p>However, still the mouse-cursor experience for the machine continued
to be horrible. Firstly, there was significant &ldquo;drift&rdquo; of the
TrackPoint. I.e., even once pressure is released, it keeps moving, for
a long time.</p>
<p>However, this ends up being solvable via</p>
<div class="highlight"><pre class="chroma"><code class="language-shell" data-lang="shell">sudo -s <span class="nb">echo</span>  <span class="s1">&#39;ACTION==&#34;add&#34;,SUBSYSTEM==&#34;input&#34;,ATTR{name}==&#34;TPPS/2 IBM TrackPoint&#34;,ATTR{device/drift_time}=&#34;30&#34;&#39;</span>  &gt; /etc/udev/rules.d/10-trackpoint.rules
</code></pre></div><p>(If you&rsquo;re trying to do this in Guix, something like:</p>
<div class="highlight"><pre class="chroma"><code class="language-scheme" data-lang="scheme"><span class="p">(</span><span class="k">define </span><span class="nv">%trackpoint-drift-rule</span>
  <span class="p">(</span><span class="nf">udev-rule</span>
    <span class="s">&#34;10-trackpoint.rules&#34;</span>
    <span class="p">(</span><span class="nb">string-append </span><span class="s">&#34;ACTION==\&#34;add\&#34;,SUBSYSTEM==\&#34;input\&#34;,ATTR{name}==\&#34;TPPS/2 IBM TrackPoint\&#34;,ATTR{device/drift_time}=\&#34;25\&#34;&#34;</span><span class="p">))</span>
</code></pre></div><div class="highlight"><pre class="chroma"><code class="language-scheme" data-lang="scheme"><span class="p">(</span><span class="k">define </span><span class="nv">%my-desktop-services</span>
   <span class="p">(</span><span class="nb">cons </span><span class="p">(</span><span class="nf">udev-rules-service</span> <span class="ss">&#39;trackpoint-drift</span> <span class="nv">%trackpoint-drift-rule</span><span class="p">)</span>
         <span class="p">(</span><span class="nf">modify-services</span> <span class="nv">%desktop-services</span>
                          <span class="o">....</span><span class="p">)</span> <span class="c1">; other modifications here</span>
         <span class="p">))</span>
</code></pre></div><div class="highlight"><pre class="chroma"><code class="language-scheme" data-lang="scheme"><span class="p">(</span><span class="nf">operating-system</span>
  <span class="o">....</span>
  <span class="p">(</span><span class="nf">services</span>
    <span class="p">(</span><span class="nf">append</span>
     <span class="p">(</span><span class="nf">list</span>
      <span class="p">(</span><span class="nf">service</span> <span class="nv">openssh-service-type</span><span class="p">)</span>
      <span class="p">(</span><span class="nf">service</span> <span class="nv">cups-service-type</span><span class="p">)</span>
      <span class="p">(</span><span class="nf">service</span> <span class="nv">nix-service-type</span><span class="p">)</span>
      <span class="o">....</span><span class="p">)</span>
     <span class="nv">%my-desktop-services</span><span class="p">))</span>
  <span class="o">....</span><span class="p">)</span>
</code></pre></div><p>instead.)</p>
<p>But, unfortunately, this doesn&rsquo;t solve what is actually the most horrible issue:
the mouse cursor sometimes, when in use, just teleports around the edges
of the screen and starts randomly clicking on things.</p>
<p>I finally turned up some discussion of this issue (though not for the
T440p specifically) at: <a href="https://bugzilla.kernel.org/show_bug.cgi?format=multiple&amp;id=209167">https://bugzilla.kernel.org/show_bug.cgi?format=multiple&amp;id=209167</a>
(The discussion suggests that it should somehow be solved in the
kernel, but that is not my experience, even running kernel 5.17.13.)</p>
<p>And found that adding <code>psmouse.proto=imps</code> to the kernel arguments and
disabling the touchpad in the stock BIOS solves the &ldquo;possessed mouse
cursor&rdquo; issue. For better or worse, it seem to make the TrackPoint be
detected as a generic PS/2 mouse. Which means that <code>drift_time</code> can no
longer be set, and I do get a little bit of drift from time to time,
but it&rsquo;s not too bad and certainly is far less maddening than the
&ldquo;possessed mouse cursor&rdquo; behaviour.</p>
<p>For Guix, the way to implement this is something along the lines of:</p>
<div class="highlight"><pre class="chroma"><code class="language-scheme" data-lang="scheme"><span class="p">(</span><span class="nf">operating-system</span>
 <span class="o">...</span>
 <span class="p">(</span><span class="nf">kernel-arguments</span> <span class="p">(</span><span class="nf">cons*</span> <span class="s">&#34;modprobe.blacklist=pcspkr,snd_pcsp&#34;</span> <span class="s">&#34;psmouse.proto=imps&#34;</span> <span class="s">&#34;acpi_osi=Linux&#34;</span> <span class="nv">%default-kernel-arguments</span><span class="p">))</span>
 <span class="o">...</span><span class="p">)</span>
</code></pre></div><p>(The other kernel arguments are simply the other ones I use, and are
not directly connected with this issue.)</p>
<p>Depending on the model of ThinkPad and/or the environment, using
<code>psmouse.proto=bare</code> instead may work better (see discussion at:
<a href="https://www.reddit.com/r/thinkpad/comments/v7vn0o/thinkpad_t440p_trackpoint_occasionally_going_crazy/icjkk0o/">https://www.reddit.com/r/thinkpad/comments/v7vn0o/thinkpad_t440p_trackpoint_occasionally_going_crazy/icjkk0o/</a>
).</p>
<p>So, perhaps not an entirely satisfactory solution, this impish
exorcism, but better than alternatives.</p>
]]></content>
            
                 
                    
                         
                        
                            
                             
                                <category scheme="https://babbagefiles.xyz/categories/thinkpad" term="thinkpad" label="thinkpad" />
                             
                                <category scheme="https://babbagefiles.xyz/categories/linux" term="linux" label="linux" />
                             
                                <category scheme="https://babbagefiles.xyz/categories/guix" term="guix" label="guix" />
                            
                        
                    
                 
                    
                 
                    
                
            
        </entry>
    
</feed>
