From d3762931b7b850b094fb47854bf39d3e39d5c051 Mon Sep 17 00:00:00 2001 From: elenapan Date: Sat, 14 Dec 2024 00:05:06 +0200 Subject: [PATCH] readme: SwayFX update --- .assets/gallery.png | Bin 4658 -> 0 bytes .assets/setup.png | Bin 3909 -> 0 bytes .assets/tipjar.png | Bin 3681 -> 0 bytes .assets/wiki.png | Bin 2947 -> 0 bytes .github/assets/header.svg | 149 +++++++++++++ README.md | 435 +++++++++++++------------------------- 6 files changed, 291 insertions(+), 293 deletions(-) delete mode 100644 .assets/gallery.png delete mode 100644 .assets/setup.png delete mode 100644 .assets/tipjar.png delete mode 100644 .assets/wiki.png create mode 100644 .github/assets/header.svg diff --git a/.assets/gallery.png b/.assets/gallery.png deleted file mode 100644 index 110abf4d1bf1c47aaf51ee78bf73338dac9e475c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4658 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 Yul+0iU;Xh<1_lNOPgg&ebxsLQ0L)kr^8f$< diff --git a/.assets/wiki.png b/.assets/wiki.png deleted file mode 100644 index 1d8dca6abdd3d19dcfd671005475600006e5c4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2947 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 diff --git a/.github/assets/header.svg b/.github/assets/header.svg new file mode 100644 index 0000000..8db460e --- /dev/null +++ b/.github/assets/header.svg @@ -0,0 +1,149 @@ + + +
+ +
+
+ (\ /) +
+ ( . .) +
+ c(")(") +
+ +
+
+ elena's +
+ +

+
+
+ +
+
+
+
diff --git a/README.md b/README.md index 8c88ec3..bac1c4b 100644 --- a/README.md +++ b/README.md @@ -1,340 +1,189 @@ -

- -

+
+ elena's dotfiles banner +
-

- 🎀 Elena's configuration files 🎀 -

+

+ Setup ・ + Wiki ・ + Gallery ・ + Tip Jar +

+
-

- - - - -

+**Thanks for dropping by!** +img -### Thanks for dropping by! +This is my personal collection of configuration files that forms the desktop you see on the right. -img +Here are some details about my current setup: -This is my personal collection of configuration files. - -You are probably here for my AwesomeWM configuration. - -The [setup section](#setup) will guide you through the installation process. - -Here are some details about my setup: - -+ **WM**: [AwesomeWM](https://github.com/awesomeWM/awesome/) 💙 config included! -+ **OS**: Arch Linux ++ **OS**: Gentoo ++ **Window Manager / Compositor**: [SwayFX](https://github.com/WillPower3309/swayfx) ++ **Widgets**: [Eww](https://github.com/elkowar/eww) ++ **Notifications**: [dunst](https://github.com/dunst-project/dunst) + **Shell**: [zsh](https://wiki.archlinux.org/index.php/Zsh) -+ **Terminal**: [kitty](https://github.com/kovidgoyal/kitty/) 💙 config included! -+ **Editor**: [Neovim](https://github.com/neovim/neovim/) 💙 config included! -+ **Org editor**: [Doom Emacs](https://github.com/hlissner/doom-emacs/) -+ **File Manager**: [Thunar](https://git.xfce.org/xfce/thunar/) -+ **Launcher**: [rofi](https://github.com/davatorium/rofi/) 💙 config included! ++ **Terminal**: [kitty](https://github.com/kovidgoyal/kitty) ++ **Editor**: [Neovim](https://github.com/neovim/neovim) ++ **File Manager**: [nnn](https://github.com/jarun/nnn) and [Nemo](https://github.com/linuxmint/nemo) ++ **Launcher**: [rofi](https://github.com/davatorium/rofi/) + **Browser**: Firefox -## New stuff +
+
-- New release: Code name `amarena` -- Brand new sidebar theme -- Revamped dashboard: now with corona stats for your country of choice -- Mini window switcher / manager activated with super + tab. Check out all its features [here](https://github.com/elenapan/dotfiles/wiki/Desktop-elements#window-switcher) -- Custom mouse-friendly `ncmpcpp` UI -- Adorable battery indicator -- Support for [PAM authentication](https://wiki.archlinux.org/index.php/PAM) through the built-in lock screen -- Cleaner code (but no one will notice) +## Philosophy +This is **not a traditional desktop** in any sense. It is highly opinionated, consists of what works for me and looks good for me and frequently disregards traditional desktop conventions and expectations. It has been evolving for about 8 years, spanning across several window managers and a migration from X11 to Wayland. + +This desktop is: +- Mouse-friendly but keyboard-loving, particularly when it comes to Vi keys +- Dark and cozy, with vibrant colors and a sprinkle of kawaii-ness + +## Latest iteration: `Aphelion` + +Features: + +- A sidebar widget with 3 pages: + 1. Clock, date, weather, system info + 2. Calendar and agenda + 3. Media info and controls +- Network widget integrated with [iwd](https://wiki.gentoo.org/wiki/Iwd) +- Agenda widget integrated with `.org` files +- Quick alarm widget +- 2-in-1 powermenu and lockscreen widget +- A simple dock widget, compatible with sway +- Bunny headpats + +**All interactive widgets can be controlled both with the mouse and the keyboard.** + +

+ 🎬 45 second showcase (YouTube) +

## Setup -Here are the instructions you should follow to replicate my AwesomeWM setup. +1. **Install dependencies** -1. Install the [git version of AwesomeWM](https://github.com/awesomeWM/awesome/). + The following packages need to be installed for all desktop functionality to work. - **Arch users** can use the [awesome-git AUR package](https://aur.archlinux.org/packages/awesome-git/). - ```shell - yay -S awesome-git - ``` + | Package | Purpose | + | --- | --- | + | [`swayfx`](https://github.com/WillPower3309/swayfx) | Window manager / compositor | + | [`i3ipc`](https://github.com/altdesktop/i3ipc-python) | Sway-related scripts | + | [`eww`](https://github.com/elkowar/eww) | Widgets | + | `bash` | Various scripts | + | `python` | Various scripts | + | [`rofi-wayland`](https://github.com/lbonn/rofi) | Launchers and menus | + | `dunst` | Notification daemon | + | `libnotify` | Notification creation with `notify-send` | + | [`notify-send.sh`](https://github.com/vlevit/notify-send.sh) | `notify-send` wrapper for notification replacement | + | `jq` | `json` parsing in various scripts | + | `inotify-tools` | Reaction to file changes in various scripts | + | `wget` | Making HTTP requests in various scripts | + | `acpid` | Battery charger state information | + | `pulseaudio` | Sound daemon | + | `slurp` | Screen region selection (Wayland) | + | `grim` | Screenshot tool (Wayland) | + | `grimshot` | `grim` and `slurp` wrapper | + | `playerctl` | Media info | + | `imagemagick` | Media art cropping | + | `gammastep` | Screen color temperature tool | + | `kdeconnect` | Phone battery information | + | `kitty` | Terminal emulator | + | `iproute2` | Network events information | + | `iwd` | Wireless daemon | - **For other distros**, build instructions are [here](https://github.com/awesomeWM/awesome/#building-and-installation). +> [!WARNING] +> **`iwd`**: If you already have a different wireless daemon installed, do not install and enable `iwd`. Having more than one wireless daemon running at the same time might disconnect your current wireless connection or cause other network issues. Note that [`iwd` can be used as a backend for NetworkManager](https://wiki.archlinux.org/title/NetworkManager#Using_iwd_as_the_Wi-Fi_backend). -2. Install dependencies and enable services - *If you are curious, [click here](https://github.com/elenapan/dotfiles/wiki/Detailed-dependency-table) to see a table of dependencies and why they are needed.* +> [!NOTE] +> Depending on your distribution, the names of the above packages may slightly differ. Also, some of the packages might not be available in your distribution's repositories so you might have to build them from source. - + Software +2. **Install fonts** - - **Ubuntu** 18.04 or newer (and all Ubuntu-based distributions) + The current setup uses the following fonts: + - [Baro](https://befonts.com/baro-font-family.html) + - [Kyok](https://www.1001fonts.com/kyok-font.html) + - [BattleAndy](https://www.dafont.com/battle-andy.font) + - My custom build of [Iosevka](https://github.com/be5invis/Iosevka/) + - [Icomoon](https://icomoon.io/about_icon_fonts) + - [Material Design Icons](https://fonts.google.com/icons) - ```shell - sudo apt install rofi lm-sensors acpid jq fortune-mod redshift mpd mpc maim feh pulseaudio inotify-tools xdotool + To save you time hunting for them online, I have uploaded a [.zip file to Dropbox](https://www.dropbox.com/scl/fi/fcjwlalz1zq19a05tdw0f/elenapan-dotfiles-fonts.zip?rlkey=uljkjoyi5qipi6hc9ju9ibk4o&st=zwqrvroc&dl=0). Download the .zip and then: - # Install light, which is not in the official Ubuntu repositories - wget https://github.com/haikarainen/light/releases/download/v1.2/light_1.2_amd64.deb - sudo dpkg -i light_1.2_amd64.deb - ``` + ```sh + # Assuming the .zip was saved in ~/Downloads + unzip -d ~/.local/share/fonts ~/Downloads/elenapan-dotfiles-fonts.zip + fc-cache -v + ``` - - **Arch Linux** (and all Arch-based distributions) +3. **Install dotfiles** - *Assuming your AUR helper is* `yay` + Backup first: + ```sh + mkdir ~/config-backup + cp -r ~/.config/{sway,eww,dunst,fontconfig,kitty} ~/config-backup + ``` - ```shell - yay -S rofi lm_sensors acpid jq fortune-mod redshift mpd mpc maim feh light-git pulseaudio inotify-tools xdotool - ``` - + Services + Then clone the repo and install the relevant dotfiles: + ```sh + git clone https://github.com/elenapan/dotfiles + cd dotfiles + cp -r config/{sway,eww,dunst,fontconfig,kitty} ~/.config + ``` - ```shell - # For automatically launching mpd on login - systemctl --user enable mpd.service - systemctl --user start mpd.service - # For charger plug/unplug events (if you have a battery) - sudo systemctl enable acpid.service - sudo systemctl start acpid.service +4. **Tweak the last few settings** + + - Set wallpaper: + ```sh + cp /path/to/your/wallpaper ~/.local/share/wallpaper ``` -3. Install needed fonts + - Set location for the weather information widget: - You will need to install a few fonts (mainly icon fonts) in order for text and icons to be rendered properly. - - Necessary fonts: - + **Typicons** - [github](https://github.com/fontello/typicons.font) - + **Material Design Icons** - [dropbox](https://www.dropbox.com/s/4fevs095ho7xtf9/material-design-icons.ttf?dl=0) - + **Icomoon** - [dropbox](https://www.dropbox.com/s/hrkub2yo9iapljz/icomoon.zip?dl=0) - + **Nerd Fonts** - [website](https://www.nerdfonts.com/font-downloads) - (You only need to pick and download one Nerd Font. They all include the same icons) - + **Scriptina** - [website](https://www.dafont.com/scriptina.font) - Handwritten font used in the lock screen - - Optional fonts: - + **My custom Iosevka build** - [dropbox](https://www.dropbox.com/s/nqyurzy8wcupkkz/myosevka.zip?dl=0) - 💙 *my favorite monospace font* - + **Anka/Coder** - + **Google Sans** - 💙 *my favorite sans font* - + **Roboto Condensed** - + **San Francisco Display** - - Once you download them and unpack them, place them into `~/.fonts` or `~/.local/share/fonts`. - - You will need to create the directory if it does not exist. - - It does not matter that the actual font files (`.ttf`) are deep inside multiple directories. They will be detected as long as they can be accessed from `~/.fonts` or `~/.local/share/fonts`. - - You can find the fonts required inside the `misc/fonts` folder of the repository. - ```shell - cp -r ./misc/fonts/* ~/.fonts/ - # Or to ~/.local/share/fonts - cp -r ./misc/fonts/* ~/.local/share/fonts/ - ``` - Finally, run the following in order for your system to detect the newly installed fonts. - ```shell - fc-cache -v - ``` - -4. Install my AwesomeWM configuration files - - ```shell - git clone https://github.com/elenapan/dotfiles - cd dotfiles - [ -e ~/.config/awesome ] && mv ~/.config/awesome ~/.config/awesome-backup-"$(date +%Y.%m.%d-%H.%M.%S)" # Backup current configuration - cp -r config/awesome ~/.config/awesome - ``` - -4. Configure stuff - - The relevant files are inside your `~/.config/awesome` directory. - - + User preferences and default applications - - In `rc.lua` there is a *User variables and preferences* section where user preferences and default applications are defined. - You should change those to your liking. Probably the most important change you can make is to set your `terminal`. - - For more sophisticated control over your apps, check out `apps.lua` - - Note: For the weather widgets to work, you will also need to create an account on [openweathermap](https://openweathermap.org), get your key, look for your city ID, and set `openweathermap_key` and `openweathermap_city_id` accordingly. - - + Have a general idea of what my keybinds do - - My keybinds will most probably not suit you completely, but on your first login you might need to know how to navigate the desktop. - - See the [keybinds](#keybinds) section for more details. - - You can edit `keys.lua` to configure your keybinds. - - + *(Optional)* This is also a good time to take a look at [how my configuration is structured](#awesomewm-configuration-file-structure) in order to understand the purpose of each file. - -5. Login with AwesomeWM 🎉 - - Congratulations, at this point you should be ready to log out of your current desktop and into AwesomeWM. - - Your login screen should have a button that lets you change between available desktop sessions. If not, [click here](https://github.com/elenapan/dotfiles/wiki/Troubleshooting#i-cannot-find-the-login-screen-button-that-lets-me-login-with-awesomewm) to find out how to fix it. - - Try it, play with it, enjoy it. - Consider checking out the [Advanced setup](https://github.com/elenapan/dotfiles/wiki/Advanced-setup) in order to enable and configure various components that are not needed to use the desktop, but provide a better experience. - - -6. *(Optional)* Eye-candy - - + Set the wallpaper - - ```shell - feh --bg-fill /path/to/your/wallpaper + Edit `~/.config/eww/scripts/daemons/weather.sh` and set the `location` variable. For example: + ```sh + location="Moscow,Russia" ``` - + Load a colorscheme + - Set lockscreen widget password: - ```shell - xrdb -merge /path/to/colorscheme + Edit `~/.config/eww/globals.yuck` and set the `screen-lock-password` variable. For example: + ```lisp + (defvar screen-lock-password "hunter2") ``` - Notes: - - To see the new colors you should restart AwesomeWM with super+shift+r or by right-clicking the desktop and clicking the gear icon (bottom-right). - - In the [config/colorschemes](config/colorschemes) directory of the repository I provide you with a few of my own colorschemes, but you can also use your favorite one. - - All of my AwesomeWM themes take their colors from `xrdb`. This also means that they play nice with tools like [pywal](https://github.com/dylanaraps/pywal). + - Set agenda widget `.org` files to watch: + Edit `~/.config/eww/scripts/daemons/agenda.sh` and set the `org_files` variable. For example: + ```lisp + org_files=("$HOME/notes/todo.org" "$HOME/notes/birthdays.org" "$HOME/notes/finance.org") + ``` -## AwesomeWM configuration: File structure +## Login -After setting up my AwesomeWM configuration, inside `~/.config/awesome` you will find the following: +To start the desktop, you may follow the steps in the ["Starting" section of the Sway article in the Arch Wiki](https://wiki.archlinux.org/title/Sway#Starting) -+ 🔧 `rc.lua` +> [!NOTE] +> SwayFX is essentially Sway with extra features, which means Sway-related and i3-related resources also apply to SwayFX. - The main configuration file which binds everything together. +## Usage - This file allows you to set user preferences, choose themes, configure default layouts for each tag, window rules and more. - It is also responsible for initializing all necessary desktop components. +All keybinds are declared in the [sway configuration directory](config/sway) in the following files: +- Global keybinds: [`keys`](config/sway/keys) +- [Binding modes](https://i3wm.org/docs/userguide.html#binding_modes): [`modes`](config/sway/modes) +- Widget keybinds: [`eww`](config/sway/eww) -+ ⌨️ `keys.lua` + These keybinds, implemented using binding modes, are only active when the respective widget is visible. - It initializes global and client keybinds. - In addition, it defines what mouse clicks do on windows, window titlebars or the desktop. +### Contributing -+ 🎮 `apps.lua` +- **Bugs**: This desktop has only one consistent user (me) and there could be bugs I haven't run into yet. If you have the time to report a bug, please do so in the repository's [issues](https://github.com/elenapan/dotfiles/issues). +- **Pull requests**: Before starting working on a pull request, open an issue so we can discuss first. - Provides functions for *activating* various applications, meaning either spawning them, focusing them or toggling them depending on whether they are currently running or not. - -+ 📚 `helpers.lua` - - Provides various uncategorized helper functions to make our life easier and our code cleaner. - -+ 🎨 `themes` directory - - Here you can find a directory for each available theme. - - Such a directory should include at least a `theme.lua` and optionally icons, wallpaper, and whatever asset you need that is theme-specific. - The `theme.lua` file usually sets colors, sizes and positions of various elements. - -+ 🖼 `icons` directory - - Here you can find a directory for each available icon theme and an `init.lua` file which initializes the `icons` variables. - - Icons can be images taken from the selected icon theme or text symbols taken from some icon font. - - For example, `icons.image.firefox` can be used to refer to your selected theme's Firefox icon instead of using the full path to the image. This makes it easy to switch between themes. - - Note: Icon themes defined here have nothing to do with your system-wide icon theme. - -+ 🎀 `decorations` directory - - In this directory you can find window decoration (titlebar) styles. - - They affect the layout of the titlebar and the titlebar buttons (e.g. close, maximize, minimize). - - Optionally, they may implement more complex decorations, using multiple titlebars around the window to create a certain look (e.g. double borders) or achieve anti-aliased window corners. - - Finally, some clients may have their own special titlebars added to them in order to simulate a custom UI. - For now, a custom `mpd` UI has been implemented. - - The `decorations` module also includes helper functions that generate titlebar buttons, in case you do not have/want image buttons. - -+ 💎 `elemental` directory - - Contains desktop components or *elements* such as bars, sidebars, lock screens and more. - Elements with multiple available themes have their own directory. For example: - - + In `elemental/bar` you can find a `.lua` file for each available bar or bar group. - - Multiple bars can be created in one file. - Every bar theme provides the global functions `wibars_toggle()` and `tray_toggle()` which you can bind to any keys you want. - - + In `elemental/sidebar` you can find a `.lua` file for each available sidebar theme. - - + ... And so on. - -+ 💬 `notifications` directory - - This directory includes notification daemons that trigger notifications for various desktop events such as volume or brightness change. - Also it includes notification themes that define the layout of the notification contents. - -+ 🍜 `noodle` directory: Contains widgets that usually take up more than 50 lines of code. - - Widgets display information in visual form (text, images, progress bars). - Without them, all desktop elements would just be empty boxes. - They are used by the desktop components defined inside the `elemental` directory. - Widgets can be defined in any file but I prefer to separate a big widget (with a lot of logic) from the element I am using it in. - -+ 😈 `evil` directory - - Contains daemons (processes that run in the background) which emit system info. - - They provide an easy way of writing widgets that rely on external information. All you need to do is subscribe to the signal a daemon provides. - No need to remember which shell command gives you the necessary info or bother about killing orphan processes. Evil takes care of everything. - -## Keybinds - -I use super AKA Windows key as my main modifier. - -#### Keyboard -| Keybind | Action | -| --- | --- | -| super + enter | Spawn terminal | -| super + shift + enter | Spawn floating terminal | -| super + d | Launch rofi | -| super + shift + q | Close client | -| super + control + space | Toggle floating client | -| super + [1-0] | View tag AKA change workspace (for you i3 folks) | -| super + shift + [1-0] | Move focused client to tag | -| super + s | Tiling layout | -| super + shift + s | Floating layout | -| super + w | Maximized / Monocle layout | -| super + [arrow keys] | Change focus by direction | -| super + [hjkl] | ^ | -| super + shift + [arrow keys] | Move client by direction. Move to edge if it is floating. | -| super + shift + [hjkl] | ^ | -| super + control + [arrow keys] | Resize client | -| super + control + [hjkl] | ^ | -| super + f | Toggle fullscreen | -| super + m | Toggle maximize | -| super + n | Minimize | -| super + shift + n | Restore minimized | -| super + c | Center floating client | -| super + u | Jump to urgent client (or back to last tag if there is no such client) | -| super + b | Toggle bar | -| super + = | Toggle tray | - -*... And many many more.* - -#### Mouse on the desktop -| Mousebind | Action | -| --- | --- | -| `left click` | Dismiss all notifications, close sidebar and main menu | -| `double left click` | Jump to urgent client (or back to last tag if there is no such client) | -| `right click` | App drawer | -| `middle click` | Dashboard | -| `scroll up/down` | Cycle through tags | -| `move to screen edge` | Show sidebar | - -#### Mouse on window titlebars -| Mousebind | Action | -| --- | --- | -| `left click` | Focus and raise | -| `left click (drag)` | Move | -| `right click (drag)` | Resize | -| `middle click` | Close | - -### Notes -If you have any questions or issues, first check if you can find your answer in the [wiki](https://github.com/elenapan/dotfiles/wiki). -Then you can search in the repository's [issues](https://github.com/elenapan/dotfiles/issues) or make a new issue. - -### Tipjar -If you enjoy my themes and would like to show your appreciation, you may tip me here. +### Tip Jar +If you enjoy using this desktop or parts of it and would like to show your appreciation, you may leave a tip here. It is never required but always appreciated.