mikasaid / MhdraihandzakySaragih

1 stars 5 forks source link

Hello Wolcom To My Github #10

Open mikasaid opened 3 years ago

mikasaid commented 3 years ago

:octocat: Hi there! Thanks for visiting!
This is my personal configuration for my favorite openbox window manager and some applications too.I hope you understand everything here. πŸ˜‰
Here are some details about my setup

🎁 Changelogs

normal
v3.0
v3.1
v3.2 latest

🌸 Setup

This is step-by-step how to install these .files for automatic setup OpenboxWM custom environment.

Introduction of Linux Rice

Please read this and/or this.

Installation (dependencies)

Customize your choice about dependencies below, this is my complete setup as I use single OS, single OpenboxWM with my preference utility application. In fact, what is in the column is a minimal recommendation.

Detailed environment
Please refer to wiki/Detailed-Environment.

Warning!
This configuration is highly dependent to bash, sed, and coreutils.
Assume that you are using sudo or doas. Installation feels like LFS? πŸ˜†

Attention!

  • Rofi must be above version 1.6.x, so for Debian-based you may need to compile manually from source. - issue
  • If your Linux distribution repository only contains pure rxvt-unicode without patch for wide unicode and others, an example is on Arch Linux which provides pure rxvt-unicode and rxvt-unicode-patched version in the AUR repository. The problem is that the urxvt in the AUR hasn't been updated yet, and the link for the urxvt source-code for that version has been removed from the original link. Therefore, use rxvt-unicode from the main repo of each linux distribution that you use. Debian is different (already patched). - issue
  • You may want to use polkit-gnome instead of lxsession / lxpolkit. Because, currently the lxsession in Gentoo/Linux is really bad (dependency hell).
Debian & Ubuntu (and all based distributions)
sudo apt install rsync python psmisc x11-utils imagemagick ffmpeg wireless-tools openbox pulseaudio
alsa-utils brightnessctl nitrogen dunst tint2 gsimplecal rofi qt5-style-plugins lxpolkit xautolock
rxvt-unicode xclip scrot thunar thunar-archive-plugin thunar-volman ffmpegthumbnailer tumbler
viewnior mpv mpd mpc ncmpcpp pavucontrol parcellite neofetch w3m w3m-img htop playerctl xsettingsd
oh-my-zsh & plugins optional
picom
obmenu-generator

Arch Linux (and all based distributions)

Make sure your AUR Helper is yay or paru.

yay -S rsync python psmisc xorg-xprop xorg-xwininfo imagemagick ffmpeg wireless_tools openbox 
pulseaudio pulseaudio-alsa alsa-utils brightnessctl nitrogen dunst tint2 gsimplecal rofi
qt5-styleplugins lxsession xautolock rxvt-unicode-patched xclip scrot thunar thunar-archive-plugin
thunar-volman ffmpegthumbnailer tumbler viewnior mpv mpd mpc ncmpcpp pavucontrol parcellite
neofetch w3m htop picom-git obmenu-generator gtk2-perl playerctl xsettingsd
oh-my-zsh & plugins optional

Another Linux Distribution

Optional: betterdiscord, geany + geany plugins, gimp, nano + nano syntax highlighting, neovim, spotify, termite, xfce4-power-manager.

Installation (dotfiles)

Are all directories required? πŸ€”
Please refer to wiki/Detailed-Environment.

Most of .files

You can clone or download as a archive. After that put all files in the dotfiles folder to user's home directory.

Assume you are cloning in the /Documents directory for example.

cd /Documents/ && git clone https://github.com/owl4ce/dotfiles.git

I recommend with rsync.

rsync -avxHAXP --exclude '.git*' --exclude 'LICENSE' --exclude '*.md' dotfiles/ ~/

Explanation

Options | Function -- | -- -a | all files, with permissions, etc.. -v | verbose, mention files -x | stay on one file system -H | preserve hard links (not included with -a) -A | preserve ACLs/permissions (not included with -a) -X | preserve extended attributes (not included with -a) -P | show progress --exclude | exclude files matching PATTERN

Differences

  • cp is for duplicating stuff and by default only ensures files have unique full path names.
  • rsync is for synchronising stuff and uses the size and timestamp of files to decide if they should be replaced. It has many more options and capabilities than cp.

I recommend to not deleting dotfiles folder after cloning from this repository, because to make upgrades easier. Read the update section.

Icons

Note
pushd is same as cd, but can return back to the first directory (checkpoint).

pushd ~/.icons/ &&
    tar -Jxvf Papirus-Custom.tar.xz && tar -Jxvf Papirus-Dark-Custom.tar.xz &&
    sudo ln -vs ~/.icons/Papirus-Custom /usr/share/icons/Papirus-Custom &&
    sudo ln -vs ~/.icons/Papirus-Dark-Custom /usr/share/icons/Papirus-Dark-Custom &&
popd

Why I need to link icons to user system resources? πŸ€”
That's needed by dunst in order to display most of icon from notification that spawned by application.

Refresh Font Cache
fc-cache -rv
Root Privileges with SUID
  • brightnessctl
  • others if needed

For brightnessctl, I recommend adding users to video group.

sudo chmod u+s $(command -v brightnessctl)

The step you are waiting for

The final step is login into openbox-session, basically login from display manager you use such as lightdm, gdm, etc.

Note
Make sure the sh symlinks to bash, as it's very dependent on bash.

[ "$(readlink /bin/sh)" != "bash" ] && sudo ln -vfs bash /bin/sh

If you are using ~/.xinitrc without display manager, simply add

Systemd Linux Distribution

exec openbox-session

Init-Freedom Linux Distribution

exec dbus-launch --exit-with-session openbox-session

Then you can proceed to user's configuration. Explore!

Additional

Suggested replacement commands

~/.zshrc

...

134 alias ls="exa -lgh --icons --group-directories-first"
135 alias la="exa -lgha --icons --group-directories-first"

...

Suggestion for tiling users

I recommend compiling it from source. Then put zentile binary your PATH, for example in ~/.local/bin/

<div class="highlight highlight-source-shell position-relative" data-snippet-clipboard-copy-content="# To run in the background (detached)
zentile &!

To kill (or pkill)

killall zentile
" style="box-sizing: border-box; position: relative !important; margin-bottom: 16px; color: rgb(201, 209, 217); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(13, 17, 23); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">

# To run in the background (detached)
zentile &!

# To kill (or pkill)
killall zentile

Update

Since I recommend using rsync from start, the easiest way is to list the files that will not be updated to avoid changing personal files with files in this repository. First, update local repository with git repository.

Remember where you cloned this repository.
For example, from the start we assumed that it was in /Documents.

cd /Documents/ &&
pushd dotfiles/ && git pull && popd

Then list the files excluded by rsync (PATTERN). For example,
/Documents/owl4ce_drsyncexc

.git*
LICENSE
*.md
*.joy
BetterDiscord
geany
GIMP
gtk-3.0
config.conf
nvim
autostart
environment
tray
shared
sidebar
termite
Thunar
xfconf
.fonts
.nothing
.mpd
.gtkrc-2.0
.zshrc
.nanorc
.Xresources
.xsettingsd

Use find command to check PATTERN,

find dotfiles/ -iname 'PATTERN'

and whatever the file is. Next, of course is rsync.

rsync -avxHAXP --exclude-from /Documents/owl4ce_drsyncexc dotfiles/ /

User's configuration

πŸ“ Notes

Color Scheme

owl4ce.color-scheme

Nord Color Palette compatible


πŸ’¬

Widget? We don't do that here. My main philosophy in building this is as a minimal replacement for Desktop Environment without any desktop decoration e.g icons and widgets, but it can be adapted to taste of user with an overall theme based on one color palette and can be easily switched between Mechanical-Eyecandy. I admit, the downside is that it relies heavily on the GNU/Linux operating system since bashism is not POSIX-compliant to other shell. Most of the size of this repository is large due to wallpapers, icons, and git caches.Please don't underrate, I've configured them all since April 2020 and have been stuDYING them since October 2019. Awesome open-source. If you support it, star it or make a PR. Or if there is a problem with configuration (please check previous issues if any) you can make an issue here. Also if you want a discussion.Thank you!Feel free to modify.. under GPL-3.0Why openbox? Really a perfect next-gen window manager, easily configurable, and less resources usage.Openbox isn't dead, but completed features.
 


πŸ’ Tip Jar

If you enjoy my dotfiles and would like to show your appreciation, you may want to tip me here. It is never required but always wholeheartedly appreciated.

Thank you from the bottom of my heart! πŸ’—

🎊 Credits / Thanks

mikasaid commented 3 years ago

billalxcode