/phyOS-dwm

wm for phyOS, 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

Gifs

alt text alt text

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 phyOS-fonts, clone the repo and:

    make && sudo make install

Main account : https://github.com/FT-Labs

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-animations-git
  • unclutter
  • rofi
  • dmenu
  • conky
  • jgmenu
  • lf
  • s-tui (stress test)
  • cointop (terminal crypto prices)
  • pamixer
  • pulsemixer
  • imlib2
  • maim
  • joypixels emoji font
  • zathura (pdf reader, used for keys)

I am using this for phyOS arch iso 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 = Required DatabaseOptional
Server = https://FT-Labs.github.io/$repo/$arch

After adding the repo, install keyring first:

sudo pacman-key --recv-key 964FD85861C858D7
sudo pacman-key --lsign-key 964FD85861C858D7
sudo pacman -Syy phyOS-keyring
sudo pacman-key --init
sudo pacman-key --populate phyOS

Then install necessary programs with pacman easily:

sudo pacman -S phyOS-dwm phyOS-dunst phyOS-systemd-services phyOS-system-scripts phyOS-sysconf phyOS-st phyOS-fonts phyOS-dmenu phyOS-xmenu rofi unclutter lf-png ttf-joypixels light picom-animations-git

Installation for different distros then arch linux:

git clone https://github.com/FT-Labs/phyOS-dwm
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/FT-Labs/phyOS-fonts
cd fonts-phyOS && sudo mv *.otf *.ttf /usr/fonts/
sudo fc-cache

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

To pull newest dotfiles, just write phyup dots

Note that this just pulls newest config from github repo. If any conflict happens, this will give error and won't replace current dotfiles. Just move them elsewhere if you prefer not to change them.

If you want to force install dotfiles, write the command below:

phyup dots --force

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 or just make them immutable with something like

sudo chattr +i .xinitrc

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 + ESC Power menu
Win + Shift + Return Scratchpad (Terminal) [Press again to toggle]
Win + w $BROWSER(default ungoogled chromium)
Win + r File Browser (lf)
Win + a Execute Applications (rofi)
Win + b Toggle status bar (hide)
Win + d Jump to directory with terminal (check 'bm' script to add bookmarks)
Win + Shift + a Execute Any Runnable (dmenu)
Win + p passmenu (pass password manager)
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
Win + Shift + s Screenshot (choose area or screen)
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
Win + Tab Choose window from current desktop
Alt + Tab Choose any 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 + Shift + h Next Tag
Win + h Resize master -
Win + Shift + h Previous Tag
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

You can Right Click RMB on 1-9 in status bar to select multiple tags

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
RMB Open Dropdown Menu (On Root Window)
Win + RMB Open Dropdown Menu (On Any Client)
Win + LMB Move window with mouse (sets window to floating mode)
Win + MMB Resize window with mouse (sets window to floating mode)
Alt + LMB Hide focused window (iconic state, restore it from dock)
Alt + RMB Toggle dock