dianaw353 / dotfiles

A easy to use, post install script to install hyprland dotfiles
BSD 2-Clause "Simplified" License
7 stars 3 forks source link
alacritty ansible automation bluetooth dotfiles fastfetch helix hyprland hyprland-config hyprland-rice kvm nautilus oh-my-posh vm zsh

[!IMPORTANT] This repo is going under some overhaul as we start working on the switch to Aylur's Gtk Shell, version 2.x. The branch you're at, main, is currently at AGS version 1.9.0 and will no longer have new features unless absolutely necessary.

Dotfiles

![GitHub last commit](https://img.shields.io/github/last-commit/dianaw353/dotfiles?style=for-the-badge&color=FFB1C8&logoColor=D9E0EE&labelColor=292324) ![GitHub Repo stars](https://img.shields.io/github/stars/dianaw353/dotfiles?style=for-the-badge&color=FFB686&logoColor=D9E0EE&labelColor=292324&logo=andela) ![GitHub repo size](https://img.shields.io/github/repo-size/dianaw353/dotfiles?style=for-the-badge&color=CAC992&logoColor=D9E0EE&labelColor=292324&logo=protondrive) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/dianaw353/dotfiles?style=for-the-badge&labelColor=292324&color=CBA6F7) ![Github open issues](https://img.shields.io/github/issues/dianaw353/dotfiles?style=for-the-badge&labelColor=292324&color=D9E0EE)

A Hyprland configuration set using AGS (Aylur's Gtk Shell).
Can also be used as an automated post-install configuration script.


[!WARNING] Laptop workarounds are based on community feedback, and NVIDIA support is noted by Hyprland Wiki to be unofficial but supported with the help of the community.

Showcase

Version 2

Currently being developed... Picture comming Soon!

Version 1 as of 11-18-14 (Maintenance Mode)

Featues

Dotfiles
- Sane defaults for Pacman - Clean and minimal configurations for fastfetch, ZSH and OMP (Oh-My-Posh) - ZSH configuration also includes a command called `rmpmlck` (ReMove PacMan LoCK) to remove the lock file if Pacman is not running. - Focus on GTK - Login skin by AGS - Uses GreetD as the greeter. - Material 3 design language - Yes, this includes a replica of the Monet engine! - Sane Hypridle configuration set - Inhibits locking in full screen. - Pauses all supported players when locked. - Player support depends on the player of choice. Most major ones like Spotify and YouTube Music should support this. - Basic OSDs (On-Screen Displays) - Located on the right side of the screen by default for consistency with phones and tablets. - Mild customizability, with even more tweaks possible inside the config files themselves - Hey, at least it's the widest variety of configurations you can get from the GUI! It's like Good Lock on Samsung except it comes bundled out of the box. - Keyboard shortcuts guide widget - Similar to what Ubuntu Unity and Pardus have. - Can be invoked with Super+/, much like on Discord. - Full screen mobile-esque power menu - This ain't like KDE but more like, again, Android devices. - Cute defaults for images - ...if you like anime style, that is. You can still change those in configurations, though. - Many more available and to come!
Scripts
- Fully automated - Granular configuration
Prepares the system for the configuration
- Updates the system before anything else. - Makes sure preliminary dependencies are installed. - Installs the AUR helper of choice. - (Optional) Sets up Chaotic AUR - A pacman repo for prebuilt AUR packages. - Generates mirror list using `rate-mirrors-bin` for fastest package installation experience possible. - A backup of the previous mirror list is generated should you need to revert back.
- VM detection - Hyprland needs extra configuration for virtual machines to enforce software rendering. - Installs GPU drivers where supported. - Config review before running is a must! (`group_vars/all.yml`) - **__IF YOU HAVE AN NVIDIA GPU NOT SUPPORTED BY THE LATEST DRIVER, YOU MUST AVOID PROPRIETARY DRIVERS SERVED HERE AND FOLLOW ARCH WIKI FOR THE ONE THAT SUITS YOU!__** - Laptop workarounds - Currently only has auto-brightness blacklisting for Framework laptops - The board vendor is detected just in case. - KVM configuration with 3D accelaration - Required and optional dependencies for Linux gaming :D - Full support for Arch Linux, with more on the roadmap. - More of these! Check the config for most of them!

Supported Linux distros

Requirements

  1. Get the release you want. 1.1. Stable release (Recommended for end users):
    bash <(curl -s https://raw.githubusercontent.com/dianaw353/dotfiles/main/dotfiles.sh) stable

    1.2. Rolling release (Recommended for developers and enthusiasts):

    bash <(curl -s https://raw.githubusercontent.com/dianaw353/dotfiles/main/dotfiles.sh) rolling
  2. Head into the dotfiles folder and edit the variables in group_vars/all.yml

[!NOTE] These defaults were adjusted for my own setup, and there may be quite a few things you might want to change in there.

Installation

(Optional) Do a dry-run to make sure things go smoothly:

ansible-playbook main.yml --ask-become-pass --check

The real deal:

ansible-playbook main.yml --ask-become-pass

You may also run a specific role instead of the entire playbook, which will install and configure only the packages and apps that role contains.

ansible-playbook main.yml --ask-become-pass -t role1 [role2 [...]]

P.S. A list of the available roles can be found under the default_roles variable inside group_vars/all.yml. :3

To-Do

View the relevant issues tag for a more comprehensive rough list of To-Dos and upcoming features.

Layout of the repo

Click/Tap to reveal - Pre-configuration Tasks - Package manager - Perform system upgrade if needed. - Make sure preliminary dependencies are installed. - Install the AUR helper of choice. - (Optional) Set up Chaotic AUR. - Generate mirror list using `rate-mirrors-bin`. - A backup of the existing list will be generated in case you don't like the one generated by this repo. - Update `pacman` configuration. - VM detection - Hyprland requires extra configuration for software rendering, which is a must for VMs. - Drivers - CPU detection to install the relevant `ucode` in case you skip it during system installation. - GPU detection - Core 64-bit, 32-bit and multiarch packages for all GPUs - Required open-source multiarch graphics drivers and packages for AMD, Intel and NVIDIA - Required proprietary multiarch graphics drivers and packages for AMD, Intel and NVIDIA - Laptop workarounds - Board vendor detection for appropriate workarounds to be applied. - System - Install required packages - Enable SystemD services - `systemd-timesyncd.service` - `bluetooth.service` - `pipewire.service` - `pipewire-pulse.service` - `wireplumber.service` - Fixes - GTK window buttons - Screen locking - Screen sharing using Pipewire - Install packages - Core system packages - Audio server - May only choose either of these, not both. - Pipewire - PulseAudio - Bluetooth - Core packages - PulseAudio companions - Core roles - AGS - Install required packages - Configuration - Create configuration directories - Copy over the configuration files - User profile images included. - Enable required services - Hyprland - Install required packages - Configuration - Copy over the configuration files - Update pre-made configuration files - Enable dynamic cursors - Install and configure core packages - (Optional) Change the default shell - Supports only ZSH. Also disables OMP warnings if my config is used. - i18n (Internationalization) - Install fcitx5 and configure it. - The only configuration for now is allowing language switches everywhere. - (Optional per language) Install fonts for non-Latin languages. Currently supports the following languages: - CJK (Chinese-Japanese-Korean) - Noto - Japanese - Official font by the IPA - toki pona - linja pona - (Optional per language) Install fcitx5 IMEs for non-Latin languages. Currently supports the following languages with their respective packages: - Chinese - `fcitx5-chinese-addons` - Japanese - `fcitx5-mozc` - Korean - `fcitx5-hangul` - toki pona - `ilo-sitelen-git` - Install custom apps - KVM - Replace `iptables` with `iptables-nft` - Install required packages - Enable required services - Add current user to `libvirt` group - Update `libvirtd` settings - Make sure virtual network is started and set it to automatically start on boot - VMware - Install specified headers package for your kernel (Required for `vmmon` and `vmnet` kernel modules) - Install VMware Workstation from AUR - Enable USB Arbitrator and Networks services - Install required packages and optimal gaming experience - Post-configuration Tasks - Clear AUR cache

Credits