Skip to content

Commit

Permalink
Merge branch 'AUR' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
LycanDarko666 committed Oct 11, 2023
2 parents 289a6f9 + 212fda9 commit 8f09d94
Show file tree
Hide file tree
Showing 16 changed files with 952 additions and 954 deletions.
26 changes: 0 additions & 26 deletions .SRCINFO

This file was deleted.

16 changes: 0 additions & 16 deletions .vscode/easycode.ignore

This file was deleted.

6 changes: 0 additions & 6 deletions .vscode/extensions.json

This file was deleted.

11 changes: 0 additions & 11 deletions .vscode/settings.json

This file was deleted.

4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Contributing to Rabbithole
If you want to contribute to Rabbithole, please join the Rabbithole [Discord](https://discord.com/channels/1122348043950366823/1122348044382392432) and get to know us.

We are a tight-knit pair of two programmers right now who have been pair-programming for over 15 years, so we are looking for hand-in-glove fits who know what the projects logical conclusion and vision is and can help us get there. Don't be shy, though! We are very friendly and open to new ideas and new people.
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

212 changes: 66 additions & 146 deletions README.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Contributing to Rabbithole
If you want to contribute to Rabbithole, please join the Rabbithole [Discord](https://discord.com/channels/1122348043950366823/1122348044382392432) and get to know us.

We are a tight-knit pair of two programmers right now who have been pair-programming for over 15 years, so we are looking for hand-in-glove fits who know what the projects logical conclusion and vision is and can help us get there. Don't be shy, though! We are very friendly and open to new ideas and new people.
675 changes: 0 additions & 675 deletions docs/LICENSE

This file was deleted.

175 changes: 175 additions & 0 deletions docs/README-Installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Rabbithole Installation Tutorial
Here are instructions on how to get Rabbithole up-and-running. Only pick on of the installation methods below.

## Table of Contents
- [Cut & Dry Installation (Recommended for Every System)](#cut--dry-installation-recommended-for-every-system)
- [Arch Linux AUR Installation](#arch-linux-aur-installation)
- [Automated Installer (Recommended for Novice Users)](#automated-installer-recommended-for-novice-users)
- [Steps](#steps)
- [Manual Installation (Advanced Users)](#manual-installation-advanced-users)

## Cut & Dry Installation (Recommended for Every System)
Make sure you have `lxqt`, `git`, and `awesome` from your package manager. Then do the following in a terminal:

```shell
git clone https://github.com/SaintRyoh/rabbithole && cd rabbithole && git submodule update --init
```

Copy or symlink Rabbithole's configuration to the `~/.config/awesome` directory:

```bash
cp -R rabbithole/* ~/.config/awesome
```
Then head follow the instructions to use Rabbithole on LxQt [here](README-lxqt-installation.md).

## Arch Linux AUR Installation
```shell
yay -S rabbithole
```

Then copy or symlink Rabbithole's configuration to the `~/.config/awesome` directory:

```bash
cp /usr/share/rabbithole ~/.config/awesome
```
Or
```bash
ln -s /usr/share/rabbithole ~/.config/awesome
```

Finally, [set up to use Rabbithole with LxQt](README-lxqt-installation.md), or select Rabbithole from your display manager (login screen)!


Let us know if you have any [issues](https://github.com/SaintRyoh/rabbithole/issues) with the AUR package.

## Automated Installer (Recommended for Novice Users)

The automated installer will install all of Rabbithole's dependencies and copy all custom Rabbithole configurations (picom, rofi, etc.) to their appropriate locations. After that, just [set up LxQt](README-lxqt-installation.md).
**Note** If you already have a copy of Rabbithole installed, the installer will not delete your settings.lua. So if you messed up your installation, you should `rm -rf ~/.config/awesome` before proceeding.

### Steps
```shell
git clone https://github.com/SaintRyoh/rabbithole && cd rabbithole && git submodule update --init
```
Make installer executable and run it:
```shell
chmod +x rabid-installer.sh
```
```shell
./rabid-installer.sh
```

Then [set up LxQt](README-lxqt-installation.md), or select Rabbithole from your display manager (login screen).
![Rabbithole](install_images/1-select-rabbithole.jpeg)

## Manual Installation (Advanced Users)

Below are the dependencies you need if you are going to manually install all of your systray programs and really know what you are doing when it comes to window managers. Only recommended for experienced users who want to build their environment themselves manually. You will still have to go through [post installation](#post-installation) to configure Rabbithole properly.

### Core Packages
```
lxqt
awesome
rofi
rofi-themes-collection-git
picom
autorandr
ttf-ubuntu-font-family
tmux
```
### DE-Like Experience Packages
```
lxqt
awesome
rofi
rofi-themes-collection-git
picom
autorandr
ttf-ubuntu-font-family
volumeicon
network-manager-applet
blueman
flameshot
linux-wifi-hotspot
tmux
```

If you don't want to use the installer script and prefer doing things by hand, a full DE-like install for Arch will be shown below (yay must be installed).

#### 1) Clone Repo & Initialize Submodules

```shell
git clone https://github.com/SaintRyoh/rabbithole && cd rabbithole && git submodule update --init
```

#### 2) Install Dependencies

```
yay -S awesome rofi rofi-themes-collection-git picom autorandr ttf-ubuntu-font-family volumeicon beautyline lxqt-policykit lxqt-powermanagement network-manager-applet blueman-git flameshot linux-wifi-hotspot
```
Installing Rabbithole for other distros works as well, or you can use our [automated-installer](#automated-installer) and let us know if it works or not, so we can get it running on all major distros. The installer supports; Debian, Arch, Void, & Gentoo (as well as distros based on the aforementioned ones).

#### 3) Install Rabbitole

Simply copy or symlink the config to your Awesome WM configuration directory after initializing the submodules:

```shell
cp -R rabbithole/* ~/.config/awesome
```

Or make a symlink

```shell
ln -s rabbithole ~/.config/awesome
```

### Post Installation

After Rabbithole is now installed, we sill must configure everything.

#### 4) Configuration

Next, you will need to copy the configuration for picom and Rabbithole's settings to their appropriate places.

```shell
cp rabbithole/installer/picom.conf ~/.config/picom.conf
```

For a basic, minimal installation (for advanced users) copy settings.lua for **core**:

```shell
cp rabbithole/installer/settings-core.lua ~/.config/awesome/settings.lua
```

Or the full **DE-like** installation:

```shell
cp rabbithole/installer/settings-full.lua ~/.config/awesome/settings.lua
```

Rofi themes collection and Ubuntu Font Family installation remain the same across distributions:

#### 5) Clone the Rofi themes collection:

```bash
mkdir -p "$HOME/.local/share/rofi/themes"
git clone https://github.com/newmanls/rofi-themes-collection.git "$HOME/.local/share/rofi/themes"
```

#### 6) Install the Ubuntu Font Family Manually (not necessary on Arch or Ubuntu):

```bash
sudo mkdir -p "/usr/share/fonts/ubuntu-font-family"
sudo wget -O "/usr/share/fonts/ubuntu-font-family/Ubuntu.zip" https://assets.ubuntu.com/v1/fad7939b-ubuntu-font-family-0.83.zip
sudo unzip "/usr/share/fonts/ubuntu-font-family/Ubuntu.zip" -d "/usr/share/fonts/ubuntu-font-family
```
#### Install BeautyLine Icon Pack
```shell
git clone https://github.com/Tekh-ops/Garuda-Linux-Icons.git "/usr/share/icons/BeautyLine"
```
#### 7) Update icon cache:
```shell
gtk-update-icon-cache -f -t /usr/share/icons/BeautyLine
```
45 changes: 0 additions & 45 deletions installer/PKGBUILD/PKGBUILD

This file was deleted.

17 changes: 0 additions & 17 deletions installer/PKGBUILD/rabbithole.install

This file was deleted.

19 changes: 19 additions & 0 deletions installer/rabbithole
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

config_dir="$HOME/.config/awesome"
rabbithole_config_dir="$config_dir/rabbithole"

if [ -d "$rabbithole_config_dir" ]; then
echo "Rabbithole configuration already installed. Starting Awesome WM..."
else
if [ ! -d "$config_dir" ]; then
echo "Creating $config_dir directory..."
mkdir -p "$config_dir"
fi

echo "Copying Rabbithole configuration to $config_dir..."
cp -r /usr/share/rabbithole/* "$config_dir"
echo "Rabbithole configuration has been copied to $config_dir."
fi

exec /usr/bin/awesome
2 changes: 1 addition & 1 deletion installer/rabbithole.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
Encoding=UTF-8
Name=Rabbithole
Comment=Rabbithole Meta-Window Manager
Exec=/usr/bin/awesome
Exec=/usr/bin/rabbithole
Type=XSession
16 changes: 7 additions & 9 deletions rabbithole/services/detect-monitors.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,22 @@ function DetectMonitor.new()
end

function DetectMonitor.setup_screens()
awful.spawn.easy_async_with_shell("xrandr -q | grep ' connected'", function(stdout)
awful.spawn.easy_async_with_shell("xrandr -q | awk '/ connected/{print $0; getline; print}'", function(stdout)
local screens = gears.string.split(stdout, "\n")
for _, line in pairs(screens) do
for i = 1, #screens, 2 do
local line = screens[i]
local screen_name = line:match("^(.-) connected")
if screen_name then
-- Find and set the highest available resolution for the connected screen
local max_res = line:match("%d+x%d+")
local max_res = screens[i + 1]:match("(%d+x%d+)")
if max_res then
awful.spawn.easy_async_with_shell("xrandr --output " .. screen_name .. " --mode " .. max_res, function()
-- save users setup for the future
awful.spawn.easy_async_with_shell("autorandr --save " .. screen_name, function()
naughty.notify({ title = "Automatic Display Configuration", text = "Applied and saved configuration for " .. screen_name })
end)
end)
else -- default to auto detection if display can't be determined
else
awful.spawn.easy_async_with_shell("autorandr --change", function()
naughty.notify({ title = "Automatic Display Configuration", text = "Maximum resolution could not be determined for " .. screen_name .. ". Autodetected settings." })
naughty.notify({ title = "Automatic Display Configuration", text = "Maximum resolution could not be determined for " .. screen_name .. ". Autodetected settings applied." })
end)
end
end
Expand Down Expand Up @@ -63,5 +62,4 @@ awful.spawn.with_line_callback("stdbuf -oL udevadm monitor --property --subsyste
end
})

return DetectMonitor

return DetectMonitor
Loading

0 comments on commit 8f09d94

Please sign in to comment.