{"id":13466323,"url":"https://github.com/elenapan/dotfiles","last_synced_at":"2025-03-25T21:32:15.006Z","repository":{"id":37251710,"uuid":"100718855","full_name":"elenapan/dotfiles","owner":"elenapan","description":"There is no place like ~/","archived":false,"fork":false,"pushed_at":"2025-01-11T13:04:19.000Z","size":23933,"stargazers_count":3589,"open_issues_count":18,"forks_count":175,"subscribers_count":69,"default_branch":"master","last_synced_at":"2025-01-11T13:24:37.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elenapan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-18T14:15:34.000Z","updated_at":"2025-01-11T13:04:23.000Z","dependencies_parsed_at":"2025-01-11T13:23:22.056Z","dependency_job_id":"48f5305d-d93c-4dfd-bc60-2445533a88db","html_url":"https://github.com/elenapan/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elenapan%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elenapan%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elenapan%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elenapan%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elenapan","download_url":"https://codeload.github.com/elenapan/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245548238,"owners_count":20633546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T15:00:42.455Z","updated_at":"2025-03-25T21:32:14.994Z","avatar_url":"https://github.com/elenapan.png","language":"CSS","funding_links":["https://www.patreon.com/elenapan"],"categories":["Lua","Special thanks \u003c3","Credits","Uncategorized","CSS","References",":gift: Changelogs \u003cimg alt=\"Repo Size\" align=\"right\" src=\"https://github-size-badge.herokuapp.com/owl4ce/dotfiles.svg\"/\u003e","Common Questions"],"sub_categories":["Other","Uncategorized","Where did I steal `ears` from?"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\".github/assets/header.svg\" width=\"100%\" height=\"100%\" alt=\"elena's dotfiles banner\"\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\n    \u003ca href=\"#setup\"\u003eSetup\u003c/a\u003e ･\n    \u003ca href=\"https://github.com/elenapan/dotfiles/wiki\"\u003eWiki\u003c/a\u003e ･\n    \u003ca href=\"https://github.com/elenapan/dotfiles/wiki/Gallery\"\u003eGallery\u003c/a\u003e ･\n    \u003ca href=\"#tip-jar\"\u003eTip Jar\u003c/a\u003e\n\u003c/h1\u003e\n\u003cbr\u003e\n\n**Thanks for dropping by!**\n\n\u003cimg src=\"https://raw.githubusercontent.com/wiki/elenapan/dotfiles/assets/aphelion.png\" alt=\"img\" align=\"right\" width=\"400px\"\u003e\n\nThis is my personal collection of configuration files that forms the desktop you see on the right.\n\nHere are some details about my current setup:\n\n+ **OS**: Gentoo\n+ **Window Manager / Compositor**: [SwayFX](https://github.com/WillPower3309/swayfx)\n+ **Widgets**: [Eww](https://github.com/elkowar/eww)\n+ **Notifications**: [dunst](https://github.com/dunst-project/dunst)\n+ **Shell**: [zsh](https://wiki.archlinux.org/index.php/Zsh)\n+ **Terminal**: [kitty](https://github.com/kovidgoyal/kitty)\n+ **Editor**: [Neovim](https://github.com/neovim/neovim)\n+ **File Manager**: [nnn](https://github.com/jarun/nnn) and [Nemo](https://github.com/linuxmint/nemo)\n+ **Launcher**: [rofi](https://github.com/davatorium/rofi/)\n+ **Browser**: Firefox\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n## Philosophy\nThis 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.\n\nThis desktop is:\n- Mouse-friendly but keyboard-loving, particularly when it comes to Vi keys\n- Dark and cozy, with vibrant colors and a sprinkle of kawaii-ness\n\n## Latest iteration: `Aphelion`\n\nFeatures:\n\n- A sidebar widget with 3 pages:\n  1. Clock, date, weather, system info\n  2. Calendar and agenda\n  3. Media info and controls\n- Network widget integrated with [iwd](https://wiki.gentoo.org/wiki/Iwd)\n- Agenda widget integrated with `.org` files\n- Quick alarm widget\n- 2-in-1 powermenu and lockscreen widget\n- A simple dock widget, compatible with sway\n- Bunny headpats\n\n**All interactive widgets can be controlled both with the mouse and the keyboard.**\n\n\u003ch3\u003e\n    \u003ca href=\"https://www.youtube.com/watch?v=IrF-VVKKK7o\"\u003e\u003ctt\u003e🎬 45 second showcase (YouTube)\u003c/tt\u003e\u003c/a\u003e\n\u003c/h3\u003e\n\n## Setup\n\n1. **Install dependencies**\n\n   The following packages need to be installed for all desktop functionality to work.\n\n   | Package | Purpose |\n   | --- | --- |\n   | [`swayfx`](https://github.com/WillPower3309/swayfx) | Window manager / compositor |\n   | [`i3ipc`](https://github.com/altdesktop/i3ipc-python) | Sway-related scripts |\n   | [`eww`](https://github.com/elkowar/eww) | Widgets |\n   | `bash` | Various scripts |\n   | `python` | Various scripts |\n   | [`rofi-wayland`](https://github.com/lbonn/rofi) | Launchers and menus |\n   | `dunst` | Notification daemon |\n   | `libnotify` | Notification creation with `notify-send` |\n   | [`notify-send.sh`](https://github.com/vlevit/notify-send.sh) | `notify-send` wrapper for notification replacement |\n   | `jq` | `json` parsing in various scripts |\n   | `inotify-tools` | Reaction to file changes in various scripts |\n   | `light` | Brightness control |\n   | `wget` | Making HTTP requests in various scripts |\n   | `acpid` | Battery charger state information |\n   | `slurp` | Screen region selection (Wayland) |\n   | `grim` | Screenshot tool (Wayland) |\n   | `grimshot` | `grim` and `slurp` wrapper |\n   | `playerctl` | Media info |\n   | `imagemagick` | Media art cropping |\n   | `gammastep` | Screen color temperature tool |\n   | `kdeconnect` | Phone battery information |\n   | `kitty` | Terminal emulator |\n   | `iproute2` | Network events information |\n   | `iwd` | Wireless daemon |\n\n\u003e [!WARNING]\n\u003e **`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).\n\n\n\u003e [!NOTE]\n\u003e 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.\n\n2. **Install fonts**\n\n    The current setup uses the following fonts:\n    - [Baro](https://befonts.com/baro-font-family.html)\n    - [Kyok](https://www.1001fonts.com/kyok-font.html)\n    - [BattleAndy](https://www.dafont.com/battle-andy.font)\n    - My custom build of [Iosevka](https://github.com/be5invis/Iosevka/)\n    - [Icomoon](https://icomoon.io/about_icon_fonts)\n    - [Material Design Icons](https://fonts.google.com/icons)\n\n    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\u0026st=zwqrvroc\u0026dl=0). Download the .zip and then:\n\n    ```sh\n    # Assuming the .zip was saved in ~/Downloads\n    unzip -d ~/.local/share/fonts ~/Downloads/elenapan-dotfiles-fonts.zip\n    fc-cache -v\n    ```\n\n3. **Install dotfiles**\n\n    Backup first:\n    ```sh\n    mkdir ~/config-backup\n    cp -r ~/.config/{sway,eww,dunst,fontconfig,kitty,rofi} ~/config-backup\n    ```\n\n    Then clone the repo and install the relevant dotfiles:\n    ```sh\n    git clone https://github.com/elenapan/dotfiles\n    cd dotfiles\n    cp -r config/{sway,eww,dunst,fontconfig,kitty,rofi} ~/.config\n    ```\n\n4. **Tweak the last few settings**\n\n    - Set wallpaper:\n      ```sh\n      cp /path/to/your/wallpaper ~/.local/share/wallpaper\n      ```\n\n    - Set location for the weather information widget:\n\n      Edit `~/.config/eww/scripts/daemons/weather.sh` and set the `location` variable. For example:\n      ```sh\n      location=\"Moscow,Russia\"\n      ```\n\n    - Set lockscreen widget password:\n\n      Edit `~/.config/eww/globals.yuck` and set the `screen-lock-password` variable. For example:\n      ```lisp\n      (defvar screen-lock-password \"hunter2\")\n      ```\n\n    - Set agenda widget `.org` files to watch:\n\n      Edit `~/.config/eww/scripts/daemons/agenda.sh` and set the `org_files` variable. For example:\n      ```lisp\n      org_files=(\"$HOME/notes/todo.org\" \"$HOME/notes/birthdays.org\" \"$HOME/notes/finance.org\")\n      ```\n\n## Login\n\nTo 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)\n\n\u003e [!NOTE]\n\u003e SwayFX is essentially Sway with extra features, which means Sway-related and i3-related resources also apply to SwayFX.\n\n## Usage\n\nAll keybinds are declared in the [sway configuration directory](config/sway) in the following files:\n- Global keybinds: [`keys`](config/sway/keys)\n- [Binding modes](https://i3wm.org/docs/userguide.html#binding_modes): [`modes`](config/sway/modes)\n- Widget keybinds: [`eww`](config/sway/eww)\n\n  These keybinds, implemented using binding modes, are only active when the respective widget is visible.\n\n## Contributing\n\n- **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).\n- **Pull requests**: Pull requests for bug fixes or README improvements are welcome. However, before starting work on a pull request for a new feature, please open an issue so we can discuss about it first.\n\n## Tip Jar\nIf you enjoy using this desktop or parts of it and would like to show your appreciation, you may leave a tip here.\n\nIt is never required but always appreciated.\n\nThank you from the bottom of my heart! 💙\n\n- [**Patreon**](https://www.patreon.com/elenapan)\n- **Ethereum**: 0x831539d94155C797f786e99f1D061BEc7F11bD38\n- **Bitcoin**: 12j3D4KR94LY7Svvmp3KzGbfGC4YCZkCLe\n\n---\n\n\u003ch3 align=\"center\"\u003e\n    \u003ca href=\"#----setup-----wiki-----gallery-----tip-jar\"\u003e\u003ctt\u003e👆 Back to top\u003c/tt\u003e\u003c/a\u003e\n\u003c/h3\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felenapan%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felenapan%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felenapan%2Fdotfiles/lists"}