8000 GitHub - bbarker/dotpenrose: My linux desktop environment using custom penrose tiling window manager and mostly rust software
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

bbarker/dotpenrose

 
 

Repository files navigation

TODO

  1. some .config was copied manually: either write a build script to ln -s this or manage with home-manager.

My Penrose Window Manager Setup

A customized tiling window manger configuration for X11 linux, using Penrose. Also utilizing dmenu app launcher, alacritty, and nitrogen background manager.

screenshot

⚠️ As I'm moving mostly over to nixos so this repo receives little attention nowadays. I mean look at all those manual installation steps.

Installation:

NixOS or Nix

You'll likely want to disable login managers for simplicity. On NixOS, this config should suffice for configuration.nix:

  # Enable touchpad support (enabled default in most desktopManager).
  services.libinput.enable = true;

  services.xserver = {
    enable = true;
    displayManager.startx.enable = true;
    xkb.layout = "us";
    xkb.variant = "";
  };
nix develop
cargo build --release

Then follow the configuration section below.

To run, startx from a shell where you have run nix develop.

nix-build

The nix-build work is a work-in-progress; currently it still needs to have the local repo for things like .xinitrc, scripts, and wallpapers. It can be tested by running nix profile install and setting WHICH_PENROSE to ON_PATH.

Non-NixOS

You'll need to install dmenu-rs separately; currently this involves building from source and copying the executables to the PATH.

At this time, you'll want to be sure you have unifont installed, as a fallback to rendering certain glyphs from other font packages. This may be fixed in more recent versions of libXft2; see this issue.

Arch

Install dependencies (arch):

sudo pacman -Syu
sudo pacman -S cmake pkg-config fontconfig python3 cairo pango xorg-xinit xorg-server nitrogen firefox dmenu acpilight fzf rust-analyzer picom htop barrier neofetch openssh tree clang nvtop

Now install rust based software, (assuming those software specific dependencies are satisfied)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup install nightly
cargo install alacritty lsd ripgrep nu starship rusty-rain gitui skim tokei bottom zellij bat rua ttyper taplo-cli lfs consoletimer onefetch oxker
cargo install cargo-udeps cargo-multi cargo-outdated cargo-semver-checks cargo-expand

Configuration

Place config files to appropriate location

cp -r .config ~

Prepare wallpapers:

cp -r wallpapers ~/

Build and compile in this repos directory

cargo build --release

Now copy the compiled file to where it can be executed globally

sudo cp ./target/release/penrose-personal /usr/bin/

Now link the (possibly modified) '.xinitrc' to '~/.xinitrc'

cd $HOME
ln -s /path/to/dotpenrose/.xinitrc

Now the desktop environment is ready for usage with the 'startx' command from a raw command line

Keymap

Here are the most important keybindings to control the window manager

'Meta' + ['h', 'j', 'k', 'l'] to navigate between windows

'Meta' + [ 1 .. 9 ] to switch between workspaces

'Meta' + 'Enter' to spawn alacritty terminal

'Meta' + 'q' to quit window

'Meta' + ',' to spawn dmenu prompt for application runner

'Meta' + 'Shift' + ['Up', 'Down', 'Left', 'Right'] to change tiling layout

For a complete binding list, check out 'src/main.rs'

Tips

Development

  • Don't run cargo clean, ideally (you shouldn't need to anyway, most likely).

  • Related to that, to be extra safe, if you are working on an experimental branch, you could check that out to a different directory, e.g.:

    $ git worktree add $HOME/workspace/dotpenrose_dev penrose_issue_302
    

    You could even start this on a different X server if you wanted to experiment at runtime.

    Or, you can swap out the current binary with the new dev binary by running ./use_dev_penrose.sh (still need to pkill dotpenrose after).

About

My linux desktop environment using custom penrose tiling window manager and mostly rust software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 52.3%
  • Nushell 36.8%
  • Nix 7.1%
  • Shell 3.8%
0