diff --git a/install.sh b/install.sh index a496ea3..f51d435 100644 --- a/install.sh +++ b/install.sh @@ -39,7 +39,7 @@ -# Start the install *_:*:_*:*:_*_*:*:_*::*_*::*_*:_*::*_*:*:**_:*:*_*:*:_*:*_:*:# +# Start the install *_:*:_*:*:_*_*:*:_*::*_*::*_*:_*::*_*:*:_:*:*_*:*:_*:*_:*:# # Whiptail colors export NEWT_COLORS=' @@ -111,12 +111,13 @@ PROGRAMS=$(whiptail --title "The Install selection" --checklist --separate-outpu "2" "Is this a laptop we are installing on!" OFF \ "3" "Install XRDP Remote desktop" OFF \ "4" "Install Thunar file manager" ON \ -"5" "Install Google Chrome" ON \ +"5" "Install Google Chrome Webbrowser" ON \ "6" "Install Neovim Text Editor" ON \ "7" "Install VS Code Editor" OFF \ "8" "Install SMB/CIFS Storage Client" ON \ "9" "Install NFS Storage Client" OFF \ -"10" "Install Ceph Storage Client" OFF 3>&1 1>&2 2>&3) +"10" "Install Ceph Storage Client" OFF \ +"11" "Install Firefox Webbrowser" OFF 3>&1 1>&2 2>&3) # See the actual installation below - Install selection choose what to install End @@ -213,9 +214,12 @@ echo -e "${YELLOW} Qtile Core Dependencies apt install ${NC}" sudo apt install -y python3-pip python3-xcffib python3-cairocffi python3-cffi libpangocairo-1.0-0 python-dbus-dev libxkbcommon-dev libxkbcommon-x11-dev python3-venv python3-psutil feh # ------------------------------------------------------------------------------------------------- -echo -e "${YELLOW} Set User folders via xdg-user-dirs-update. ${NC}" +echo -e "${YELLOW} Set User folders via xdg-user-dirs-update & xdg-mime default. ${NC}" xdg-user-dirs-update +xdg-mime default nsxiv.desktop image/jpeg +xdg-mime default nsxiv.desktop image/png + # Picom (Yshui) install #sudo apt install -y libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libepoxy-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-dpms0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev libxext-dev meson ninja-build uthash-dev @@ -252,11 +256,17 @@ if [ ! -f ~/.config/qtile/autostart.sh ]; then cat << QTILEAUTOSTART > ~/.config/qtile/autostart.sh #!/bin/sh pgrep -x picom > /dev/null || picom -b & +if [ -f ~/.fehbg ]; then + . ~/.fehbg +else + feh --bg-scale "$(find ~/Wallpapers -type f | shuf -n 1)" +fi amixer set Master 10% & dunst & numlockx on & mpd & #nitrogen --restore & +if [ -f ~/.fehbg ]; then . ~/.fehbg fi & # lock computer automatically after X time of minutes. xautolock -time 120 -locker "xsecurelock" -detectsleep -secure & @@ -2287,6 +2297,9 @@ do "10") sudo apt install -y ceph-commen ;; + "11") + sudo apt install -y firefox-esr + ;; esac done @@ -2306,7 +2319,7 @@ cat << "QTILECONFIG" > ~/.config/qtile/config.py import os import subprocess from libqtile import bar, layout, qtile, widget, hook -from libqtile.config import Click, Drag, Group, Key, Match, Screen, ScratchPad, DropDown +from libqtile.config import Click, Drag, Group, Key, Match, Screen, ScratchPad, DropDown, re from libqtile.lazy import lazy from libqtile.utils import guess_terminal # terminal = guess_terminal() #from libqtile.dgroups import simple_key_binder @@ -2484,16 +2497,16 @@ for vt in range(1, 8): # nf-md-pac_man 󰮯 nf-md-ghost 󰊠 nf-fa-circle  nf-cod-circle_large  nf-cod-circle_filled  nf-md-circle_small 󰧟 nf-md-circle_medium 󰧞 groups = [ - Group("1", label="󰮯", layout="monadtall"), - Group("2", label="󰧞", layout="monadtall"), - Group("3", label="", layout="monadtall"), - Group("4", label="󰧞", layout="monadtall"), - Group("5", label="󰊠", layout="monadtall"), - Group("6", label="󰧞", layout="monadtall"), - Group("7", label="󰧞", layout="monadtall"), - Group("8", label="", layout="monadtall"), - Group("9", label="󰧞", layout="monadtall"), - Group("0", label="", layout="bsp"), + Group("1", label="", layout="monadtall", matches=[Match(wm_class=re.compile(r"^(Google\-chrome)$"))]), + Group("2", label="", layout="monadtall"), + Group("3", label="", layout="monadtall"), + Group("4", label="", layout="monadtall"), + Group("5", label="", layout="monadtall"), + Group("6", label="", layout="monadtall"), + Group("7", label="", layout="monadtall"), + Group("8", label="", layout="monadtall"), + Group("9", label="", layout="monadtall", matches=[Match(wm_class=re.compile(r"^(Firefox\-esr)$"))]), + Group("0", label="", layout="bsp"), ] for i in groups: @@ -2548,18 +2561,18 @@ def init_layout_theme(): layout_theme = init_layout_theme() layouts = [ - layout.MonadTall(**layout_theme), - layout.Max(**layout_theme), - layout.Bsp(**layout_theme), - # layout.Columns(**layout_theme), + layout.MonadTall(layout_theme), + layout.Max(layout_theme), + layout.Bsp(layout_theme), + # layout.Columns(layout_theme), # layout.Stack(num_stacks=2), - # layout.Matrix(**layout_theme), - # layout.MonadWide(**layout_theme), - # layout.RatioTile(**layout_theme), - # layout.Tile(**layout_theme), - # layout.TreeTab(**layout_theme), - # layout.VerticalTile(**layout_theme), - # layout.Zoomy(**layout_theme), + # layout.Matrix(layout_theme), + # layout.MonadWide(layout_theme), + # layout.RatioTile(layout_theme), + # layout.Tile(layout_theme), + # layout.TreeTab(layout_theme), + # layout.VerticalTile(layout_theme), + # layout.Zoomy(layout_theme), ] widget_defaults = dict( @@ -2577,8 +2590,7 @@ screens = [ [ widget.CurrentLayoutIcon(scale=0.7, padding=10), widget.Spacer(length=5), - widget.GroupBox(fontsize=16, highlight_method="text", highlight_color="#12181c", urgent_border="#ffffff", active="#ffffff", inactive="#465159", rounded="False", borderwidth=0), - widget.Spacer(length=9), + widget.GroupBox(fontsize=17, highlight_method="text", this_current_screen_border="#f7f7f7", highlight_color=colors["base0B"], this_screen_border=colors["base04"], urgent_border=colors["base03"], active=colors["base05"], inactive=colors["base03"], rounded="False", borderwidth=0), widget.Spacer(length=9), widget.Prompt(), widget.Spacer(), widget.WindowName(width=bar.CALCULATED, max_chars=120), @@ -2586,7 +2598,7 @@ screens = [ widget.Systray(fmt="󱊖 {}", icon_size=20), # NB Wayland is incompatible with Systray, consider using StatusNotifier # widget.StatusNotifier(), - widget.Wallpaper(directory="~/Wallpapers/", label="", random_selection="True"), + #widget.Wallpaper(directory="~/Wallpapers/", label="", random_selection="True"), #widget.NetGraph(type='line', line_width=1), #widget.Net(prefix='M'), widget.ThermalSensor(format='CPU: {temp:.0f}{unit}'), @@ -2595,11 +2607,11 @@ screens = [ widget.Clock(fmt=" {}",format="%H:%M %A %d-%m-%Y %p"), #widget.QuickExit(default_text="LOGOUT", countdown_format=" {} "), widget.Spacer(length=20), - ], 28, # Define bar height - background=["#000000CC"], # Bar background color can also take transparency with "hex color code" or .75 + ], 30, # Define bar height + background=["#011F2B"], # Bar background color can also take transparency with "hex color code" or .75 margin=[5, 5, 0, 5], # Space around bar as int or list of ints [N E S W] border_width=[0, 0, 0, 0], # Width of border as int of list of ints [N E S W] - border_color=["074173", "000000", "074173", "000000"] # Border colour as str or list of str [N E S W] + border_color=["f7f7f7", "f7f7f7", "f7f7f7", "f7f7f7"] # Border colour as str or list of str [N E S W] ), # You can uncomment this variable if you see that on X11 floating resize/moving is laggy # By default we handle these events delayed to already improve performance, however your system might still be struggling @@ -2623,7 +2635,7 @@ follow_mouse_focus = True bring_front_click = False floats_kept_above = True cursor_warp = False -floating_layout = layout.Floating(**layout_theme, +floating_layout = layout.Floating(layout_theme, float_rules=[ # Run the utility xprop to see the wm class and name of an X client. *layout.Floating.default_float_rules, @@ -2643,12 +2655,21 @@ reconfigure_screens = True # focus, should we respect this or not? auto_minimize = True -# Remember to add, "import os" and "import subprocess" +# Remember to add, "hook" "import os" "import subprocess" "Match" @hook.subscribe.startup_once def autostart(): autostartscript = os.path.expanduser("~/.config/qtile/autostart.sh") subprocess.run([autostartscript]) +@hook.subscribe.client_new +def move_window_to_group(client): + for group in groups: + if any(client.match(match) for match in group.matches): + client.togroup(group.name) + client.qtile.groups_map[group.name].toscreen() + break + + # When using the Wayland backend, this can be used to configure input devices. wl_input_rules = None