回应模式 - No.50750950


No.50750950 - 技术宅


无标题无名氏No.50750950 只看PO

2022-07-26(二)22:59:10 ID:bRRnPeX 回应

突发奇想尝试做一个命令行版X岛客户端( ゚∀。)

只是图一乐,所以应该不会加入太多的功能而且随时可能弃坑。目前只做了查看版面的功能,如果最后做完了我就把链接发到这个串下面( ゚∀。)

无标题无名氏No.66890533

2025-08-25(一)10:44:43 ID: 2mDyShx

挖 ゚∀゚)σ

无标题无名氏No.67332327

2025-10-31(五)14:22:12 ID: 1kibn3l

>>No.64830106 好消息,我试着做了一个滚动功能,实测能用 (=゚ω゚)=

diff --git a/xdnmb/globals.py b/xdnmb/globals.py
index f7abaf1..d91f709 100644
--- a/xdnmb/globals.py
+++ b/xdnmb/globals.py
@@ -626,7 +626,13 @@ def titleControlContainer() -> Container:

titleControl = DynamicContainer(titleControlContainer)
forumGroupControl = ScrollablePane(DynamicContainer(forumGroupControlContainer))
-forumContentControl = ScrollablePane(DynamicContainer(forumContentControlContainer))
+visual_mode = False
+visible_filter = Condition(lambda: not visual_mode)
+forumContentControl = ScrollablePane(
+ DynamicContainer(forumContentControlContainer),
+ keep_cursor_visible=visible_filter,
+ keep_focused_window_visible=visible_filter,
+)

container = FloatContainer(
HSplit((
@@ -680,13 +686,38 @@ condition = Condition(lambda: not (len(container.floats) > 1 or showReplyForm))
@keyBinding.add('up', filter=condition)
@keyBinding.add('k', filter=condition)
def _(e):
+ global visual_mode
+ visual_mode = False
focus_previous(e)

@keyBinding.add('down', filter=condition)
@keyBinding.add('j', filter=condition)
def _(e):
+ global visual_mode
+ visual_mode = False
focus_next(e)

+
+@(keyBinding.add("c-j") if is_mac else keyBinding.add("escape", "j"))
+def _(e: KeyPressEvent):
+ global thread
+ if not thread or len(container.floats) > 1 or showReplyForm:
+ return
+ global visual_mode
+ visual_mode = True
+ forumContentControl.vertical_scroll += 1
+
+
+@(keyBinding.add("c-u") if is_mac else keyBinding.add("escape", "u"))
+def _(e: KeyPressEvent):
+ global thread
+ if not thread or len(container.floats) > 1 or showReplyForm:
+ return
+ global visual_mode
+ visual_mode = True
+ forumContentControl.vertical_scroll -= 1
+
+
@ (keyBinding.add('c-e') if is_mac else keyBinding.add('escape', 'e'))
def _(e):
LRU_CACHE_DB.close(),

无标题无名氏No.67332356

2025-10-31(五)14:31:19 ID: 1kibn3l

>>No.67332327 说一下思路:新增两个key binding,因为alt+k被占用了所以往上翻是alt+u,alt+j是往下翻1行,然后重点是global增加一个visual_mode,可以控制forumContentControl这个ScrollablePane的两个visable属性,翻行的时候进入visual_mode,按j/k都可以退出这个visual_mode,无缝衔接

无标题无名氏No.67336050

2025-11-01(六)00:27:23 ID: BIWtMpD

好!可以翻页感觉很不错| ω・´)

无标题无名氏No.67522499

2025-11-28(五)03:21:41 ID: xG36hIB

这也太酷辣(*゚∀゚*)

无标题无名氏No.67583445

2025-12-07(日)02:50:32 ID: eawNwNo

Σ(ŎдŎ|||)ノノ