Hi,

You probably activated the Fn-Lock. To release it press Fn+Esc if i recall it 
correctly.
Also there should be an option in the BIOS regarding the function keys, you can 
pick which way you prefer (frimary or secondary function).

https://support.lenovo.com/lt/lt/solutions/ht103044-how-to-use-the-function-keys-without-pressing-fn-in-windows-8110

Hope it helps.

Best rEgards,
--Z--

Jonathan Thornburg írta 2023. szept.. 11, H-n 23:02 órakor:
> *** SUMMARY ***
>
> Thinkpad T580, OpenBSD amd64 7.3-stable, twm window manager.
> Prior to today, I had a window-manager keybinding for "F1".
> Starting today, I need to hold down the "Fn" key and press "F1" to get
> the "F1" keybinding; if I just press "F1" I get the Lenovo-defined system
> action (in this case muting the audio volume).  What caused the change,
> and how can I revert to the old behavior?
>
>
> *** DETAILS ***
>
> I have a Thinkpad T580 (dmesg below) running amd64 7.3-stable, currently
> with syspatches 001-015 inclusive.  I normally use ctwm (ports) as a window
> manager, but all the behavior I describe in this message persists when I
> switch back to twm (in base).
>
> I setup various keybindings in my ~/.twmrc and ~/.ctwmrc (given in full
> below), including that pressing the "F1" key raises the current window to
> be on top in the window-stacking order:
>    "F1"    =      : window : f.raise
>    "F1"    =      : title  : f.raise
> I don't set any keybinding for "Fn/F1" (i.e., pressing the "F1" key while
> holding down the "Fn" key), so this invokes Lenovo's default action for F1,
> i.e., muting the audio output (the F1 keycap has an icon of a speaker with
> a line through it).
>
> I've been using this setup for many years on a variety of Thinkpads and
> OpenBSD releases, and it has all worked fine.  A few weeks ago I had a
> repair shop replace the T580's keyboard after a keyspring started failing;
> the above function-key bindings all worked fine with the new keyboard.
>
> But starting today I see a new behavior: pressing "F1" now gives the
> behavior I used to get with "Fn/F1" (mute the audio volume), and pressing
> "Fn/F1" now gives the behavior I used to get with plain "F1" (raise the
> current window).  More generally, for any x in the range 1 through 12
> inclusive, "Fx" now invokes the Lenovo default action, while "Fn/Fx"
> invokes my keybinding (if any).  (For example, "F5" and "F6" now decrease
> and increase the screen brightness.)
>
> The new behavior has persisted through a cold boot, and (as noted above)
> is identical for ctwm (ports) and twm (in base).
>
> The new behavior does *NOT* occur for a Thinkpad T530 with an identical
> software setup (amd64 7.3-stable, same set of syspatches, same ~/.twmrc
> and ~/.ctwmrc).  That is, on the T530 I see the same behavior I saw prior
> to today on the T580, namely that for any x in the range 1 through 12
> inclusive, "Fx" invokes my keybinding for "Fx" (if any), while "Fn/Fx"
> invokes the Lenovo default action.  (For example, on the T530 "F1" invokes
> the raise-window keybinding, while "Fn/F8" and "Fn/F9" decrease and increase
> the screen brightness.)
>
> The twm and ctwm binaries have identical checksums between the T530 and
> T580, as do ~/.ctwmrc and ~/.twmrc
>   % cksum `which ctwm` `which twm` ~/.ctwmrc ~/.twmrc
>   1100362473 518296 /usr/local/bin/ctwm
>   998664569 202936 /usr/X11R6/bin/twm
>   931165269 5767 /home/jonathan/.ctwmrc
>   3395929888 5551 /home/jonathan/.twmrc
>   %
>
> My basic question is, can anyone suggest what the cause of this change
> might be (apart from "wierd hardware failure in new T580 keyboard"), and/or
> what I might do on the T580 to revert to the old behavior?  One possible
> workaround is to modify the key bindings in ~/.twmrc and ~/.ctwmrc, but
> I'd prefer to understand the cause of the change before I start trying
> workarounds.
>
>
> Here is the T580 dmesg:
> --- begin /var/run/dmesg.boot ---
> OpenBSD 7.3 (GENERIC.MP) #3: Tue Jul 25 08:20:26 MDT 2023
>     
> r...@syspatch-73-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 33922605056 (32351MB)
> avail mem = 32875106304 (31352MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 3.0 @ 0xa86db000 (62 entries)
> bios0: vendor LENOVO version "N27ET43W (1.29 )" date 08/13/2021
> bios0: LENOVO 20L9001GUS
> acpi0 at bios0: ACPI 5.0
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP SSDT SSDT TPM2 UEFI SSDT SSDT HPET APIC MCFG 
> ECDT SSDT SSDT BOOT BATB SLIC SSDT SSDT SSDT LPIT WSMT SSDT SSDT SSDT 
> DBGP DBG2 MSDM DMAR ASF! FPDT UEFI
> acpi0: wakeup devices GLAN(S4) XHC_(S3) XDCI(S4) HDAS(S4) RP01(S4) 
> PXSX(S4) RP02(S4) PXSX(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) PXSX(S4) 
> RP06(S4) PXSX(S4) RP07(S4) [...]
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpihpet0 at acpi0: 23999999 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz, 1793.87 MHz, 06-8e-0a
> cpu0: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu0: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 
> 64b/line 4-way L2 cache, 8MB 64b/line 16-way L3 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 24MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.1.2.4.1.1.1, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz, 1794.25 MHz, 06-8e-0a
> cpu1: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu1: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 
> 64b/line 4-way L2 cache, 8MB 64b/line 16-way L3 cache
> cpu1: smt 0, core 1, package 0
> cpu2 at mainbus0: apid 4 (application processor)
> cpu2: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz, 1795.82 MHz, 06-8e-0a
> cpu2: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu2: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 
> 64b/line 4-way L2 cache, 8MB 64b/line 16-way L3 cache
> cpu2: smt 0, core 2, package 0
> cpu3 at mainbus0: apid 6 (application processor)
> cpu3: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz, 1795.82 MHz, 06-8e-0a
> cpu3: 
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,TSC_ADJUST,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PT,SRBDS_CTRL,MD_CLEAR,TSXFA,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu3: 32KB 64b/line 8-way D-cache, 32KB 64b/line 8-way I-cache, 256KB 
> 64b/line 4-way L2 cache, 8MB 64b/line 16-way L3 cache
> cpu3: smt 0, core 3, package 0
> ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 120 pins
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xf0000000, bus 0-127
> acpiec0 at acpi0
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus 2 (RP01)
> acpiprt2 at acpi0: bus -1 (RP02)
> acpiprt3 at acpi0: bus -1 (RP03)
> acpiprt4 at acpi0: bus -1 (RP04)
> acpiprt5 at acpi0: bus -1 (RP05)
> acpiprt6 at acpi0: bus -1 (RP06)
> acpiprt7 at acpi0: bus 4 (RP07)
> acpiprt8 at acpi0: bus -1 (RP08)
> acpiprt9 at acpi0: bus 7 (RP09)
> acpiprt10 at acpi0: bus -1 (RP10)
> acpiprt11 at acpi0: bus 64 (RP11)
> acpiprt12 at acpi0: bus -1 (RP12)
> acpiprt13 at acpi0: bus -1 (RP13)
> acpiprt14 at acpi0: bus -1 (RP14)
> acpiprt15 at acpi0: bus -1 (RP15)
> acpiprt16 at acpi0: bus -1 (RP16)
> acpiprt17 at acpi0: bus -1 (RP17)
> acpiprt18 at acpi0: bus -1 (RP18)
> acpiprt19 at acpi0: bus -1 (RP19)
> acpiprt20 at acpi0: bus -1 (RP20)
> acpiprt21 at acpi0: bus -1 (RP21)
> acpiprt22 at acpi0: bus -1 (RP22)
> acpiprt23 at acpi0: bus -1 (RP23)
> acpiprt24 at acpi0: bus -1 (RP24)
> acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000
> acpithinkpad0 at acpi0: version 2.0
> acpiac0 at acpi0: AC unit online
> acpibat0 at acpi0: BAT0 model "00UR891" serial 10036 type LiP oem "SMP"
> acpibat1 at acpi0: BAT1 model "01AV452" serial  1658 type LiP oem "SMP"
> "LEN0100" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> "INT3403" at acpi0 not configured
> acpicmos0 at acpi0
> acpibtn0 at acpi0: SLPB
> "PNP0C14" at acpi0 not configured
> "INT33A1" at acpi0 not configured
> acpibtn1 at acpi0: LID_
> "PNP0C14" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> "INT3400" at acpi0 not configured
> tpm0 at acpi0 TPM_ 2.0 (TIS) addr 0xfed40000/0x5000, device 0x0000104a 
> rev 0x4e
> "USBC000" at acpi0 not configured
> acpicpu0 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu1 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu2 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpicpu3 at acpi0: C3(200@1034 mwait.1@0x60), C2(200@151 mwait.1@0x33), 
> C1(1000@1 mwait.1), PSS
> acpipwrres0 at acpi0: PUBS, resource for XHC_
> acpitz0 at acpi0: critical temperature is 98 degC
> acpivideo0 at acpi0: GFX0
> acpivout0 at acpivideo0: DD1F
> cpu0: using VERW MDS workaround (except on vmm entry)
> cpu0: Enhanced SpeedStep 1793 MHz: speeds: 2101, 2100, 1900, 1800, 
> 1700, 1600, 1500, 1400, 1200, 1100, 1000, 800, 700, 600, 500, 400 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel Core 8G Host" rev 0x08
> inteldrm0 at pci0 dev 2 function 0 "Intel UHD Graphics 620" rev 0x07
> drm0 at inteldrm0
> inteldrm0: msi, KABYLAKE, gen 9
> "Intel Core 6G Thermal" rev 0x08 at pci0 dev 4 function 0 not configured
> "Intel Core GMM" rev 0x00 at pci0 dev 8 function 0 not configured
> xhci0 at pci0 dev 20 function 0 "Intel 100 Series xHCI" rev 0x21: msi, 
> xHCI 1.0
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 
> 3.00/1.00 addr 1
> pchtemp0 at pci0 dev 20 function 2 "Intel 100 Series Thermal" rev 0x21
> "Intel 100 Series MEI" rev 0x21 at pci0 dev 22 function 0 not configured
> ppb0 at pci0 dev 28 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
> pci1 at ppb0 bus 2
> ppb1 at pci0 dev 28 function 6 "Intel 100 Series PCIE" rev 0xf1: msi
> pci2 at ppb1 bus 4
> iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev 
> 0x78, msi
> ppb2 at pci0 dev 29 function 0 "Intel 100 Series PCIE" rev 0xf1: msi
> pci3 at ppb2 bus 7
> ppb3 at pci0 dev 29 function 2 "Intel 100 Series PCIE" rev 0xf1: msi
> pci4 at ppb3 bus 64
> nvme0 at pci4 dev 0 function 0 vendor "Samsung", unknown product 0xa80c 
> rev 0x00: msix, NVMe 2.0
> nvme0: Samsung SSD 990 PRO 2TB, firmware 1B2QJXD7, serial 
> S73WNJ0W400838L
> scsibus1 at nvme0: 2 targets, initiator 0
> sd0 at scsibus1 targ 1 lun 0: <NVMe, Samsung SSD 990, 1B2Q>
> sd0: 1907729MB, 512 bytes/sector, 3907029168 sectors
> pcib0 at pci0 dev 31 function 0 "Intel 200 Series LPC" rev 0x21
> "Intel 100 Series PMC" rev 0x21 at pci0 dev 31 function 2 not configured
> azalia0 at pci0 dev 31 function 3 "Intel 200 Series HD Audio" rev 0x21: 
> msi
> azalia0: codecs: Realtek ALC257, Intel/0x280b, using Realtek ALC257
> audio0 at azalia0
> ichiic0 at pci0 dev 31 function 4 "Intel 100 Series SMBus" rev 0x21: 
> apic 2 int 16
> iic0 at ichiic0
> em0 at pci0 dev 31 function 6 "Intel I219-LM" rev 0x21: msi, address 
> 48:2a:e3:1b:f6:6b
> isa0 at pcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0: console keyboard
> pms0 at pckbc0 (aux slot)
> wsmouse0 at pms0 mux 0
> wsmouse1 at pms0 mux 0
> pms0: Synaptics clickpad, firmware 8.16, 0x1e2b1 0x940300 0x33cc40 
> 0xf01fa3 0x12e800
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> vmm0 at mainbus0: VMX/EPT
> uvideo0 at uhub0 port 8 configuration 1 interface 0 "Azurewave 
> Integrated Camera" rev 2.01/17.11 addr 2
> video0 at uvideo0
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> sd1 at scsibus3 targ 1 lun 0: <OPENBSD, SR CRYPTO, 006>
> sd1: 65538MB, 512 bytes/sector, 134222419 sectors
> root on sd1a (bebcaf82143ab665.a) swap on sd1b dump on sd1b
> drm:pid0:intel_ddi_sanitize_encoder_pll_mapping *NOTICE* [drm] 
> [ENCODER:102:DDI B/PHY B] is disabled/in DSI mode with an ungated DDI 
> clock, gate it
> drm:pid0:intel_ddi_sanitize_encoder_pll_mapping *NOTICE* [drm] 
> [ENCODER:116:DDI C/PHY C] is disabled/in DSI mode with an ungated DDI 
> clock, gate it
> inteldrm0: 1920x1080, 32bpp
> wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using 
> wskbd0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> iwm0: hw rev 0x230, fw ver 36.ca7b901d.0, address 18:56:80:24:28:40
> --- end /var/run/dmesg.boot ---
>
> And here is the ~/.twmrc
> --- begin ~/.twmrc ---
> # .twmrc -- set twm(1) defaults
> #
>
> #
> # Colors
> #
> Color
> {
> BorderColor                   "white"
> BorderTileForeground          "white"
> BorderTileBackground          "black"
> TitleForeground                       "white"
> TitleBackground                       "black"
> MenuForeground                        "white"
> MenuBackground                        "black"
> MenuTitleForeground           "black"
> MenuTitleBackground           "white"
> MenuShadowColor                       "white"
> IconForeground                        "white"
> IconBackground                        "black"
> IconBorderColor                       "white"
> IconManagerForeground         "white"
> IconManagerBackground         "black"
> ##PointerForeground           "Red"
> ##PointerBackground           "Red"
> }
>
> Monochrome
> {
> BorderColor                   "white"
> BorderTileForeground          "white"
> BorderTileBackground          "black"
> TitleForeground                       "white"
> TitleBackground                       "black"
> MenuForeground                        "white"
> MenuBackground                        "black"
> MenuTitleForeground           "black"
> MenuTitleBackground           "white"
> MenuShadowColor                       "white"
> IconForeground                        "white"
> IconBackground                        "black"
> IconBorderColor                       "white"
> IconManagerForeground         "white"
> IconManagerBackground         "black"
> }
>
> #
> # Fonts
> #
> MenuFont                      "9x15bold"
> TitleFont                     "7x14"
> IconFont                      "7x14"
> ResizeFont                    "7x14"
> IconManagerFont                       "7x14"
>
> #
> # Other window appearance stuff
> #
> BorderWidth                   4
> FramePadding                  2
> ClientBorderWidth
> UsePPosition                  "on"
> RandomPlacement
> OpaqueMove
> DontMoveOff
> Zoom
> NoRaiseOnMove
> NoRaiseOnResize
> DecorateTransients
>
> #
> # Icon manager stuff
> #
> IconManagerGeometry   "=100x10-0+271"
>
> NoTitle
> {
> "TWM"
> "xclock"
> "xbatt"
> "temp"
> ##"xmeter"
> "xcpu"
> "console"
> }
>
> NoHighlight
> {
> "xclock"
> "xbatt"
> "temp"
> "xmeter"
> }
>
> AutoRaise
> {
> ###"nothing"  # I don't like auto-raise
> ##"xclock"
> ##"xbatt"
> ##"temp"
> ##"xmeter"
> }
>
> DefaultFunction f.menu "default-menu"
> #Button = KEYS : CONTEXT : FUNCTION
> #----------------------------------
> Button1 =      : root   : f.menu "button1"
> Button1 =      : title  : f.menu "button1"
> Button1 =      : title  : f.raiselower
> Button1 =      : frame  : f.raiselower
> Button1 =      : icon   : f.iconify
> Button1 = m    : icon   : f.raise
>
> Button2 =      : root   : f.menu "TwmWindows"
> Button2 =      : title  : f.move
> Button2 =      : frame  : f.move
> Button2 =      : icon   : f.move
> Button2 = m    : icon   : f.move
>
> Button3 =      : root   : f.menu "button3"
> Button3 =      : title  : f.menu "button3"
> ## do NOT raise on right-click so I can click to recover from "mouse grab"
> ##Button3 =      : frame  : f.raiselower
> Button3 =      : icon   : f.raiselower
> Button3 =      : iconmgr   : f.function "de-raise-n-focus"
> Button3 = c    : root   : f.function "beep-beep"
> Button3 = m    : icon   : f.lower
>
> "F1"    =      : window : f.raise
> "F1"    =      : title  : f.raise
> "F2"    =      : window : f.raise
> "F2"    =      : title  : f.raise
>
> "F9"    =      : window : :!"$HOME/bin/fsel"
> "F9"    =      : title  : :!"$HOME/bin/fsel"
>
> "F11"   =      : window : f.lower
> "F11"   =      : title  : f.lower
> "F12"   =      : window : f.lower
> "F12"   =      : title  : f.lower
>
> Function "beep-beep"
> {
> f.beep
> f.beep
> f.beep
> f.beep
> f.beep
> }
>
> Function "de-raise-n-focus"
> {
> f.deiconify
> f.raise
> f.focus
> }
>
> Function "raise-n-focus"
> {
> f.raise
> f.focus
> }
>
> menu "button1"
> {
> "Web Browsers"                        f.title
> "  firefox (X, different user)" !"(chdir /tmp; $HOME/bin/firefox-via-X &)"
> ""                            f.nop
> "  iridium"                   !"(chdir /tmp; iridium 
> --user-data-dir=$HOME/.config/iridium &)"
> ""                            f.nop
> "  chromium"                  !"(chdir /tmp; chrome 
> --user-data-dir=$HOME/.config/chromium&)"
> ""                            f.nop
> "    firefox (ssh, different user)" !"(chdir /tmp; $HOME/bin/firefox-via-ssh 
> &)"
> "    firefox (jonathan, raw)" !"(chdir /tmp; firefox -P firefox-raw &)"
> ""                            f.nop
> "  epiphany [Ctrl-q exits]"   !"(chdir /tmp; epiphany &)"
> ## midori infinite-loops creating new windows over & over again :(
> ##"  midori [Ctrl-shift-Q exits]"     !"(chdir /tmp; midori &)"
> ""                            f.nop
> "  netsurf [NO JAVASCRIPT]"   !"(chdir /tmp; netsurf-gtk &)"
> "  surf [NO JAVASCRIPT]"      !"(chdir /tmp; surf &)"
> "  dillo   [NO JAVASCRIPT]"   !"(chdir /tmp; dillo &)"
> }
>
> menu "button3"
> {
> "Window Ops"          f.title
> "  Refresh"           f.refresh
> "  Resize Window"     f.resize
> "forceMove Window"    f.forcemove
> "  Raise or Lower"    f.raiselower
> "  Magnify"           !"xmag -source 128x128 &"
> "  Dump >/tmp/bkis.xwd --> .pnm"      !"(xwd -out /tmp/bkis.xwd; xwdtopnm 
> /tmp/bkis.xwd >/tmp/bkis.pnm; /bin/rm -f /tmp/bkis.xwd) &"
> "Dump >/tmp/bkis.xwd --> .png"        !"(xwd -out /tmp/bkis.xwd; xwdtopnm 
> /tmp/bkis.xwd | pnmtopng >/tmp/bkis.png; /bin/rm -f /tmp/bkis.xwd) &"
> ""                    f.nop
> "Default Menu"                f.menu "default-menu"
> ""                    f.nop
> "sync; suspend      (NO LOCK)"        !"sync; sleep 1; sync; sleep 2; zzz"
> "sync; blank screen (NO LOCK)"        !"sync; xlock -nolock -mode blank 
> -delay 
> 250000 &"
> ""                    f.nop
> "sync; lock screen"           !"sync; xlock -mode blank -delay 250000 &"
> ""                    f.nop
> ## this doesn't work reliably -- sometimes it locks, sometimes it 
> doesn't :(
> ##"sync; lock screen ; suspend"       !"sync; (xlock -mode blank -delay 
> 250000 &); sleep 2; sync; sleep 3; zzz"
> ""                    f.nop
> "*** Kill Window ***" f.destroy
> ""                    f.nop
> ""                    f.nop
> "*** Kill twm ***"    f.quit
> }
>
> menu "Icon"
> {
> "Show Icon Mgr"               f.showiconmgr
> "Hide Icon Mgr"               f.hideiconmgr
> "(De)Iconify"         f.iconify
> "DeIconify"           f.deiconify
> }
>
> menu "default-menu"
> {
> "Default Menu"                f.title
> "Refresh"             f.refresh
> "Refresh Window"      f.winrefresh
> "Zoom"                  f.zoom
> "Icon actions"          f.menu "Icon"
> "twm Version"         f.version
> "Focus on Root"               f.unfocus
> "Source .twmrc"               f.twmrc
> "Cut File"            f.cutfile
> "(De)Iconify"         f.iconify
> "DeIconify"           f.deiconify
> "Move Window"         f.move
> "Resize Window"               f.resize
> "Raise Window"                f.raise
> "Lower Window"                f.lower
> "Focus on Window"     f.focus
> "Raise-n-Focus"               f.function "raise-n-focus"
> "Destroy Window"      f.destroy
> "Zoom Window"         f.zoom
> "FullZoom Window"     f.fullzoom
> "Kill twm"            f.quit
> }
> --- end ~/.twmrc ---
>
>
> Thanks for any insights anyone can offer,
> -- 
> -- "Jonathan Thornburg [remove -color to reply]" 
> <dr.j.thornb...@gmail-pink.com>
>    currently on the west coast of Canada
>    "!07/11 PDP a ni deppart m'I !pleH" -- slashdot.org page footer, 2022-10-16
>    "eHpl !'I mrtpaep dnia P PD1 /107" -- slightly more plausible message given
>                                          the PDP-11's little-endian byte order

-- 
--Z--

Reply via email to