From 36a700aed5e9b175309aaac22da5161a08fe4ff7 Mon Sep 17 00:00:00 2001 From: gsm <406643764@qq.com> Date: Mon, 3 Jan 2022 13:34:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BC=E5=B8=83=E7=AC=AC0.9.14=E7=89=88?= =?UTF-8?q?=EF=BC=8C=E5=AF=A6=E7=8F=BE=E4=BA=86=E5=85=89=E6=A8=99=E9=80=B2?= =?UTF-8?q?=E5=85=A5=E7=AA=97=E5=8F=A3=E6=99=82=E8=81=9A=E7=84=A6=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=AF=A6=E7=8F=BE?= =?UTF-8?q?=E4=BA=86=E6=93=8D=E4=BD=9C=E4=B8=AD=E5=BF=83=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E5=AF=A6=E7=8F=BE=E4=BA=86=E4=BB=BB=E5=8B=99?= =?UTF-8?q?=E6=AC=84=E9=9A=A8=E7=8B=80=E6=85=8B=E5=8D=80=E5=9F=9F=E6=96=87?= =?UTF-8?q?=E5=AD=97=E9=95=B7=E5=BA=A6=E8=AE=8A=E5=8C=96=E8=80=8C=E8=AA=BF?= =?UTF-8?q?=E6=95=B4=E5=90=84=E5=8D=80=E5=9F=9F=E7=9A=84=E5=AF=AC=E5=BA=A6?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BF=AE=E5=BE=A9=E4=BA=86?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E6=83=85=E6=B3=81=E4=B8=8B=E7=A7=BB=E5=8B=95?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E4=B8=8D=E6=AD=A3=E7=A2=BA=E7=9A=84=E7=BC=BA?= =?UTF-8?q?=E9=99=B7=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BB=BB=E5=8B=99?= =?UTF-8?q?=E6=AC=84=E9=85=8D=E8=89=B2=EF=BC=8C=E5=AF=A6=E7=8F=BE=E4=BA=86?= =?UTF-8?q?=E6=89=93=E9=96=8B=E9=9F=8B=E8=AB=BE=E4=B9=8B=E6=88=B0=E7=9A=84?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=8D=B5=E7=B6=81=E5=AE=9A=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BA=86=E4=BA=A4=E6=8F=9B=E7=AA=97=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E7=94=A8=E5=85=89=E6=A8=99=E6=94=B9=E8=AE=8A=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E5=8D=80=E5=9F=9F=E7=9A=84=E5=BF=AB=E6=8D=B7=E9=8D=B5=E7=B6=81?= =?UTF-8?q?=E5=AE=9A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AUTHORS | 2 +- ChangeLog | 8 +- INSTALL | 2 +- Makefile | 2 +- NEWS | 12 +- README | 2 +- THANKS | 2 +- TODO | 5 +- man/Makefile | 2 +- man/zh_HK/Makefile | 2 +- man/zh_HK/man1/Makefile | 2 +- man/zh_HK/man1/gwm.1 | 267 ++++++++++++++++++++++------------------ src/Makefile | 2 +- tools/Makefile | 2 +- tools/startgwm | 2 +- 15 files changed, 180 insertions(+), 134 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9664682..d7a0f44 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,6 +1,6 @@ /* ************************************************************************* * AUTHORS:開發者列表。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/ChangeLog b/ChangeLog index f070891..724c406 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ /* ************************************************************************* * ChangeLog:面向開發者的變更日志。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 @@ -9,6 +9,12 @@ * 。 * ************************************************************************/ +2022年 01月 03日 星期一 13:33:57 CST gsm <406643764@qq.com> + * 發布第0.9.14版,實現了光標進入窗口時聚焦窗口的功能,實現了操作中心的功能,實現了任務欄隨狀態區域文字長度變化而調整各區域的寬度的功能,修復了某些情況下移動窗口不正確的缺陷,修改了任務欄配色,實現了打開韋諾之戰的快捷鍵綁定,修改了交換窗口和用光標改變窗口區域的快捷鍵綁定。 + * src/gwm.c:爲了實現光標進入窗口時聚焦窗口的功能,修改了init_wm、handle_button_press、handle_enter_notify函數,創建了focus_clicked_client、choose_client、toggle_focus_mode函數,刪除了choose_client_in_preview、key_choose_client函數;爲了實現操作中心的功能,修改了set_wm、handle_button_press、handle_expose、get_widget_type、handle_enter_notify、handle_leave_notify函數,創建了create_cmd_center、update_cmd_center_button_text、hint_enter_cmd_center_button、hint_leave_cmd_center_button、open_cmd_center函數;爲了實現任務欄隨狀態區域文字長度變化而調整各區域的寬度的功能,修改了create_taskbar、create_status_area、handle_property_notify、update_status_area_text、create_icon、set_icon_x_for_add函數,創建了create_icon_area函數;爲了修復某些情況下移動窗口不正確的缺陷,修改了create_clients、move_client函數。 + * src/gwm.h:爲了實現操作中心的功能,創建了CMD_CENTER_BUTTON_N、CMD_CENTER_BUTTON_INDEX、IS_CMD_CENTER_BUTTON宏和Cmd_center類型以及create_cmd_center、update_cmd_center_button_text、hint_enter_cmd_center_button、hint_leave_cmd_center_button、open_cmd_center函數聲明,修改了Widget_type、WM類型;爲了實現光標進入窗口時聚焦窗口的功能,創建了Area_type類型和focus_clicked_client、choose_client、toggle_focus_mode函數聲明,刪除了choose_client_in_preview、key_choose_client函數聲明,修改了Taskbar、WM類型;爲了實現任務欄隨狀態區域文字長度變化而調整各區域的寬度的功能,創建了create_icon_area函數聲明。 + * src/config.h:爲了實現光標進入窗口時聚焦窗口的功能,創建了DEFAULT_FOCUS_MODE宏,修改了KEYBINDS、BUTTONBINDS宏;爲了修改任務欄配色,創建了ICON_AREA_COLOR宏,修改了STATUS_AREA_COLOR宏;爲了實現操作中心的功能,創建了CMD_CENTER_COLOR、NORMAL_CMD_CENTER_BUTTON_COLOR、ENTERED_CMD_CENTER_BUTTON_COLOR、CMD_CENTER_BUTTON_TEXT_COLOR、CMD_CENTER_BUTTON_WIDTH、CMD_CENTER_BUTTON_HEIGHT、CMD_CENTER_COL、TASKBAR_BUTTON_TEXT、CMD_CENTER_BUTTON_TEXT宏,修改了KEYBINDS、BUTTONBINDS宏;爲了實現任務欄隨狀態區域文字長度變化而調整各區域的寬度的功能,創建了STATUS_AREA_WIDTH_MAX宏;爲了實現打開韋諾之戰的快捷鍵綁定,修改了KEYBINDS宏;爲了修改交換窗口和用光標改變窗口區域的快捷鍵綁定,修改了BUTTONBINDS宏。 + 2021年 12月 25日 星期六 20:00:28 CST gsm <406643764@qq.com> * 發布第0.9.13版,修復了新打開的窗口不在默認區域頂部的缺陷,修復了全屏模式時仍然顯示任務欄的缺陷,實現了鼠標聚焦縮微窗口的功能,實現了增刪主次區域窗口時主次區域窗口互補的功能,修復了快捷鍵不能移動窗口的缺陷,修復了某些情況下聚焦不正確的缺陷,修復了無法調整主區域最大可容納窗口數的缺陷,修復了堆疊模式下不能縮微窗口的缺陷,實現了把窗口移動到屏幕邊界時改變窗口所屬區域的功能,支持與懸浮、縮微區域相關的窗口移動操作,實現了交換窗口位置的功能,修復了某些情況下提升根窗口的缺陷,修復了切換進程啓停狀態不正確的缺陷,實現了用快捷鍵打開手冊頁的功能,增強了代碼可讀性。 * src/gwm.c:爲了修復新打開的窗口不在默認區域頂部的缺陷,修改了add_client函數;爲了修復全屏模式時仍然顯示任務欄的缺陷,修改了update_layout函數;爲了實現鼠標聚焦縮微窗口的功能,修改了handle_button_press函數;爲了實現增刪主次區域窗口時主次區域窗口互補的功能,修改了add_client、del_client函數,創建了fix_area_type函數;爲了修復快捷鍵不能移動窗口的缺陷,修改了key_move_resize_client、pointer_resize_client函數,創建了is_valid_move_resize函數,刪除了is_valid_resize函數;爲了修復某些情況下聚焦不正確的缺陷,修改了update_focus_client_pointer、get_next_nonicon_client、get_prev_nonicon_client函數;爲了修復無法調整主區域最大可容納窗口數的缺陷,修改了adjust_n_main_max函數;爲了修復堆疊模式下不能縮微窗口的缺陷,修改了change_area函數;爲了實現把窗口移動到屏幕邊界時改變窗口所屬區域的功能,修改了pointer_change_area函數;爲了支持與懸浮、縮微區域相關的窗口移動操作,以及實現主次區域窗口互補的功能,修改了move_client、iconify、create_icon、deiconify、deiconify_all_clients函數;爲了實現交換窗口位置的功能,創建了pointer_swap_clients、swap_clients函數;爲了修復某些情況下提升根窗口的缺陷,修改了raise_client函數;其餘修改均爲了增強代碼可讀性。 diff --git a/INSTALL b/INSTALL index 603edc8..96c2c81 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ /* ************************************************************************* * INSTALL:安裝和卸載指南。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/Makefile b/Makefile index b51b655..84bda9d 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:軟件包根目錄下的總控Makefile文件。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/NEWS b/NEWS index f125402..2d4b1bc 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ /* ************************************************************************* * NEWS:面向用戶的開發新聞。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 @@ -9,6 +9,15 @@ * 。 * ************************************************************************/ +第0.9.14版: + * 實現了光標進入窗口時聚焦窗口的功能; + * 實現了操作中心的功能; + * 實現了任務欄隨狀態區域文字長度變化而調整各區域的寬度的功能; + * 修復了某些情況下移動窗口不正確的缺陷; + * 修改了任務欄配色; + * 實現了打開韋諾之戰的快捷鍵綁定; + * 修改了交換窗口和用光標改變窗口區域的快捷鍵綁定。 + 第0.9.13版: * 修復了新打開的窗口不在默認區域頂部的缺陷; * 修復了全屏模式時仍然顯示任務欄的缺陷; @@ -25,7 +34,6 @@ * 修復了切換進程啓停狀態不正確的缺陷; * 實現了用快捷鍵打開手冊頁的功能; - 第0.9.12版: * 實現了任意窗口可以變換到任意區域的功能; * 僅使用area_type表示窗口的所屬區域; diff --git a/README b/README index 833be9b..7e5bf24 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ /* ************************************************************************* * README:說明文件。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/THANKS b/THANKS index ec6cac8..fc4165e 100644 --- a/THANKS +++ b/THANKS @@ -1,6 +1,6 @@ /* ************************************************************************* * THANKS:鳴謝。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/TODO b/TODO index 5095f29..01e1ff2 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ /* ************************************************************************* * TODO:開發計劃。 - * 版權 (C) 2021 gsm <406643764@qq.com> + * 版權 (C) 2020-2022 gsm <406643764@qq.com> * 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 * GNU通用公共許可證重新發布、修改本程序。 * 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 @@ -9,6 +9,9 @@ * 。 * ************************************************************************/ +第0.9.14版的下一步的開發計劃: + * 實現虛擬桌面功能。 + 第0.9.13版的下一步的開發計劃: * 實現虛擬桌面功能。 diff --git a/man/Makefile b/man/Makefile index 7f3a5f1..12c4c09 100644 --- a/man/Makefile +++ b/man/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:調用當前子目錄下的Makefile文件。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/man/zh_HK/Makefile b/man/zh_HK/Makefile index c8ad1ae..730d858 100644 --- a/man/zh_HK/Makefile +++ b/man/zh_HK/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:調用當前子目錄下的Makefile文件。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/man/zh_HK/man1/Makefile b/man/zh_HK/man1/Makefile index 1e013bb..dd51442 100644 --- a/man/zh_HK/man1/Makefile +++ b/man/zh_HK/man1/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:執行當前目錄下與man1手冊頁相關的任務。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/man/zh_HK/man1/gwm.1 b/man/zh_HK/man1/gwm.1 index 54bae3f..5cbfdfe 100644 --- a/man/zh_HK/man1/gwm.1 +++ b/man/zh_HK/man1/gwm.1 @@ -1,6 +1,6 @@ ./" ************************************************************************* ./" gwm.1:gwm(1)手冊頁。 -./" 版權 (C) 2021 gsm <406643764@qq.com> +./" 版權 (C) 2020-2022 gsm <406643764@qq.com> ./" 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 ./" GNU通用公共許可證重新發布、修改本程序。 ./" 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 @@ -8,7 +8,7 @@ ./" 你應該已經收到一份附隨此程序的GNU通用公共許可證副本。否則,請參閱 ./" 。 ./" ************************************************************************/ -.TH gwm 1 2021年12月 "gwm 0.9.13" gwm +.TH gwm 1 2022年1月 "gwm 0.9.14" gwm . .SH 名稱 gwm \- gwm(gsm's window manager),是一個用C語言編寫的基於X11的窗口管理器。 @@ -22,9 +22,9 @@ gwm(gsm's window manager),是一個用C語言編寫的基於X11的窗口 .PP X窗口系統採用樹來作爲數據結構;採用棧來作爲存儲結構。子窗口在屏幕空间上总是位于父窗口之上,而兄弟窗口在屏幕空间上位于同一层次;新打开的窗口总在栈顶,其他窗口在栈的位置不变。这种窗口次序叫窗口堆叠次序,简称窗口叠次序。叠次序是可以调整的。 .PP -gwm從邏輯上把屏幕空間分成兩層。任務欄以上爲上層,用於放置懸浮窗口;任務欄及其以下爲下層,用於放置其他窗口。這僅僅是邏輯上的分層,目的是爲了實現視覺上的分層。實際上,gwm通過調整窗口的疊次序來實現分層效果,並非通過重設父窗口來進行分層。上層的窗口總是會擋着下層的窗口,即懸浮窗口會在遮擋非懸浮窗口。對於下層屏幕空間,gwm支持全屏、平鋪、堆疊、預覽四種窗口布局模式,這些模式可以在運行時切換。全屏模式不顯示任務欄,其他模式均顯示任務欄。任務欄位於屏幕最下方,由左邊的按鈕、中間的縮微欄、右邊的狀態欄組成。按鈕用於實現特定的功能,各按鈕的文字從左至右依次爲:全、概、堆、平、■。縮微欄用於顯示縮微窗口,點擊縮微窗口則去縮微窗口。狀態欄顯示根窗口名字。 +gwm從邏輯上把屏幕空間分成三層。最下層是根窗口,是所有其他窗口的前輩窗口;任務欄以上爲上層,用於放置懸浮窗口;任務欄與根窗口之間爲中層,用於放置其他窗口。這僅僅是邏輯上的分層,目的是爲了實現視覺上的分層。實際上,gwm通過調整窗口的疊次序來實現分層效果,並非通過重設父窗口來進行分層。上層的窗口總是會擋着中、下層的窗口,即懸浮窗口會在遮擋非懸浮窗口。對於中層屏幕空間,gwm支持全屏、平鋪、堆疊、預覽四種窗口布局模式,這些模式可以在運行時切換。全屏模式不顯示任務欄,其他模式均顯示任務欄。任務欄位於屏幕最下方,由左邊的按鈕、中間的縮微欄、右邊的狀態欄組成。按鈕用於實現特定的功能,各按鈕的文字從左至右依次爲:全、概、堆、平、■。縮微欄用於顯示縮微窗口,點擊縮微窗口則去縮微窗口。狀態欄顯示根窗口名字。 .PP -以下所說的窗口,除非特別說明,否則均指受本窗口管理器所管理的窗口。以下所說的屏幕空間,除非特別說明,否則均指下層的屏幕空間。 +以下所說的窗口,除非特別說明,否則均指受本窗口管理器所管理的窗口。以下所說的屏幕空間,除非特別說明,否則均指中層的屏幕空間。 .PP 全屏模式是當前窗口獨佔整個屏幕空間的布局模式。 .PP @@ -61,15 +61,20 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 依次嘗試用以下終端模擬器打開gwm手冊頁直到用其中之一打開或試完爲止:lxterminal、xfce4-terminal、xterm。 . .TP -.B Mod1+Mod4+t -依次嘗試打開以下模擬終端直到打開其中之一或試完爲止:lxterminal、xfce4-terminal、gnome-terminal、konsole5、xterm。 +.B Mod1+Mod4+e +切換窗口聚焦模式。 . +.TP .B Mod1+Mod4+f 打開默認的文件瀏覽器。 . .TP -.B Mod1+Mod4+w -打開默認的網絡瀏覽器。 +.B Mod1+Mod4+g +打開韋諾之戰。 +. +.TP +.B Mod1+Mod4+o +打開操作中心。 . .TP .B Mod1+Mod4+q @@ -80,6 +85,14 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 打開星際譯王。 . .TP +.B Mod1+Mod4+t +依次嘗試打開以下模擬終端直到打開其中之一或試完爲止:lxterminal、xfce4-terminal、gnome-terminal、konsole5、xterm。 +. +.TP +.B Mod1+Mod4+w +打開默認的網絡瀏覽器。 +. +.TP .B Mod1+Mod4+F1 運行以下命令:mplayer -shuffle /keep/keep/music/*。 . @@ -92,6 +105,10 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 終止以上mplayer命令。 . .TP +.B Mod4+Control+d +打開dmenu_run。可用它來運行其他程序。 +. +.TP .B Mod4+Control+F1 用amixer來減小5%的音量。 . @@ -108,120 +125,68 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 用amixer來在當前音量與靜音之間切換。 . .TP -.B Mod4+Control+d -打開dmenu_run。可用它來運行其他程序。 -. -.TP .B Mod4+Control+l 注銷gwm會話,即:pkill -9 startgwm。 . .TP -.B Mod4+Control+r -重啓操作系統。 -. -.TP .B Mod4+Control+p 關機。 . .TP -.B Mod4+Up -向上移動當前窗口,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+Down -向下移動當前窗口,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+Left -向左移動當前窗口,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+Right -向右移動當前窗口,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+[ -向上移動當前窗口上邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+] -向下移動當前窗口上邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+; -向上移動當前窗口下邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+' -向下移動當前窗口下邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+9 -向左移動當前窗口左邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+0 -向右移動當前窗口左邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+- -向左移動當前窗口右邊界,並將其切換爲懸浮窗口。 -. -.TP -.B Mod4+= -向右移動當前窗口右邊界,並將其切換爲懸浮窗口。 +.B Mod4+Control+r +重啓操作系統。 . .TP .B Mod4+Delete 退出gwm。 . .TP -.B Mod4+c -關閉當前窗口。 +.B Mod4+Up +在平鋪或堆疊模式下,向上移動當前窗口,並將其切換爲懸浮窗口。 . .TP -.B Mod4+Shift+c -關閉所有窗口。 +.B Mod4+Down +在平鋪或堆疊模式下,向下移動當前窗口,並將其切換爲懸浮窗口。 . .TP -.B Mod4+Tab -切換到下一個窗口,即疊次序更高的窗口。 +.B Mod4+Left +在平鋪或堆疊模式下,向左移動當前窗口,並將其切換爲懸浮窗口。 . .TP -.B Mod4+Shift+Tab -切換到上一個窗口,即疊次序更低的窗口。 +.B Mod4+Right +在平鋪或堆疊模式下,向右移動當前窗口,並將其切換爲懸浮窗口。 . .TP -.B Mod4+f -切換到全屏模式。 +.B Mod4+[ +在平鋪或堆疊模式下,向上移動當前窗口上邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+p -切換到預覽模式。 +.B Mod4+] +在平鋪或堆疊模式下,向下移動當前窗口上邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+s -切換到堆疊模式。 +.B Mod4+; +在平鋪或堆疊模式下,向上移動當前窗口下邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+t -切換到平鋪模式。 +.B Mod4+' +在平鋪或堆疊模式下,向下移動當前窗口下邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+i -增加主區域可容納窗口的數量。 +.B Mod4+9 +在平鋪或堆疊模式下,向左移動當前窗口左邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+Shift+i -減少主區域可容納窗口的數量。 +.B Mod4+0 +在平鋪或堆疊模式下,向右移動當前窗口左邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+m -如果存在次區域,則增加主區域比例,並相應地減小次區域比例。 +.B Mod4+- +在平鋪或堆疊模式下,向左移動當前窗口右邊界,並將其切換爲懸浮窗口。 . .TP -.B Mod4+Shift+m -如果存在次區域,則減少主區域比例,並相應地增加次區域比例。 +.B Mod4+= +在平鋪或堆疊模式下,向右移動當前窗口右邊界,並將其切換爲懸浮窗口。 . .TP .B Mod4+F1 @@ -265,7 +230,23 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 . .TP .B Mod4+Return -若當前爲預覽模式,則選中的窗口變成當前窗口並切換至上一布局模式。若上一布局模式爲平鋪模式且選中的窗口是縮微窗口,則還會使該窗口去縮微化。 +若當前窗口是縮微窗口,則去縮微化該窗口;若當前爲預覽模式,則還會切換至上一布局模式。 +. +.TP +.B Mod4+Tab +切換到下一個窗口,即疊次序更高的窗口。 +. +.TP +.B Mod4+Shift+Tab +切換到上一個窗口,即疊次序更低的窗口。 +. +.TP +.B Mod4+c +關閉當前窗口。 +. +.TP +.B Mod4+Shift+c +關閉所有窗口。 . .TP .B Mod4+d @@ -275,7 +256,55 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 .B Mod4+Shift+d 去縮微化所有窗口。 . +.TP +.B Mod4+e +切換聚焦模式。有兩種聚焦模式,一種是光標進入非縮微窗口時聚焦該窗口,另一種是定位器按鈕點擊窗口時聚焦該窗口。 +. +.TP +.B Mod4+f +切換到全屏模式。 +. +.TP +.B Mod4+p +切換到預覽模式。 +. +.TP +.B Mod4+s +切換到堆疊模式。 +. +.TP +.B Mod4+t +切換到平鋪模式。 +. +.TP +.B Mod4+i +在平鋪模式下,增加主區域可容納窗口的數量。 +. +.TP +.B Mod4+Shift+i +在平鋪模式下,減少主區域可容納窗口的數量。 +. +.TP +.B Mod4+m +在平鋪模式下,如果存在次區域,則增大主區域比例,並相應地減小次區域比例。 +. +.TP +.B Mod4+Shift+m +在平鋪模式下,如果存在次區域,則減小主區域比例,並相應地增大次區域比例。 +. +.TP +.B Mod4+x +在平鋪模式下,如果存在固定區域,則增加固定區域比例,並相應地減小主區域比例。 +. +.TP +.B Mod4+Shift+x +在平鋪模式下,如果存在固定區域,則減小固定區域比例,並相應地增加主區域比例。 +. .SS 定位器命令 +. +.TP +在下述定位器按鈕按下時,將會聚焦對應章節提及並點擊的窗口;當下述定位器按鈕釋放時,將會關閉已經打開的操作中心。 +. .TP .B 定位器按鈕1 若單擊定位器按鈕1(通常是鼠標左鍵),則根據其點擊的位置產生以下命令: @@ -284,54 +313,54 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 單擊任務欄“堆”按鈕:切換到堆疊模式; 單擊任務欄“平”按鈕:切換到平鋪模式; 單擊任務欄“■”按鈕:顯示桌面,即縮微化所有窗口; + 單擊任務欄“^”按鈕:打開操作中心; 單擊窗口“主”按鈕:把該窗口切換至主區域; 單擊窗口“次”按鈕:把該窗口切換至次區域; 單擊窗口“固”按鈕:把該窗口切換至固定區域; 單擊窗口“浮”按鈕:把該窗口切換至懸浮區域; - 單擊窗口“-”按鈕:縮微該窗口; + 單擊窗口“-”按鈕:縮微該窗口,並聚焦上一窗口; 單擊窗口“□”按鈕:最大化該窗口,並把該窗口切換至懸浮區域; - 單擊窗口“×”按鈕:關閉該窗口; - 點擊窗口其他位置:切換到該窗口;若當前爲預覽模式,則選中的窗口變成當前窗口並切換至上一布局模式,若上一布局模式爲平鋪模式且選中的窗口是縮微窗口,則還會使該窗口去縮微化。 - 單擊任務欄的縮微圖標:去縮微化窗口。 - -. -若在窗口標題區域按着定位器按鈕1不放並移動定位器,則該窗口與釋放按鈕1時光標所在的窗口交換位置。 -.br + 單擊窗口“×”按鈕:關閉該窗口,並聚焦上一窗口; + 點擊標題區域和邊框:聚焦該窗口; + 點擊窗口的其他位置:若當前爲預覽模式,則切換至上一布局模式,且若該窗口是縮微窗口,則去縮微化該窗口; + 單擊任務欄的縮微圖標:去縮微化該窗口; + 單擊操作中心的“幫助”按鈕:依次嘗試用以下終端模擬器打開gwm手冊頁直到用其中之一打開或試完爲止:lxterminal、xfce4-terminal、xterm; + 單擊操作中心的“文件”按鈕:打開默認的文件瀏覽器; + 單擊操作中心的“終端模擬器”按鈕:依次嘗試打開以下模擬終端直到打開其中之一或試完爲止:lxterminal、xfce4-terminal、gnome-terminal、konsole5、xterm; + 單擊操作中心的“網絡瀏覽器”按鈕:打開默認的網絡瀏覽器; + 單擊操作中心的“減小音量”按鈕:用amixer來減小5%的音量; + 單擊操作中心的“增大音量”按鈕:用amixer來增加5%的音量; + 單擊操作中心的“最大音量”按鈕:用amixer來把音量設置成最大; + 單擊操作中心的“靜音切換”按鈕:用amixer來在當前音量與靜音之間切換; + 單擊操作中心的“暫主區開窗”按鈕:設置下一次打開窗口時,若在平鋪模式下,則把該窗口移動至主區域的頂部; + 單擊操作中心的“暫次區開窗”按鈕:設置下一次打開窗口時,若在平鋪模式下,則把該窗口移動至次區域的頂部; + 單擊操作中心的“暫固定區開窗”按鈕:設置下一次打開窗口時,若在平鋪模式下,則把該窗口移動至固定區域的頂部; + 單擊操作中心的“暫懸浮區開窗”按鈕:設置下一次打開窗口時,若在平鋪模式下,則把該窗口移動至懸浮區域的頂部; + 單擊操作中心的“暫縮微區開窗”按鈕:設置下一次打開窗口時,若在平鋪模式下,則把該窗口移動至縮微區域的頂部; + 單擊操作中心的“增大主區容量”按鈕:在平鋪模式下,增加主區域可容納窗口的數量; + 單擊操作中心的“減少主區容量”按鈕:在平鋪模式下,減少主區域可容納窗口的數量; + 單擊操作中心的“切換聚焦模式”按鈕:切換聚焦模式; + 單擊操作中心的“退出gwm”按鈕:退出gwm; + 單擊操作中心的“注銷”按鈕:注銷; + 單擊操作中心的“重啓”按鈕:重啓操作系統; + 單擊操作中心的“關機”按鈕:關機; + 單擊操作中心的“運行”按鈕:打開dmenu_run。 +在平鋪或堆疊模式下,若在窗口標題區域按着定位器按鈕1不放並移動定位器,則移動該窗口。若在平鋪模式下進行此操作,則還會把該窗口變成懸浮窗口。 若在窗口邊框按着定位器按鈕1不放並移動定位器,則調整窗口尺寸。 -.br -若在主、次區域之間按着定位器按鈕1不放並移動定位器,則調整主、次區域的比例。 +在平鋪模式下,若在主、次區域之間按着定位器按鈕1不放並移動定位器,則調整主、次區域的比例。 . .TP .B 定位器按鈕2 若單擊定位器按鈕2(通常是鼠標中鍵),則根據其點擊的位置產生以下命令: 單擊任務欄的“■”按鈕:關閉所有窗口。 單擊任務欄的縮微圖標:關閉該窗口。 - 若在窗口標題區域按着定位器按鈕2不放並移動定位器,則移動該窗口。 +在平鋪模式下,若在窗口標題區域按着定位器按鈕2不放並移動定位器,則移動該窗口至釋放按鈕3時光標所在的窗口位置。 . .TP .B 定位器按鈕3 若單擊定位器按鈕3(通常是鼠標右鍵),則根據其點擊的位置產生以下命令: - 單擊窗口“主”按鈕:下次打開的窗口置於主區域; - 單擊窗口“次”按鈕:下次打開的窗口次區域; - 單擊窗口“固”按鈕:下次打開的窗口固定區域; - 單擊窗口“浮”按鈕:下次打開的窗口懸浮狀態; - 單擊窗口“-”按鈕:下次打開的窗口縮微化; - 單擊窗口任意位置(即包含以上按鈕):切換到該窗口。 單擊任務欄“■”按鈕:去縮微化所有窗口; -.br -. -若在窗口標題區域按着定位器按鈕3不放並移動定位器,則移動該窗口至釋放按鈕3時光標所在的窗口位置。 -若按着定位器按鈕3且不移動定位器,則僅僅切換到窗口。 -. -.TP -.B 定位器按鈕4 -若單擊定位器按鈕4(通常是鼠標滑輪向上滾動),則根據其點擊的位置產生以下命令: - 單擊任務欄“平”按鈕:主區域最大窗口數量減一; -. -.TP -.B 定位器按鈕5 -若單擊定位器按鈕5(通常是鼠標滑輪向下滾動),則根據其點擊的位置產生以下命令: - 單擊任務欄“平”按鈕:主區域最大窗口數量加一; +在平鋪模式下,若在窗口標題區域按着定位器按鈕3不放並移動定位器,則該窗口與釋放按鈕1時光標所在的窗口交換位置。 . .SS 配置 . @@ -350,6 +379,6 @@ gwm啓動後會立即嘗試執行~/.config/gwm/autostart.sh。 . .SH 版權 . -版權 \(co 2021 gsm <406643764@qq.com>。 +版權 \(co 2020-2022 gsm <406643764@qq.com>。 .br 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的GNU通用公共許可證重新發布、修改本程序。 diff --git a/src/Makefile b/src/Makefile index 4d3167d..f27f1a9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:執行與源代碼相關的任務。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/tools/Makefile b/tools/Makefile index c2b9560..718ad5d 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,6 +1,6 @@ # ************************************************************************* # Makefile:執行與輔助工具相關的任務。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特 diff --git a/tools/startgwm b/tools/startgwm index 7bb776f..a1b9499 100755 --- a/tools/startgwm +++ b/tools/startgwm @@ -2,7 +2,7 @@ # ************************************************************************* # startgwm:gwm會話。 -# 版權 (C) 2021 gsm <406643764@qq.com> +# 版權 (C) 2020-2022 gsm <406643764@qq.com> # 本程序為自由軟件:你可以依據自由軟件基金會所發布的第三版或更高版本的 # GNU通用公共許可證重新發布、修改本程序。 # 雖然基于使用目的而發布本程序,但不負任何擔保責任,亦不包含適銷性或特