/dwm-phyOS

modified dwm, alt + tab windows switching, png & icon supported status bar

Primary LanguageCMIT LicenseMIT

dwm-phyOS (dwm and dwmblocks in one)

Clickable and modifiable dwmblocks without compiling, all editing can be done from configuration files

Screenshots

(Alt + Tab to switch windows) (Hide and restore windows from bottom dock (Check keys for how to do this)) (catppuccin & tokyo night theme) (Power menu 'right one is to renew dwm without restart')

This modified suckless dwm window manager is built for arch based phyOS distro but can be installed with following for any linux OS.

Click on 'Keys' button on top left in status bar to check out keybindings.

Non-arch users need to install all of them seperately from links below:

Programs below are all source code modified programs therefore all of them are needed to download from:

  • Simple installation would work for all repos other than fonts-phyOS, clone the repo and:

    make && sudo make install

Main account : https://github.com/PhyTech-R0

IMPORTANT!! READ BELOW (If you just want statusbar scripts, you can omit this just read below)

Make sure to use my dotfiles, all of the scripts and path variables need to be set correctly for full functionality.

ABOUT DWMBLOCKS AND SCRIPTS

All dwmblocks and scripts are in dwmblocksconfig directory. All configuration files can be read from single path only, if it is not found it will revert to default. Note that if statusbar scripts are not in path, it won't work correctly. Please be sure that all scripts are something in your $PATH variable.

Path for config file must be: "$HOME/.config/phyos/dwmblocks"

  • I thought about creating this folder and configuration files automatically, however they will erase on if you changed your config file and reinstalled dwm. Therefore please create this folder, move everything in dwmblocksconfig to path above and follow the steps below.
  • All blocks in bar is clickable. It will open programs, or make some action if clicked. Just check scripts for how to implement your own.
  • In dwmblocksconfig folder, there is a main configuration file called dwmblocks.cfg . This is the main config file, you can add or delete any configuration files from there by @include directive, just use the same syntax in that file.
  • All the bash scripts can be found in dwmblocksconfig/scripts. Choose any scripts you want, then add them on your path, like "/usr/local/bin" etc. or anywhere you want.
  • Don't delete .cfg files contained in dwmblocksconfig/statusbar, you can add or remove them from main config file. Not included files won't be loaded in dwmblocks.
  • Note that most scripts use glyphs, please install a compatible nerd font for it. You can checkout fonts-phyOS repo for default fonts that i currenty use.

Requirement for total functionality:

  • light
  • picom
  • unclutter
  • rofi
  • dmenu
  • lf
  • xmenu
  • s-tui (stress test)
  • cointop (terminal crypto prices)
  • nvtop (nvidia gpu monitor)
  • pamixer
  • pulsemixer
  • imlib2
  • maim
  • joypixels emoji font
  • zathura (pdf reader, used for keys)

I am currently maintaning this for arch linux only, therefore arch users can follow the below instructions to install everything easily:

Append package repo end of your /etc/pacman.conf :

[phyOS-repo]
SigLevel = Optional TrustedOnly
Server = https://PhyTech-R0.github.io/$repo/$arch

Then install necessary programs with pacman easily:

pacman -Sy phyOS-dwm phyOS-dunst phyOS-st phyOS-fonts phyOS-dmenu phyOS-xmenu rofi picom unclutter lf ttf-joypixels light

Installation for different distros then arch linux:

git clone https://github.com/PhyTech-R0/dwm-phyOS
cd dwm-phyOS && make && sudo make install

You need to install fonts to your system first (Nerd fonts, including all glyphs etc.):

git clone github.com/phytech-r0/fonts-phyOS
cd fonts-phyOS && sudo mv *.otf *.ttf /usr/fonts/ttf
sudo fc-cache

For arch users (if you are using dotfiles)

You can copy "keys.h" file to '~/.config/phyos/dwm/' to change default bindings. Change keys.h with your taste, after that run:

phyup dwm

To update dwm easily. (wget required, you probably have it)

For non-arch and arch users (updating dotfiles and configs)

phyup dots

Note that this will replace all dots with new ones, if you have your current vim configuration or etc. please move them or rename them before using this command.

Default keys (same in keys.md)

NOTE: Caps Lock == Win

NOTE: Caps Lock is also equal to ESC in terminal (vim etc..)

Program Keys:

Key Combination Action
Win + q Quit focused
Win + Return Terminal(st)
Win + BackSpace Power menu
Win + Shift + Return Scratchpad (Terminal) [Press again to toggle]
Win + w $BROWSER(default ungoogled chromium)
Win + r File Browser (lf)
Win + d Execute Applications (rofi)
Win + b Toggle status bar (hide)
Win + Shift + d Execute Any Runnable (dmenu)
Win + p gotop (System monitor)
Win + Alt + p gpu monitor (nvidia)
Alt + p stress test and monitor (s-tui)
Win + F4 pulsemixer (audio input)
Win + F5 set multiple monitors and choose refresh rate
Win + F9 mount drive
Win + F10 unmount drive
Win + F11 Camera
Printscreen Screenshot fullscreen
Shift + Printscreen Screenshot (choose area or screen)
Win + ` Choose emoji and copy

Terminal keybinds

Key Combination Action
Alt + Shift + j Decrease font size (zoom -)
Alt + Shift + k Increase font size (zoom +)
Alt + o Copy output of command
Alt + ; Cycle fonts

Window Movement

Key Combination Action
Alt + Tab Choose window and focus
Win + j Focus next
Win + Shift + j Move focused to next
Win + k Focus previous
Win + Shift + k Move focused to previous
Win + l Resize master +
Win + h Resize master -
Win + s Sticky window toggle (show window in all tags)
Win + f Fullscreen (toggle)
Win + g Toggle gaps
Win + x Decrease gaps
Win + Shift + x Increase gaps
Win + Shift + g Set default gaps
Win + m Increase master (just try it to understand)
Win + Shift + m Decrease master (just try it to understand)
Win + Space Set focused as master
Win + Shift + Space Toggle floating window

Layouts

You can Right Click RMB on ' []= ' in status bar to choose layout with mouse

Key Combination Action
Alt + 1 Tiling (Default)
Alt + 2 Backstack
Alt + 3 Monocle (windows top of each)
Alt + 4 Deck layout
Alt + 5 Spiral
Alt + 6 Dwindle
Alt + 7 Centered master
Alt + 8 Centered floating master
Alt + 9 Floating (windows 10 style)
Win + Right Cycle layout next
Win + Left Cycle layout previous

Tag operations

You can Left Click LMB on 1-9 in status bar to focus tag

Key Combination Action
Win + 1 .. 9 Go to tag number
Win + WheelUp Go to next tag
Win + WheelDown Go to previous tag
Win + Shift + 1 .. 9 Send focused window to tag number

Utility keys

Key Combination Action
Sound Up Increase sound
Sound Down Decrease sound
Brightness Down Decrease brightness
Brightness Up Increase brightness
fn + TouchpadToggle Toggle touchpad
fn + Kbd Backlight Up Increase keyboard backlight
fn + Kbd Backlight Down Decrease keyboard backlight

Mouse actions

Key Combination Action
Win + LMB Move window with mouse (sets window to floating mode)
Win + RMB Resize window with mouse (sets window to floating mode)
Alt + LMB Hide focused window (iconic state, restore it from dock)
Alt + RMB Toggle dock when a client is focused