config: Don't hardcode the fakecursor under Windows console any longer (#3959)

* config: Don't hardcode the `fakecursor` under Windows console any longer

We just set the global default and allow the user to override it.

* help: Add a concrete note for the `fakecursor` option in the Windows Console
This commit is contained in:
Jöran Karl
2026-01-10 20:13:29 +01:00
committed by GitHub
parent 6a62575bcf
commit 9a6c827880
4 changed files with 13 additions and 10 deletions

View File

@@ -115,7 +115,7 @@ var DefaultGlobalOnlySettings = map[string]any{
"colorscheme": "default", "colorscheme": "default",
"divchars": "|-", "divchars": "|-",
"divreverse": true, "divreverse": true,
"fakecursor": false, "fakecursor": defaultFakeCursor(),
"helpsplit": "hsplit", "helpsplit": "hsplit",
"infobar": true, "infobar": true,
"keymenu": false, "keymenu": false,
@@ -441,6 +441,15 @@ func defaultFileFormat() string {
return "unix" return "unix"
} }
func defaultFakeCursor() bool {
_, wt := os.LookupEnv("WT_SESSION")
if runtime.GOOS == "windows" && !wt {
// enabled for windows consoles where the cursor is slow
return true
}
return false
}
func GetInfoBarOffset() int { func GetInfoBarOffset() int {
offset := 0 offset := 0
if GetGlobalOption("infobar").(bool) { if GetGlobalOption("infobar").(bool) {

View File

@@ -8,7 +8,6 @@ import (
"github.com/micro-editor/tcell/v2" "github.com/micro-editor/tcell/v2"
"github.com/zyedidia/micro/v2/internal/config" "github.com/zyedidia/micro/v2/internal/config"
"github.com/zyedidia/micro/v2/internal/util"
) )
// Screen is the tcell screen we use to draw to the terminal // Screen is the tcell screen we use to draw to the terminal
@@ -90,7 +89,7 @@ func ShowFakeCursor(x, y int) {
} }
func UseFake() bool { func UseFake() bool {
return util.FakeCursor || config.GetGlobalOption("fakecursor").(bool) return config.GetGlobalOption("fakecursor").(bool)
} }
// ShowFakeCursorMulti is the same as ShowFakeCursor except it does not // ShowFakeCursorMulti is the same as ShowFakeCursor except it does not

View File

@@ -38,9 +38,6 @@ var (
CompileDate = "Unknown" CompileDate = "Unknown"
// Debug logging // Debug logging
Debug = "OFF" Debug = "OFF"
// FakeCursor is used to disable the terminal cursor and have micro
// draw its own (enabled for windows consoles where the cursor is slow)
FakeCursor = false
// Stdout is a buffer that is written to stdout when micro closes // Stdout is a buffer that is written to stdout when micro closes
Stdout *bytes.Buffer Stdout *bytes.Buffer
@@ -93,10 +90,6 @@ func init() {
fmt.Println("Invalid version: ", Version, err) fmt.Println("Invalid version: ", Version, err)
} }
_, wt := os.LookupEnv("WT_SESSION")
if runtime.GOOS == "windows" && !wt {
FakeCursor = true
}
Stdout = new(bytes.Buffer) Stdout = new(bytes.Buffer)
} }

View File

@@ -133,6 +133,8 @@ Here are the available options:
* `fakecursor`: forces micro to render the cursor using terminal colors rather * `fakecursor`: forces micro to render the cursor using terminal colors rather
than the actual terminal cursor. This is useful when the terminal's cursor is than the actual terminal cursor. This is useful when the terminal's cursor is
slow or otherwise unavailable/undesirable to use. slow or otherwise unavailable/undesirable to use.
Note: This option defaults to `true` in case `micro` is used in the legacy
Windows Console.
default value: `false` default value: `false`