diff --git a/404.html b/404.html index e5d08988..d3daeeac 100644 --- a/404.html +++ b/404.html @@ -11,7 +11,7 @@ - + diff --git a/assets/js/1d1bbcdb.3e95d11c.js b/assets/js/1d1bbcdb.3e95d11c.js new file mode 100644 index 00000000..da52bfca --- /dev/null +++ b/assets/js/1d1bbcdb.3e95d11c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[9571],{5514:(e,n,r)=>{r.r(n),r.d(n,{Highlight:()=>a,assets:()=>o,contentTitle:()=>d,default:()=>x,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=r(5893),i=r(1151);r(4866),r(5162);const t={sidebar_position:3,hide_table_of_contents:!1},d="Berry",c={id:"window-managers/stacking-wm/berry",title:"Berry",description:"Bite-sized window manager written in C. It is controlled via a command-line client, allowing users to control windows via a hotkey daemon such as sxhkd or expand functionality via shell scripts. It provides extensible theming options with double borders, title bars, and window text. Berry places new windows in unoccupied spaces and supports virtual desktops.",source:"@site/docs/window-managers/stacking-wm/berry.mdx",sourceDirName:"window-managers/stacking-wm",slug:"/window-managers/stacking-wm/berry",permalink:"/docs/window-managers/stacking-wm/berry",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/stacking-wm/berry.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"2bwm",permalink:"/docs/window-managers/stacking-wm/2bwm"},next:{title:"Blackbox",permalink:"/docs/window-managers/stacking-wm/blackbox"}},o={},l=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Config Structure",id:"config-structure",level:3},{value:"Terminal",id:"terminal",level:3},{value:"Notification",id:"notification",level:3},{value:"Wallpaper",id:"wallpaper",level:3},{value:"Statusbar",id:"statusbar",level:3},{value:"Launchers and Applets",id:"launchers-and-applets",level:3},{value:"Compositor",id:"compositor",level:3},{value:"Window Manager",id:"window-manager",level:3},{value:"Keybindings",id:"keybindings",level:2},{value:"Applications",id:"applications",level:3},{value:"Menu and Applets",id:"menu-and-applets",level:3},{value:"Hardware Keys",id:"hardware-keys",level:3},{value:"Workspaces",id:"workspaces",level:3},{value:"Window Management",id:"window-management",level:3},{value:"Window Manager",id:"window-manager-1",level:3},{value:"Misc Keys",id:"misc-keys",level:3},{value:"Screenshots",id:"screenshots",level:2},{value:"FAQs",id:"faqs",level:2}],a=({children:e,color:n})=>{const r={span:"span",...(0,i.a)()};return(0,s.jsx)(r.span,{style:{backgroundColor:n,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function h(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components},{Details:r}=n;return r||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"berry",children:"Berry"}),"\n","\n","\n","\n",(0,s.jsx)(n.p,{children:"Bite-sized window manager written in C. It is controlled via a command-line client, allowing users to control windows via a hotkey daemon such as sxhkd or expand functionality via shell scripts. It provides extensible theming options with double borders, title bars, and window text. Berry places new windows in unoccupied spaces and supports virtual desktops."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/main.png",alt:"img"})}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(n.p,{children:["Once you finish installing Archcraft, ",(0,s.jsx)(n.strong,{children:"berry"})," can be installed on the top of it. It's pre-configured and ready to go. Open a terminal and run the following command to install berry :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"$ sudo pacman -Sy archcraft-berry\n"})}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"berry is pre-configured in Archcraft. In this section, We'll see how the berry window manager is configured, what tools and utilities are used to make it look and work like a complete desktop environment."}),"\n",(0,s.jsx)(n.h3,{id:"config-structure",children:"Config Structure"}),"\n",(0,s.jsx)(n.p,{children:"The configuration structure of berry in Archcraft looks something like this:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"~/.config\n\u2514\u2500\u2500 berry : berry config directory\n \u251c\u2500\u2500 alacritty : terminal config\n \u251c\u2500\u2500 scripts : scripts used for berry\n \u251c\u2500\u2500 themes : desktop theme (polybar, rofi configs) \n \u251c\u2500\u2500 autostart : main berry config file\n \u251c\u2500\u2500 dunstrc : dunst config for notifications\n \u251c\u2500\u2500 picom.conf : compositor config\n \u251c\u2500\u2500 sxhkdrc : keybindings config\n \u2514\u2500\u2500 xsettingsd : gtk themes, icons and fonts config file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"terminal",children:"Terminal"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Alacritty"})," is the default terminal. In the berry window manager, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ",(0,s.jsx)(n.code,{children:"~/.config/berry/alacritty"})," directory. These are the following config files you can modify to change the behaviour of your terminal:"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/alacritty/alacritty.toml"})})," : Main configuration file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/alacritty/colors.toml"})})," : Colors configurations ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/alacritty/fonts.toml"})})," : Fonts configurations"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with alacritty config, run : ",(0,s.jsx)(n.code,{children:"man 5 alacritty"})," in terminal."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"notification",children:"Notification"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Dunst"})," is used as a notification daemon for notifications in berry. In the berry window manager, dunst is launched with an alternative config file, which is ",(0,s.jsx)(n.code,{children:"~/.config/berry/dunstrc"}),". So, If you need to modify anything, make sure you edit this file."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with dunst config, run : ",(0,s.jsx)(n.code,{children:"man 5 dunst"})," in terminal."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"wallpaper",children:"Wallpaper"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"hsetroot"})," sets the wallpaper in the berry. If you want to change the wallpaper, Edit ",(0,s.jsx)(n.code,{children:"~/.config/berry/scripts/berry_autostart"})," script and add the path to your wallpaper :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Restore wallpaper\nhsetroot -cover '/path/to/your/wallpaper'\n"})}),"\n",(0,s.jsx)(n.h3,{id:"statusbar",children:"Statusbar"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Polybar"})," is used as the statusbar in Archcraft's berry window manager."]}),"\n",(0,s.jsxs)(n.p,{children:["The configurations for polybar can be found inside the ",(0,s.jsx)(n.em,{children:"theme"})," directory directory of berry ",(0,s.jsx)(n.code,{children:"~/.config/berry/theme"})]}),"\n",(0,s.jsxs)(n.p,{children:["If you want to modify the ",(0,s.jsx)(n.strong,{children:"polybar"})," settings, or perhaps want to add/remove modules, then you need to edit the following files :"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/theme/polybar/config.ini"})})," : Main config file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/theme/polybar/colors.ini"})})," : Colors config file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"~/.config/berry/theme/polybar/modules.ini"})})," : Modules config file"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with polybar config, visit : ",(0,s.jsx)(n.a,{href:"https://github.com/polybar/polybar/wiki",children:"polybar wiki"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"launchers-and-applets",children:"Launchers and Applets"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Rofi"})," is used for application launchers, command runner and various applets. To modify the rofi config, edit ",(0,s.jsx)(n.code,{children:"~/.config/rofi/config.rasi"})," file."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with rofi config, run : ",(0,s.jsx)(n.code,{children:"man rofi"})," in terminal."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The scripts for rofi that are used in berry can be found it ",(0,s.jsx)(n.code,{children:"~/.config/berry/scripts"})," directory. These are the following scripts that uses rofi to provide the launchers and applets in berry :"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_askpass"})})," : rofi based ",(0,s.jsx)(n.code,{children:"sudo"})," frontend to get root password ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_asroot"})})," : applet to open apps as root ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_bluetooth"})})," : bluetooth applet to quickly connect to BT devices ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_launcher"})})," : an application launcher, cmd runner, file manager and task manager ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_music"})})," : music applet, that controls MPD with ",(0,s.jsx)(n.code,{children:"mpc"})," ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_powermenu"})})," : power menu, with confirmation dialog ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_runner"})})," : quickly lets you run a command ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_screenshot"})})," : screenshot applet that works with maim ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_windows"})})," : applet to manage opened windows ",(0,s.jsx)("br",{})]}),"\n",(0,s.jsx)(n.p,{children:"If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts above."}),"\n",(0,s.jsxs)(n.p,{children:["The configuration of each script can be found inside the ",(0,s.jsx)(n.em,{children:"theme"})," directory of berry ",(0,s.jsx)(n.code,{children:"~/.config/berry/theme"})]}),"\n",(0,s.jsxs)(n.p,{children:["Let's say you want to modify the looks of ",(0,s.jsx)(n.strong,{children:"launcher"}),", then you need to edit the ",(0,s.jsx)(n.code,{children:"~/.config/berry/theme/rofi/launcher.rasi"})," file. Same goes for every other applet, Edit the respective file in the same directory."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with rofi theming, run : ",(0,s.jsx)(n.code,{children:"man rofi-theme"})," in terminal."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["To change the colors and fonts of the launchers and applets, Edit the ",(0,s.jsx)(n.code,{children:"~/.config/berry/theme/rofi/shared/colors.rasi"})," and ",(0,s.jsx)(n.code,{children:"~/.config/berry/theme/rofi/shared/fonts.rasi"})," files."]}),"\n",(0,s.jsx)(n.h3,{id:"compositor",children:"Compositor"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Picom"})," is used for compositing. It's a lightweight compositor with shadowing, advanced blurring and fading. In berry, picom is launched with an alternative config file, which is ",(0,s.jsx)(n.code,{children:"~/.config/berry/picom.conf"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"If you need to change anything related to picom, Edit this picom config file."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with picom config, check the picom's default config file in ",(0,s.jsx)(n.code,{children:"/etc/xdg/picom.conf"})]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsxs)(n.p,{children:["If you're having screen-tearing issues, using ",(0,s.jsx)(n.code,{children:"glx"})," backend can solve this issue. ",(0,s.jsx)("br",{}),"\nIf you're facing lagging, hangs and freezes, try switching between ",(0,s.jsx)(n.code,{children:"xrender"})," and ",(0,s.jsx)(n.code,{children:"glx"})," backend."]})}),"\n",(0,s.jsx)(n.h3,{id:"window-manager",children:"Window Manager"}),"\n",(0,s.jsxs)(n.p,{children:["The configuration of berry is available in ",(0,s.jsx)(n.code,{children:"~/.config/berry"}),". To configure berry window manager, these are the files that are used :"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"autostart"})})," : main configuration file responsible for determining the behaviour and settings of the overall session. Edit this file to configure berry's appearance. ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"sxhkdrc"})})," : berry does not handle any keyboard input and instead provides the ",(0,s.jsx)(n.code,{children:"berryc"})," program as its interface. So, For keyboard shortcuts, a hotkey daemon ",(0,s.jsx)(n.code,{children:"sxhkd"})," is used. Edit this file to add/remove keybindings."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with berry configuration, visit : ",(0,s.jsx)(n.a,{href:"https://berrywm.org/",children:"berrywm.org"})," ",(0,s.jsx)("br",{}),"\nIf you need any help with sxhkd configuration, run : ",(0,s.jsx)(n.code,{children:"man sxhkd"})," in terminal."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"keybindings",children:"Keybindings"}),"\n",(0,s.jsxs)(n.p,{children:["Here's a list of some important keybinds you need to know for operating berry easily. If you want to view, modify or add new keybinds, Edit ",(0,s.jsx)(n.code,{children:"~/.config/berry/sxhkdrc"})," file."]}),"\n",(0,s.jsx)(n.h3,{id:"applications",children:"Applications"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Return"})}),(0,s.jsx)(n.td,{children:"Open terminal (alacritty)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + Return"})}),(0,s.jsx)(n.td,{children:"Open fullscreen terminal"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + F"})}),(0,s.jsx)(n.td,{children:"Open file manager (thunar)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + E"})}),(0,s.jsx)(n.td,{children:"Open text editor (geany)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + W"})}),(0,s.jsx)(n.td,{children:"Open web browser (firefox)"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"menu-and-applets",children:"Menu and Applets"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super"})}),(0,s.jsx)(n.td,{children:"Open application launcher"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + F1"})}),(0,s.jsx)(n.td,{children:"Open application launcher"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + F2"})}),(0,s.jsx)(n.td,{children:"Open command runner"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + N"})}),(0,s.jsx)(n.td,{children:"Open network manager applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + B"})}),(0,s.jsx)(n.td,{children:"Open bluetooth applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + M"})}),(0,s.jsx)(n.td,{children:"Open music applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + X"})}),(0,s.jsx)(n.td,{children:"Open powermenu applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + S"})}),(0,s.jsx)(n.td,{children:"Open screenshots applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + R"})}),(0,s.jsx)(n.td,{children:"Open apps as root applet"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"hardware-keys",children:"Hardware Keys"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot in 5 seconds delay"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"shift + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot in 10 seconds delay"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot of currently focused window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot of selected area"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioRaiseVolume"})}),(0,s.jsx)(n.td,{children:"Increase volume"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioLowerVolume"})}),(0,s.jsx)(n.td,{children:"Decrease volume"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioMute"})}),(0,s.jsx)(n.td,{children:"Toggle mute speakers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioMicMute"})}),(0,s.jsx)(n.td,{children:"Toggle mute microphone"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86Audio + Next/Prev/Play/Stop"})}),(0,s.jsx)(n.td,{children:"Media controls (MPD)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86MonBrightnessUp"})}),(0,s.jsx)(n.td,{children:"Increase display brightness"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86MonBrightnessDown"})}),(0,s.jsx)(n.td,{children:"Decrease display brightness"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"workspaces",children:"Workspaces"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + 1..9"})}),(0,s.jsx)(n.td,{children:"Switch to respective workspace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + 1..9"})}),(0,s.jsx)(n.td,{children:"Send focused window to respective workspace"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"window-management",children:"Window Management"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + Left/Down/Up/Right"})}),(0,s.jsx)(n.td,{children:"Resize window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + Left/Down/Up/Right"})}),(0,s.jsx)(n.td,{children:"Move window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Left"})}),(0,s.jsx)(n.td,{children:"Snap left"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Right"})}),(0,s.jsx)(n.td,{children:"Snap right"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Up"})}),(0,s.jsx)(n.td,{children:"Maximize window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Down"})}),(0,s.jsx)(n.td,{children:"Resize and center window with fixed geometry"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Space"})}),(0,s.jsx)(n.td,{children:"Toggle fullscreen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + T"})}),(0,s.jsx)(n.td,{children:"Toggle decorations"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Tab"})}),(0,s.jsx)(n.td,{children:"Cycle focused windows"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + Tab"})}),(0,s.jsx)(n.td,{children:"Cycle focused windows"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + C"})}),(0,s.jsx)(n.td,{children:"Center window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Q"})}),(0,s.jsx)(n.td,{children:"Close focued window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + C"})}),(0,s.jsx)(n.td,{children:"Close focued window"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"window-manager-1",children:"Window Manager"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + Q"})}),(0,s.jsx)(n.td,{children:"Quit berry"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Escape"})}),(0,s.jsx)(n.td,{children:"Reload sxhkd configuration file"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"misc-keys",children:"Misc Keys"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + alt + M"})}),(0,s.jsx)(n.td,{children:"Open ncmpcpp with album art in terminal"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + alt + L"})}),(0,s.jsx)(n.td,{children:"Trigger lockscreen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + P"})}),(0,s.jsx)(n.td,{children:"Run colorpicker"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,s.jsxs)(n.p,{children:["Here's few screenshots of ",(0,s.jsx)(n.code,{children:"berry"})," desktop. These'll give you an idea of the experience of berry in Archcraft."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 1"}),(0,s.jsx)(n.th,{children:"Desktop 2"}),(0,s.jsx)(n.th,{children:"Desktop 3"}),(0,s.jsx)(n.th,{children:"Desktop 4"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_1.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_2.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_3.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_4.png",alt:"img"})})]})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 5"}),(0,s.jsx)(n.th,{children:"Desktop 6"}),(0,s.jsx)(n.th,{children:"Desktop 7"}),(0,s.jsx)(n.th,{children:"Desktop 8"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_5.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_6.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_7.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_8.png",alt:"img"})})]})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 9"}),(0,s.jsx)(n.th,{children:"Desktop 10"}),(0,s.jsx)(n.th,{children:"Desktop 11"}),(0,s.jsx)(n.th,{children:"Desktop 12"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_9.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_10.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_11.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/berry/desktop/desktop_12.png",alt:"img"})})]})})]}),"\n",(0,s.jsx)(n.h2,{id:"faqs",children:"FAQs"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"How to update my config to new configs?"})}),(0,s.jsxs)(n.p,{children:["When a new version of Archcraft berry get released, And you update the system by ",(0,s.jsx)(n.code,{children:"sudo pacman -Syu"})," or you update the berry package by ",(0,s.jsx)(n.code,{children:"sudo pacman -S archcraft-berry"}),", New config files get installed as ",(0,s.jsx)(n.strong,{children:"berry_pacnew_YYYY-MM-DD"})," in your ",(0,s.jsx)(n.code,{children:"~/.config"})," directory."]}),(0,s.jsxs)(n.p,{children:["To use new configs, backup your old ",(0,s.jsx)(n.code,{children:"~/.config/berry"})," directory and move ",(0,s.jsx)(n.code,{children:"~/.config/berry_pacnew_YYYY-MM-DD"})," to ",(0,s.jsx)(n.code,{children:"~/.config/berry"})," and login again."]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"How to change GTK theme, icons and cursor?"})}),(0,s.jsxs)(n.p,{children:["To change GTK theme, icons and cursor in berry session, Edit ",(0,s.jsx)(n.code,{children:"~/.config/berry/xsettingsd"})," file and restart berry to apply the changes."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ini",children:'Net/ThemeName "Catppuccin-Mocha"\nNet/IconThemeName "Luv-Folders-Dark"\nGtk/CursorThemeName "Sweet"\n'})})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"How to manage multiple monitors and resolution in berry?"})}),(0,s.jsxs)(n.p,{children:["If you use multiple monitors with berry window manager, you can manage them by running ",(0,s.jsx)(n.em,{children:"Manager Monitors"})," or ",(0,s.jsx)(n.code,{children:"archcraft-randr"})," app."]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"Why Alacritty is not working on my computer?"})}),(0,s.jsx)(n.p,{children:"Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Open alacritty with ",(0,s.jsx)(n.strong,{children:"LIBGL_ALWAYS_SOFTWARE=1"})," variable. Edit the keybindings/script launching alacritty and replace ",(0,s.jsx)(n.code,{children:"alacritty"})," with ",(0,s.jsx)(n.code,{children:"LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n",(0,s.jsxs)(n.li,{children:["Edit ",(0,s.jsx)(n.strong,{children:"/usr/share/applications/Alacritty.desktop"})," desktop file and replace ",(0,s.jsx)(n.code,{children:"Exec=alacritty"})," with ",(0,s.jsx)(n.code,{children:"Exec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n"]})]})]})}function x(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,r)=>{r.d(n,{Z:()=>d});r(7294);var s=r(512);const i={tabItem:"tabItem_Ymn6"};var t=r(5893);function d(e){let{children:n,hidden:r,className:d}=e;return(0,t.jsx)("div",{role:"tabpanel",className:(0,s.Z)(i.tabItem,d),hidden:r,children:n})}},4866:(e,n,r)=>{r.d(n,{Z:()=>k});var s=r(7294),i=r(512),t=r(2466),d=r(6550),c=r(469),o=r(1980),l=r(7392),a=r(12);function h(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function x(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:i}}=e;return{value:n,label:r,attributes:s,default:i}}))}(r);return function(e){const n=(0,l.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function u(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function j(e){let{queryString:n=!1,groupId:r}=e;const i=(0,d.k6)(),t=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,o._X)(t),(0,s.useCallback)((e=>{if(!t)return;const n=new URLSearchParams(i.location.search);n.set(t,e),i.replace({...i.location,search:n.toString()})}),[t,i])]}function p(e){const{defaultValue:n,queryString:r=!1,groupId:i}=e,t=x(e),[d,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!u({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:t}))),[l,h]=j({queryString:r,groupId:i}),[p,f]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,t]=(0,a.Nk)(r);return[i,(0,s.useCallback)((e=>{r&&t.set(e)}),[r,t])]}({groupId:i}),m=(()=>{const e=l??p;return u({value:e,tabValues:t})?e:null})();(0,c.Z)((()=>{m&&o(m)}),[m]);return{selectedValue:d,selectValue:(0,s.useCallback)((e=>{if(!u({value:e,tabValues:t}))throw new Error(`Can't select invalid tab value=${e}`);o(e),h(e),f(e)}),[h,f,t]),tabValues:t}}var f=r(2389);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=r(5893);function b(e){let{className:n,block:r,selectedValue:s,selectValue:d,tabValues:c}=e;const o=[],{blockElementScrollPositionUntilNextRender:l}=(0,t.o5)(),a=e=>{const n=e.currentTarget,r=o.indexOf(n),i=c[r].value;i!==s&&(l(n),d(i))},h=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const r=o.indexOf(e.currentTarget)+1;n=o[r]??o[0];break}case"ArrowLeft":{const r=o.indexOf(e.currentTarget)-1;n=o[r]??o[o.length-1];break}}n?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":r},n),children:c.map((e=>{let{value:n,label:r,attributes:t}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:h,onClick:a,...t,className:(0,i.Z)("tabs__item",m.tabItem,t?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function y(e){let{lazy:n,children:r,selectedValue:i}=e;const t=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=t.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:t.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function w(e){const n=p(e);return(0,g.jsxs)("div",{className:(0,i.Z)("tabs-container",m.tabList),children:[(0,g.jsx)(b,{...e,...n}),(0,g.jsx)(y,{...e,...n})]})}function k(e){const n=(0,f.Z)();return(0,g.jsx)(w,{...e,children:h(e.children)},String(n))}},1151:(e,n,r)=>{r.d(n,{Z:()=>c,a:()=>d});var s=r(7294);const i={},t=s.createContext(i);function d(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1d1bbcdb.59318f13.js b/assets/js/1d1bbcdb.59318f13.js deleted file mode 100644 index 8450284c..00000000 --- a/assets/js/1d1bbcdb.59318f13.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[9571],{5514:(e,t,r)=>{r.r(t),r.d(t,{Highlight:()=>c,assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(5893),a=r(1151);r(4866),r(5162);const o={sidebar_position:3,hide_table_of_contents:!1},s="Berry",l={id:"window-managers/stacking-wm/berry",title:"Berry",description:"Work In Progress...",source:"@site/docs/window-managers/stacking-wm/berry.mdx",sourceDirName:"window-managers/stacking-wm",slug:"/window-managers/stacking-wm/berry",permalink:"/docs/window-managers/stacking-wm/berry",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/stacking-wm/berry.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"2bwm",permalink:"/docs/window-managers/stacking-wm/2bwm"},next:{title:"Blackbox",permalink:"/docs/window-managers/stacking-wm/blackbox"}},u={},i=[],c=({children:e,color:t})=>{const r={span:"span",...(0,a.a)()};return(0,n.jsx)(r.span,{style:{backgroundColor:t,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function d(e){const t={h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"berry",children:"Berry"}),"\n","\n","\n","\n",(0,n.jsx)(t.p,{children:"Work In Progress..."})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>s});r(7294);var n=r(512);const a={tabItem:"tabItem_Ymn6"};var o=r(5893);function s(e){let{children:t,hidden:r,className:s}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,s),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>x});var n=r(7294),a=r(512),o=r(2466),s=r(6550),l=r(469),u=r(1980),i=r(7392),c=r(12);function d(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function b(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:r}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function p(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,o=m(e),[s,u]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!b({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[i,d]=f({queryString:r,groupId:a}),[p,h]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:a}),g=(()=>{const e=i??p;return b({value:e,tabValues:o})?e:null})();(0,l.Z)((()=>{g&&u(g)}),[g]);return{selectedValue:s,selectValue:(0,n.useCallback)((e=>{if(!b({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),d(e),h(e)}),[d,h,o]),tabValues:o}}var h=r(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var w=r(5893);function v(e){let{className:t,block:r,selectedValue:n,selectValue:s,tabValues:l}=e;const u=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),c=e=>{const t=e.currentTarget,r=u.indexOf(t),a=l[r].value;a!==n&&(i(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{const r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1];break}}t?.focus()};return(0,w.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:l.map((e=>{let{value:t,label:r,attributes:o}=e;return(0,w.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>u.push(e),onKeyDown:d,onClick:c,...o,className:(0,a.Z)("tabs__item",g.tabItem,o?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function k(e){let{lazy:t,children:r,selectedValue:a}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,w.jsx)("div",{className:"margin-top--md",children:o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=p(e);return(0,w.jsxs)("div",{className:(0,a.Z)("tabs-container",g.tabList),children:[(0,w.jsx)(v,{...e,...t}),(0,w.jsx)(k,{...e,...t})]})}function x(e){const t=(0,h.Z)();return(0,w.jsx)(y,{...e,children:d(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>l,a:()=>s});var n=r(7294);const a={},o=n.createContext(a);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/282bf3ec.614e0641.js b/assets/js/282bf3ec.614e0641.js deleted file mode 100644 index 7ee512d6..00000000 --- a/assets/js/282bf3ec.614e0641.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[9433],{2067:(e,t,n)=>{n.r(t),n.d(t,{Highlight:()=>c,assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>i});var r=n(5893),a=n(1151);n(4866),n(5162);const o={sidebar_position:2,hide_table_of_contents:!1},s="2bwm",u={id:"window-managers/stacking-wm/2bwm",title:"2bwm",description:"Work In Progress...",source:"@site/docs/window-managers/stacking-wm/2bwm.mdx",sourceDirName:"window-managers/stacking-wm",slug:"/window-managers/stacking-wm/2bwm",permalink:"/docs/window-managers/stacking-wm/2bwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/stacking-wm/2bwm.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"Openbox",permalink:"/docs/window-managers/stacking-wm/openbox"},next:{title:"Berry",permalink:"/docs/window-managers/stacking-wm/berry"}},l={},i=[],c=({children:e,color:t})=>{const n={span:"span",...(0,a.a)()};return(0,r.jsx)(n.span,{style:{backgroundColor:t,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function d(e){const t={h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"2bwm",children:"2bwm"}),"\n","\n","\n","\n",(0,r.jsx)(t.p,{children:"Work In Progress..."})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>s});n(7294);var r=n(512);const a={tabItem:"tabItem_Ymn6"};var o=n(5893);function s(e){let{children:t,hidden:n,className:s}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,s),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>y});var r=n(7294),a=n(512),o=n(2466),s=n(6550),u=n(469),l=n(1980),i=n(7392),c=n(12);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function b(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function f(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,l._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function p(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=m(e),[s,l]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!b({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[i,d]=f({queryString:n,groupId:a}),[p,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),w=(()=>{const e=i??p;return b({value:e,tabValues:o})?e:null})();(0,u.Z)((()=>{w&&l(w)}),[w]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!b({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),d(e),h(e)}),[d,h,o]),tabValues:o}}var h=n(2389);const w={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=n(5893);function v(e){let{className:t,block:n,selectedValue:r,selectValue:s,tabValues:u}=e;const l=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),c=e=>{const t=e.currentTarget,n=l.indexOf(t),a=u[n].value;a!==r&&(i(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=l.indexOf(e.currentTarget)+1;t=l[n]??l[0];break}case"ArrowLeft":{const n=l.indexOf(e.currentTarget)-1;t=l[n]??l[l.length-1];break}}t?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:u.map((e=>{let{value:t,label:n,attributes:o}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>l.push(e),onKeyDown:d,onClick:c,...o,className:(0,a.Z)("tabs__item",w.tabItem,o?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function k(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function x(e){const t=p(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",w.tabList),children:[(0,g.jsx)(v,{...e,...t}),(0,g.jsx)(k,{...e,...t})]})}function y(e){const t=(0,h.Z)();return(0,g.jsx)(x,{...e,children:d(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>u,a:()=>s});var r=n(7294);const a={},o=r.createContext(a);function s(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/282bf3ec.a3931293.js b/assets/js/282bf3ec.a3931293.js new file mode 100644 index 00000000..b6463b7e --- /dev/null +++ b/assets/js/282bf3ec.a3931293.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[9433],{2067:(e,n,r)=>{r.r(n),r.d(n,{Highlight:()=>a,assets:()=>l,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>c,toc:()=>o});var s=r(5893),t=r(1151);r(4866),r(5162);const i={sidebar_position:2,hide_table_of_contents:!1},d="2bwm",c={id:"window-managers/stacking-wm/2bwm",title:"2bwm",description:"2bwm is a fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower.",source:"@site/docs/window-managers/stacking-wm/2bwm.mdx",sourceDirName:"window-managers/stacking-wm",slug:"/window-managers/stacking-wm/2bwm",permalink:"/docs/window-managers/stacking-wm/2bwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/stacking-wm/2bwm.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"Openbox",permalink:"/docs/window-managers/stacking-wm/openbox"},next:{title:"Berry",permalink:"/docs/window-managers/stacking-wm/berry"}},l={},o=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Config Structure",id:"config-structure",level:3},{value:"Terminal",id:"terminal",level:3},{value:"Notification",id:"notification",level:3},{value:"Wallpaper",id:"wallpaper",level:3},{value:"Statusbar",id:"statusbar",level:3},{value:"Launchers and Applets",id:"launchers-and-applets",level:3},{value:"Compositor",id:"compositor",level:3},{value:"Window Manager",id:"window-manager",level:3},{value:"Keybindings",id:"keybindings",level:2},{value:"Applications",id:"applications",level:3},{value:"Menu and Applets",id:"menu-and-applets",level:3},{value:"Hardware Keys",id:"hardware-keys",level:3},{value:"Workspaces",id:"workspaces",level:3},{value:"Window Management",id:"window-management",level:3},{value:"Window Manager",id:"window-manager-1",level:3},{value:"Misc Keys",id:"misc-keys",level:3},{value:"Screenshots",id:"screenshots",level:2},{value:"FAQs",id:"faqs",level:2}],a=({children:e,color:n})=>{const r={span:"span",...(0,t.a)()};return(0,s.jsx)(r.span,{style:{backgroundColor:n,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function h(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.a)(),...e.components},{Details:r}=n;return r||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"2bwm",children:"2bwm"}),"\n","\n","\n","\n",(0,s.jsx)(n.p,{children:"2bwm is a fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/main.png",alt:"img"})}),"\n",(0,s.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,s.jsxs)(n.p,{children:["Once you finish installing Archcraft, ",(0,s.jsx)(n.strong,{children:"2bwm"})," can be installed on the top of it. It's pre-configured and ready to go. Open a terminal and run the following command to install 2bwm :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"$ sudo pacman -Sy archcraft-2bwm\n"})}),"\n",(0,s.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,s.jsx)(n.p,{children:"2bwm is pre-configured in Archcraft. In this section, We'll see how the 2bwm window manager is configured, what tools and utilities are used to make it look and work like a complete desktop environment."}),"\n",(0,s.jsx)(n.h3,{id:"config-structure",children:"Config Structure"}),"\n",(0,s.jsx)(n.p,{children:"The configuration structure of 2bwm in Archcraft looks something like this:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"/opt\n\u2514\u2500\u2500 2bwm-source : 2bwm source code\n \u2514\u2500\u2500 config.h : 2bwm config file\n/usr\n\u2514\u2500\u2500 share\n \u2514\u2500\u2500 archcraft\n \u2514\u2500\u2500 2bwm\n \u251c\u2500\u2500 alacritty : terminal config\n\xa0\xa0 \u251c\u2500\u2500 scripts : scripts used for 2bwm\n\xa0\xa0 \u251c\u2500\u2500 theme : desktop theme (polybar, rofi configs) \n \u251c\u2500\u2500 dunstrc : dunst config for notifications\n \u251c\u2500\u2500 picom.conf : compositor config\n \u2514\u2500\u2500 xsettingsd : gtk themes, icons and fonts config file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"terminal",children:"Terminal"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Alacritty"})," is the default terminal. In 2bwm window manager, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/alacritty"})," directory. These are the following config files you can modify to change the behaviour of your terminal:"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/alacritty/alacritty.toml"})})," : Main configuration file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/alacritty/colors.toml"})})," : Colors configurations ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/alacritty/fonts.toml"})})," : Fonts configurations"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with alacritty config, run : ",(0,s.jsx)(n.code,{children:"man 5 alacritty"})," in terminal."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"notification",children:"Notification"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Dunst"})," is used as a notification daemon for notifications in 2bwm. In 2bwm window manager, dunst is launched with an alternative config file, which is ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/dunstrc"}),". So, If you need to modify anything, make sure you edit this file."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with dunst config, run : ",(0,s.jsx)(n.code,{children:"man 5 dunst"})," in terminal."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"wallpaper",children:"Wallpaper"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"hsetroot"})," sets the wallpaper in the 2bwm. If you want to change the wallpaper, Edit ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/scripts/2bwm_autostart"})," script and add the path to your wallpaper :"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"# Restore wallpaper\nhsetroot -cover '/path/to/your/wallpaper'\n"})}),"\n",(0,s.jsx)(n.h3,{id:"statusbar",children:"Statusbar"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Polybar"})," is used as the statusbar in Archcraft's 2bwm window manager."]}),"\n",(0,s.jsxs)(n.p,{children:["The configurations for polybar can be found inside the ",(0,s.jsx)(n.em,{children:"theme"})," directory directory of 2bwm ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme"})]}),"\n",(0,s.jsxs)(n.p,{children:["If you want to modify the ",(0,s.jsx)(n.strong,{children:"polybar"})," settings, or perhaps want to add/remove modules, then you need to edit the following files :"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/polybar/config.ini"})})," : Main config file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/polybar/colors.ini"})})," : Colors config file ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/polybar/modules.ini"})})," : Modules config file"]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with polybar config, visit : ",(0,s.jsx)(n.a,{href:"https://github.com/polybar/polybar/wiki",children:"polybar wiki"})]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"launchers-and-applets",children:"Launchers and Applets"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Rofi"})," is used for application launchers, command runner and various applets. To modify the rofi config, edit ",(0,s.jsx)(n.code,{children:"~/.config/rofi/config.rasi"})," file."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with rofi config, run : ",(0,s.jsx)(n.code,{children:"man rofi"})," in terminal."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The scripts for rofi that are used in 2bwm can be found it ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/scripts"})," directory. These are the following scripts that uses rofi to provide the launchers and applets :"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_askpass"})})," : rofi based ",(0,s.jsx)(n.code,{children:"sudo"})," frontend to get root password ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_asroot"})})," : applet to open apps as root ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_bluetooth"})})," : bluetooth applet to quickly connect to BT devices ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_launcher"})})," : an application launcher, cmd runner, file manager and task manager ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_music"})})," : music applet, that controls MPD with ",(0,s.jsx)(n.code,{children:"mpc"})," ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_powermenu"})})," : power menu, with confirmation dialog ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_runner"})})," : quickly lets you run a command ",(0,s.jsx)("br",{}),"\n",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"rofi_screenshot"})})," : screenshot applet that works with maim ",(0,s.jsx)("br",{})]}),"\n",(0,s.jsx)(n.p,{children:"If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts above."}),"\n",(0,s.jsxs)(n.p,{children:["The configuration of each script can be found inside the ",(0,s.jsx)(n.em,{children:"theme"})," directory of 2bwm ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme"})]}),"\n",(0,s.jsxs)(n.p,{children:["Let's say you want to modify the looks of ",(0,s.jsx)(n.strong,{children:"launcher"}),", then you need to edit the ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/rofi/launcher.rasi"})," file. Same goes for every other applet, Edit the respective file in the same directory."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with rofi theming, run : ",(0,s.jsx)(n.code,{children:"man rofi-theme"})," in terminal."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["To change the colors and fonts of the launchers and applets, Edit the ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/rofi/shared/colors.rasi"})," and ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/theme/rofi/shared/fonts.rasi"})," files."]}),"\n",(0,s.jsx)(n.h3,{id:"compositor",children:"Compositor"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Picom"})," is used for compositing. It's a lightweight compositor with shadowing, advanced blurring and fading. In 2bwm, picom is launched with an alternative config file, which is ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/picom.conf"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"If you need to change anything related to picom, Edit this picom config file."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with picom config, check the picom's default config file in ",(0,s.jsx)(n.code,{children:"/etc/xdg/picom.conf"})]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsxs)(n.p,{children:["If you're having screen-tearing issues, using ",(0,s.jsx)(n.code,{children:"glx"})," backend can solve this issue. ",(0,s.jsx)("br",{}),"\nIf you're facing lagging, hangs and freezes, try switching between ",(0,s.jsx)(n.code,{children:"xrender"})," and ",(0,s.jsx)(n.code,{children:"glx"})," backend."]})}),"\n",(0,s.jsx)(n.h3,{id:"window-manager",children:"Window Manager"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"/opt/2bwm-source/config.h"})," is the main configuration file of 2bwm. If you need to change anything or perhaps you want to add/remove/change keybindings, Edit this file and recompile 2bwm and then install the new binary."]}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsxs)(n.p,{children:["If you need any help with 2bwm configuration and customisation, run : ",(0,s.jsx)(n.code,{children:"man 2bwm"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"keybindings",children:"Keybindings"}),"\n",(0,s.jsxs)(n.p,{children:["Here's a list of some important keybinds you need to know for operating 2bwm easily. If you want to view, modify or add new keybinds, Edit ",(0,s.jsx)(n.code,{children:"/opt/2bwm-source/config.h"})," file."]}),"\n",(0,s.jsx)(n.h3,{id:"applications",children:"Applications"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Return"})}),(0,s.jsx)(n.td,{children:"Open terminal (alacritty)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + Return"})}),(0,s.jsx)(n.td,{children:"Open fullscreen terminal"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + F"})}),(0,s.jsx)(n.td,{children:"Open file manager (thunar)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + E"})}),(0,s.jsx)(n.td,{children:"Open text editor (geany)"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + W"})}),(0,s.jsx)(n.td,{children:"Open web browser (firefox)"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"menu-and-applets",children:"Menu and Applets"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super"})}),(0,s.jsx)(n.td,{children:"Open application launcher"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + F1"})}),(0,s.jsx)(n.td,{children:"Open application launcher"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + F2"})}),(0,s.jsx)(n.td,{children:"Open command runner"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + N"})}),(0,s.jsx)(n.td,{children:"Open network manager applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + B"})}),(0,s.jsx)(n.td,{children:"Open bluetooth applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + M"})}),(0,s.jsx)(n.td,{children:"Open music applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + X"})}),(0,s.jsx)(n.td,{children:"Open powermenu applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + S"})}),(0,s.jsx)(n.td,{children:"Open screenshots applet"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + R"})}),(0,s.jsx)(n.td,{children:"Open apps as root applet"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"hardware-keys",children:"Hardware Keys"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"alt + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot in 5 seconds delay"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"shift + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot in 10 seconds delay"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot of currently focused window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Print"})}),(0,s.jsx)(n.td,{children:"Take screenshot of selected area"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioRaiseVolume"})}),(0,s.jsx)(n.td,{children:"Increase volume"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioLowerVolume"})}),(0,s.jsx)(n.td,{children:"Decrease volume"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioMute"})}),(0,s.jsx)(n.td,{children:"Toggle mute speakers"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86AudioMicMute"})}),(0,s.jsx)(n.td,{children:"Toggle mute microphone"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86MonBrightnessUp"})}),(0,s.jsx)(n.td,{children:"Increase display brightness"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"XF86MonBrightnessDown"})}),(0,s.jsx)(n.td,{children:"Decrease display brightness"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"workspaces",children:"Workspaces"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + 1..9,0"})}),(0,s.jsx)(n.td,{children:"Switch to respective workspace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + Right/Left"})}),(0,s.jsx)(n.td,{children:"Next/Previous workspace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + shift + Right/Left"})}),(0,s.jsx)(n.td,{children:"Move window to Next/Previous workspace"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Comma/Period"})}),(0,s.jsx)(n.td,{children:"Next/Previous screen"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"window-management",children:"Window Management"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + C/Q"})}),(0,s.jsx)(n.td,{children:"Close focued window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Tab"})}),(0,s.jsx)(n.td,{children:"Focus to next/previous window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Up/Down/Left/Right"})}),(0,s.jsx)(n.td,{children:"Move window directionally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + Up/Down/Left/Right"})}),(0,s.jsx)(n.td,{children:"Resize window directionally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + alt + Left/Right"})}),(0,s.jsx)(n.td,{children:"Resize while keeping the window's aspect ratio"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + G"})}),(0,s.jsx)(n.td,{children:"Teleport the window to center of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + G"})}),(0,s.jsx)(n.td,{children:"Teleport the window to centerY of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + G"})}),(0,s.jsx)(n.td,{children:"Teleport the window to centerX of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + H"})}),(0,s.jsx)(n.td,{children:"Teleport the window to Top left of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + K"})}),(0,s.jsx)(n.td,{children:"Teleport the window to Top right of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + J"})}),(0,s.jsx)(n.td,{children:"Teleport the window to Bottom left of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + L"})}),(0,s.jsx)(n.td,{children:"Teleport the window to Bottom right of the screen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + M"})}),(0,s.jsx)(n.td,{children:"Maximize window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + F"})}),(0,s.jsx)(n.td,{children:"Fullscreen window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + V"})}),(0,s.jsx)(n.td,{children:"Maximize vertically"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + V"})}),(0,s.jsx)(n.td,{children:"Maximize horizontally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + H"})}),(0,s.jsx)(n.td,{children:"Maximize and move vertically to the left"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + L"})}),(0,s.jsx)(n.td,{children:"Maximize and move vertically to the right"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + J"})}),(0,s.jsx)(n.td,{children:"Maximize and move horizontally to the left"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + K"})}),(0,s.jsx)(n.td,{children:"Maximize and move horizontally to the right"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + ctrl + K"})}),(0,s.jsx)(n.td,{children:"Maximize and move : fold half vertically"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + ctrl + H"})}),(0,s.jsx)(n.td,{children:"Maximize and move : fold half horizontally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + ctrl + J"})}),(0,s.jsx)(n.td,{children:"Maximize and move : unfold vertically"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + shift + ctrl + L"})}),(0,s.jsx)(n.td,{children:"Maximize and move : unfold horizontally"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + I"})}),(0,s.jsx)(n.td,{children:"Iconify the window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + A"})}),(0,s.jsx)(n.td,{children:"Make the window unkillable"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Z"})}),(0,s.jsx)(n.td,{children:"Raise or lower a window"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + T"})}),(0,s.jsx)(n.td,{children:"Make the window appear always on top"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + D"})}),(0,s.jsx)(n.td,{children:"Make the window stay on all workspaces"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Y"})}),(0,s.jsx)(n.td,{children:"Toggle sloppy"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + Space"})}),(0,s.jsx)(n.td,{children:"Make window half and centered"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"window-manager-1",children:"Window Manager"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + R"})}),(0,s.jsx)(n.td,{children:"Restart 2bwm"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + ctrl + Q"})}),(0,s.jsx)(n.td,{children:"Quit 2bwm"})]})]})]}),"\n",(0,s.jsx)(n.h3,{id:"misc-keys",children:"Misc Keys"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Keys"}),(0,s.jsx)(n.th,{children:"Action"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + alt + M"})}),(0,s.jsx)(n.td,{children:"Open ncmpcpp with album art in terminal"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"ctrl + alt + L"})}),(0,s.jsx)(n.td,{children:"Trigger lockscreen"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)("kbd",{children:"super + P"})}),(0,s.jsx)(n.td,{children:"Run colorpicker"})]})]})]}),"\n",(0,s.jsx)(n.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,s.jsxs)(n.p,{children:["Here's few screenshots of ",(0,s.jsx)(n.code,{children:"2bwm"})," desktop. These'll give you an idea of the experience of 2bwm in Archcraft."]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 1"}),(0,s.jsx)(n.th,{children:"Desktop 2"}),(0,s.jsx)(n.th,{children:"Desktop 3"}),(0,s.jsx)(n.th,{children:"Desktop 4"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_1.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_2.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_3.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_4.png",alt:"img"})})]})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 5"}),(0,s.jsx)(n.th,{children:"Desktop 6"}),(0,s.jsx)(n.th,{children:"Desktop 7"}),(0,s.jsx)(n.th,{children:"Desktop 8"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_5.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_6.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_7.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_8.png",alt:"img"})})]})})]}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Desktop 9"}),(0,s.jsx)(n.th,{children:"Desktop 10"}),(0,s.jsx)(n.th,{children:"Desktop 11"}),(0,s.jsx)(n.th,{children:"Desktop 12"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_9.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_10.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_11.png",alt:"img"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/2bwm/desktop/desktop_12.png",alt:"img"})})]})})]}),"\n",(0,s.jsx)(n.h2,{id:"faqs",children:"FAQs"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"How to change GTK theme, icons and cursor?"})}),(0,s.jsxs)(n.p,{children:["To change GTK theme, icons and cursor in 2bwm session, Edit ",(0,s.jsx)(n.code,{children:"/usr/share/archcraft/2bwm/xsettingsd"})," file and restart 2bwm to apply the changes."]}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-ini",children:'Net/ThemeName "Nordic"\nNet/IconThemeName "Zafiro"\nGtk/CursorThemeName "Qogirr"\n'})})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"How to manage multiple monitors and resolution in 2bwm?"})}),(0,s.jsxs)(n.p,{children:["If you use multiple monitors with 2bwm window manager, you can manage them by running ",(0,s.jsx)(n.em,{children:"Manager Monitors"})," or ",(0,s.jsx)(n.code,{children:"archcraft-randr"})," app."]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:(0,s.jsx)("b",{children:"Why Alacritty is not working on my computer?"})}),(0,s.jsx)(n.p,{children:"Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :"}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Open alacritty with ",(0,s.jsx)(n.strong,{children:"LIBGL_ALWAYS_SOFTWARE=1"})," variable. Edit the keybindings/script launching alacritty and replace ",(0,s.jsx)(n.code,{children:"alacritty"})," with ",(0,s.jsx)(n.code,{children:"LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n",(0,s.jsxs)(n.li,{children:["Edit ",(0,s.jsx)(n.strong,{children:"/usr/share/applications/Alacritty.desktop"})," desktop file and replace ",(0,s.jsx)(n.code,{children:"Exec=alacritty"})," with ",(0,s.jsx)(n.code,{children:"Exec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n"]})]})]})}function x(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},5162:(e,n,r)=>{r.d(n,{Z:()=>d});r(7294);var s=r(512);const t={tabItem:"tabItem_Ymn6"};var i=r(5893);function d(e){let{children:n,hidden:r,className:d}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,s.Z)(t.tabItem,d),hidden:r,children:n})}},4866:(e,n,r)=>{r.d(n,{Z:()=>y});var s=r(7294),t=r(512),i=r(2466),d=r(6550),c=r(469),l=r(1980),o=r(7392),a=r(12);function h(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function x(e){const{values:n,children:r}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:r,attributes:s,default:t}}=e;return{value:n,label:r,attributes:s,default:t}}))}(r);return function(e){const n=(0,o.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,r])}function j(e){let{value:n,tabValues:r}=e;return r.some((e=>e.value===n))}function u(e){let{queryString:n=!1,groupId:r}=e;const t=(0,d.k6)(),i=function(e){let{queryString:n=!1,groupId:r}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:n,groupId:r});return[(0,l._X)(i),(0,s.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(t.location.search);n.set(i,e),t.replace({...t.location,search:n.toString()})}),[i,t])]}function p(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,i=x(e),[d,l]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!j({value:n,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=r.find((e=>e.default))??r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:i}))),[o,h]=u({queryString:r,groupId:t}),[p,m]=function(e){let{groupId:n}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(n),[t,i]=(0,a.Nk)(r);return[t,(0,s.useCallback)((e=>{r&&i.set(e)}),[r,i])]}({groupId:t}),f=(()=>{const e=o??p;return j({value:e,tabValues:i})?e:null})();(0,c.Z)((()=>{f&&l(f)}),[f]);return{selectedValue:d,selectValue:(0,s.useCallback)((e=>{if(!j({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),h(e),m(e)}),[h,m,i]),tabValues:i}}var m=r(2389);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=r(5893);function w(e){let{className:n,block:r,selectedValue:s,selectValue:d,tabValues:c}=e;const l=[],{blockElementScrollPositionUntilNextRender:o}=(0,i.o5)(),a=e=>{const n=e.currentTarget,r=l.indexOf(n),t=c[r].value;t!==s&&(o(n),d(t))},h=e=>{let n=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const r=l.indexOf(e.currentTarget)+1;n=l[r]??l[0];break}case"ArrowLeft":{const r=l.indexOf(e.currentTarget)-1;n=l[r]??l[l.length-1];break}}n?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":r},n),children:c.map((e=>{let{value:n,label:r,attributes:i}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>l.push(e),onKeyDown:h,onClick:a,...i,className:(0,t.Z)("tabs__item",f.tabItem,i?.className,{"tabs__item--active":s===n}),children:r??n},n)}))})}function g(e){let{lazy:n,children:r,selectedValue:t}=e;const i=(Array.isArray(r)?r:[r]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===t));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:i.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==t})))})}function k(e){const n=p(e);return(0,b.jsxs)("div",{className:(0,t.Z)("tabs-container",f.tabList),children:[(0,b.jsx)(w,{...e,...n}),(0,b.jsx)(g,{...e,...n})]})}function y(e){const n=(0,m.Z)();return(0,b.jsx)(k,{...e,children:h(e.children)},String(n))}},1151:(e,n,r)=>{r.d(n,{Z:()=>c,a:()=>d});var s=r(7294);const t={},i=s.createContext(t);function d(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3f937843.746a70d1.js b/assets/js/3f937843.746a70d1.js new file mode 100644 index 00000000..8141b105 --- /dev/null +++ b/assets/js/3f937843.746a70d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[7113],{2793:(e,s,t)=>{t.r(s),t.d(s,{Highlight:()=>a,assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>o});var n=t(5893),r=t(1151);t(4866),t(5162);const i={sidebar_position:3,hide_table_of_contents:!1},l="Herbstluftwm",c={id:"window-managers/tiling-wm/herbstluftwm",title:"Herbstluftwm",description:"Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or \u2026) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup.",source:"@site/docs/window-managers/tiling-wm/herbstluftwm.mdx",sourceDirName:"window-managers/tiling-wm",slug:"/window-managers/tiling-wm/herbstluftwm",permalink:"/docs/window-managers/tiling-wm/herbstluftwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/tiling-wm/herbstluftwm.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"i3wm",permalink:"/docs/window-managers/tiling-wm/i3wm"},next:{title:"Qtile",permalink:"/docs/window-managers/dynamic-wm/qtile"}},d={},o=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Config Structure",id:"config-structure",level:3},{value:"Terminal",id:"terminal",level:3},{value:"Notification",id:"notification",level:3},{value:"Wallpaper",id:"wallpaper",level:3},{value:"Statusbar",id:"statusbar",level:3},{value:"Launchers and Applets",id:"launchers-and-applets",level:3},{value:"Compositor",id:"compositor",level:3},{value:"Window Manager",id:"window-manager",level:3},{value:"Keybindings",id:"keybindings",level:2},{value:"Applications",id:"applications",level:3},{value:"Menu and Applets",id:"menu-and-applets",level:3},{value:"Hardware Keys",id:"hardware-keys",level:3},{value:"Workspaces",id:"workspaces",level:3},{value:"Window Management",id:"window-management",level:3},{value:"Window Manager",id:"window-manager-1",level:3},{value:"Misc Keys",id:"misc-keys",level:3},{value:"Screenshots",id:"screenshots",level:2},{value:"FAQs",id:"faqs",level:2}],a=({children:e,color:s})=>{const t={span:"span",...(0,r.a)()};return(0,n.jsx)(t.span,{style:{backgroundColor:s,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function h(e){const s={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.a)(),...e.components},{Details:t}=s;return t||function(e,s){throw new Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"herbstluftwm",children:"Herbstluftwm"}),"\n","\n","\n","\n",(0,n.jsx)(s.p,{children:"Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or \u2026) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup."}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/main.png",alt:"img"})}),"\n",(0,n.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,n.jsxs)(s.p,{children:["Once you finish installing Archcraft, ",(0,n.jsx)(s.strong,{children:"herbstluftwm"})," can be installed on the top of it. It's pre-configured and ready to go. Open a terminal and run the following command to install it :"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"$ sudo pacman -Sy archcraft-herbstluftwm\n"})}),"\n",(0,n.jsx)(s.h2,{id:"configuration",children:"Configuration"}),"\n",(0,n.jsx)(s.p,{children:"herbstluftwm is pre-configured in Archcraft. In this section, We'll see how the herbstluftwm window manager is configured, what tools and utilities are used to make it look and work like a complete desktop environment."}),"\n",(0,n.jsx)(s.h3,{id:"config-structure",children:"Config Structure"}),"\n",(0,n.jsx)(s.p,{children:"The configuration structure of herbstluftwm in Archcraft looks something like this:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"~/.config\n\u2514\u2500\u2500 herbstluftwm : herbstluftwm config directory\n \u251c\u2500\u2500 alacritty : terminal config\n \u251c\u2500\u2500 scripts : scripts used for herbstluftwm\n \u251c\u2500\u2500 themes : desktop theme (polybar, rofi configs) \n \u251c\u2500\u2500 autostart : main herbstluftwm config file\n \u251c\u2500\u2500 dunstrc : dunst config for notifications\n \u251c\u2500\u2500 picom.conf : compositor config\n \u2514\u2500\u2500 xsettingsd : gtk themes, icons and fonts config file\n"})}),"\n",(0,n.jsx)(s.h3,{id:"terminal",children:"Terminal"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Alacritty"})," is the default terminal. In the herbstluftwm window manager, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/alacritty"})," directory. These are the following config files you can modify to change the behaviour of your terminal:"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/alacritty/alacritty.toml"})})," : Main configuration file ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/alacritty/colors.toml"})})," : Colors configurations ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/alacritty/fonts.toml"})})," : Fonts configurations"]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with alacritty config, run : ",(0,n.jsx)(s.code,{children:"man 5 alacritty"})," in terminal."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"notification",children:"Notification"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Dunst"})," is used as a notification daemon for notifications in herbstluftwm. In the herbstluftwm window manager, dunst is launched with an alternative config file, which is ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/dunstrc"}),". So, If you need to modify anything, make sure you edit this file."]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with dunst config, run : ",(0,n.jsx)(s.code,{children:"man 5 dunst"})," in terminal."]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"wallpaper",children:"Wallpaper"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"hsetroot"})," sets the wallpaper in the herbstluftwm. If you want to change the wallpaper, Edit ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/scripts/herb_autostart"})," script and add the path to your wallpaper :"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"# Restore wallpaper\nhsetroot -cover '/path/to/your/wallpaper'\n#hsetroot -solid \"#BDBAB5\"\n"})}),"\n",(0,n.jsx)(s.h3,{id:"statusbar",children:"Statusbar"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Polybar"})," is used as the statusbar in Archcraft's herbstluftwm window manager."]}),"\n",(0,n.jsxs)(s.p,{children:["The configurations for polybar can be found inside the ",(0,n.jsx)(s.em,{children:"theme"})," directory directory of herbstluftwm ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme"})]}),"\n",(0,n.jsxs)(s.p,{children:["If you want to modify the ",(0,n.jsx)(s.strong,{children:"polybar"})," settings, or perhaps want to add/remove modules, then you need to edit the following files :"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/polybar/config.ini"})})," : Main config file ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/polybar/colors.ini"})})," : Colors config file ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/polybar/modules.ini"})})," : Modules config file"]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with polybar config, visit : ",(0,n.jsx)(s.a,{href:"https://github.com/polybar/polybar/wiki",children:"polybar wiki"})]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"launchers-and-applets",children:"Launchers and Applets"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Rofi"})," is used for application launchers, command runner and various applets. To modify the rofi config, edit ",(0,n.jsx)(s.code,{children:"~/.config/rofi/config.rasi"})," file."]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with rofi config, run : ",(0,n.jsx)(s.code,{children:"man rofi"})," in terminal."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["The scripts for rofi that are used in herbstluftwm can be found it ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/scripts"})," directory. These are the following scripts that uses rofi to provide the launchers and applets in herbstluftwm :"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_askpass"})})," : rofi based ",(0,n.jsx)(s.code,{children:"sudo"})," frontend to get root password ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_asroot"})})," : applet to open apps as root ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_bluetooth"})})," : bluetooth applet to quickly connect to BT devices ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_launcher"})})," : an application launcher, cmd runner, file manager and task manager ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_music"})})," : music applet, that controls MPD with ",(0,n.jsx)(s.code,{children:"mpc"})," ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_powermenu"})})," : power menu, with confirmation dialog ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_runner"})})," : quickly lets you run a command ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_screenshot"})})," : screenshot applet that works with maim ",(0,n.jsx)("br",{}),"\n",(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"rofi_windows"})})," : applet to manage opened windows ",(0,n.jsx)("br",{})]}),"\n",(0,n.jsx)(s.p,{children:"If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts above."}),"\n",(0,n.jsxs)(s.p,{children:["The configuration of each script can be found inside the ",(0,n.jsx)(s.em,{children:"theme"})," directory of herbstluftwm ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme"})]}),"\n",(0,n.jsxs)(s.p,{children:["Let's say you want to modify the looks of ",(0,n.jsx)(s.strong,{children:"launcher"}),", then you need to edit the ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/rofi/launcher.rasi"})," file. Same goes for every other applet, Edit the respective file in the same directory."]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with rofi theming, run : ",(0,n.jsx)(s.code,{children:"man rofi-theme"})," in terminal."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["To change the colors and fonts of the launchers and applets, Edit the ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/rofi/shared/colors.rasi"})," and ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/theme/rofi/shared/fonts.rasi"})," files."]}),"\n",(0,n.jsx)(s.h3,{id:"compositor",children:"Compositor"}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:"Picom"})," is used for compositing. It's a lightweight compositor with shadowing, advanced blurring and fading. In herbstluftwm, picom is launched with an alternative config file, which is ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/picom.conf"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"If you need to change anything related to picom, Edit this picom config file."}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with picom config, check the picom's default config file in ",(0,n.jsx)(s.code,{children:"/etc/xdg/picom.conf"})]}),"\n"]}),"\n",(0,n.jsx)(s.admonition,{type:"info",children:(0,n.jsxs)(s.p,{children:["If you're having screen-tearing issues, using ",(0,n.jsx)(s.code,{children:"glx"})," backend can solve this issue. ",(0,n.jsx)("br",{}),"\nIf you're facing lagging, hangs and freezes, try switching between ",(0,n.jsx)(s.code,{children:"xrender"})," and ",(0,n.jsx)(s.code,{children:"glx"})," backend."]})}),"\n",(0,n.jsx)(s.h3,{id:"window-manager",children:"Window Manager"}),"\n",(0,n.jsxs)(s.p,{children:["The configuration of herbstluftwm is available in ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm"}),". To configure herbstluftwm window manager, this is the main file that is used :"]}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.strong,{children:(0,n.jsx)(s.code,{children:"autostart"})})," : main configuration file responsible for determining the behaviour and settings of the overall session. Edit this file to set window rules, configure tags, layouts, and herbstluftwm appearance."]}),"\n",(0,n.jsxs)(s.blockquote,{children:["\n",(0,n.jsxs)(s.p,{children:["If you need any help with herbstluftwm configuration, visit : ",(0,n.jsx)(s.a,{href:"https://herbstluftwm.org/tutorial.html",children:"herbstluftwm.org"})," ",(0,n.jsx)("br",{})]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"keybindings",children:"Keybindings"}),"\n",(0,n.jsxs)(s.p,{children:["Here's a list of some important keybinds you need to know for operating herbstluftwm easily. If you want to view, modify or add new keybinds, Edit ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/autostart"})," file."]}),"\n",(0,n.jsx)(s.h3,{id:"applications",children:"Applications"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Return"})}),(0,n.jsx)(s.td,{children:"Open terminal (alacritty)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + Return"})}),(0,n.jsx)(s.td,{children:"Open floating terminal"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + alt + Return"})}),(0,n.jsx)(s.td,{children:"Open fullscreen terminal"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + F"})}),(0,n.jsx)(s.td,{children:"Open file manager (thunar)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + E"})}),(0,n.jsx)(s.td,{children:"Open text editor (geany)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + W"})}),(0,n.jsx)(s.td,{children:"Open web browser (firefox)"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"menu-and-applets",children:"Menu and Applets"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super"})}),(0,n.jsx)(s.td,{children:"Open application launcher"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"alt + F1"})}),(0,n.jsx)(s.td,{children:"Open application launcher"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"alt + F2"})}),(0,n.jsx)(s.td,{children:"Open command runner"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + N"})}),(0,n.jsx)(s.td,{children:"Open network manager applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + B"})}),(0,n.jsx)(s.td,{children:"Open bluetooth applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + M"})}),(0,n.jsx)(s.td,{children:"Open music applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + X"})}),(0,n.jsx)(s.td,{children:"Open powermenu applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + S"})}),(0,n.jsx)(s.td,{children:"Open screenshots applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + R"})}),(0,n.jsx)(s.td,{children:"Open apps as root applet"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + W"})}),(0,n.jsx)(s.td,{children:"Open window applet"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"hardware-keys",children:"Hardware Keys"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"Print"})}),(0,n.jsx)(s.td,{children:"Take screenshot"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"alt + Print"})}),(0,n.jsx)(s.td,{children:"Take screenshot in 5 seconds delay"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"shift + Print"})}),(0,n.jsx)(s.td,{children:"Take screenshot in 10 seconds delay"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"ctrl + Print"})}),(0,n.jsx)(s.td,{children:"Take screenshot of currently focused window"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Print"})}),(0,n.jsx)(s.td,{children:"Take screenshot of selected area"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86AudioRaiseVolume"})}),(0,n.jsx)(s.td,{children:"Increase volume"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86AudioLowerVolume"})}),(0,n.jsx)(s.td,{children:"Decrease volume"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86AudioMute"})}),(0,n.jsx)(s.td,{children:"Toggle mute speakers"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86AudioMicMute"})}),(0,n.jsx)(s.td,{children:"Toggle mute microphone"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86Audio + Next/Prev/Play/Stop"})}),(0,n.jsx)(s.td,{children:"Media controls (MPD)"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86MonBrightnessUp"})}),(0,n.jsx)(s.td,{children:"Increase display brightness"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"XF86MonBrightnessDown"})}),(0,n.jsx)(s.td,{children:"Decrease display brightness"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"workspaces",children:"Workspaces"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + 1..9"})}),(0,n.jsx)(s.td,{children:"Switch to respective tag"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + 1..9"})}),(0,n.jsx)(s.td,{children:"Send focused client to respective tag"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Comma/Period"})}),(0,n.jsx)(s.td,{children:"Cycle through tags"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + BackSpace"})}),(0,n.jsx)(s.td,{children:"Cycle monitor"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"window-management",children:"Window Management"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + C"})}),(0,n.jsx)(s.td,{children:"Close focused client"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Left/Right/Up/Down"})}),(0,n.jsx)(s.td,{children:"Focus left, right, top and bottom clients respectively"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + H/L/K/J"})}),(0,n.jsx)(s.td,{children:"Focus left, right, top and bottom clients respectively"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + Left/Right/Up/Down"})}),(0,n.jsx)(s.td,{children:"Move clients in tiling and floating mode"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + H/L/K/J"})}),(0,n.jsx)(s.td,{children:"Move clients in tiling and floating mode"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + ctrl + Left/Right/Up/Down"})}),(0,n.jsx)(s.td,{children:"Resize frames and floating clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + ctrl + H/L/K/J"})}),(0,n.jsx)(s.td,{children:"Resize frames and floating clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + U"})}),(0,n.jsx)(s.td,{children:"Splitting frames, create an empty frame at bottom"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + O"})}),(0,n.jsx)(s.td,{children:"Splitting frames, create an empty frame in right"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + ctrl + S"})}),(0,n.jsx)(s.td,{children:"Let the current frame explode into subframes"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + D"})}),(0,n.jsx)(s.td,{children:"Remove subframes"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Tab"})}),(0,n.jsx)(s.td,{children:"Cycle clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"alt + Tab"})}),(0,n.jsx)(s.td,{children:"Cycle clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + I"})}),(0,n.jsx)(s.td,{children:"Jump to urgent client"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + F"})}),(0,n.jsx)(s.td,{children:"Toggle fullscreen"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + Space"})}),(0,n.jsx)(s.td,{children:"Toggle focus between floating and tiled clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + ctrl + Space"})}),(0,n.jsx)(s.td,{children:"Toggle floating"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + M"})}),(0,n.jsx)(s.td,{children:"Focus minimized clients"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + ctrl + M"})}),(0,n.jsx)(s.td,{children:"Jump to last minimized client"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + G"})}),(0,n.jsx)(s.td,{children:"Toggle pseudotile"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Space"})}),(0,n.jsx)(s.td,{children:"Cycles through the available layouts"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"window-manager-1",children:"Window Manager"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + R"})}),(0,n.jsx)(s.td,{children:"Reload herbstluftwm"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + shift + Q"})}),(0,n.jsx)(s.td,{children:"Quit herbstluftwm"})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"misc-keys",children:"Misc Keys"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Keys"}),(0,n.jsx)(s.th,{children:"Action"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"ctrl + alt + M"})}),(0,n.jsx)(s.td,{children:"Open ncmpcpp with album art in terminal"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"ctrl + alt + L"})}),(0,n.jsx)(s.td,{children:"Trigger lockscreen"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + P"})}),(0,n.jsx)(s.td,{children:"Run colorpicker"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)("kbd",{children:"super + Escape"})}),(0,n.jsx)(s.td,{children:"Run xkill"})]})]})]}),"\n",(0,n.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,n.jsxs)(s.p,{children:["Here's few screenshots of ",(0,n.jsx)(s.code,{children:"herbstluftwm"})," desktop. These'll give you an idea of the experience of herbstluftwm in Archcraft."]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Desktop 1"}),(0,n.jsx)(s.th,{children:"Desktop 2"}),(0,n.jsx)(s.th,{children:"Desktop 3"}),(0,n.jsx)(s.th,{children:"Desktop 4"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_1.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_2.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_3.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_4.png",alt:"img"})})]})})]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Desktop 5"}),(0,n.jsx)(s.th,{children:"Desktop 6"}),(0,n.jsx)(s.th,{children:"Desktop 7"}),(0,n.jsx)(s.th,{children:"Desktop 8"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_5.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_6.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_7.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_8.png",alt:"img"})})]})})]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Desktop 9"}),(0,n.jsx)(s.th,{children:"Desktop 10"}),(0,n.jsx)(s.th,{children:"Desktop 11"}),(0,n.jsx)(s.th,{children:"Desktop 12"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_9.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_10.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_11.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_12.png",alt:"img"})})]})})]}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Desktop 13"}),(0,n.jsx)(s.th,{children:"Desktop 14"}),(0,n.jsx)(s.th,{children:"Desktop 15"}),(0,n.jsx)(s.th,{children:"Desktop 16"})]})}),(0,n.jsx)(s.tbody,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_13.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_14.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_15.png",alt:"img"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/herbstluftwm/desktop/desktop_16.png",alt:"img"})})]})})]}),"\n",(0,n.jsx)(s.h2,{id:"faqs",children:"FAQs"}),"\n",(0,n.jsxs)(t,{children:[(0,n.jsx)("summary",{children:(0,n.jsx)("b",{children:"How to update my config to new configs?"})}),(0,n.jsxs)(s.p,{children:["When a new version of Archcraft herbstluftwm get released, And you update the system by ",(0,n.jsx)(s.code,{children:"sudo pacman -Syu"})," or you update the herbstluftwm package by ",(0,n.jsx)(s.code,{children:"sudo pacman -S archcraft-herbstluftwm"}),", New config files get installed as ",(0,n.jsx)(s.strong,{children:"herbstluftwm_pacnew_YYYY-MM-DD"})," in your ",(0,n.jsx)(s.code,{children:"~/.config"})," directory."]}),(0,n.jsxs)(s.p,{children:["To use new configs, backup your old ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm"})," directory and move ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm_pacnew_YYYY-MM-DD"})," to ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm"})," and login again."]})]}),"\n",(0,n.jsxs)(t,{children:[(0,n.jsx)("summary",{children:(0,n.jsx)("b",{children:"How to change GTK theme, icons and cursor?"})}),(0,n.jsxs)(s.p,{children:["To change GTK theme, icons and cursor in herbstluftwm session, Edit ",(0,n.jsx)(s.code,{children:"~/.config/herbstluftwm/xsettingsd"})," file and restart herbstluftwm to apply the changes."]}),(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-ini",children:'Net/ThemeName "Adwaita-dark"\nNet/IconThemeName "Zafiro"\nGtk/CursorThemeName "Qogirr"\n'})})]}),"\n",(0,n.jsxs)(t,{children:[(0,n.jsx)("summary",{children:(0,n.jsx)("b",{children:"How to manage multiple monitors and resolution in herbstluftwm?"})}),(0,n.jsxs)(s.p,{children:["If you use multiple monitors with herbstluftwm window manager, you can manage them by running ",(0,n.jsx)(s.em,{children:"Manager Monitors"})," or ",(0,n.jsx)(s.code,{children:"archcraft-randr"})," app."]})]}),"\n",(0,n.jsxs)(t,{children:[(0,n.jsx)("summary",{children:(0,n.jsx)("b",{children:"Why Alacritty is not working on my computer?"})}),(0,n.jsx)(s.p,{children:"Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :"}),(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:["Open alacritty with ",(0,n.jsx)(s.strong,{children:"LIBGL_ALWAYS_SOFTWARE=1"})," variable. Edit the keybindings/script launching alacritty and replace ",(0,n.jsx)(s.code,{children:"alacritty"})," with ",(0,n.jsx)(s.code,{children:"LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n",(0,n.jsxs)(s.li,{children:["Edit ",(0,n.jsx)(s.strong,{children:"/usr/share/applications/Alacritty.desktop"})," desktop file and replace ",(0,n.jsx)(s.code,{children:"Exec=alacritty"})," with ",(0,n.jsx)(s.code,{children:"Exec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n"]})]})]})}function u(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},5162:(e,s,t)=>{t.d(s,{Z:()=>l});t(7294);var n=t(512);const r={tabItem:"tabItem_Ymn6"};var i=t(5893);function l(e){let{children:s,hidden:t,className:l}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,n.Z)(r.tabItem,l),hidden:t,children:s})}},4866:(e,s,t)=>{t.d(s,{Z:()=>k});var n=t(7294),r=t(512),i=t(2466),l=t(6550),c=t(469),d=t(1980),o=t(7392),a=t(12);function h(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:s,children:t}=e;return(0,n.useMemo)((()=>{const e=s??function(e){return h(e).map((e=>{let{props:{value:s,label:t,attributes:n,default:r}}=e;return{value:s,label:t,attributes:n,default:r}}))}(t);return function(e){const s=(0,o.l)(e,((e,s)=>e.value===s.value));if(s.length>0)throw new Error(`Docusaurus error: Duplicate values "${s.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[s,t])}function x(e){let{value:s,tabValues:t}=e;return t.some((e=>e.value===s))}function j(e){let{queryString:s=!1,groupId:t}=e;const r=(0,l.k6)(),i=function(e){let{queryString:s=!1,groupId:t}=e;if("string"==typeof s)return s;if(!1===s)return null;if(!0===s&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:s,groupId:t});return[(0,d._X)(i),(0,n.useCallback)((e=>{if(!i)return;const s=new URLSearchParams(r.location.search);s.set(i,e),r.replace({...r.location,search:s.toString()})}),[i,r])]}function p(e){const{defaultValue:s,queryString:t=!1,groupId:r}=e,i=u(e),[l,d]=(0,n.useState)((()=>function(e){let{defaultValue:s,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(s){if(!x({value:s,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${s}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return s}const n=t.find((e=>e.default))??t[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:s,tabValues:i}))),[o,h]=j({queryString:t,groupId:r}),[p,m]=function(e){let{groupId:s}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(s),[r,i]=(0,a.Nk)(t);return[r,(0,n.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:r}),f=(()=>{const e=o??p;return x({value:e,tabValues:i})?e:null})();(0,c.Z)((()=>{f&&d(f)}),[f]);return{selectedValue:l,selectValue:(0,n.useCallback)((e=>{if(!x({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);d(e),h(e),m(e)}),[h,m,i]),tabValues:i}}var m=t(2389);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=t(5893);function b(e){let{className:s,block:t,selectedValue:n,selectValue:l,tabValues:c}=e;const d=[],{blockElementScrollPositionUntilNextRender:o}=(0,i.o5)(),a=e=>{const s=e.currentTarget,t=d.indexOf(s),r=c[t].value;r!==n&&(o(s),l(r))},h=e=>{let s=null;switch(e.key){case"Enter":a(e);break;case"ArrowRight":{const t=d.indexOf(e.currentTarget)+1;s=d[t]??d[0];break}case"ArrowLeft":{const t=d.indexOf(e.currentTarget)-1;s=d[t]??d[d.length-1];break}}s?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.Z)("tabs",{"tabs--block":t},s),children:c.map((e=>{let{value:s,label:t,attributes:i}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:n===s?0:-1,"aria-selected":n===s,ref:e=>d.push(e),onKeyDown:h,onClick:a,...i,className:(0,r.Z)("tabs__item",f.tabItem,i?.className,{"tabs__item--active":n===s}),children:t??s},s)}))})}function w(e){let{lazy:s,children:t,selectedValue:r}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(s){const e=i.find((e=>e.props.value===r));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:i.map(((e,s)=>(0,n.cloneElement)(e,{key:s,hidden:e.props.value!==r})))})}function y(e){const s=p(e);return(0,g.jsxs)("div",{className:(0,r.Z)("tabs-container",f.tabList),children:[(0,g.jsx)(b,{...e,...s}),(0,g.jsx)(w,{...e,...s})]})}function k(e){const s=(0,m.Z)();return(0,g.jsx)(y,{...e,children:h(e.children)},String(s))}},1151:(e,s,t)=>{t.d(s,{Z:()=>c,a:()=>l});var n=t(7294);const r={},i=n.createContext(r);function l(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3f937843.c5e37a6e.js b/assets/js/3f937843.c5e37a6e.js deleted file mode 100644 index eebb5735..00000000 --- a/assets/js/3f937843.c5e37a6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[7113],{2793:(e,t,r)=>{r.r(t),r.d(t,{Highlight:()=>c,assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(5893),a=r(1151);r(4866),r(5162);const o={sidebar_position:3,hide_table_of_contents:!1},s="Herbstluftwm",l={id:"window-managers/tiling-wm/herbstluftwm",title:"Herbstluftwm",description:"Work In Progress...",source:"@site/docs/window-managers/tiling-wm/herbstluftwm.mdx",sourceDirName:"window-managers/tiling-wm",slug:"/window-managers/tiling-wm/herbstluftwm",permalink:"/docs/window-managers/tiling-wm/herbstluftwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/tiling-wm/herbstluftwm.mdx",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"i3wm",permalink:"/docs/window-managers/tiling-wm/i3wm"},next:{title:"Qtile",permalink:"/docs/window-managers/dynamic-wm/qtile"}},u={},i=[],c=({children:e,color:t})=>{const r={span:"span",...(0,a.a)()};return(0,n.jsx)(r.span,{style:{backgroundColor:t,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function d(e){const t={h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"herbstluftwm",children:"Herbstluftwm"}),"\n","\n","\n","\n",(0,n.jsx)(t.p,{children:"Work In Progress..."})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},5162:(e,t,r)=>{r.d(t,{Z:()=>s});r(7294);var n=r(512);const a={tabItem:"tabItem_Ymn6"};var o=r(5893);function s(e){let{children:t,hidden:r,className:s}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,n.Z)(a.tabItem,s),hidden:r,children:t})}},4866:(e,t,r)=>{r.d(t,{Z:()=>k});var n=r(7294),a=r(512),o=r(2466),s=r(6550),l=r(469),u=r(1980),i=r(7392),c=r(12);function d(e){return n.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,n.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:t,children:r}=e;return(0,n.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:r,attributes:n,default:a}}=e;return{value:t,label:r,attributes:n,default:a}}))}(r);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,r])}function f(e){let{value:t,tabValues:r}=e;return r.some((e=>e.value===t))}function b(e){let{queryString:t=!1,groupId:r}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:r}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:t,groupId:r});return[(0,u._X)(o),(0,n.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function h(e){const{defaultValue:t,queryString:r=!1,groupId:a}=e,o=m(e),[s,u]=(0,n.useState)((()=>function(e){let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!f({value:t,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${r.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=r.find((e=>e.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:o}))),[i,d]=b({queryString:r,groupId:a}),[h,p]=function(e){let{groupId:t}=e;const r=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(r);return[a,(0,n.useCallback)((e=>{r&&o.set(e)}),[r,o])]}({groupId:a}),w=(()=>{const e=i??h;return f({value:e,tabValues:o})?e:null})();(0,l.Z)((()=>{w&&u(w)}),[w]);return{selectedValue:s,selectValue:(0,n.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),d(e),p(e)}),[d,p,o]),tabValues:o}}var p=r(2389);const w={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=r(5893);function v(e){let{className:t,block:r,selectedValue:n,selectValue:s,tabValues:l}=e;const u=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),c=e=>{const t=e.currentTarget,r=u.indexOf(t),a=l[r].value;a!==n&&(i(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=u.indexOf(e.currentTarget)+1;t=u[r]??u[0];break}case"ArrowLeft":{const r=u.indexOf(e.currentTarget)-1;t=u[r]??u[u.length-1];break}}t?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":r},t),children:l.map((e=>{let{value:t,label:r,attributes:o}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:n===t?0:-1,"aria-selected":n===t,ref:e=>u.push(e),onKeyDown:d,onClick:c,...o,className:(0,a.Z)("tabs__item",w.tabItem,o?.className,{"tabs__item--active":n===t}),children:r??t},t)}))})}function x(e){let{lazy:t,children:r,selectedValue:a}=e;const o=(Array.isArray(r)?r:[r]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,n.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:o.map(((e,t)=>(0,n.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function y(e){const t=h(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",w.tabList),children:[(0,g.jsx)(v,{...e,...t}),(0,g.jsx)(x,{...e,...t})]})}function k(e){const t=(0,p.Z)();return(0,g.jsx)(y,{...e,children:d(e.children)},String(t))}},1151:(e,t,r)=>{r.d(t,{Z:()=>l,a:()=>s});var n=r(7294);const a={},o=n.createContext(a);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.68ada291.js b/assets/js/935f2afb.ab861a1b.js similarity index 71% rename from assets/js/935f2afb.68ada291.js rename to assets/js/935f2afb.ab861a1b.js index 6735c211..118bd9d7 100644 --- a/assets/js/935f2afb.68ada291.js +++ b/assets/js/935f2afb.ab861a1b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[53],{1109:i=>{i.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Welcome","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Boot Archcraft","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create A Bootable USB","href":"/docs/boot-iso/boot-with-usb","docId":"boot-iso/boot-with-usb","unlisted":false},{"type":"link","label":"Boot Archcraft with GRUB","href":"/docs/boot-iso/boot-with-grub","docId":"boot-iso/boot-with-grub","unlisted":false},{"type":"link","label":"Boot Archcraft in VMs","href":"/docs/boot-iso/boot-in-vm","docId":"boot-iso/boot-in-vm","unlisted":false}]},{"type":"category","label":"Install Archcraft","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Install Archcraft With Calamares","href":"/docs/install-archcraft/install-with-calamares","docId":"install-archcraft/install-with-calamares","unlisted":false},{"type":"link","label":"Install Archcraft With ABIF","href":"/docs/install-archcraft/install-with-abif","docId":"install-archcraft/install-with-abif","unlisted":false},{"type":"link","label":"Post Installation","href":"/docs/install-archcraft/post-install","docId":"install-archcraft/post-install","unlisted":false}]},{"type":"category","label":"Window Managers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Stacking WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Openbox","href":"/docs/window-managers/stacking-wm/openbox","docId":"window-managers/stacking-wm/openbox","unlisted":false},{"type":"link","label":"2bwm","href":"/docs/window-managers/stacking-wm/2bwm","docId":"window-managers/stacking-wm/2bwm","unlisted":false},{"type":"link","label":"Berry","href":"/docs/window-managers/stacking-wm/berry","docId":"window-managers/stacking-wm/berry","unlisted":false},{"type":"link","label":"Blackbox","href":"/docs/window-managers/stacking-wm/blackbox","docId":"window-managers/stacking-wm/blackbox","unlisted":false},{"type":"link","label":"CWM","href":"/docs/window-managers/stacking-wm/cwm","docId":"window-managers/stacking-wm/cwm","unlisted":false},{"type":"link","label":"EvilWM","href":"/docs/window-managers/stacking-wm/evilwm","docId":"window-managers/stacking-wm/evilwm","unlisted":false},{"type":"link","label":"Fluxbox","href":"/docs/window-managers/stacking-wm/fluxbox","docId":"window-managers/stacking-wm/fluxbox","unlisted":false}]},{"type":"category","label":"Tiling WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bspwm","href":"/docs/window-managers/tiling-wm/bspwm","docId":"window-managers/tiling-wm/bspwm","unlisted":false},{"type":"link","label":"i3wm","href":"/docs/window-managers/tiling-wm/i3wm","docId":"window-managers/tiling-wm/i3wm","unlisted":false},{"type":"link","label":"Herbstluftwm","href":"/docs/window-managers/tiling-wm/herbstluftwm","docId":"window-managers/tiling-wm/herbstluftwm","unlisted":false}]},{"type":"category","label":"Dynamic WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Qtile","href":"/docs/window-managers/dynamic-wm/qtile","docId":"window-managers/dynamic-wm/qtile","unlisted":false},{"type":"link","label":"DWM","href":"/docs/window-managers/dynamic-wm/dwm","docId":"window-managers/dynamic-wm/dwm","unlisted":false},{"type":"link","label":"Xmonad","href":"/docs/window-managers/dynamic-wm/xmonad","docId":"window-managers/dynamic-wm/xmonad","unlisted":false}]}]},{"type":"category","label":"Wayland Compositors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Sway","href":"/docs/wayland-compositors/sway","docId":"wayland-compositors/sway","unlisted":false},{"type":"link","label":"Wayfire","href":"/docs/wayland-compositors/wayfire","docId":"wayland-compositors/wayfire","unlisted":false},{"type":"link","label":"River","href":"/docs/wayland-compositors/river","docId":"wayland-compositors/river","unlisted":false},{"type":"link","label":"Hyprland","href":"/docs/wayland-compositors/hyprland","docId":"wayland-compositors/hyprland","unlisted":false},{"type":"link","label":"NEWM","href":"/docs/wayland-compositors/newm","docId":"wayland-compositors/newm","unlisted":false}]},{"type":"category","label":"Premium ISOs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Archcraft WSE","href":"/docs/premium/wse","docId":"premium/wse","unlisted":false},{"type":"link","label":"Archcraft Prime","href":"/docs/premium/prime","docId":"premium/prime","unlisted":false}]},{"type":"category","label":"Desktop Environment","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"XFCE Desktop Environment","href":"/docs/desktop/xfce","docId":"desktop/xfce","unlisted":false},{"type":"link","label":"LXDE Desktop Environment","href":"/docs/desktop/lxde","docId":"desktop/lxde","unlisted":false}]},{"type":"category","label":"Archcraftify","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Voidcraft","href":"/docs/other-distro/voidcraft","docId":"other-distro/voidcraft","unlisted":false},{"type":"link","label":"Ubuntucraft","href":"/docs/other-distro/ubuntucraft","docId":"other-distro/ubuntucraft","unlisted":false}]},{"type":"category","label":"Contribution","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setup System","href":"/docs/contrib/setup-env","docId":"contrib/setup-env","unlisted":false},{"type":"link","label":"Write Tutorials","href":"/docs/contrib/contrib-blog","docId":"contrib/contrib-blog","unlisted":false},{"type":"link","label":"Improve Wiki","href":"/docs/contrib/contrib-wiki","docId":"contrib/contrib-wiki","unlisted":false},{"type":"link","label":"Translate Wiki","href":"/docs/contrib/contrib-translate","docId":"contrib/contrib-translate","unlisted":false},{"type":"link","label":"Contributors","href":"/docs/contrib/contributors","docId":"contrib/contributors","unlisted":false}]}]},"docs":{"boot-iso/boot-in-vm":{"id":"boot-iso/boot-in-vm","title":"Boot Archcraft in VMs","description":"If you\'re planning to boot Archcraft in Virtual Machines (For Ex","sidebar":"tutorialSidebar"},"boot-iso/boot-with-grub":{"id":"boot-iso/boot-with-grub","title":"Boot Archcraft with GRUB","description":"If you already have Linux installed on your system and want to try Archcraft without making a bootable USB drive, you can do so with the GRUB2 bootloader.","sidebar":"tutorialSidebar"},"boot-iso/boot-with-usb":{"id":"boot-iso/boot-with-usb","title":"Create A Bootable USB","description":"dd (Linux)","sidebar":"tutorialSidebar"},"contrib/contrib-blog":{"id":"contrib/contrib-blog","title":"Write Tutorials","description":"Follow this guide if you want to write tutorials for Archcraft...","sidebar":"tutorialSidebar"},"contrib/contrib-translate":{"id":"contrib/contrib-translate","title":"Translate Wiki","description":"Follow this guide if you want to translate the Archcraft Wiki...","sidebar":"tutorialSidebar"},"contrib/contrib-wiki":{"id":"contrib/contrib-wiki","title":"Improve Wiki","description":"Follow this guide if you want to add documentation in Archcraft Wiki...","sidebar":"tutorialSidebar"},"contrib/contributors":{"id":"contrib/contributors","title":"Contributors","description":"Owner / Developer / Maintainer","sidebar":"tutorialSidebar"},"contrib/setup-env":{"id":"contrib/setup-env","title":"Setup System","description":"Let\'s set up your system for local development...","sidebar":"tutorialSidebar"},"desktop/lxde":{"id":"desktop/lxde","title":"LXDE Desktop Environment","description":"Work In Progress...","sidebar":"tutorialSidebar"},"desktop/xfce":{"id":"desktop/xfce","title":"XFCE Desktop Environment","description":"Work In Progress...","sidebar":"tutorialSidebar"},"install-archcraft/install-with-abif":{"id":"install-archcraft/install-with-abif","title":"Install Archcraft With ABIF","description":"ABIF is the secondary installer in Archcraft, It is based on the command line and very powerful (I personally use it).","sidebar":"tutorialSidebar"},"install-archcraft/install-with-calamares":{"id":"install-archcraft/install-with-calamares","title":"Install Archcraft With Calamares","description":"This is a simple guide for beginners and linux newbies to install Archcraft on their system, without messing it up.","sidebar":"tutorialSidebar"},"install-archcraft/post-install":{"id":"install-archcraft/post-install","title":"Post Installation","description":"After installing Archcraft, there are few things you should do...","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Welcome","description":"Welcome to Archcraft Wiki, Your source for Archcraft documentation on the web.","sidebar":"tutorialSidebar"},"other-distro/ubuntucraft":{"id":"other-distro/ubuntucraft","title":"Ubuntucraft","description":"Ubuntucraft : Experience Archcraft on Ubuntu","sidebar":"tutorialSidebar"},"other-distro/voidcraft":{"id":"other-distro/voidcraft","title":"Voidcraft","description":"Voidcraft : Experience Archcraft on Void Linux","sidebar":"tutorialSidebar"},"premium/prime":{"id":"premium/prime","title":"Archcraft Prime","description":"Archcraft Prime : An Ultimate Exclusive Experience","sidebar":"tutorialSidebar"},"premium/wse":{"id":"premium/wse","title":"Archcraft WSE","description":"Archcraft Wayland Special Edition : An Ultimate Wayland Compositors Experience","sidebar":"tutorialSidebar"},"wayland-compositors/hyprland":{"id":"wayland-compositors/hyprland","title":"Hyprland","description":"Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn\'t sacrifice on its looks.","sidebar":"tutorialSidebar"},"wayland-compositors/newm":{"id":"wayland-compositors/newm","title":"NEWM","description":"newm is a Wayland compositor written with laptops and touchpads in mind. The idea is, instead of placing windows inside the small viewport (that is, the monitor) to arrange them along an arbitrarily large two-dimensional wall (generally without windows overlapping) and focus the compositors job on moving around along this wall efficiently and providing ways to the user to rearrange the wall such that he finds the overall layout intuitive.","sidebar":"tutorialSidebar"},"wayland-compositors/river":{"id":"wayland-compositors/river","title":"River","description":"River is a dynamic tiling Wayland compositor with flexible runtime configuration.","sidebar":"tutorialSidebar"},"wayland-compositors/sway":{"id":"wayland-compositors/sway","title":"Sway","description":"Sway is a tiling Wayland compositor and a drop-in replacement for the i3 wayland compositor for X11. It works with your existing i3 configuration and supports most of i3\'s features, plus a few extras.","sidebar":"tutorialSidebar"},"wayland-compositors/wayfire":{"id":"wayland-compositors/wayfire","title":"Wayfire","description":"Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance.","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/dwm":{"id":"window-managers/dynamic-wm/dwm","title":"DWM","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/qtile":{"id":"window-managers/dynamic-wm/qtile","title":"Qtile","description":"Qtile is a full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It is easy to write your own layouts, widgets, and built-in commands. It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs.","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/xmonad":{"id":"window-managers/dynamic-wm/xmonad","title":"Xmonad","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/2bwm":{"id":"window-managers/stacking-wm/2bwm","title":"2bwm","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/berry":{"id":"window-managers/stacking-wm/berry","title":"Berry","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/blackbox":{"id":"window-managers/stacking-wm/blackbox","title":"Blackbox","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/cwm":{"id":"window-managers/stacking-wm/cwm","title":"CWM","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/evilwm":{"id":"window-managers/stacking-wm/evilwm","title":"EvilWM","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/fluxbox":{"id":"window-managers/stacking-wm/fluxbox","title":"Fluxbox","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/openbox":{"id":"window-managers/stacking-wm/openbox","title":"Openbox","description":"Openbox is a lightweight, powerful, and highly configurable stacking window manager. It allows you to change almost every aspect of how you interact with your desktop and invent completely new ways to use and control it. It\'s the default window manager in Archcraft.","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/bspwm":{"id":"window-managers/tiling-wm/bspwm","title":"Bspwm","description":"bspwm is a popular tiling window manager. It represents windows as the leaves of a full binary tree. bspwm supports multiple monitors and is configured and controlled through messages. It\'s an alternate window manager in Archcraft.","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/herbstluftwm":{"id":"window-managers/tiling-wm/herbstluftwm","title":"Herbstluftwm","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/i3wm":{"id":"window-managers/tiling-wm/i3wm","title":"i3wm","description":"i3 is a dynamic tiling window manager inspired by wmii that is primarily targeted at developers and advanced users. The stated goals for i3 include clear documentation, proper multi-monitor support, a tree structure for windows, and different modes like in vim.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[53],{1109:i=>{i.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Welcome","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Boot Archcraft","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create A Bootable USB","href":"/docs/boot-iso/boot-with-usb","docId":"boot-iso/boot-with-usb","unlisted":false},{"type":"link","label":"Boot Archcraft with GRUB","href":"/docs/boot-iso/boot-with-grub","docId":"boot-iso/boot-with-grub","unlisted":false},{"type":"link","label":"Boot Archcraft in VMs","href":"/docs/boot-iso/boot-in-vm","docId":"boot-iso/boot-in-vm","unlisted":false}]},{"type":"category","label":"Install Archcraft","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Install Archcraft With Calamares","href":"/docs/install-archcraft/install-with-calamares","docId":"install-archcraft/install-with-calamares","unlisted":false},{"type":"link","label":"Install Archcraft With ABIF","href":"/docs/install-archcraft/install-with-abif","docId":"install-archcraft/install-with-abif","unlisted":false},{"type":"link","label":"Post Installation","href":"/docs/install-archcraft/post-install","docId":"install-archcraft/post-install","unlisted":false}]},{"type":"category","label":"Window Managers","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Stacking WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Openbox","href":"/docs/window-managers/stacking-wm/openbox","docId":"window-managers/stacking-wm/openbox","unlisted":false},{"type":"link","label":"2bwm","href":"/docs/window-managers/stacking-wm/2bwm","docId":"window-managers/stacking-wm/2bwm","unlisted":false},{"type":"link","label":"Berry","href":"/docs/window-managers/stacking-wm/berry","docId":"window-managers/stacking-wm/berry","unlisted":false},{"type":"link","label":"Blackbox","href":"/docs/window-managers/stacking-wm/blackbox","docId":"window-managers/stacking-wm/blackbox","unlisted":false},{"type":"link","label":"CWM","href":"/docs/window-managers/stacking-wm/cwm","docId":"window-managers/stacking-wm/cwm","unlisted":false},{"type":"link","label":"EvilWM","href":"/docs/window-managers/stacking-wm/evilwm","docId":"window-managers/stacking-wm/evilwm","unlisted":false},{"type":"link","label":"Fluxbox","href":"/docs/window-managers/stacking-wm/fluxbox","docId":"window-managers/stacking-wm/fluxbox","unlisted":false}]},{"type":"category","label":"Tiling WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bspwm","href":"/docs/window-managers/tiling-wm/bspwm","docId":"window-managers/tiling-wm/bspwm","unlisted":false},{"type":"link","label":"i3wm","href":"/docs/window-managers/tiling-wm/i3wm","docId":"window-managers/tiling-wm/i3wm","unlisted":false},{"type":"link","label":"Herbstluftwm","href":"/docs/window-managers/tiling-wm/herbstluftwm","docId":"window-managers/tiling-wm/herbstluftwm","unlisted":false}]},{"type":"category","label":"Dynamic WMs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Qtile","href":"/docs/window-managers/dynamic-wm/qtile","docId":"window-managers/dynamic-wm/qtile","unlisted":false},{"type":"link","label":"DWM","href":"/docs/window-managers/dynamic-wm/dwm","docId":"window-managers/dynamic-wm/dwm","unlisted":false},{"type":"link","label":"Xmonad","href":"/docs/window-managers/dynamic-wm/xmonad","docId":"window-managers/dynamic-wm/xmonad","unlisted":false}]}]},{"type":"category","label":"Wayland Compositors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Sway","href":"/docs/wayland-compositors/sway","docId":"wayland-compositors/sway","unlisted":false},{"type":"link","label":"Wayfire","href":"/docs/wayland-compositors/wayfire","docId":"wayland-compositors/wayfire","unlisted":false},{"type":"link","label":"River","href":"/docs/wayland-compositors/river","docId":"wayland-compositors/river","unlisted":false},{"type":"link","label":"Hyprland","href":"/docs/wayland-compositors/hyprland","docId":"wayland-compositors/hyprland","unlisted":false},{"type":"link","label":"NEWM","href":"/docs/wayland-compositors/newm","docId":"wayland-compositors/newm","unlisted":false}]},{"type":"category","label":"Premium ISOs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Archcraft WSE","href":"/docs/premium/wse","docId":"premium/wse","unlisted":false},{"type":"link","label":"Archcraft Prime","href":"/docs/premium/prime","docId":"premium/prime","unlisted":false}]},{"type":"category","label":"Desktop Environment","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"XFCE Desktop Environment","href":"/docs/desktop/xfce","docId":"desktop/xfce","unlisted":false},{"type":"link","label":"LXDE Desktop Environment","href":"/docs/desktop/lxde","docId":"desktop/lxde","unlisted":false}]},{"type":"category","label":"Archcraftify","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Voidcraft","href":"/docs/other-distro/voidcraft","docId":"other-distro/voidcraft","unlisted":false},{"type":"link","label":"Ubuntucraft","href":"/docs/other-distro/ubuntucraft","docId":"other-distro/ubuntucraft","unlisted":false}]},{"type":"category","label":"Contribution","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setup System","href":"/docs/contrib/setup-env","docId":"contrib/setup-env","unlisted":false},{"type":"link","label":"Write Tutorials","href":"/docs/contrib/contrib-blog","docId":"contrib/contrib-blog","unlisted":false},{"type":"link","label":"Improve Wiki","href":"/docs/contrib/contrib-wiki","docId":"contrib/contrib-wiki","unlisted":false},{"type":"link","label":"Translate Wiki","href":"/docs/contrib/contrib-translate","docId":"contrib/contrib-translate","unlisted":false},{"type":"link","label":"Contributors","href":"/docs/contrib/contributors","docId":"contrib/contributors","unlisted":false}]}]},"docs":{"boot-iso/boot-in-vm":{"id":"boot-iso/boot-in-vm","title":"Boot Archcraft in VMs","description":"If you\'re planning to boot Archcraft in Virtual Machines (For Ex","sidebar":"tutorialSidebar"},"boot-iso/boot-with-grub":{"id":"boot-iso/boot-with-grub","title":"Boot Archcraft with GRUB","description":"If you already have Linux installed on your system and want to try Archcraft without making a bootable USB drive, you can do so with the GRUB2 bootloader.","sidebar":"tutorialSidebar"},"boot-iso/boot-with-usb":{"id":"boot-iso/boot-with-usb","title":"Create A Bootable USB","description":"dd (Linux)","sidebar":"tutorialSidebar"},"contrib/contrib-blog":{"id":"contrib/contrib-blog","title":"Write Tutorials","description":"Follow this guide if you want to write tutorials for Archcraft...","sidebar":"tutorialSidebar"},"contrib/contrib-translate":{"id":"contrib/contrib-translate","title":"Translate Wiki","description":"Follow this guide if you want to translate the Archcraft Wiki...","sidebar":"tutorialSidebar"},"contrib/contrib-wiki":{"id":"contrib/contrib-wiki","title":"Improve Wiki","description":"Follow this guide if you want to add documentation in Archcraft Wiki...","sidebar":"tutorialSidebar"},"contrib/contributors":{"id":"contrib/contributors","title":"Contributors","description":"Owner / Developer / Maintainer","sidebar":"tutorialSidebar"},"contrib/setup-env":{"id":"contrib/setup-env","title":"Setup System","description":"Let\'s set up your system for local development...","sidebar":"tutorialSidebar"},"desktop/lxde":{"id":"desktop/lxde","title":"LXDE Desktop Environment","description":"Work In Progress...","sidebar":"tutorialSidebar"},"desktop/xfce":{"id":"desktop/xfce","title":"XFCE Desktop Environment","description":"Work In Progress...","sidebar":"tutorialSidebar"},"install-archcraft/install-with-abif":{"id":"install-archcraft/install-with-abif","title":"Install Archcraft With ABIF","description":"ABIF is the secondary installer in Archcraft, It is based on the command line and very powerful (I personally use it).","sidebar":"tutorialSidebar"},"install-archcraft/install-with-calamares":{"id":"install-archcraft/install-with-calamares","title":"Install Archcraft With Calamares","description":"This is a simple guide for beginners and linux newbies to install Archcraft on their system, without messing it up.","sidebar":"tutorialSidebar"},"install-archcraft/post-install":{"id":"install-archcraft/post-install","title":"Post Installation","description":"After installing Archcraft, there are few things you should do...","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Welcome","description":"Welcome to Archcraft Wiki, Your source for Archcraft documentation on the web.","sidebar":"tutorialSidebar"},"other-distro/ubuntucraft":{"id":"other-distro/ubuntucraft","title":"Ubuntucraft","description":"Ubuntucraft : Experience Archcraft on Ubuntu","sidebar":"tutorialSidebar"},"other-distro/voidcraft":{"id":"other-distro/voidcraft","title":"Voidcraft","description":"Voidcraft : Experience Archcraft on Void Linux","sidebar":"tutorialSidebar"},"premium/prime":{"id":"premium/prime","title":"Archcraft Prime","description":"Archcraft Prime : An Ultimate Exclusive Experience","sidebar":"tutorialSidebar"},"premium/wse":{"id":"premium/wse","title":"Archcraft WSE","description":"Archcraft Wayland Special Edition : An Ultimate Wayland Compositors Experience","sidebar":"tutorialSidebar"},"wayland-compositors/hyprland":{"id":"wayland-compositors/hyprland","title":"Hyprland","description":"Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn\'t sacrifice on its looks.","sidebar":"tutorialSidebar"},"wayland-compositors/newm":{"id":"wayland-compositors/newm","title":"NEWM","description":"newm is a Wayland compositor written with laptops and touchpads in mind. The idea is, instead of placing windows inside the small viewport (that is, the monitor) to arrange them along an arbitrarily large two-dimensional wall (generally without windows overlapping) and focus the compositors job on moving around along this wall efficiently and providing ways to the user to rearrange the wall such that he finds the overall layout intuitive.","sidebar":"tutorialSidebar"},"wayland-compositors/river":{"id":"wayland-compositors/river","title":"River","description":"River is a dynamic tiling Wayland compositor with flexible runtime configuration.","sidebar":"tutorialSidebar"},"wayland-compositors/sway":{"id":"wayland-compositors/sway","title":"Sway","description":"Sway is a tiling Wayland compositor and a drop-in replacement for the i3 wayland compositor for X11. It works with your existing i3 configuration and supports most of i3\'s features, plus a few extras.","sidebar":"tutorialSidebar"},"wayland-compositors/wayfire":{"id":"wayland-compositors/wayfire","title":"Wayfire","description":"Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance.","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/dwm":{"id":"window-managers/dynamic-wm/dwm","title":"DWM","description":"dwm is a dynamic window manager for Xorg. It manages windows in tiled, stacked, and full-screen layouts, as well as many others with the help of optional patches. Layouts can be applied dynamically, optimizing the environment for the application in use and the task being performed. dwm is extremely lightweight and fast, written in C and with a stated design goal of remaining under 2000 source lines of code. It provides multihead support for xrandr and Xinerama.","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/qtile":{"id":"window-managers/dynamic-wm/qtile","title":"Qtile","description":"Qtile is a full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It is easy to write your own layouts, widgets, and built-in commands. It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs.","sidebar":"tutorialSidebar"},"window-managers/dynamic-wm/xmonad":{"id":"window-managers/dynamic-wm/xmonad","title":"Xmonad","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/2bwm":{"id":"window-managers/stacking-wm/2bwm","title":"2bwm","description":"2bwm is a fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower.","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/berry":{"id":"window-managers/stacking-wm/berry","title":"Berry","description":"Bite-sized window manager written in C. It is controlled via a command-line client, allowing users to control windows via a hotkey daemon such as sxhkd or expand functionality via shell scripts. It provides extensible theming options with double borders, title bars, and window text. Berry places new windows in unoccupied spaces and supports virtual desktops.","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/blackbox":{"id":"window-managers/stacking-wm/blackbox","title":"Blackbox","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/cwm":{"id":"window-managers/stacking-wm/cwm","title":"CWM","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/evilwm":{"id":"window-managers/stacking-wm/evilwm","title":"EvilWM","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/fluxbox":{"id":"window-managers/stacking-wm/fluxbox","title":"Fluxbox","description":"Work In Progress...","sidebar":"tutorialSidebar"},"window-managers/stacking-wm/openbox":{"id":"window-managers/stacking-wm/openbox","title":"Openbox","description":"Openbox is a lightweight, powerful, and highly configurable stacking window manager. It allows you to change almost every aspect of how you interact with your desktop and invent completely new ways to use and control it. It\'s the default window manager in Archcraft.","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/bspwm":{"id":"window-managers/tiling-wm/bspwm","title":"Bspwm","description":"bspwm is a popular tiling window manager. It represents windows as the leaves of a full binary tree. bspwm supports multiple monitors and is configured and controlled through messages. It\'s an alternate window manager in Archcraft.","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/herbstluftwm":{"id":"window-managers/tiling-wm/herbstluftwm","title":"Herbstluftwm","description":"Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or \u2026) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup.","sidebar":"tutorialSidebar"},"window-managers/tiling-wm/i3wm":{"id":"window-managers/tiling-wm/i3wm","title":"i3wm","description":"i3 is a dynamic tiling window manager inspired by wmii that is primarily targeted at developers and advanced users. The stated goals for i3 include clear documentation, proper multi-monitor support, a tree structure for windows, and different modes like in vim.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/af07f118.097300eb.js b/assets/js/af07f118.097300eb.js new file mode 100644 index 00000000..e78ff370 --- /dev/null +++ b/assets/js/af07f118.097300eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[2241],{8622:(e,s,n)=>{n.r(s),n.d(s,{Highlight:()=>h,assets:()=>l,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var r=n(5893),t=n(1151);n(4866),n(5162);const i={sidebar_position:2,hide_table_of_contents:!1},d="DWM",c={id:"window-managers/dynamic-wm/dwm",title:"DWM",description:"dwm is a dynamic window manager for Xorg. It manages windows in tiled, stacked, and full-screen layouts, as well as many others with the help of optional patches. Layouts can be applied dynamically, optimizing the environment for the application in use and the task being performed. dwm is extremely lightweight and fast, written in C and with a stated design goal of remaining under 2000 source lines of code. It provides multihead support for xrandr and Xinerama.",source:"@site/docs/window-managers/dynamic-wm/dwm.mdx",sourceDirName:"window-managers/dynamic-wm",slug:"/window-managers/dynamic-wm/dwm",permalink:"/docs/window-managers/dynamic-wm/dwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/dynamic-wm/dwm.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"Qtile",permalink:"/docs/window-managers/dynamic-wm/qtile"},next:{title:"Xmonad",permalink:"/docs/window-managers/dynamic-wm/xmonad"}},l={},a=[{value:"Installation",id:"installation",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Config Structure",id:"config-structure",level:3},{value:"Terminal",id:"terminal",level:3},{value:"Notification",id:"notification",level:3},{value:"Wallpaper",id:"wallpaper",level:3},{value:"Statusbar",id:"statusbar",level:3},{value:"Launchers and Applets",id:"launchers-and-applets",level:3},{value:"Compositor",id:"compositor",level:3},{value:"Window Manager",id:"window-manager",level:3},{value:"Keybindings",id:"keybindings",level:2},{value:"Applications",id:"applications",level:3},{value:"Menu and Applets",id:"menu-and-applets",level:3},{value:"Hardware Keys",id:"hardware-keys",level:3},{value:"Window Management",id:"window-management",level:3},{value:"Layouts",id:"layouts",level:3},{value:"Window Manager",id:"window-manager-1",level:3},{value:"Misc Keys",id:"misc-keys",level:3},{value:"Screenshots",id:"screenshots",level:2},{value:"FAQs",id:"faqs",level:2}],h=({children:e,color:s})=>{const n={span:"span",...(0,t.a)()};return(0,r.jsx)(n.span,{style:{backgroundColor:s,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function o(e){const s={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,t.a)(),...e.components},{Details:n}=s;return n||function(e,s){throw new Error("Expected "+(s?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h1,{id:"dwm",children:"DWM"}),"\n","\n","\n","\n",(0,r.jsx)(s.p,{children:"dwm is a dynamic window manager for Xorg. It manages windows in tiled, stacked, and full-screen layouts, as well as many others with the help of optional patches. Layouts can be applied dynamically, optimizing the environment for the application in use and the task being performed. dwm is extremely lightweight and fast, written in C and with a stated design goal of remaining under 2000 source lines of code. It provides multihead support for xrandr and Xinerama."}),"\n",(0,r.jsx)(s.p,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/main.png",alt:"img"})}),"\n",(0,r.jsx)(s.h2,{id:"installation",children:"Installation"}),"\n",(0,r.jsxs)(s.p,{children:["Once you finish installing Archcraft, ",(0,r.jsx)(s.strong,{children:"dwm"})," can be installed on the top of it. It's pre-configured and ready to go. Open a terminal and run the following command to install dwm :"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"$ sudo pacman -Sy archcraft-dwm\n"})}),"\n",(0,r.jsx)(s.h2,{id:"configuration",children:"Configuration"}),"\n",(0,r.jsx)(s.p,{children:"dwm is pre-configured in Archcraft. In this section, We'll see how the dwm window manager is configured, what tools and utilities are used to make it look and work like a complete desktop environment."}),"\n",(0,r.jsx)(s.h3,{id:"config-structure",children:"Config Structure"}),"\n",(0,r.jsx)(s.p,{children:"The configuration structure of dwm in Archcraft looks something like this:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{children:"/opt\n\u2514\u2500\u2500 dwm-source : dwm source code\n \u2514\u2500\u2500 config.def.h : dwm config file\n/usr\n\u2514\u2500\u2500 share\n \u2514\u2500\u2500 archcraft\n \u2514\u2500\u2500 dwm\n \u251c\u2500\u2500 alacritty : terminal config\n\xa0\xa0 \u251c\u2500\u2500 scripts : scripts used for dwm\n\xa0\xa0 \u251c\u2500\u2500 theme : desktop theme (polybar, rofi configs) \n \u251c\u2500\u2500 dunstrc : dunst config for notifications\n \u251c\u2500\u2500 picom.conf : compositor config\n \u2514\u2500\u2500 xsettingsd : gtk themes, icons and fonts config file\n"})}),"\n",(0,r.jsx)(s.h3,{id:"terminal",children:"Terminal"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Alacritty"})," is the default terminal. In dwm window manager, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/alacritty"})," directory. These are the following config files you can modify to change the behaviour of your terminal:"]}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/alacritty/alacritty.toml"})})," : Main configuration file ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/alacritty/colors.toml"})})," : Colors configurations ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/alacritty/fonts.toml"})})," : Fonts configurations"]}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with alacritty config, run : ",(0,r.jsx)(s.code,{children:"man 5 alacritty"})," in terminal."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"notification",children:"Notification"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Dunst"})," is used as a notification daemon for notifications in dwm. In dwm window manager, dunst is launched with an alternative config file, which is ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/dunstrc"}),". So, If you need to modify anything, make sure you edit this file."]}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with dunst config, run : ",(0,r.jsx)(s.code,{children:"man 5 dunst"})," in terminal."]}),"\n"]}),"\n",(0,r.jsx)(s.h3,{id:"wallpaper",children:"Wallpaper"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"hsetroot"})," sets the wallpaper in the dwm. If you want to change the wallpaper, Edit ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/scripts/dwm_autostart"})," script and add the path to your wallpaper :"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"# Restore wallpaper\nhsetroot -cover '/path/to/your/wallpaper'\n"})}),"\n",(0,r.jsx)(s.h3,{id:"statusbar",children:"Statusbar"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"xsetroot"})," is used to generate the elements on statusbar in Archcraft's dwm window manager."]}),"\n",(0,r.jsxs)(s.p,{children:["Edit ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/scripts/dwm_bar"})," script to add/remove/modify the statusbar elements."]}),"\n",(0,r.jsx)(s.h3,{id:"launchers-and-applets",children:"Launchers and Applets"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Rofi"})," is used for application launchers, command runner and various applets. To modify the rofi config, edit ",(0,r.jsx)(s.code,{children:"~/.config/rofi/config.rasi"})," file."]}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with rofi config, run : ",(0,r.jsx)(s.code,{children:"man rofi"})," in terminal."]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["The scripts for rofi that are used in dwm can be found it ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/scripts"})," directory. These are the following scripts that uses rofi to provide the launchers and applets :"]}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_askpass"})})," : rofi based ",(0,r.jsx)(s.code,{children:"sudo"})," frontend to get root password ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_asroot"})})," : applet to open apps as root ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_bluetooth"})})," : bluetooth applet to quickly connect to BT devices ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_launcher"})})," : an application launcher, cmd runner, file manager and task manager ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_layouts"})})," : applet to change the layouts ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_music"})})," : music applet, that controls MPD with ",(0,r.jsx)(s.code,{children:"mpc"})," ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_powermenu"})})," : power menu, with confirmation dialog ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_runner"})})," : quickly lets you run a command ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_screenshot"})})," : screenshot applet that works with maim ",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.code,{children:"rofi_windows"})})," : applet to manage opened windows ",(0,r.jsx)("br",{})]}),"\n",(0,r.jsx)(s.p,{children:"If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts above."}),"\n",(0,r.jsxs)(s.p,{children:["The configuration of each script can be found inside the ",(0,r.jsx)(s.em,{children:"theme"})," directory of dwm ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/theme"})]}),"\n",(0,r.jsxs)(s.p,{children:["Let's say you want to modify the looks of ",(0,r.jsx)(s.strong,{children:"launcher"}),", then you need to edit the ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/theme/rofi/launcher.rasi"})," file. Same goes for every other applet, Edit the respective file in the same directory."]}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with rofi theming, run : ",(0,r.jsx)(s.code,{children:"man rofi-theme"})," in terminal."]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["To change the colors and fonts of the launchers and applets, Edit the ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/theme/rofi/shared/colors.rasi"})," and ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/theme/rofi/shared/fonts.rasi"})," files."]}),"\n",(0,r.jsx)(s.h3,{id:"compositor",children:"Compositor"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Picom"})," is used for compositing. It's a lightweight compositor with shadowing, advanced blurring and fading. In dwm, picom is launched with an alternative config file, which is ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/picom.conf"}),"."]}),"\n",(0,r.jsx)(s.p,{children:"If you need to change anything related to picom, Edit this picom config file."}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with picom config, check the picom's default config file in ",(0,r.jsx)(s.code,{children:"/etc/xdg/picom.conf"})]}),"\n"]}),"\n",(0,r.jsx)(s.admonition,{type:"info",children:(0,r.jsxs)(s.p,{children:["If you're having screen-tearing issues, using ",(0,r.jsx)(s.code,{children:"glx"})," backend can solve this issue. ",(0,r.jsx)("br",{}),"\nIf you're facing lagging, hangs and freezes, try switching between ",(0,r.jsx)(s.code,{children:"xrender"})," and ",(0,r.jsx)(s.code,{children:"glx"})," backend."]})}),"\n",(0,r.jsx)(s.h3,{id:"window-manager",children:"Window Manager"}),"\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.code,{children:"/opt/dwm-source/config.def.h"})," is the main configuration file of dwm. If you need to change anything or perhaps you want to add/remove/change keybindings, Edit this file and recompile dwm and then install the new binary."]}),"\n",(0,r.jsxs)(s.blockquote,{children:["\n",(0,r.jsxs)(s.p,{children:["If you need any help with dwm configuration and customisation, visit : ",(0,r.jsx)(s.a,{href:"https://dwm.suckless.org/customisation/",children:"suckless.org"})]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"keybindings",children:"Keybindings"}),"\n",(0,r.jsxs)(s.p,{children:["Here's a list of some important keybinds you need to know for operating dwm easily. If you want to view, modify or add new keybinds, Edit ",(0,r.jsx)(s.code,{children:"/opt/dwm-source/config.def.h"})," file."]}),"\n",(0,r.jsx)(s.h3,{id:"applications",children:"Applications"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Return"})}),(0,r.jsx)(s.td,{children:"Open terminal (st)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + ctrl + Return"})}),(0,r.jsx)(s.td,{children:"Open terminal (alacritty)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Return"})}),(0,r.jsx)(s.td,{children:"Open floating terminal (alacritty)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + alt + Return"})}),(0,r.jsx)(s.td,{children:"Open fullscreen terminal (alacritty)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + F"})}),(0,r.jsx)(s.td,{children:"Open file manager (thunar)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + E"})}),(0,r.jsx)(s.td,{children:"Open text editor (geany)"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + W"})}),(0,r.jsx)(s.td,{children:"Open web browser (firefox)"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"menu-and-applets",children:"Menu and Applets"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super"})}),(0,r.jsx)(s.td,{children:"Open application launcher"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"alt + F1"})}),(0,r.jsx)(s.td,{children:"Open application launcher"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"alt + F2"})}),(0,r.jsx)(s.td,{children:"Open command runner"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + N"})}),(0,r.jsx)(s.td,{children:"Open network manager applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + B"})}),(0,r.jsx)(s.td,{children:"Open bluetooth applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + M"})}),(0,r.jsx)(s.td,{children:"Open music applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + X"})}),(0,r.jsx)(s.td,{children:"Open powermenu applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + S"})}),(0,r.jsx)(s.td,{children:"Open screenshots applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + R"})}),(0,r.jsx)(s.td,{children:"Open apps as root applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + W"})}),(0,r.jsx)(s.td,{children:"Open window applet"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"hardware-keys",children:"Hardware Keys"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"Print"})}),(0,r.jsx)(s.td,{children:"Take screenshot"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"alt + Print"})}),(0,r.jsx)(s.td,{children:"Take screenshot in 5 seconds delay"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"shift + Print"})}),(0,r.jsx)(s.td,{children:"Take screenshot in 10 seconds delay"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"ctrl + Print"})}),(0,r.jsx)(s.td,{children:"Take screenshot of currently focused window"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Print"})}),(0,r.jsx)(s.td,{children:"Take screenshot of selected area"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86AudioRaiseVolume"})}),(0,r.jsx)(s.td,{children:"Increase volume"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86AudioLowerVolume"})}),(0,r.jsx)(s.td,{children:"Decrease volume"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86AudioMute"})}),(0,r.jsx)(s.td,{children:"Toggle mute speakers"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86AudioMicMute"})}),(0,r.jsx)(s.td,{children:"Toggle mute microphone"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86MonBrightnessUp"})}),(0,r.jsx)(s.td,{children:"Increase display brightness"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"XF86MonBrightnessDown"})}),(0,r.jsx)(s.td,{children:"Decrease display brightness"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"window-management",children:"Window Management"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + 1..9"})}),(0,r.jsx)(s.td,{children:"Switch to respective tag"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + C"})}),(0,r.jsx)(s.td,{children:"Close focued window"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Equal"})}),(0,r.jsx)(s.td,{children:"Increase border width"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Minus"})}),(0,r.jsx)(s.td,{children:"Decrease border width"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + BackSpace"})}),(0,r.jsx)(s.td,{children:"Restore default border width"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Bracket_Left"})}),(0,r.jsx)(s.td,{children:"Increase gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Bracket_Right"})}),(0,r.jsx)(s.td,{children:"Decrease gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Backslash"})}),(0,r.jsx)(s.td,{children:"Restore default gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + G"})}),(0,r.jsx)(s.td,{children:"Toggle gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + I"})}),(0,r.jsx)(s.td,{children:"Increase inner gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + ctrl + I"})}),(0,r.jsx)(s.td,{children:"Decrease inner gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + ctrl + O"})}),(0,r.jsx)(s.td,{children:"Increase outer gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + ctrl + O"})}),(0,r.jsx)(s.td,{children:"Decrease outer gaps"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + J/K"})}),(0,r.jsx)(s.td,{children:"Cycle window"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + J/K"})}),(0,r.jsx)(s.td,{children:"Switch master"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Left/Right"})}),(0,r.jsx)(s.td,{children:"Cycle window"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Left/Right"})}),(0,r.jsx)(s.td,{children:"Switch master"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + I"})}),(0,r.jsx)(s.td,{children:"Increase master vertically"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + U"})}),(0,r.jsx)(s.td,{children:"Decrease master horizontally"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + H/L"})}),(0,r.jsx)(s.td,{children:"Shrink left/right"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Left/Right"})}),(0,r.jsx)(s.td,{children:"Shrink left/right"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + B"})}),(0,r.jsx)(s.td,{children:"Toggle bar"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Tab"})}),(0,r.jsx)(s.td,{children:"Switch to master"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"alt + Tab"})}),(0,r.jsx)(s.td,{children:"Switch to last tag"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + D"})}),(0,r.jsx)(s.td,{children:"Hide window"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + D"})}),(0,r.jsx)(s.td,{children:"Restore window"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"layouts",children:"Layouts"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"alt + ctrl + Space"})}),(0,r.jsx)(s.td,{children:"Run rofi layouts applet"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + ctrl + Comma/Period"})}),(0,r.jsx)(s.td,{children:"Cycle layouts"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + Space"})}),(0,r.jsx)(s.td,{children:"Toggle floating"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + F"})}),(0,r.jsx)(s.td,{children:"Toggle fullscreen"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Space"})}),(0,r.jsx)(s.td,{children:"Set last layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + T"})}),(0,r.jsx)(s.td,{children:"Set Tile layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + G"})}),(0,r.jsx)(s.td,{children:"Set Grid layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + M"})}),(0,r.jsx)(s.td,{children:"Set Monocle layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + S"})}),(0,r.jsx)(s.td,{children:"Set Spiral layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + T"})}),(0,r.jsx)(s.td,{children:"Set Stack layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + C"})}),(0,r.jsx)(s.td,{children:"Set Centered-Master layout"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + X"})}),(0,r.jsx)(s.td,{children:"Set Tatami layout"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"window-manager-1",children:"Window Manager"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + shift + R"})}),(0,r.jsx)(s.td,{children:"Restart dwm"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + ctrl + Q"})}),(0,r.jsx)(s.td,{children:"Quit dwm"})]})]})]}),"\n",(0,r.jsx)(s.h3,{id:"misc-keys",children:"Misc Keys"}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Keys"}),(0,r.jsx)(s.th,{children:"Action"})]})}),(0,r.jsxs)(s.tbody,{children:[(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"ctrl + alt + M"})}),(0,r.jsx)(s.td,{children:"Open ncmpcpp with album art in terminal"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"ctrl + alt + L"})}),(0,r.jsx)(s.td,{children:"Trigger lockscreen"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + P"})}),(0,r.jsx)(s.td,{children:"Run colorpicker"})]}),(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)("kbd",{children:"super + Escape"})}),(0,r.jsx)(s.td,{children:"Run xkill"})]})]})]}),"\n",(0,r.jsx)(s.h2,{id:"screenshots",children:"Screenshots"}),"\n",(0,r.jsxs)(s.p,{children:["Here's few screenshots of ",(0,r.jsx)(s.code,{children:"dwm"})," desktop. These'll give you an idea of the experience of dwm in Archcraft."]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Desktop 1"}),(0,r.jsx)(s.th,{children:"Desktop 2"}),(0,r.jsx)(s.th,{children:"Desktop 3"}),(0,r.jsx)(s.th,{children:"Desktop 4"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_1.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_2.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_3.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_4.png",alt:"img"})})]})})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Desktop 5"}),(0,r.jsx)(s.th,{children:"Desktop 6"}),(0,r.jsx)(s.th,{children:"Desktop 7"}),(0,r.jsx)(s.th,{children:"Desktop 8"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_5.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_6.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_7.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_8.png",alt:"img"})})]})})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Desktop 9"}),(0,r.jsx)(s.th,{children:"Desktop 10"}),(0,r.jsx)(s.th,{children:"Desktop 11"}),(0,r.jsx)(s.th,{children:"Desktop 12"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_9.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_10.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_11.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_12.png",alt:"img"})})]})})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Desktop 13"}),(0,r.jsx)(s.th,{children:"Desktop 14"}),(0,r.jsx)(s.th,{children:"Desktop 15"}),(0,r.jsx)(s.th,{children:"Desktop 16"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_13.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_14.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_15.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_16.png",alt:"img"})})]})})]}),"\n",(0,r.jsxs)(s.table,{children:[(0,r.jsx)(s.thead,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.th,{children:"Desktop 17"}),(0,r.jsx)(s.th,{children:"Desktop 18"}),(0,r.jsx)(s.th,{children:"Desktop 19"}),(0,r.jsx)(s.th,{children:"Desktop 20"})]})}),(0,r.jsx)(s.tbody,{children:(0,r.jsxs)(s.tr,{children:[(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_17.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_18.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_19.png",alt:"img"})}),(0,r.jsx)(s.td,{children:(0,r.jsx)(s.img,{src:"https://raw.githubusercontent.com/archcraft-os/misc-files/main/screenshots/dwm/desktop/desktop_20.png",alt:"img"})})]})})]}),"\n",(0,r.jsx)(s.h2,{id:"faqs",children:"FAQs"}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:(0,r.jsx)("b",{children:"How to change GTK theme, icons and cursor?"})}),(0,r.jsxs)(s.p,{children:["To change GTK theme, icons and cursor in dwm session, Edit ",(0,r.jsx)(s.code,{children:"/usr/share/archcraft/dwm/xsettingsd"})," file and restart dwm to apply the changes."]}),(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-ini",children:'Net/ThemeName "Arc-Dark"\nNet/IconThemeName "Zafiro-Blue"\nGtk/CursorThemeName "Qogirr"\n'})})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:(0,r.jsx)("b",{children:"How to manage multiple monitors and resolution in dwm?"})}),(0,r.jsxs)(s.p,{children:["If you use multiple monitors with dwm window manager, you can manage them by running ",(0,r.jsx)(s.em,{children:"Manager Monitors"})," or ",(0,r.jsx)(s.code,{children:"archcraft-randr"})," app."]})]}),"\n",(0,r.jsxs)(n,{children:[(0,r.jsx)("summary",{children:(0,r.jsx)("b",{children:"Why Alacritty is not working on my computer?"})}),(0,r.jsx)(s.p,{children:"Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :"}),(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["Open alacritty with ",(0,r.jsx)(s.strong,{children:"LIBGL_ALWAYS_SOFTWARE=1"})," variable. Edit the keybindings/script launching alacritty and replace ",(0,r.jsx)(s.code,{children:"alacritty"})," with ",(0,r.jsx)(s.code,{children:"LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n",(0,r.jsxs)(s.li,{children:["Edit ",(0,r.jsx)(s.strong,{children:"/usr/share/applications/Alacritty.desktop"})," desktop file and replace ",(0,r.jsx)(s.code,{children:"Exec=alacritty"})," with ",(0,r.jsx)(s.code,{children:"Exec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty"})]}),"\n"]})]})]})}function x(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},5162:(e,s,n)=>{n.d(s,{Z:()=>d});n(7294);var r=n(512);const t={tabItem:"tabItem_Ymn6"};var i=n(5893);function d(e){let{children:s,hidden:n,className:d}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.Z)(t.tabItem,d),hidden:n,children:s})}},4866:(e,s,n)=>{n.d(s,{Z:()=>y});var r=n(7294),t=n(512),i=n(2466),d=n(6550),c=n(469),l=n(1980),a=n(7392),h=n(12);function o(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:s}=e;return!!s&&"object"==typeof s&&"value"in s}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function x(e){const{values:s,children:n}=e;return(0,r.useMemo)((()=>{const e=s??function(e){return o(e).map((e=>{let{props:{value:s,label:n,attributes:r,default:t}}=e;return{value:s,label:n,attributes:r,default:t}}))}(n);return function(e){const s=(0,a.l)(e,((e,s)=>e.value===s.value));if(s.length>0)throw new Error(`Docusaurus error: Duplicate values "${s.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[s,n])}function j(e){let{value:s,tabValues:n}=e;return n.some((e=>e.value===s))}function u(e){let{queryString:s=!1,groupId:n}=e;const t=(0,d.k6)(),i=function(e){let{queryString:s=!1,groupId:n}=e;if("string"==typeof s)return s;if(!1===s)return null;if(!0===s&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:s,groupId:n});return[(0,l._X)(i),(0,r.useCallback)((e=>{if(!i)return;const s=new URLSearchParams(t.location.search);s.set(i,e),t.replace({...t.location,search:s.toString()})}),[i,t])]}function p(e){const{defaultValue:s,queryString:n=!1,groupId:t}=e,i=x(e),[d,l]=(0,r.useState)((()=>function(e){let{defaultValue:s,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(s){if(!j({value:s,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${s}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return s}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:s,tabValues:i}))),[a,o]=u({queryString:n,groupId:t}),[p,m]=function(e){let{groupId:s}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(s),[t,i]=(0,h.Nk)(n);return[t,(0,r.useCallback)((e=>{n&&i.set(e)}),[n,i])]}({groupId:t}),f=(()=>{const e=a??p;return j({value:e,tabValues:i})?e:null})();(0,c.Z)((()=>{f&&l(f)}),[f]);return{selectedValue:d,selectValue:(0,r.useCallback)((e=>{if(!j({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);l(e),o(e),m(e)}),[o,m,i]),tabValues:i}}var m=n(2389);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=n(5893);function w(e){let{className:s,block:n,selectedValue:r,selectValue:d,tabValues:c}=e;const l=[],{blockElementScrollPositionUntilNextRender:a}=(0,i.o5)(),h=e=>{const s=e.currentTarget,n=l.indexOf(s),t=c[n].value;t!==r&&(a(s),d(t))},o=e=>{let s=null;switch(e.key){case"Enter":h(e);break;case"ArrowRight":{const n=l.indexOf(e.currentTarget)+1;s=l[n]??l[0];break}case"ArrowLeft":{const n=l.indexOf(e.currentTarget)-1;s=l[n]??l[l.length-1];break}}s?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.Z)("tabs",{"tabs--block":n},s),children:c.map((e=>{let{value:s,label:n,attributes:i}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===s?0:-1,"aria-selected":r===s,ref:e=>l.push(e),onKeyDown:o,onClick:h,...i,className:(0,t.Z)("tabs__item",f.tabItem,i?.className,{"tabs__item--active":r===s}),children:n??s},s)}))})}function b(e){let{lazy:s,children:n,selectedValue:t}=e;const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(s){const e=i.find((e=>e.props.value===t));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:i.map(((e,s)=>(0,r.cloneElement)(e,{key:s,hidden:e.props.value!==t})))})}function k(e){const s=p(e);return(0,g.jsxs)("div",{className:(0,t.Z)("tabs-container",f.tabList),children:[(0,g.jsx)(w,{...e,...s}),(0,g.jsx)(b,{...e,...s})]})}function y(e){const s=(0,m.Z)();return(0,g.jsx)(k,{...e,children:o(e.children)},String(s))}},1151:(e,s,n)=>{n.d(s,{Z:()=>c,a:()=>d});var r=n(7294);const t={},i=r.createContext(t);function d(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/af07f118.717e85c7.js b/assets/js/af07f118.717e85c7.js deleted file mode 100644 index fa8b2004..00000000 --- a/assets/js/af07f118.717e85c7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkArchcraft_Wiki=self.webpackChunkArchcraft_Wiki||[]).push([[2241],{8622:(e,t,n)=>{n.r(t),n.d(t,{Highlight:()=>c,assets:()=>u,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var r=n(5893),a=n(1151);n(4866),n(5162);const o={sidebar_position:2,hide_table_of_contents:!1},s="DWM",l={id:"window-managers/dynamic-wm/dwm",title:"DWM",description:"Work In Progress...",source:"@site/docs/window-managers/dynamic-wm/dwm.mdx",sourceDirName:"window-managers/dynamic-wm",slug:"/window-managers/dynamic-wm/dwm",permalink:"/docs/window-managers/dynamic-wm/dwm",draft:!1,unlisted:!1,editUrl:"https://github.com/archcraft-os/documentation/edit/main/docs/window-managers/dynamic-wm/dwm.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,hide_table_of_contents:!1},sidebar:"tutorialSidebar",previous:{title:"Qtile",permalink:"/docs/window-managers/dynamic-wm/qtile"},next:{title:"Xmonad",permalink:"/docs/window-managers/dynamic-wm/xmonad"}},u={},i=[],c=({children:e,color:t})=>{const n={span:"span",...(0,a.a)()};return(0,r.jsx)(n.span,{style:{backgroundColor:t,borderRadius:"4px",color:"#fff",padding:"0 0.2rem 0 0.2rem"},children:e})};function d(e){const t={h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"dwm",children:"DWM"}),"\n","\n","\n","\n",(0,r.jsx)(t.p,{children:"Work In Progress..."})]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},5162:(e,t,n)=>{n.d(t,{Z:()=>s});n(7294);var r=n(512);const a={tabItem:"tabItem_Ymn6"};var o=n(5893);function s(e){let{children:t,hidden:n,className:s}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,r.Z)(a.tabItem,s),hidden:n,children:t})}},4866:(e,t,n)=>{n.d(t,{Z:()=>k});var r=n(7294),a=n(512),o=n(2466),s=n(6550),l=n(469),u=n(1980),i=n(7392),c=n(12);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:t,children:n}=e;return(0,r.useMemo)((()=>{const e=t??function(e){return d(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}(n);return function(e){const t=(0,i.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function f(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function p(e){let{queryString:t=!1,groupId:n}=e;const a=(0,s.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,u._X)(o),(0,r.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(a.location.search);t.set(o,e),a.replace({...a.location,search:t.toString()})}),[o,a])]}function b(e){const{defaultValue:t,queryString:n=!1,groupId:a}=e,o=m(e),[s,u]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!f({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[i,d]=p({queryString:n,groupId:a}),[b,h]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[a,o]=(0,c.Nk)(n);return[a,(0,r.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:a}),w=(()=>{const e=i??b;return f({value:e,tabValues:o})?e:null})();(0,l.Z)((()=>{w&&u(w)}),[w]);return{selectedValue:s,selectValue:(0,r.useCallback)((e=>{if(!f({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);u(e),d(e),h(e)}),[d,h,o]),tabValues:o}}var h=n(2389);const w={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=n(5893);function v(e){let{className:t,block:n,selectedValue:r,selectValue:s,tabValues:l}=e;const u=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),c=e=>{const t=e.currentTarget,n=u.indexOf(t),a=l[n].value;a!==r&&(i(t),s(a))},d=e=>{let t=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.Z)("tabs",{"tabs--block":n},t),children:l.map((e=>{let{value:t,label:n,attributes:o}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===t?0:-1,"aria-selected":r===t,ref:e=>u.push(e),onKeyDown:d,onClick:c,...o,className:(0,a.Z)("tabs__item",w.tabItem,o?.className,{"tabs__item--active":r===t}),children:n??t},t)}))})}function y(e){let{lazy:t,children:n,selectedValue:a}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:o.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==a})))})}function x(e){const t=b(e);return(0,g.jsxs)("div",{className:(0,a.Z)("tabs-container",w.tabList),children:[(0,g.jsx)(v,{...e,...t}),(0,g.jsx)(y,{...e,...t})]})}function k(e){const t=(0,h.Z)();return(0,g.jsx)(x,{...e,children:d(e.children)},String(t))}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>s});var r=n(7294);const a={},o=r.createContext(a);function s(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.6ebfa16a.js b/assets/js/runtime~main.e167d36d.js similarity index 97% rename from assets/js/runtime~main.6ebfa16a.js rename to assets/js/runtime~main.e167d36d.js index 566c3fe5..1be334f7 100644 --- a/assets/js/runtime~main.6ebfa16a.js +++ b/assets/js/runtime~main.e167d36d.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,f,d,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,e=[],r.O=(a,f,d,c)=>{if(!f){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[f,d,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({10:"0db02bad",12:"7f624885",53:"935f2afb",71:"0b3ceb4d",114:"3d4f79ad",124:"8514e8ce",155:"fcecf585",214:"445815c1",249:"eb516b89",261:"6200048e",454:"432e37be",477:"de1e6603",488:"8c9d87eb",533:"b2b675dd",546:"3c57f524",619:"03514a2f",738:"5de83236",773:"1fe5a48e",880:"39ead85d",891:"f85c6d85",899:"01a1e18c",938:"01a3d1a7",955:"86476f6f",1011:"ada195b3",1019:"494587fc",1080:"ccc49370",1235:"546ff2bb",1305:"7c7886a5",1338:"44c1b474",1384:"d0dab6b7",1386:"6b9ff6b8",1466:"c9f5d126",1477:"b2f554cd",1542:"f91b68cd",1582:"fdd68bab",1659:"d2a0e6dc",1713:"a7023ddc",1727:"dd0c2544",1848:"97d5245e",1877:"6c8ef609",1947:"4d37ee9c",1971:"d85cb77a",1990:"3e526866",2061:"836fb559",2089:"a10bda8b",2101:"1c24d6a1",2188:"94750f5b",2207:"0d9dc5a2",2241:"af07f118",2268:"1eb4812f",2318:"a711ae9d",2353:"53cfc929",2411:"717369ba",2523:"39d30624",2535:"814f3328",2545:"fc31a613",2548:"8029d477",2586:"dce68537",2599:"2c8aced3",2603:"6847cab0",2650:"74563381",2676:"d9c5fc49",2890:"6afb3535",2894:"3fe4c6d1",2927:"ead3c57f",2979:"143aec5f",3055:"9d881367",3083:"6f80c1ee",3085:"1f391b9e",3089:"a6aa9e1f",3206:"f8409a7e",3251:"38d676c7",3269:"2d03fda1",3276:"d76a44da",3308:"45570194",3348:"601da74f",3523:"2038ae26",3601:"4f0c3f7c",3604:"9597d2cd",3608:"9e4087bc",3690:"a9093f3e",3695:"a4749134",3710:"f16af025",3760:"eb2fad09",3800:"a193a73b",3835:"d2aaef20",3862:"826abf23",3934:"af8029c7",3950:"78d8ecd6",4013:"01a85c17",4108:"002cc405",4195:"c4f5d8e4",4230:"e1692d97",4311:"85077f3b",4335:"cfda1df8",4358:"652da9a6",4368:"a94703ab",4381:"017dda07",4477:"14c1041d",4521:"d5ac8ed7",4530:"403eea34",4572:"652124de",4595:"f67c5f0b",4639:"baaf9fad",4714:"974fec83",4731:"0cdfc620",4785:"f94fd730",4788:"8d4d2a51",4881:"df78e3dd",4960:"c59a4f6e",5077:"8ec13d45",5110:"b74eb9dd",5117:"aa11efae",5138:"62464aed",5186:"c73819f5",5189:"d407ead9",5231:"09f68402",5254:"44d0c090",5354:"fd463e35",5374:"f7be884d",5509:"ad1cf791",5581:"e83c374d",5622:"d1b79720",5659:"8b897f93",5731:"973d2264",5770:"e3bda37a",5773:"21336d0e",5777:"0c9fa2dd",5871:"97b02b6e",5899:"7d7201ba",5934:"f5a9af16",5940:"4be1500a",5966:"36fb0842",6001:"a54d29c3",6032:"de20fa80",6045:"a7c84018",6097:"94b1899b",6100:"2fd13b7c",6103:"33d0f2e2",6122:"4aeca21e",6169:"f3308527",6211:"00a09c75",6230:"2e1ff97a",6253:"dc0e2fd4",6273:"5b4cb40e",6281:"c41fd0eb",6342:"e01e3a0f",6371:"f1e9f1a7",6401:"d2c51dd4",6409:"1ddae284",6417:"54c277d1",6595:"cb1f3996",6676:"4b48988c",6700:"c38e620b",6724:"db2a3656",6820:"4bb1fd72",6879:"c9bac0fb",6950:"1c1d7612",6963:"faf79ab5",6999:"5e96eaaa",7003:"f8b31a83",7113:"3f937843",7191:"8981e59a",7218:"eb3273ac",7251:"17541240",7256:"f590c074",7288:"038f6a7d",7414:"393be207",7470:"a6fb40ab",7498:"e6d97a5d",7520:"b7824892",7537:"67755277",7539:"a8370316",7569:"3c89a184",7570:"769f1a57",7573:"e181ed3c",7590:"805577a7",7658:"0c3b8b01",7776:"c5e452ad",7886:"a8e1213c",7909:"a066e0bc",7918:"17896441",7920:"1a4e3797",7933:"d61ca50f",7945:"0cde94eb",7977:"1e1abf8a",8022:"ce25bc00",8242:"06e9cc51",8246:"0cba6189",8251:"458dc4a9",8292:"dc00b473",8355:"228ce5fb",8380:"38d5af69",8388:"548347c6",8402:"a5659afb",8456:"b29f728d",8458:"d34ffa37",8518:"a7bd4aaa",8534:"6aa9cbfe",8573:"08ef0f73",8575:"70883d56",8577:"c88671be",8603:"aef950b0",8610:"6875c492",8676:"d04005b3",8778:"5be0124a",8791:"5d2603b6",8802:"f4f3fd77",8841:"9eb02e39",8875:"e8ca369e",8901:"d773f089",8927:"3887d088",8956:"559f8016",8994:"985492be",8999:"06f2d718",9016:"fa610284",9159:"2429dfaa",9170:"2a4cbd0f",9188:"a2590cf0",9195:"6f9b8be3",9222:"217439a8",9249:"fbc82963",9308:"4be9f5dc",9319:"6614ae2b",9404:"13933b9d",9420:"fdf7b637",9433:"282bf3ec",9447:"77fe62b0",9477:"bdfe02a6",9495:"3c8e5a41",9541:"87933e22",9571:"1d1bbcdb",9574:"87c89783",9582:"d75b63e3",9661:"5e95c892",9692:"556ae0f7",9702:"6008da15",9911:"3958fc69",9949:"f2154584",9993:"d62324e7"}[e]||e)+"."+{10:"0679e90a",12:"e12617d9",53:"68ada291",71:"9ab06910",114:"d1bb10e8",124:"312f27c6",155:"3dd8efde",214:"e18b2d47",249:"704fdf15",261:"3cf49a1c",454:"097d54e4",477:"bebbae74",488:"9cb4f744",533:"036f7785",546:"102e3631",619:"abcab18f",738:"725ec2e2",773:"e57ec2ee",880:"0218b7ef",891:"98728708",899:"19905217",938:"bdadb24b",955:"9345968b",1011:"62d03715",1019:"105f3041",1080:"cbb065ce",1235:"df457c3b",1305:"5f323cd9",1338:"a6ff02aa",1384:"46f7f430",1386:"e565c8c2",1426:"c01de9d3",1466:"340de570",1477:"2f1db13a",1542:"424f588f",1582:"bb68cb81",1659:"1851200f",1713:"4f861e4b",1727:"ba6902d6",1772:"c6afb4e5",1848:"0087d8e3",1877:"1d594d41",1947:"0c39b48d",1971:"e76fd333",1990:"01aa36fe",2061:"016529ce",2089:"9f1f1d5e",2101:"89b1ab47",2188:"1489a6e3",2207:"725b8338",2241:"717e85c7",2268:"216cc054",2318:"f389288f",2353:"4d6f8419",2411:"86b02281",2523:"221e8920",2535:"4eb79f9d",2545:"26c84f4a",2548:"2eef8337",2586:"219a0a74",2599:"723f9b55",2603:"9554d410",2650:"097f5ac9",2676:"f70d79d7",2890:"771a6e94",2894:"d84b605b",2927:"14752b85",2979:"3f75d6f6",3055:"4e5d194a",3083:"dddda344",3085:"eb424529",3089:"f14bbab6",3206:"8c7e092c",3251:"dbd0272b",3269:"27dc7365",3276:"ee05a380",3308:"97fc294b",3348:"039d4568",3523:"7d412de8",3601:"44476894",3604:"5c4d9811",3608:"d2a207b7",3690:"d06608fd",3695:"64232ac5",3710:"df4c8a80",3760:"cc3fb023",3800:"b31e4f02",3835:"34f5479c",3862:"ee20e698",3934:"2fcabb88",3950:"35685959",4013:"7c83dc68",4108:"216ec7d2",4195:"7d5b13cc",4230:"fca076d0",4311:"5e223df7",4332:"b0ba301e",4335:"988e3f0c",4358:"e4a4f861",4368:"1a4b1d30",4381:"58354aa4",4477:"d40ebe3c",4521:"6ba1c9ec",4530:"f34c0882",4572:"9e13b5bd",4595:"18127e2e",4639:"9ccc9a1e",4714:"4fdf5f72",4731:"a4da2e0c",4785:"773df416",4788:"6875b4d2",4881:"6780e92b",4960:"2e257b33",5077:"4cff7454",5110:"530afaff",5117:"9823b2e1",5138:"1f9307b9",5186:"af6086b7",5189:"4129b5e8",5231:"62fe705f",5254:"22194063",5354:"b52cf001",5374:"b26e4591",5509:"cd9ec293",5581:"ff0398d3",5622:"f21217eb",5659:"ce979926",5731:"36c45bca",5770:"7a61a9e6",5773:"eae4ec55",5777:"fba25c53",5871:"ef8f1074",5899:"65a10992",5934:"5b7f7810",5940:"005132b2",5966:"2494f555",6001:"144e7a4b",6032:"a4c9e0f7",6045:"e955bc5e",6097:"b5339fb6",6100:"d4ea41b0",6103:"d2ead580",6122:"de7b9ac1",6169:"cd11e970",6211:"8f456bb5",6230:"89762c11",6253:"040a9868",6273:"6bf3ff6e",6281:"e4c92a0a",6342:"63d852ad",6371:"6f5571a9",6401:"9424121a",6409:"e48c00b6",6417:"f3320da4",6595:"e23196e5",6676:"e93570e1",6700:"25818c2d",6724:"0eac1e1b",6820:"59a4ccff",6879:"1838c5fe",6945:"497d7b49",6950:"b96bb87e",6963:"98dfd3b9",6999:"c9a5b293",7003:"1c2d9927",7113:"c5e37a6e",7191:"a14a711e",7218:"c6cdf8cf",7251:"cc98d6f9",7256:"b2764b58",7288:"31388e05",7414:"8087d954",7470:"b713feef",7498:"c1b1fcbd",7520:"b143fdf6",7537:"63708396",7539:"d70fa0a6",7569:"f888fa27",7570:"0f26ff3e",7573:"327afe67",7590:"a2938e71",7658:"18172e9c",7776:"6c2d6ae3",7886:"8877183b",7909:"74ce9ea1",7918:"84565e2c",7920:"3d170bd2",7933:"3177fb88",7945:"58be0fe0",7977:"9136d2d9",8022:"de70ee68",8242:"658a5e48",8246:"dd7fa4fb",8251:"cf0538b0",8292:"d4d61336",8355:"197507f5",8380:"b4b4c376",8388:"60442a56",8402:"7d1738d0",8456:"2e82333c",8458:"7791d364",8518:"e0aa6603",8534:"9d85a5e9",8573:"b834b7db",8575:"03cf5c00",8577:"3d9f4e64",8603:"b7e0f43b",8610:"90b2cee5",8676:"ca2f24f3",8778:"8ce38a6e",8791:"2f0162cf",8802:"88f96a88",8841:"dbdc9c7a",8875:"ce1e96c3",8894:"ae05df2b",8901:"61061a4e",8927:"2d4fa25b",8956:"cfb907ba",8994:"602100b9",8999:"684faa05",9016:"f2b9d00b",9159:"71aa261d",9170:"23877e70",9188:"df57b494",9195:"f64b5338",9222:"d889eb33",9249:"fb9ceef8",9308:"b89977f2",9319:"68648226",9404:"42d18ae5",9420:"7d9fa3f2",9433:"614e0641",9447:"370fbccf",9477:"e85888d1",9495:"8de84298",9541:"6eaeebf9",9571:"59318f13",9574:"0ffd5cc5",9582:"8766366d",9661:"67c86b99",9677:"40845a74",9692:"29dcea5d",9702:"2639d872",9911:"b496e55f",9949:"a836d31d",9993:"0a83a327"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},c="Archcraft-Wiki:",r.l=(e,a,f,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17541240:"7251",17896441:"7918",45570194:"3308",67755277:"7537",74563381:"2650","0db02bad":"10","7f624885":"12","935f2afb":"53","0b3ceb4d":"71","3d4f79ad":"114","8514e8ce":"124",fcecf585:"155","445815c1":"214",eb516b89:"249","6200048e":"261","432e37be":"454",de1e6603:"477","8c9d87eb":"488",b2b675dd:"533","3c57f524":"546","03514a2f":"619","5de83236":"738","1fe5a48e":"773","39ead85d":"880",f85c6d85:"891","01a1e18c":"899","01a3d1a7":"938","86476f6f":"955",ada195b3:"1011","494587fc":"1019",ccc49370:"1080","546ff2bb":"1235","7c7886a5":"1305","44c1b474":"1338",d0dab6b7:"1384","6b9ff6b8":"1386",c9f5d126:"1466",b2f554cd:"1477",f91b68cd:"1542",fdd68bab:"1582",d2a0e6dc:"1659",a7023ddc:"1713",dd0c2544:"1727","97d5245e":"1848","6c8ef609":"1877","4d37ee9c":"1947",d85cb77a:"1971","3e526866":"1990","836fb559":"2061",a10bda8b:"2089","1c24d6a1":"2101","94750f5b":"2188","0d9dc5a2":"2207",af07f118:"2241","1eb4812f":"2268",a711ae9d:"2318","53cfc929":"2353","717369ba":"2411","39d30624":"2523","814f3328":"2535",fc31a613:"2545","8029d477":"2548",dce68537:"2586","2c8aced3":"2599","6847cab0":"2603",d9c5fc49:"2676","6afb3535":"2890","3fe4c6d1":"2894",ead3c57f:"2927","143aec5f":"2979","9d881367":"3055","6f80c1ee":"3083","1f391b9e":"3085",a6aa9e1f:"3089",f8409a7e:"3206","38d676c7":"3251","2d03fda1":"3269",d76a44da:"3276","601da74f":"3348","2038ae26":"3523","4f0c3f7c":"3601","9597d2cd":"3604","9e4087bc":"3608",a9093f3e:"3690",a4749134:"3695",f16af025:"3710",eb2fad09:"3760",a193a73b:"3800",d2aaef20:"3835","826abf23":"3862",af8029c7:"3934","78d8ecd6":"3950","01a85c17":"4013","002cc405":"4108",c4f5d8e4:"4195",e1692d97:"4230","85077f3b":"4311",cfda1df8:"4335","652da9a6":"4358",a94703ab:"4368","017dda07":"4381","14c1041d":"4477",d5ac8ed7:"4521","403eea34":"4530","652124de":"4572",f67c5f0b:"4595",baaf9fad:"4639","974fec83":"4714","0cdfc620":"4731",f94fd730:"4785","8d4d2a51":"4788",df78e3dd:"4881",c59a4f6e:"4960","8ec13d45":"5077",b74eb9dd:"5110",aa11efae:"5117","62464aed":"5138",c73819f5:"5186",d407ead9:"5189","09f68402":"5231","44d0c090":"5254",fd463e35:"5354",f7be884d:"5374",ad1cf791:"5509",e83c374d:"5581",d1b79720:"5622","8b897f93":"5659","973d2264":"5731",e3bda37a:"5770","21336d0e":"5773","0c9fa2dd":"5777","97b02b6e":"5871","7d7201ba":"5899",f5a9af16:"5934","4be1500a":"5940","36fb0842":"5966",a54d29c3:"6001",de20fa80:"6032",a7c84018:"6045","94b1899b":"6097","2fd13b7c":"6100","33d0f2e2":"6103","4aeca21e":"6122",f3308527:"6169","00a09c75":"6211","2e1ff97a":"6230",dc0e2fd4:"6253","5b4cb40e":"6273",c41fd0eb:"6281",e01e3a0f:"6342",f1e9f1a7:"6371",d2c51dd4:"6401","1ddae284":"6409","54c277d1":"6417",cb1f3996:"6595","4b48988c":"6676",c38e620b:"6700",db2a3656:"6724","4bb1fd72":"6820",c9bac0fb:"6879","1c1d7612":"6950",faf79ab5:"6963","5e96eaaa":"6999",f8b31a83:"7003","3f937843":"7113","8981e59a":"7191",eb3273ac:"7218",f590c074:"7256","038f6a7d":"7288","393be207":"7414",a6fb40ab:"7470",e6d97a5d:"7498",b7824892:"7520",a8370316:"7539","3c89a184":"7569","769f1a57":"7570",e181ed3c:"7573","805577a7":"7590","0c3b8b01":"7658",c5e452ad:"7776",a8e1213c:"7886",a066e0bc:"7909","1a4e3797":"7920",d61ca50f:"7933","0cde94eb":"7945","1e1abf8a":"7977",ce25bc00:"8022","06e9cc51":"8242","0cba6189":"8246","458dc4a9":"8251",dc00b473:"8292","228ce5fb":"8355","38d5af69":"8380","548347c6":"8388",a5659afb:"8402",b29f728d:"8456",d34ffa37:"8458",a7bd4aaa:"8518","6aa9cbfe":"8534","08ef0f73":"8573","70883d56":"8575",c88671be:"8577",aef950b0:"8603","6875c492":"8610",d04005b3:"8676","5be0124a":"8778","5d2603b6":"8791",f4f3fd77:"8802","9eb02e39":"8841",e8ca369e:"8875",d773f089:"8901","3887d088":"8927","559f8016":"8956","985492be":"8994","06f2d718":"8999",fa610284:"9016","2429dfaa":"9159","2a4cbd0f":"9170",a2590cf0:"9188","6f9b8be3":"9195","217439a8":"9222",fbc82963:"9249","4be9f5dc":"9308","6614ae2b":"9319","13933b9d":"9404",fdf7b637:"9420","282bf3ec":"9433","77fe62b0":"9447",bdfe02a6:"9477","3c8e5a41":"9495","87933e22":"9541","1d1bbcdb":"9571","87c89783":"9574",d75b63e3:"9582","5e95c892":"9661","556ae0f7":"9692","6008da15":"9702","3958fc69":"9911",f2154584:"9949",d62324e7:"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((f,c)=>d=e[a]=[f,c]));f.push(d[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var c=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,c,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n{"use strict";var e,a,f,d,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,e=[],r.O=(a,f,d,c)=>{if(!f){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[f,d,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({10:"0db02bad",12:"7f624885",53:"935f2afb",71:"0b3ceb4d",114:"3d4f79ad",124:"8514e8ce",155:"fcecf585",214:"445815c1",249:"eb516b89",261:"6200048e",454:"432e37be",477:"de1e6603",488:"8c9d87eb",533:"b2b675dd",546:"3c57f524",619:"03514a2f",738:"5de83236",773:"1fe5a48e",880:"39ead85d",891:"f85c6d85",899:"01a1e18c",938:"01a3d1a7",955:"86476f6f",1011:"ada195b3",1019:"494587fc",1080:"ccc49370",1235:"546ff2bb",1305:"7c7886a5",1338:"44c1b474",1384:"d0dab6b7",1386:"6b9ff6b8",1466:"c9f5d126",1477:"b2f554cd",1542:"f91b68cd",1582:"fdd68bab",1659:"d2a0e6dc",1713:"a7023ddc",1727:"dd0c2544",1848:"97d5245e",1877:"6c8ef609",1947:"4d37ee9c",1971:"d85cb77a",1990:"3e526866",2061:"836fb559",2089:"a10bda8b",2101:"1c24d6a1",2188:"94750f5b",2207:"0d9dc5a2",2241:"af07f118",2268:"1eb4812f",2318:"a711ae9d",2353:"53cfc929",2411:"717369ba",2523:"39d30624",2535:"814f3328",2545:"fc31a613",2548:"8029d477",2586:"dce68537",2599:"2c8aced3",2603:"6847cab0",2650:"74563381",2676:"d9c5fc49",2890:"6afb3535",2894:"3fe4c6d1",2927:"ead3c57f",2979:"143aec5f",3055:"9d881367",3083:"6f80c1ee",3085:"1f391b9e",3089:"a6aa9e1f",3206:"f8409a7e",3251:"38d676c7",3269:"2d03fda1",3276:"d76a44da",3308:"45570194",3348:"601da74f",3523:"2038ae26",3601:"4f0c3f7c",3604:"9597d2cd",3608:"9e4087bc",3690:"a9093f3e",3695:"a4749134",3710:"f16af025",3760:"eb2fad09",3800:"a193a73b",3835:"d2aaef20",3862:"826abf23",3934:"af8029c7",3950:"78d8ecd6",4013:"01a85c17",4108:"002cc405",4195:"c4f5d8e4",4230:"e1692d97",4311:"85077f3b",4335:"cfda1df8",4358:"652da9a6",4368:"a94703ab",4381:"017dda07",4477:"14c1041d",4521:"d5ac8ed7",4530:"403eea34",4572:"652124de",4595:"f67c5f0b",4639:"baaf9fad",4714:"974fec83",4731:"0cdfc620",4785:"f94fd730",4788:"8d4d2a51",4881:"df78e3dd",4960:"c59a4f6e",5077:"8ec13d45",5110:"b74eb9dd",5117:"aa11efae",5138:"62464aed",5186:"c73819f5",5189:"d407ead9",5231:"09f68402",5254:"44d0c090",5354:"fd463e35",5374:"f7be884d",5509:"ad1cf791",5581:"e83c374d",5622:"d1b79720",5659:"8b897f93",5731:"973d2264",5770:"e3bda37a",5773:"21336d0e",5777:"0c9fa2dd",5871:"97b02b6e",5899:"7d7201ba",5934:"f5a9af16",5940:"4be1500a",5966:"36fb0842",6001:"a54d29c3",6032:"de20fa80",6045:"a7c84018",6097:"94b1899b",6100:"2fd13b7c",6103:"33d0f2e2",6122:"4aeca21e",6169:"f3308527",6211:"00a09c75",6230:"2e1ff97a",6253:"dc0e2fd4",6273:"5b4cb40e",6281:"c41fd0eb",6342:"e01e3a0f",6371:"f1e9f1a7",6401:"d2c51dd4",6409:"1ddae284",6417:"54c277d1",6595:"cb1f3996",6676:"4b48988c",6700:"c38e620b",6724:"db2a3656",6820:"4bb1fd72",6879:"c9bac0fb",6950:"1c1d7612",6963:"faf79ab5",6999:"5e96eaaa",7003:"f8b31a83",7113:"3f937843",7191:"8981e59a",7218:"eb3273ac",7251:"17541240",7256:"f590c074",7288:"038f6a7d",7414:"393be207",7470:"a6fb40ab",7498:"e6d97a5d",7520:"b7824892",7537:"67755277",7539:"a8370316",7569:"3c89a184",7570:"769f1a57",7573:"e181ed3c",7590:"805577a7",7658:"0c3b8b01",7776:"c5e452ad",7886:"a8e1213c",7909:"a066e0bc",7918:"17896441",7920:"1a4e3797",7933:"d61ca50f",7945:"0cde94eb",7977:"1e1abf8a",8022:"ce25bc00",8242:"06e9cc51",8246:"0cba6189",8251:"458dc4a9",8292:"dc00b473",8355:"228ce5fb",8380:"38d5af69",8388:"548347c6",8402:"a5659afb",8456:"b29f728d",8458:"d34ffa37",8518:"a7bd4aaa",8534:"6aa9cbfe",8573:"08ef0f73",8575:"70883d56",8577:"c88671be",8603:"aef950b0",8610:"6875c492",8676:"d04005b3",8778:"5be0124a",8791:"5d2603b6",8802:"f4f3fd77",8841:"9eb02e39",8875:"e8ca369e",8901:"d773f089",8927:"3887d088",8956:"559f8016",8994:"985492be",8999:"06f2d718",9016:"fa610284",9159:"2429dfaa",9170:"2a4cbd0f",9188:"a2590cf0",9195:"6f9b8be3",9222:"217439a8",9249:"fbc82963",9308:"4be9f5dc",9319:"6614ae2b",9404:"13933b9d",9420:"fdf7b637",9433:"282bf3ec",9447:"77fe62b0",9477:"bdfe02a6",9495:"3c8e5a41",9541:"87933e22",9571:"1d1bbcdb",9574:"87c89783",9582:"d75b63e3",9661:"5e95c892",9692:"556ae0f7",9702:"6008da15",9911:"3958fc69",9949:"f2154584",9993:"d62324e7"}[e]||e)+"."+{10:"0679e90a",12:"e12617d9",53:"ab861a1b",71:"9ab06910",114:"d1bb10e8",124:"312f27c6",155:"3dd8efde",214:"e18b2d47",249:"704fdf15",261:"3cf49a1c",454:"097d54e4",477:"bebbae74",488:"9cb4f744",533:"036f7785",546:"102e3631",619:"abcab18f",738:"725ec2e2",773:"e57ec2ee",880:"0218b7ef",891:"98728708",899:"19905217",938:"bdadb24b",955:"9345968b",1011:"62d03715",1019:"105f3041",1080:"cbb065ce",1235:"df457c3b",1305:"5f323cd9",1338:"a6ff02aa",1384:"46f7f430",1386:"e565c8c2",1426:"c01de9d3",1466:"340de570",1477:"2f1db13a",1542:"424f588f",1582:"bb68cb81",1659:"1851200f",1713:"4f861e4b",1727:"ba6902d6",1772:"c6afb4e5",1848:"0087d8e3",1877:"1d594d41",1947:"0c39b48d",1971:"e76fd333",1990:"01aa36fe",2061:"016529ce",2089:"9f1f1d5e",2101:"89b1ab47",2188:"1489a6e3",2207:"725b8338",2241:"097300eb",2268:"216cc054",2318:"f389288f",2353:"4d6f8419",2411:"86b02281",2523:"221e8920",2535:"4eb79f9d",2545:"26c84f4a",2548:"2eef8337",2586:"219a0a74",2599:"723f9b55",2603:"9554d410",2650:"097f5ac9",2676:"f70d79d7",2890:"771a6e94",2894:"d84b605b",2927:"14752b85",2979:"3f75d6f6",3055:"4e5d194a",3083:"dddda344",3085:"eb424529",3089:"f14bbab6",3206:"8c7e092c",3251:"dbd0272b",3269:"27dc7365",3276:"ee05a380",3308:"97fc294b",3348:"039d4568",3523:"7d412de8",3601:"44476894",3604:"5c4d9811",3608:"d2a207b7",3690:"d06608fd",3695:"64232ac5",3710:"df4c8a80",3760:"cc3fb023",3800:"b31e4f02",3835:"34f5479c",3862:"ee20e698",3934:"2fcabb88",3950:"35685959",4013:"7c83dc68",4108:"216ec7d2",4195:"7d5b13cc",4230:"fca076d0",4311:"5e223df7",4332:"b0ba301e",4335:"988e3f0c",4358:"e4a4f861",4368:"1a4b1d30",4381:"58354aa4",4477:"d40ebe3c",4521:"6ba1c9ec",4530:"f34c0882",4572:"9e13b5bd",4595:"18127e2e",4639:"9ccc9a1e",4714:"4fdf5f72",4731:"a4da2e0c",4785:"773df416",4788:"6875b4d2",4881:"6780e92b",4960:"2e257b33",5077:"4cff7454",5110:"530afaff",5117:"9823b2e1",5138:"1f9307b9",5186:"af6086b7",5189:"4129b5e8",5231:"62fe705f",5254:"22194063",5354:"b52cf001",5374:"b26e4591",5509:"cd9ec293",5581:"ff0398d3",5622:"f21217eb",5659:"ce979926",5731:"36c45bca",5770:"7a61a9e6",5773:"eae4ec55",5777:"fba25c53",5871:"ef8f1074",5899:"65a10992",5934:"5b7f7810",5940:"005132b2",5966:"2494f555",6001:"144e7a4b",6032:"a4c9e0f7",6045:"e955bc5e",6097:"b5339fb6",6100:"d4ea41b0",6103:"d2ead580",6122:"de7b9ac1",6169:"cd11e970",6211:"8f456bb5",6230:"89762c11",6253:"040a9868",6273:"6bf3ff6e",6281:"e4c92a0a",6342:"63d852ad",6371:"6f5571a9",6401:"9424121a",6409:"e48c00b6",6417:"f3320da4",6595:"e23196e5",6676:"e93570e1",6700:"25818c2d",6724:"0eac1e1b",6820:"59a4ccff",6879:"1838c5fe",6945:"497d7b49",6950:"b96bb87e",6963:"98dfd3b9",6999:"c9a5b293",7003:"1c2d9927",7113:"746a70d1",7191:"a14a711e",7218:"c6cdf8cf",7251:"cc98d6f9",7256:"b2764b58",7288:"31388e05",7414:"8087d954",7470:"b713feef",7498:"c1b1fcbd",7520:"b143fdf6",7537:"63708396",7539:"d70fa0a6",7569:"f888fa27",7570:"0f26ff3e",7573:"327afe67",7590:"a2938e71",7658:"18172e9c",7776:"6c2d6ae3",7886:"8877183b",7909:"74ce9ea1",7918:"84565e2c",7920:"3d170bd2",7933:"3177fb88",7945:"58be0fe0",7977:"9136d2d9",8022:"de70ee68",8242:"658a5e48",8246:"dd7fa4fb",8251:"cf0538b0",8292:"d4d61336",8355:"197507f5",8380:"b4b4c376",8388:"60442a56",8402:"7d1738d0",8456:"2e82333c",8458:"7791d364",8518:"e0aa6603",8534:"9d85a5e9",8573:"b834b7db",8575:"03cf5c00",8577:"3d9f4e64",8603:"b7e0f43b",8610:"90b2cee5",8676:"ca2f24f3",8778:"8ce38a6e",8791:"2f0162cf",8802:"88f96a88",8841:"dbdc9c7a",8875:"ce1e96c3",8894:"ae05df2b",8901:"61061a4e",8927:"2d4fa25b",8956:"cfb907ba",8994:"602100b9",8999:"684faa05",9016:"f2b9d00b",9159:"71aa261d",9170:"23877e70",9188:"df57b494",9195:"f64b5338",9222:"d889eb33",9249:"fb9ceef8",9308:"b89977f2",9319:"68648226",9404:"42d18ae5",9420:"7d9fa3f2",9433:"a3931293",9447:"370fbccf",9477:"e85888d1",9495:"8de84298",9541:"6eaeebf9",9571:"3e95d11c",9574:"0ffd5cc5",9582:"8766366d",9661:"67c86b99",9677:"40845a74",9692:"29dcea5d",9702:"2639d872",9911:"b496e55f",9949:"a836d31d",9993:"0a83a327"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},c="Archcraft-Wiki:",r.l=(e,a,f,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17541240:"7251",17896441:"7918",45570194:"3308",67755277:"7537",74563381:"2650","0db02bad":"10","7f624885":"12","935f2afb":"53","0b3ceb4d":"71","3d4f79ad":"114","8514e8ce":"124",fcecf585:"155","445815c1":"214",eb516b89:"249","6200048e":"261","432e37be":"454",de1e6603:"477","8c9d87eb":"488",b2b675dd:"533","3c57f524":"546","03514a2f":"619","5de83236":"738","1fe5a48e":"773","39ead85d":"880",f85c6d85:"891","01a1e18c":"899","01a3d1a7":"938","86476f6f":"955",ada195b3:"1011","494587fc":"1019",ccc49370:"1080","546ff2bb":"1235","7c7886a5":"1305","44c1b474":"1338",d0dab6b7:"1384","6b9ff6b8":"1386",c9f5d126:"1466",b2f554cd:"1477",f91b68cd:"1542",fdd68bab:"1582",d2a0e6dc:"1659",a7023ddc:"1713",dd0c2544:"1727","97d5245e":"1848","6c8ef609":"1877","4d37ee9c":"1947",d85cb77a:"1971","3e526866":"1990","836fb559":"2061",a10bda8b:"2089","1c24d6a1":"2101","94750f5b":"2188","0d9dc5a2":"2207",af07f118:"2241","1eb4812f":"2268",a711ae9d:"2318","53cfc929":"2353","717369ba":"2411","39d30624":"2523","814f3328":"2535",fc31a613:"2545","8029d477":"2548",dce68537:"2586","2c8aced3":"2599","6847cab0":"2603",d9c5fc49:"2676","6afb3535":"2890","3fe4c6d1":"2894",ead3c57f:"2927","143aec5f":"2979","9d881367":"3055","6f80c1ee":"3083","1f391b9e":"3085",a6aa9e1f:"3089",f8409a7e:"3206","38d676c7":"3251","2d03fda1":"3269",d76a44da:"3276","601da74f":"3348","2038ae26":"3523","4f0c3f7c":"3601","9597d2cd":"3604","9e4087bc":"3608",a9093f3e:"3690",a4749134:"3695",f16af025:"3710",eb2fad09:"3760",a193a73b:"3800",d2aaef20:"3835","826abf23":"3862",af8029c7:"3934","78d8ecd6":"3950","01a85c17":"4013","002cc405":"4108",c4f5d8e4:"4195",e1692d97:"4230","85077f3b":"4311",cfda1df8:"4335","652da9a6":"4358",a94703ab:"4368","017dda07":"4381","14c1041d":"4477",d5ac8ed7:"4521","403eea34":"4530","652124de":"4572",f67c5f0b:"4595",baaf9fad:"4639","974fec83":"4714","0cdfc620":"4731",f94fd730:"4785","8d4d2a51":"4788",df78e3dd:"4881",c59a4f6e:"4960","8ec13d45":"5077",b74eb9dd:"5110",aa11efae:"5117","62464aed":"5138",c73819f5:"5186",d407ead9:"5189","09f68402":"5231","44d0c090":"5254",fd463e35:"5354",f7be884d:"5374",ad1cf791:"5509",e83c374d:"5581",d1b79720:"5622","8b897f93":"5659","973d2264":"5731",e3bda37a:"5770","21336d0e":"5773","0c9fa2dd":"5777","97b02b6e":"5871","7d7201ba":"5899",f5a9af16:"5934","4be1500a":"5940","36fb0842":"5966",a54d29c3:"6001",de20fa80:"6032",a7c84018:"6045","94b1899b":"6097","2fd13b7c":"6100","33d0f2e2":"6103","4aeca21e":"6122",f3308527:"6169","00a09c75":"6211","2e1ff97a":"6230",dc0e2fd4:"6253","5b4cb40e":"6273",c41fd0eb:"6281",e01e3a0f:"6342",f1e9f1a7:"6371",d2c51dd4:"6401","1ddae284":"6409","54c277d1":"6417",cb1f3996:"6595","4b48988c":"6676",c38e620b:"6700",db2a3656:"6724","4bb1fd72":"6820",c9bac0fb:"6879","1c1d7612":"6950",faf79ab5:"6963","5e96eaaa":"6999",f8b31a83:"7003","3f937843":"7113","8981e59a":"7191",eb3273ac:"7218",f590c074:"7256","038f6a7d":"7288","393be207":"7414",a6fb40ab:"7470",e6d97a5d:"7498",b7824892:"7520",a8370316:"7539","3c89a184":"7569","769f1a57":"7570",e181ed3c:"7573","805577a7":"7590","0c3b8b01":"7658",c5e452ad:"7776",a8e1213c:"7886",a066e0bc:"7909","1a4e3797":"7920",d61ca50f:"7933","0cde94eb":"7945","1e1abf8a":"7977",ce25bc00:"8022","06e9cc51":"8242","0cba6189":"8246","458dc4a9":"8251",dc00b473:"8292","228ce5fb":"8355","38d5af69":"8380","548347c6":"8388",a5659afb:"8402",b29f728d:"8456",d34ffa37:"8458",a7bd4aaa:"8518","6aa9cbfe":"8534","08ef0f73":"8573","70883d56":"8575",c88671be:"8577",aef950b0:"8603","6875c492":"8610",d04005b3:"8676","5be0124a":"8778","5d2603b6":"8791",f4f3fd77:"8802","9eb02e39":"8841",e8ca369e:"8875",d773f089:"8901","3887d088":"8927","559f8016":"8956","985492be":"8994","06f2d718":"8999",fa610284:"9016","2429dfaa":"9159","2a4cbd0f":"9170",a2590cf0:"9188","6f9b8be3":"9195","217439a8":"9222",fbc82963:"9249","4be9f5dc":"9308","6614ae2b":"9319","13933b9d":"9404",fdf7b637:"9420","282bf3ec":"9433","77fe62b0":"9447",bdfe02a6:"9477","3c8e5a41":"9495","87933e22":"9541","1d1bbcdb":"9571","87c89783":"9574",d75b63e3:"9582","5e95c892":"9661","556ae0f7":"9692","6008da15":"9702","3958fc69":"9911",f2154584:"9949",d62324e7:"9993"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((f,c)=>d=e[a]=[f,c]));f.push(d[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var c=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,c,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n