Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by mail-b.sr.ht (Postfix) with ESMTPS id 67CDBFF14A for <~taiite/public-inbox@lists.sr.ht>; Mon, 9 Nov 2020 17:16:51 +0000 (UTC) Authentication-Results: mail-b.sr.ht; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=asXlAsdK Received: by mail-ed1-f46.google.com with SMTP id cq7so9383304edb.4 for <~taiite/public-inbox@lists.sr.ht>; Mon, 09 Nov 2020 09:16:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VzJfKd9F0b2o/+7rKuAUx8TmvR1idgjls4MuRdLXGa4=; b=asXlAsdKR7kG015ClKT8J9Br6FdajDS8F515oHvXtMQNhG3uHWE585ZYXaK+AmTiuC H1HEjkNZFdvkwLoRw05cwiDpZU5FL+9dxvRPAPZ/xr0L2f/GbBBAG86HpjwK/RXjdE1u OY8LPJi+4ECOpJrtYPcBZQLbuVTFz6GlXN2778GqojizugLdhfVqgMFMF8UQkVvsFCkB +cJpjswIw3Z1TGWL3KTQl50tjVcgDWJRtz3Ptt96oz2rRxbAVCt3SucDP+GCkQJra1Yd Yq7HWedufifYfgpwTq4dC9LY9VIB6Gk00VvFvJhAEe/StTEVuge3JI6uJmrTVl26EEd3 e1HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VzJfKd9F0b2o/+7rKuAUx8TmvR1idgjls4MuRdLXGa4=; b=q4+SQFizXjFE+4DJyrAGBwmhfmhAEZ8mCym2kVTtr8XalsW8XlpgaZt0R55B2J+bDs V+U+CXVEybPCPuZMiV2fiiu0Tx2VQIBCBsUFjn6cmJBA21IfLSCjG1QJ7wdMR2Ov8rwB pxAWndOKQ1nu6n6QzcqF04qixtaUB2qiPXBzHawo1g7Noceofu3Hlxl3grA4YJrYZ1Nn dStuQO+PzsoEJ+Npazd+hfnpyk0PQqsOrByc/M6cQPQDzB6/eAPp3B2Ol1T8N9Op4v5X 2Sx/1P//Lns/sBEH8i9hKqv1Ll0/whr23jHZ+bstop3L+rKAz4j2E9i2OxzI7eMjYWMC ofig== X-Gm-Message-State: AOAM530DghnJx34VuYPfKLBqT4OisU3cG6PbMnR5rHCPImdh+FfcwsOH TxrwUrUeSResQojze4/VOfYr4WdDlUwjZw== X-Google-Smtp-Source: ABdhPJybdUbS9jOzipQYhn5T1Hp4q/+QM3SSHT5ELKNZyRR3V2cYKuRmFk9kSODJwPGQ7SX5S0aYbw== X-Received: by 2002:aa7:c597:: with SMTP id g23mr16455329edq.184.1604942210219; Mon, 09 Nov 2020 09:16:50 -0800 (PST) Received: from localhost.localdomain (77.49.138.184.dsl.dyn.forthnet.gr. [77.49.138.184]) by smtp.gmail.com with ESMTPSA id f18sm9149381edt.32.2020.11.09.09.16.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Nov 2020 09:16:49 -0800 (PST) From: Kostis Karantias To: ~taiite/public-inbox@lists.sr.ht Cc: Kostis Karantias Subject: [PATCH senpai 4/4] Make nick list width configurable Date: Mon, 9 Nov 2020 19:16:34 +0200 Message-Id: <20201109171634.12110-4-kkarantias@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201109171634.12110-1-kkarantias@gmail.com> References: <20201109171634.12110-1-kkarantias@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --- app.go | 1 + config.go | 12 ++++++++---- doc/senpai.5.scd | 3 +++ ui/ui.go | 23 +++++++++++------------ 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/app.go b/app.go index 856043d..0b97e01 100644 --- a/app.go +++ b/app.go @@ -38,6 +38,7 @@ func NewApp(cfg Config) (app *App, err error) { app.win, err =3D ui.New(ui.Config{ NickColWidth: cfg.NickColWidth, ChanColWidth: cfg.ChanColWidth, + NickListWidth: cfg.NickListWidth, AutoComplete: func(cursorIdx int, text []rune) []ui.Completion { return app.completions(cursorIdx, text) }, diff --git a/config.go b/config.go index 2515e57..6e8fb07 100644 --- a/config.go +++ b/config.go @@ -13,10 +13,11 @@ type Config struct { User string Password *string =20 - Highlights []string - OnHighlight string `yaml:"on-highlight"` - NickColWidth int `yaml:"nick-column-width"` - ChanColWidth int `yaml:"chan-column-width"` + Highlights []string + OnHighlight string `yaml:"on-highlight"` + NickColWidth int `yaml:"nick-column-width"` + ChanColWidth int `yaml:"chan-column-width"` + NickListWidth int `yaml:"nick-list-width"` =20 Debug bool } @@ -29,6 +30,9 @@ func ParseConfig(buf []byte) (cfg Config, err error) { if cfg.ChanColWidth <=3D 0 { cfg.ChanColWidth =3D 16 } + if cfg.NickListWidth <=3D 0 { + cfg.NickListWidth =3D 16 + } return } =20 diff --git a/doc/senpai.5.scd b/doc/senpai.5.scd index 5c79060..6fe3edf 100644 --- a/doc/senpai.5.scd +++ b/doc/senpai.5.scd @@ -61,6 +61,9 @@ Some settings are required, the others are optional. *chan-column-width* The number of cell that the column for channels occupies. By default, = 16. =20 +*nick-list-width* + The number of cells that the nick list occupies. By default, 16. + # EXAMPLES =20 A minimal configuration file to connect to freenode as "Guest123456": diff --git a/ui/ui.go b/ui/ui.go index 457f41d..6aef320 100644 --- a/ui/ui.go +++ b/ui/ui.go @@ -8,12 +8,11 @@ import ( "git.sr.ht/~taiite/senpai/irc" ) =20 -const nickListColWidth =3D 15 - type Config struct { - NickColWidth int - ChanColWidth int - AutoComplete func(cursorIdx int, text []rune) []Completion + NickColWidth int + ChanColWidth int + NickListWidth int + AutoComplete func(cursorIdx int, text []rune) []Completion } =20 type UI struct { @@ -207,18 +206,18 @@ func (ui *UI) InputEnter() (content string) { return ui.e.Flush() } =20 -func (ui *UI) nickListColWidth() int { +func (ui *UI) nickListWidth() int { // TODO: also check for /query buffers when we get support if !ui.bs.IsAtHome() { - return nickListColWidth + return ui.config.NickListWidth } return 0 } =20 func (ui *UI) Resize() { w, h :=3D ui.screen.Size() - ui.e.Resize(w - 9 - ui.config.ChanColWidth - ui.config.NickColWidth - u= i.nickListColWidth()) - ui.bs.ResizeTimeline(w-ui.config.ChanColWidth - ui.nickListColWidth(), = h-2, ui.config.NickColWidth) + ui.e.Resize(w - 9 - ui.config.ChanColWidth - ui.config.NickColWidth - u= i.nickListWidth()) + ui.bs.ResizeTimeline(w-ui.config.ChanColWidth - ui.nickListWidth(), h-2= , ui.config.NickColWidth) } =20 func (ui *UI) Draw() { @@ -229,10 +228,10 @@ func (ui *UI) Draw() { =20 ui.bs.DrawTimeline(ui.screen, ui.config.ChanColWidth, 0, ui.config.Nick= ColWidth) ui.bs.DrawVerticalBufferList(ui.screen, 0, 0, ui.config.ChanColWidth, h= ) - if ui.nickListColWidth() > 0 { - ui.bs.DrawVerticalNickList(ui.screen, w-ui.nickListColWidth(), 0, ui.n= ickListColWidth(), h) + if ui.nickListWidth() > 0 { + ui.bs.DrawVerticalNickList(ui.screen, w-ui.nickListWidth(), 0, ui.nick= ListWidth(), h) } - ui.drawStatusBar(ui.config.ChanColWidth, h-2, w-ui.config.ChanColWidth-= ui.nickListColWidth()) + ui.drawStatusBar(ui.config.ChanColWidth, h-2, w-ui.config.ChanColWidth-= ui.nickListWidth()) =20 for x :=3D ui.config.ChanColWidth; x < 9+ui.config.ChanColWidth+ui.conf= ig.NickColWidth; x++ { ui.screen.SetContent(x, h-1, ' ', nil, tcell.StyleDefault) --=20 2.29.2