diff --git a/config/files/GRML_FULL/etc/skel/.config/xdg-desktop-portal/fluxbox-portals.conf b/config/files/GRML_FULL/etc/skel/.config/xdg-desktop-portal/fluxbox-portals.conf new file mode 100644 index 000000000..e7ae6e31b --- /dev/null +++ b/config/files/GRML_FULL/etc/skel/.config/xdg-desktop-portal/fluxbox-portals.conf @@ -0,0 +1,2 @@ +[preferred] +default=gtk; diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/fluxkeys b/config/files/GRML_FULL/etc/skel/.fluxbox/fluxkeys new file mode 100644 index 000000000..cef64d5ed --- /dev/null +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/fluxkeys @@ -0,0 +1,188 @@ +# Filename: .fluxbox/fluxkeys +# Purpose: configuration file for keybindings for fluxbox +# Authors: grml-team (grml.org), (c) Michael Prokop +# Bug-Reports: see http://grml.org/bugs/ +# License: This file is licensed under the GPL v2. +################################################################################ + +# Enable resizing - taken from Debian's fluxbox +# package (patch titled restore-old-keybindings.patch), +# without this config the left mouse button does not work +# as expected, see #592904 in Debian's BTS for details +OnLeftGrip Move1 :StartResizing bottomleft +OnRightGrip Move1 :StartResizing bottomright +OnTitlebar Move1 :StartMoving + +# Dynamically switch between two key mappings +# It is advisable to map this in both files to the same key combo. +Control Mod1 Shift g :Exec ~/.fluxbox/toggle_keys.sh + +# Mod1 = Alt key +# Mod4 = Logo key +# Control = Ctrl Key +# plus = +,*,~ key (german keyboard) +# numbersign = #,' key (german keyboard) + +# click on the desktop to get menus +OnDesktop Mouse1 :HideMenus +OnDesktop Mouse2 :WorkspaceMenu +OnDesktop Mouse3 :RootMenu + +# scroll on the desktop to change workspaces +OnDesktop Mouse4 :PrevWorkspace +OnDesktop Mouse5 :NextWorkspace + +# scoll on the Toolbar with Alt to cycle windows +OnToolbar Mod1 Mouse4 :PrevWindow (workspace=[current]) (Minimized=no) +OnToolbar Mod1 Mouse5 :NextWindow (workspace=[current]) (Minimized=no) + +# alt + left/right click to move/resize a window +OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving} +OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner} + +#Tabbing with Mouse +OnTitlebar Mouse1 :MacroCmd {Focus} {Raise} {ActivateTab} +OnTitlebar Move1 :StartMoving +OnTitleBar Mouse4 :PrevTab +OnTitleBar Mouse5 :NextTab + +# middle click a window's titlebar and drag to attach windows +OnTitlebar Mouse2 :StartTabbing + +# double click on the titlebar to shade +OnTitlebar Double Mouse1 :Shade + +# right click on the titlebar for a menu of options +OnTitlebar Mouse3 :WindowMenu + +# Alt-Shift-Tab +Mod1 Tab :NextWindow {groups} (workspace=[current]) (minimized=no) +Mod1 Shift Tab :PrevWindow {groups} (workspace=[current]) (minimized=no) +# get selection of open windows +Mod4 Shift Tab :Clientmenu (workspace=[current]) + +# Switch workspaces +Control Right :NextWorkspace +Mod1 Shift Right :NextWorkspace +Mod4 Right :NextWorkspace + +Control Left :PrevWorkspace +Mod1 Shift Left :PrevWorkspace +Mod4 Left :PrevWorkspace + +Mod1 q :PrevWindow +Mod1 w :NextWindow +Mod1 a :PrevTab +Mod1 s :NextTab + +# Show/Hide Desktop +Mod4 m :ToggleCmd {ShowDesktop} {DeIconify all originquiet} + +# send the current window and follow it to previous/next workspace +Control Mod4 Left :TakeToPrevWorkspace +Control Mod4 Right :TakeToNextWorkspace + +# Throw it all around +Control Mod1 Prior :SendToNextHead -1 +Control Mod1 Next :SendToNextHead 1 +Control Mod1 Up :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Up} +Control Mod1 Left :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Left} +Control Mod1 Right :MacroCmd {ResizeTo 50% 100%} {MoveTo 00 00 Right} +Control Mod1 Down :MacroCmd {ResizeTo 100% 50%} {MoveTo 00 00 Bottom} +# Resize +Control Mod4 Shift Left :Resize -5% 0 +Control Mod4 Shift Right :Resize 5% 0 +Control Mod4 Shift Up :Resize 0 -5% +Control Mod4 Shift Down :Resize 0 5% +# Center Window +Mod4 Home :MoveTo 0 0 Center + +# Arange Windows / Tiling +Mod4 a :ArrangeWindows +Mod4 v :ArrangeWindowsVertical +Mod4 h :ArrangeWindowsHorizontal +Mod4 x :ArrangeWindowsHorizontal (Class=[current]) +Mod4 z :ArrangeWindowsVertical (Class=[current]) + +# Note on Workspaces. As we only configure 4 by default we won't have to assign +# all these extra keys that are not usable. + +# change to a specific workspace +Control F1 :Workspace 1 +Control F2 :Workspace 2 +Control F3 :Workspace 3 +Control F4 :Workspace 4 +# Control F5 :Workspace 5 +# Control F6 :Workspace 6 +# Control F7 :Workspace 7 +# Control F8 :Workspace 8 +# Control F9 :Workspace 9 +# Control F10 :Workspace 10 +# Control F11 :Workspace 11 +# Control F12 :Workspace 12 + +# change to a specific workspace (for laptop users?) +Mod4 1 :Workspace 1 +Mod4 2 :Workspace 2 +Mod4 3 :Workspace 3 +Mod4 4 :Workspace 4 +# Mod4 5 :Workspace 5 +# Mod4 6 :Workspace 6 +# Mod4 7 :Workspace 7 +# Mod4 8 :Workspace 8 +# Mod4 9 :Workspace 9 +# Mod4 0 :Workspace 10 + +# send the current window to a specific workspace +Mod4 F1 :SendToWorkspace 1 +Mod4 F2 :SendToWorkspace 2 +Mod4 F3 :SendToWorkspace 3 +Mod4 F4 :SendToWorkspace 4 +# Mod4 F5 :SendToWorkspace 5 +# Mod4 F6 :SendToWorkspace 6 +# Mod4 F7 :SendToWorkspace 7 +# Mod4 F8 :SendToWorkspace 8 +# Mod4 F9 :SendToWorkspace 9 +# Mod4 F10 :SendToWorkspace 10 +# Mod4 F11 :SendToWorkspace 11 +# Mod4 F12 :SendToWorkspace 12 + +# send the current window and change to a specific workspace +Control Mod4 F1 :TakeToWorkspace 1 +Control Mod4 F2 :TakeToWorkspace 2 +Control Mod4 F3 :TakeToWorkspace 3 +Control Mod4 F4 :TakeToWorkspace 4 +# Control Mod4 F5 :TakeToWorkspace 5 +# Control Mod4 F6 :TakeToWorkspace 6 +# Control Mod4 F7 :TakeToWorkspace 7 +# Control Mod4 F8 :TakeToWorkspace 8 +# Control Mod4 F9 :TakeToWorkspace 9 +# Control Mod4 F10 :TakeToWorkspace 10 +# Control Mod4 F11 :TakeToWorkspace 11 +# Control Mod4 F12 :TakeToWorkspace 12 + +Mod1 plus :MaximizeWindow +Mod1 numbersign :Minimize +Mod1 space :RootMenu +Control Mod1 a :ArrangeWindows + +# keymappings for programs +Control Mod1 l :ExecCommand xlock +Control Mod1 f :ExecCommand x-www-browser + +# screenshot +Control Shift s :ExecCommand import -window root `date +shot-%Y-%m-%d-%H%M%S.jpg` + +Mod1 c :ExecCommand fbrun +Mod1 F2 :ExecCommand fbrun +Mod4 space :ExecCommand fbrun + +# terminals: +Mod1 F1 :ExecCommand x-terminal-emulator +Mod1 Escape :ExecCommand x-terminal-emulator +Mod1 t :ExecCommand x-terminal-emulator +Control Mod1 t :ExecCommand x-terminal-emulator +Control Mod1 i :ExecCommand LANG=en_US.iso885915 x-terminal-emulator +Mod4 Return :ExecCommand x-terminal-emulator + +## END OF FILE ################################################################# diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/icons/fluxbox.xpm b/config/files/GRML_FULL/etc/skel/.fluxbox/icons/fluxbox.xpm new file mode 100644 index 000000000..a535abf9c --- /dev/null +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/icons/fluxbox.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *fluxbox[] = { +/* columns rows colors chars-per-pixel */ +"16 16 74 1 ", +" c None", +". c #352C27", +"X c #3E3A30", +"o c #4A412E", +"O c #454132", +"+ c #474739", +"@ c #494839", +"# c #5C5E3F", +"$ c #505A42", +"% c #545C49", +"& c #5C6544", +"* c #5C6B4B", +"= c #5E6C4B", +"- c #5A6650", +"; c #5C6650", +": c #626340", +"> c #606945", +", c #6D6E42", +"< c #687046", +"1 c #61704B", +"2 c #747C4A", +"3 c #677D54", +"4 c #687D54", +"5 c #7C884F", +"6 c #738D5D", +"7 c #74905D", +"8 c #808347", +"9 c #96A35A", +"0 c #9AA75A", +"q c #ABAA53", +"w c #ACAD55", +"e c #B3B058", +"r c #B2B25C", +"t c #80A064", +"y c #81A166", +"u c #9BAC60", +"i c #9FB368", +"p c #A4B468", +"a c #AAB76A", +"s c #BDB861", +"d c #C4B75C", +"f c #C7BE65", +"g c #CDC169", +"h c #D5C267", +"j c #D0C26A", +"k c #C9C270", +"l c #D5C770", +"z c #DFCB73", +"x c #DFCE7F", +"c c #E2CC74", +"v c #E6CE76", +"b c #E6CF7A", +"n c #E1CE7C", +"m c #E3CF7D", +"M c #E8D07F", +"N c #EBD380", +"B c #EAD381", +"V c #EED481", +"C c #ECD483", +"Z c #EFD583", +"A c #F0D583", +"S c #F0D685", +"D c #F1D686", +"F c #F2D686", +"G c #F4D889", +"H c #F6D88B", +"J c #F8D98C", +"K c #F8DA8D", +"L c #F9DA8F", +"P c #F9DB8F", +"I c #FADB8F", +"U c #FADB91", +"Y c #FBDB91", +"T c #FCDE93", +/* pixels */ +" -------------- ", +"-yyyyyyyyyyyyy7%", +"-y6666666666647%", +"-y633339lDKKHNmw", +"-y631fKTYNr<*47%", +"-y60KTYAzCKKKHme", +"-yuYTTYTYvq>*47%", +"-yKTTTYdoX+$*47%", +"-aTTTC#..O,$*47%", +"-pTTK&XXXh8$*47%", +";xYCj@+:cD+$*47%", +"-iYKDCKYK2$$*47%", +"-yk5gMbs=****47%", +"-y4444444444447%", +"-77777777777777%", +" %%%%%%%%%%%%%% " +}; diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/icons/grml.svg b/config/files/GRML_FULL/etc/skel/.fluxbox/icons/grml.svg new file mode 100644 index 000000000..6d392c8f8 --- /dev/null +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/icons/grml.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/init b/config/files/GRML_FULL/etc/skel/.fluxbox/init index a806daeac..c0121aab7 100644 --- a/config/files/GRML_FULL/etc/skel/.fluxbox/init +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/init @@ -65,12 +65,13 @@ session.screen0.rootCommand: session.screen0.menuAlpha: 200 session.screen0.windowMenu: session.screen0.reversewheeling: false -session.screen0.edgeSnapThreshold: 0 +session.screen0.edgeSnapThreshold: 15 +session.screen0.edgeResizeSnapThreshold: 15 session.screen0.workspacewarping: true session.screen0.allowRemoteActions: false session.screen0.menuDelayClose: 0 session.screen0.imageDither: false -session.screen0.strftimeFormat: %H:%M +session.screen0.strftimeFormat: %a, %d %b %02k:%M:%S session.screen0.antialias: false session.screen0.focusModel: ClickFocus session.screen0.workspaceNames: Workspace 1,Workspace 2,Workspace 3,Workspace 4, diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/keys b/config/files/GRML_FULL/etc/skel/.fluxbox/keys index 1aee5c69e..6c75cf9ba 100644 --- a/config/files/GRML_FULL/etc/skel/.fluxbox/keys +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/keys @@ -13,30 +13,38 @@ OnLeftGrip Move1 :StartResizing bottomleft OnRightGrip Move1 :StartResizing bottomright OnTitlebar Move1 :StartMoving +# Dynamically switch between two key mappings +# It is advisable to map this in both files to the same key combo. +Control Mod1 Shift g :Exec ~/.fluxbox/toggle_keys.sh + # Mod1 = Alt key +# Mod4 = Logo key # Control = Ctrl Key # plus = +,*,~ key (german keyboard) # numbersign = #,' key (german keyboard) -OnDesktop Mouse1 :hideMenus -OnDesktop Mouse2 :workspaceMenu -OnDesktop Mouse3 :rootMenu -OnDesktop Mouse4 :nextWorkspace -OnDesktop Mouse5 :prevWorkspace +# click on the desktop to get menus +OnDesktop Mouse1 :HideMenus +OnDesktop Mouse2 :WorkspaceMenu +OnDesktop Mouse3 :RootMenu + +# scroll on the desktop to change workspaces +OnDesktop Mouse4 :PrevWorkspace +OnDesktop Mouse5 :NextWorkspace -Mod1 Tab :NextWindow -Mod4 j :NextWindow +Mod1 Tab :NextWindow +Mod4 j :NextWindow -Mod1 Shift Tab :PrevWindow -Mod4 k :PrevWindow +Mod1 Shift Tab :PrevWindow +Mod4 k :PrevWindow -Control Right :NextWorkspace -Mod1 Shift Right :NextWorkspace -Mod4 Right :NextWorkspace +Control Right :NextWorkspace +Mod1 Shift Right :NextWorkspace +Mod4 Right :NextWorkspace -Control Left :PrevWorkspace -Mod1 Shift Left :PrevWorkspace -Mod4 Left :PrevWorkspace +Control Left :PrevWorkspace +Mod1 Shift Left :PrevWorkspace +Mod4 Left :PrevWorkspace Mod1 q :PrevWindow Mod1 w :NextWindow @@ -88,7 +96,7 @@ Control Mod1 a :ArrangeWindows # keymappings for programs Control Mod1 l :ExecCommand xlock -Control Mod1 f :ExecCommand firefox +Control Mod1 f :ExecCommand x-www-browser # screenshot Control Shift s :ExecCommand import -window root `date +shot-%Y-%m-%d-%H%M%S.jpg` diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/menu b/config/files/GRML_FULL/etc/skel/.fluxbox/menu index 772bbf09c..79a0289d7 100644 --- a/config/files/GRML_FULL/etc/skel/.fluxbox/menu +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/menu @@ -4,6 +4,10 @@ [exec] (Run ...) {fbrun} <> [exec] (configure network) {sudo x-terminal-emulator -T "grml-network" -e /usr/sbin/grml-network} <> [exec] (configure and run terminalserver) {grml-exec-wrapper -p grml-terminalserver sudo x-terminal-emulator -T "grml-terminalserver" -e /usr/sbin/grml-terminalserver} <> + [submenu] (Switch keys) {} <> + [exec] (grml) {~/.fluxbox/toggle_keys.sh grml} <~/.fluxbox/icons/grml.svg> + [exec] (fluxbox) {~/.fluxbox/toggle_keys.sh fluxbox} <~/.fluxbox/icons/fluxbox.xpm> + [end] [separator] [submenu] (Applications) {} <> [include] (/etc/X11/fluxbox/menudefs.hook) {} <> @@ -14,8 +18,10 @@ [stylesdir] (/usr/share/fluxbox/styles) {} <> [stylesdir] (~/.fluxbox/styles) {} <> [end] + [commanddialog] (Fluxbox Command) [reconfig] (Reload config) {} <> [restart] (Restart) {} <> + [exec] (About) {(fluxbox -v; fluxbox -info | sed 1d) | xmessage -file - -center} [end] [workspaces] (Workspace List) {} <> [exit] (Exit) {} <> diff --git a/config/files/GRML_FULL/etc/skel/.fluxbox/toggle_keys.sh b/config/files/GRML_FULL/etc/skel/.fluxbox/toggle_keys.sh new file mode 100755 index 000000000..0ffb32877 --- /dev/null +++ b/config/files/GRML_FULL/etc/skel/.fluxbox/toggle_keys.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env sh +# choose grml or more classic fluxbox keys file +[ "$1" = "grml" ] && sed -i '/session.keyFile/I s/\/fluxkeys/\/keys/' ~/.fluxbox/init +[ "$1" = "fluxbox" ] && sed -i '/session.keyFile/I s/\/keys/\/fluxkeys/ ' ~/.fluxbox/init +# toggle between config files +[ $# -eq 0 ] && sed -i '/session.keyFile/I s/\/keys/\/fluxkeys/ ; t ; s/\/fluxkeys/\/keys/ ; t' ~/.fluxbox/init +# reload configuration +pkill -SIGUSR2 fluxbox diff --git a/config/files/GRML_FULL/etc/skel/.xinitrc b/config/files/GRML_FULL/etc/skel/.xinitrc index 3c3daa579..1e413ffc8 100755 --- a/config/files/GRML_FULL/etc/skel/.xinitrc +++ b/config/files/GRML_FULL/etc/skel/.xinitrc @@ -6,16 +6,11 @@ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ -# $distri is supposed to be set already -distri=${distri:-} - # configuration: by default all scripts from ~/.xinitrc.d are executed, # but it's possible to configure this through a configuration file if [ -r "$HOME/.config/${distri}/xinitrc" ] ; then - # shellcheck source=/dev/null . "$HOME/.config/${distri}/xinitrc" elif [ -r "$HOME/.config/grml/xinitrc" ] ; then - # shellcheck source=/dev/null . "$HOME/.config/grml/xinitrc" fi diff --git a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_keyboard b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_keyboard index 83d8c9e25..33331bf71 100755 --- a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_keyboard +++ b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_keyboard @@ -24,7 +24,6 @@ apply_xmodmap_settings() { if [ -r /etc/default/keyboard ] ; then # Grml >=2018.12 XKBLAYOUT="us" # assume as default - # shellcheck source=/dev/null . /etc/default/keyboard if [ "${XKBLAYOUT}" = "us" ] ; then @@ -41,7 +40,6 @@ if [ -r /etc/default/keyboard ] ; then # Grml >=2018.12 fi fi elif [ -r /etc/sysconfig/keyboard ] ; then # older Grml releases - # shellcheck source=/dev/null . /etc/sysconfig/keyboard if [ "${XKEYBOARD}" = "us" ] ; then apply_xmodmap_settings diff --git a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_vnc b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_vnc index 830060abd..19621799f 100755 --- a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_vnc +++ b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_vnc @@ -11,10 +11,10 @@ if [ "$XINIT_GRML_VNC" = "false" ] ; then fi # if the vnc bootoption sets up the password let's start the vnc server -if [ -e "$HOME"/.vnc/passwd ]; then - test -f "$HOME"/.vnc/options && OPTIONS=$(cat "$HOME"/.vnc/options) - /usr/bin/x11vnc -bg -forever -noxdamage -o "$HOME"/.vnc/x11vnc.log -rfbauth \ - "$HOME"/.vnc/passwd -auth "$HOME"/.Xauthority -display "$DISPLAY" "$OPTIONS" +if [ -e $HOME/.vnc/passwd ]; then + test -f $HOME/.vnc/options && OPTIONS=$(cat $HOME/.vnc/options) + /usr/bin/x11vnc -bg -forever -noxdamage -o $HOME/.vnc/x11vnc.log -rfbauth \ + $HOME/.vnc/passwd -auth $HOME/.Xauthority -display $DISPLAY $OPTIONS fi ## END OF FILE ################################################################# diff --git a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_xsettings b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_xsettings index a96520ece..a62ce480e 100755 --- a/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_xsettings +++ b/config/files/GRML_FULL/etc/skel/.xinitrc.d/grml_xsettings @@ -29,6 +29,6 @@ fi # xset -dpms # xresources - [ -r "$HOME"/.Xresources ] && xrdb -merge "$HOME"/.Xresources + [ -r $HOME/.Xresources ] && xrdb -merge $HOME/.Xresources ## END OF FILE ################################################################# diff --git a/config/files/GRML_FULL/etc/skel/.xsession b/config/files/GRML_FULL/etc/skel/.xsession index 7f75e3a23..f73f9c186 100755 --- a/config/files/GRML_FULL/etc/skel/.xsession +++ b/config/files/GRML_FULL/etc/skel/.xsession @@ -1,3 +1,2 @@ #!/bin/sh -# shellcheck source=/dev/null . ~/.xinitrc