Initial upload

This commit is contained in:
Aleksey Samoilov 2024-07-01 14:48:20 +04:00
parent 59e0eac118
commit 9b11b5bb1a
Signed by: Sunderland93
GPG key ID: D3E730685C28F1FB
83 changed files with 5110 additions and 93 deletions

View file

@ -1,93 +0,0 @@
# tileos-settings-swayfx
## Getting started
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Add your files
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
```
cd existing_repo
git remote add origin https://gitlab.com/tile-os/tileos-settings-swayfx.git
git branch -M main
git push -uf origin main
```
## Integrate with your tools
- [ ] [Set up project integrations](https://gitlab.com/tile-os/tileos-settings-swayfx/-/settings/integrations)
## Collaborate with your team
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy
Use the built-in continuous integration in GitLab.
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
***
# Editing this README
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
## Suggestions for a good README
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name
Choose a self-explaining name for your project.
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
## Support
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
## Authors and acknowledgment
Show your appreciation to those who have contributed to the project.
## License
For open source projects, say how it is licensed.
## Project status
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.

385
debian/changelog vendored Normal file
View file

@ -0,0 +1,385 @@
tileos-settings-swayfx (1.1~tileos) unstable; urgency=medium
* Initial release
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 01 Jul 2024 14:46:52 +0400
tileos-settings-sway (1.1~tileos) unstable; urgency=medium
* Set qt6 style to kvantum-dark
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 19 Jun 2024 16:57:49 +0400
tileos-settings-sway (1.0.14~tileos) unstable; urgency=medium
* Fix appending user keybindings to help overlay
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 25 Feb 2024 19:22:45 +0400
tileos-settings-sway (1.0.13~tileos) unstable; urgency=medium
* Change wallpaper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 14 Feb 2024 23:01:19 +0400
tileos-settings-sway (1.0.12~tileos) unstable; urgency=medium
* waybar: disable bluetooth module if no controller is found
-- Aleksey Samoilov <samoilov.lex@gmail.com> Thu, 08 Feb 2024 19:24:56 +0400
tileos-settings-sway (1.0.11~tileos) unstable; urgency=medium
* Fix typo
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 02 Feb 2024 22:33:57 +0400
tileos-settings-sway (1.0.10~tileos) unstable; urgency=medium
* waybar: add help overlay module
* run help overlay on demand
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 29 Jan 2024 10:17:04 +0400
tileos-settings-sway (1.0.9~tileos) unstable; urgency=medium
* Temporary remove Scratchpad module
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 22 Jan 2024 22:23:51 +0400
tileos-settings-sway (1.0.8~tileos) unstable; urgency=medium
* Fix cursor for GTK 2 apps
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 12 Jan 2024 00:00:22 +0400
tileos-settings-sway (1.0.7~tileos) unstable; urgency=medium
* Set Bibata cursor by default
* Enable idle inhibitor by default
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 10 Jan 2024 21:54:42 +0400
tileos-settings-sway (1.0.6~tileos) unstable; urgency=medium
* Typo
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 10 Dec 2023 21:19:18 +0400
tileos-settings-sway (1.0.5~tileos) unstable; urgency=medium
* Remove bashism in start-tileos
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 08 Dec 2023 19:43:17 +0400
tileos-settings-sway (1.0.4~tileos) unstable; urgency=medium
* Small fixes
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 02 Dec 2023 13:23:12 +0400
tileos-settings-sway (1.0.3~tileos) unstable; urgency=medium
* Do not apply NVIDIA specific variables on PRIME setups
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 14 Nov 2023 15:22:30 +0400
tileos-settings-sway (1.0.2~tileos) unstable; urgency=medium
* Add portals config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 03 Nov 2023 16:25:46 +0400
tileos-settings-sway (1.0.1~tileos) unstable; urgency=medium
* Change default cursor theme to Catppuccin
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 03 Nov 2023 15:34:13 +0400
tileos-settings-sway (1.0~tileos) unstable; urgency=medium
* Move some scripts and commands back to Sway config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 16 Sep 2023 11:53:16 +0400
tileos-settings-sway (0.44~tileos) unstable; urgency=medium
* Adjust PCmanFM-Qt window
-- Aleksey Samoilov <samoilov.lex@gmail.com> Thu, 14 Sep 2023 00:30:10 +0400
tileos-settings-sway (0.43~tileos) unstable; urgency=medium
* Update wallpaper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 09 Sep 2023 23:17:09 +0400
tileos-settings-sway (0.42~tileos) unstable; urgency=medium
* Added more systemd user services
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 04 Sep 2023 00:43:19 +0400
tileos-settings-sway (0.41~tileos) unstable; urgency=medium
* Improve environment variables export
-- Aleksey Samoilov <samoilov.lex@gmail.com> Thu, 17 Aug 2023 17:04:56 +0400
tileos-settings-sway (0.40~tileos) unstable; urgency=medium
* Fix xdg-user-dirs autostart
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 01 Aug 2023 22:46:50 +0400
tileos-settings-sway (0.39~tileos) unstable; urgency=medium
* Minor fixes
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 31 Jul 2023 23:20:04 +0400
tileos-settings-sway (0.38~tileos) unstable; urgency=medium
* Move Sway theme from tileos-artwork
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 25 Jul 2023 21:44:29 +0400
tileos-settings-sway (0.37~tileos) unstable; urgency=medium
* Use nm-connection-editor as primary NM GUI
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 18 Jul 2023 15:17:54 +0400
tileos-settings-sway (0.36~tileos) unstable; urgency=medium
* Added default mime list
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 14 Jul 2023 22:48:38 +0400
tileos-settings-sway (0.35~tileos) unstable; urgency=medium
* Added flock wrapper for running only one process
* waybar: improve network module
* removed unused configs
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 11 Jul 2023 20:53:29 +0400
tileos-settings-sway (0.34~tileos) unstable; urgency=medium
* Fix floating_shell for Alacritty
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 02 Jul 2023 00:15:48 +0400
tileos-settings-sway (0.33~tileos) unstable; urgency=medium
* Fix alacritty panel icon
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 22:41:19 +0400
tileos-settings-sway (0.32~tileos) unstable; urgency=medium
* Switch to Alacritty in PCmanFM-Qt
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 21:04:08 +0400
tileos-settings-sway (0.31~tileos) unstable; urgency=medium
* Switch to Alacritty
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 20:55:36 +0400
tileos-settings-sway (0.30~tileos) unstable; urgency=medium
* Fix package
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 17:49:34 +0400
tileos-settings-sway (0.29~tileos) unstable; urgency=medium
* Install png wallpaper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 15:44:43 +0400
tileos-settings-sway (0.28~tileos) unstable; urgency=medium
* Kitty fixes
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 15:42:11 +0400
tileos-settings-sway (0.27~tileos) unstable; urgency=medium
* Switch to Kitty
* Switch to PCmanFM-Qt
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 30 Jun 2023 14:38:01 +0400
tileos-settings-sway (0.26~tileos) unstable; urgency=medium
* Add help overlay via nwg-wrapper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 25 Jun 2023 21:28:41 +0400
tileos-settings-sway (0.25~tileos) unstable; urgency=medium
* Improve Swayr config
* Add Calamares window rule (for native Wayland window)
* Enable swayidle
* Revert "Swtich back from running apps with systemd"
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 10 Jun 2023 22:35:51 +0400
tileos-settings-sway (0.24~tileos) unstable; urgency=medium
* Switch back to using config file for
autostart services instead of systemd
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 09 Jun 2023 18:44:02 +0400
tileos-settings-sway (0.23~tileos) unstable; urgency=medium
* Fix qt5ct/qt6ct colors
-- Aleksey Samoilov <samoilov.lex@gmail.com> Thu, 08 Jun 2023 06:41:27 -0400
tileos-settings-sway (0.22~tileos) unstable; urgency=medium
* Add PCmanFM config
* Change Sway color scheme path
* Change Wofi to Rofi Wayland
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 04 Jun 2023 21:31:37 +0400
tileos-settings-sway (0.21~tileos) unstable; urgency=medium
* Move theme variables to config.d
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 27 May 2023 13:31:33 +0400
tileos-settings-sway (0.20~tileos) unstable; urgency=medium
* Set new wallpaper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 26 May 2023 20:37:04 +0400
tileos-settings-sway (0.19~tileos) unstable; urgency=medium
* Change Sway theme path
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 26 May 2023 20:31:09 +0400
tileos-settings-sway (0.18~tileos) unstable; urgency=medium
* Added color theme for applications
* Added GTK settings
* Added qt5ct and qt6ct settings
* Added Swaylock config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 26 May 2023 20:15:17 +0400
tileos-settings-sway (0.17~tileos) unstable; urgency=medium
* Include theme variables
* Include nwg-displays config's if exists
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 24 May 2023 19:16:38 +0400
tileos-settings-sway (0.16~tileos) unstable; urgency=medium
* Start poweralertd via systemd
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 23 May 2023 16:29:24 +0400
tileos-settings-sway (0.15~tileos) unstable; urgency=medium
* Small fixes
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 23 May 2023 09:49:33 +0400
tileos-settings-sway (0.14~tileos) unstable; urgency=medium
* Set bluetuith as bluetooth manager
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sun, 21 May 2023 17:41:01 +0400
tileos-settings-sway (0.13~tileos) unstable; urgency=medium
* Adjust Waybar settings
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 20 May 2023 14:47:18 +0400
tileos-settings-sway (0.12~tileos) unstable; urgency=medium
* Cleanup
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 17 May 2023 14:33:27 +0400
tileos-settings-sway (0.11~tileos) unstable; urgency=medium
* Remove dex from autostart (not needed because of
sway-systemd integration)
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 17 May 2023 14:25:51 +0400
tileos-settings-sway (0.10~tileos) unstable; urgency=medium
* Removed Waybar from autostart (now handled with systemd)
* Removed Swayr from autostart (now handled with systemd)
* Added libfm config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Wed, 17 May 2023 14:14:16 +0400
tileos-settings-sway (0.9~tileos) unstable; urgency=medium
* Wire up more scripts
* Add Swayr config
* Set default Sway wallpaper until we get our own
-- Aleksey Samoilov <samoilov.lex@gmail.com> Fri, 05 May 2023 17:28:48 +0400
tileos-settings-sway (0.8~tileos) unstable; urgency=medium
* Add exist daemon's to autostart
-- Aleksey Samoilov <samoilov.lex@gmail.com> Tue, 02 May 2023 19:09:09 +0400
tileos-settings-sway (0.7~tileos) unstable; urgency=medium
* Add more configs
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 01 May 2023 10:15:51 +0400
tileos-settings-sway (0.6~tileos) unstable; urgency=medium
* Add initial Fuzzel config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 29 Apr 2023 16:24:58 +0400
tileos-settings-sway (0.5~tileos) unstable; urgency=medium
* Add initial Sway user config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 29 Apr 2023 15:04:38 +0400
tileos-settings-sway (0.4~tileos) unstable; urgency=medium
* Initial Sway config
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 29 Apr 2023 15:00:52 +0400
tileos-settings-sway (0.3~tileos) unstable; urgency=medium
* Set Wayland specific environment variables
-- Aleksey Samoilov <samoilov.lex@gmail.com> Thu, 13 Apr 2023 10:12:40 +0400
tileos-settings-sway (0.2~tileos) unstable; urgency=medium
* Add start-sway wrapper
-- Aleksey Samoilov <samoilov.lex@gmail.com> Mon, 10 Apr 2023 19:41:23 +0400
tileos-settings-sway (0.1~tileos) unstable; urgency=medium
* Initial Release.
-- Aleksey Samoilov <samoilov.lex@gmail.com> Sat, 25 Mar 2023 12:03:45 +0400

14
debian/control vendored Normal file
View file

@ -0,0 +1,14 @@
Source: tileos-settings-swayfx
Section: x11
Priority: optional
Maintainer: Aleksey Samoilov <samoilov.lex@gmail.com>
Build-Depends: debhelper-compat (= 13)
Standards-Version: 4.6.0
Homepage: https://github.com/Tile-OS/tileos-settings-sway.git
Rules-Requires-Root: no
Package: tileos-settings-swayfx
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, sway-systemd
Conflicts: tileos-settings-river, tileos-settings,sway
Description: default settings for SwayFX on TileOS

39
debian/copyright vendored Normal file
View file

@ -0,0 +1,39 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: tileos-settings-sway
Upstream-Contact: <preferred name and address to reach the upstream project>
Source: <url://example.com>
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
License: GPL-3.0+
Files: debian/*
Copyright: 2023 Aleksey Samoilov <samoilov.lex@gmail.com>
License: GPL-3.0+
License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
# Please avoid picking licenses with terms that are more restrictive than the
# packaged work, as it may make Debian's contributions unacceptable upstream.
#
# If you need, there are some extra license texts available in two places:
# /usr/share/debhelper/dh_make/licenses/
# /usr/share/common-licenses/

25
debian/rules vendored Executable file
View file

@ -0,0 +1,25 @@
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
%:
dh $@
# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
# dh_auto_configure -- \
# -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)

1
debian/source/format vendored Normal file
View file

@ -0,0 +1 @@
3.0 (native)

2
debian/tileos-settings-swayfx.install vendored Normal file
View file

@ -0,0 +1,2 @@
/usr
/etc

View file

@ -0,0 +1,17 @@
# Force Wayland for Mozilla Firefox
MOZ_ENABLE_WAYLAND=1
MOZ_DBUS_REMOTE=1
# Force Wayland for Qt apps
QT_QPA_PLATFORM="wayland;xcb"
QT_QPA_PLATFORMTHEME=qt5ct
# Set default cursor size
XCURSOR_SIZE=24
# Force Wayland for EFL (Enlightenment) apps
ECORE_EVAS_ENGINE="wayland-egl"
ELM_ACCEL="gl"
# Java XWayland blank screens fix
_JAVA_AWT_WM_NONREPARENTING=1

3
etc/skel/.azotebg Executable file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
pkill swaybg
swaybg -o '*' -i "/usr/share/wallpapers/tileos-final-sway.png" -m fill &

View file

@ -0,0 +1,2 @@
[General]
theme=Catppuccin-Macchiato-Blue

View file

@ -0,0 +1,895 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
# file being loaded last. If a field is already present in a previous import, it
# will be replaced.
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
import:
- ~/.config/alacritty/theme/catppuccin-macchiato.yml
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
env:
TERM: xterm-256color
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: alacritty
window:
# Window dimensions (changes require restart)
#
# Number of lines/columns (not pixels) in the terminal. Both lines and columns
# must be non-zero for this to take effect. The number of columns must be at
# least `2`, while using a value of `0` for columns and lines will fall back
# to the window manager's recommended size
#dimensions:
# columns: 0
# lines: 0
# Window position (changes require restart)
#
# Specified in number of pixels.
# If the position is not set, the window manager will handle the placement.
#position:
# x: 0
# y: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
#padding:
# x: 0
# y: 0
# Spread additional padding evenly around the terminal content.
dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background and no title bar buttons
#decorations: full
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
#opacity: 1.0
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
#startup_mode: Windowed
# Window title
title: Alacritty
# Allow terminal applications to change Alacritty's window title.
dynamic_title: true
# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty
# Decorations theme variant (Linux/BSD only)
#
# Override the variant of the GTK theme/Wayland client side decorations.
# Commonly supported values are `dark` and `light`. Set this to `None` to use
# the default theme variant.
#decorations_theme_variant: None
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000
# Scrolling distance multiplier.
#multiplier: 3
# Font configuration
font:
# Normal (roman) font face
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
family: Hack
# The `style` can be specified to pick a specific face.
style: Regular
# Bold font face
bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
family: Hack
# The `style` can be specified to pick a specific face.
style: Bold
# Italic font face
italic:
# Font family
#
# If the italic family is not specified, it will fall back to the
# value specified for the normal font.
family: Hack
# The `style` can be specified to pick a specific face.
style: Italic
# Bold italic font face
bold_italic:
# Font family
#
# If the bold italic family is not specified, it will fall back to the
# value specified for the normal font.
family: Hack
# The `style` can be specified to pick a specific face.
style: Bold Italic
# Point size
size: 11.0
# Offset is the extra space around each character. `offset.y` can be thought
# of as modifying the line spacing, and `offset.x` as modifying the letter
# spacing.
#offset:
# x: 0
# y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the
# right, increasing `y` moves the glyph upward.
#glyph_offset:
# x: 0
# y: 0
# Use built-in font for box drawing characters.
#
# If `true`, Alacritty will use a custom built-in font for box drawing
# characters (Unicode points 2500 - 259f).
#
#builtin_box_drawing: true
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: false
# Colors (Tomorrow Night)
#colors:
# Default colors
#primary:
# background: '#1d1f21'
# foreground: '#c5c8c6'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not
# present. If the bright foreground color is not set, or
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
# color will be used.
#dim_foreground: '#828482'
#bright_foreground: '#eaeaea'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#cursor:
# text: CellBackground
# cursor: CellForeground
# Vi mode cursor colors
#
# Colors for the cursor when the vi mode is active.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#vi_mode_cursor:
# text: CellBackground
# cursor: CellForeground
# Search colors
#
# Colors used for the search bar and match highlighting.
#search:
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#matches:
# foreground: '#000000'
# background: '#ffffff'
#focused_match:
# foreground: '#ffffff'
# background: '#000000'
# Keyboard hints
#hints:
# First character in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#start:
# foreground: '#1d1f21'
# background: '#e9ff5e'
# All characters after the first one in the hint label
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#end:
# foreground: '#e9ff5e'
# background: '#1d1f21'
# Line indicator
#
# Color used for the indicator displaying the position in history during
# search and vi mode.
#
# By default, these will use the opposing primary color.
#line_indicator:
# foreground: None
# background: None
# Footer bar
#
# Color used for the footer bar on the bottom, used by search regex input,
# hyperlink URI preview, etc.
#
#footer_bar:
# background: '#c5c8c6'
# foreground: '#1d1f21'
# Selection colors
#
# Colors which should be used to draw the selection area.
#
# Allowed values are CellForeground/CellBackground, which reference the
# affected cell, or hexadecimal colors like #ff00ff.
#selection:
# text: CellBackground
# background: CellForeground
# Normal colors
#normal:
# black: '#1d1f21'
# red: '#cc6666'
# green: '#b5bd68'
# yellow: '#f0c674'
# blue: '#81a2be'
# magenta: '#b294bb'
# cyan: '#8abeb7'
# white: '#c5c8c6'
# Bright colors
#bright:
# black: '#666666'
# red: '#d54e53'
# green: '#b9ca4a'
# yellow: '#e7c547'
# blue: '#7aa6da'
# magenta: '#c397d8'
# cyan: '#70c0b1'
# white: '#eaeaea'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '#131415'
# red: '#864343'
# green: '#777c44'
# yellow: '#9e824c'
# blue: '#556a7d'
# magenta: '#75617b'
# cyan: '#5b7d78'
# white: '#828482'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
# Example:
# `- { index: 16, color: '#ff00ff' }`
#
#indexed_colors: []
# Transparent cell backgrounds
#
# Whether or not `window.opacity` applies to all cell backgrounds or only to
# the default background. When set to `true` all cells will be transparent
# regardless of their background color.
#transparent_background_colors: false
# Bell
#
# The bell is rung every time the BEL control character is received.
#bell:
# Visual Bell Animation
#
# Animation effect for flashing the screen when the visual bell is rung.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#animation: EaseOutExpo
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
# disable the visual bell animation.
#duration: 0
# Visual bell animation color.
#color: '#ffffff'
# Bell Command
#
# This program is executed whenever the bell is rung.
#
# When set to `command: None`, no command will be executed.
#
# Example:
# command:
# program: notify-send
# args: ["Hello, World!"]
#
#command: None
#selection:
# This string contains all characters that are used as separators for
# "semantic words" in Alacritty.
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
# When set to `true`, selected text will be copied to the primary clipboard.
#save_to_clipboard: false
#cursor:
# Cursor style
#style:
# Cursor shape
#
# Values for `shape`:
# - ▇ Block
# - _ Underline
# - | Beam
#shape: Block
# Cursor blinking state
#
# Values for `blinking`:
# - Never: Prevent the cursor from ever blinking
# - Off: Disable blinking by default
# - On: Enable blinking by default
# - Always: Force the cursor to always blink
#blinking: Off
# Vi mode cursor style
#
# If the vi mode cursor style is `None` or not specified, it will fall back to
# the style of the active value of the normal cursor.
#
# See `cursor.style` for available options.
#vi_mode_style: None
# Cursor blinking interval in milliseconds.
#blink_interval: 750
# Time after which cursor stops blinking, in seconds.
#
# Specifying '0' will disable timeout for blinking.
#blink_timeout: 5
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
#unfocused_hollow: true
# Thickness of the cursor relative to the cell width as floating point number
# from `0.0` to `1.0`.
#thickness: 0.15
# Live config reload (changes require restart)
#live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g.
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
# shell.
#
# Default:
# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
#working_directory: None
# Send ESC (\x1b) before characters when alt is pressed.
#alt_send_esc: true
# Offer IPC using `alacritty msg` (unix only)
#ipc_socket: true
#mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
#hide_when_typing: false
# Hints
#
# Terminal hints can be used to find text or hyperlink in the visible part of
# the terminal and pipe it to other applications.
#hints:
# Keys used for the hint labels.
#alphabet: "jfkdls;ahgurieowpq"
# List with all available hints
#
# Each hint must have any of `regex` or `hyperlinks` field and either an
# `action` or a `command` field. The fields `mouse`, `binding` and
# `post_processing` are optional.
#
# The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
# highlighted.
#
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
#
# The `mouse.enabled` field controls if the hint should be underlined while
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
#
# If the `post_processing` field is set to `true`, heuristics will be used to
# shorten the match if there are characters likely not to be part of the hint
# (e.g. a trailing `.`). This is most useful for URIs and applies only to
# `regex` matches.
#
# Values for `action`:
# - Copy
# Copy the hint's text to the clipboard.
# - Paste
# Paste the hint's text to the terminal or search.
# - Select
# Select the hint's text.
# - MoveViModeCursor
# Move the vi mode cursor to the beginning of the hint.
#enabled:
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
# hyperlinks: true
# command: xdg-open
# post_processing: true
# mouse:
# enabled: true
# mods: None
# binding:
# key: U
# mods: Control|Shift
# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty
# captures the mouse, the `Shift` modifier is automatically added as a
# requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# - `action` (see key bindings for actions not exclusive to mouse mode)
#
# - Mouse exclusive actions:
#
# - ExpandSelection
# Expand the selection to the current mouse cursor location.
#
# And optionally:
#
# - `mods` (see key bindings)
#mouse_bindings:
# - { mouse: Right, action: ExpandSelection }
# - { mouse: Right, mods: Control, action: ExpandSelection }
# - { mouse: Middle, mode: ~Vi, action: PasteSelection }
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
# - A-Z
# - F1-F24
# - Key0-Key9
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number. This command will allow you to display the hex scancodes
# for certain keys:
#
# `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences. To find escape codes for bindings
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
# of tmux. Note that applications use terminfo to map escape sequences back
# to keys. It is therefore required to update the terminfo when changing an
# escape sequence.
#
# - `action`: Execute a predefined action
#
# - ToggleViMode
# - SearchForward
# Start searching toward the right of the search origin.
# - SearchBackward
# Start searching toward the left of the search origin.
# - Copy
# - Paste
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollHalfPageUp
# - ScrollHalfPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# Remove the terminal's scrollback history.
# - Hide
# Hide the Alacritty window.
# - Minimize
# Minimize the Alacritty window.
# - Quit
# Quit Alacritty.
# - ToggleFullscreen
# - SpawnNewInstance
# Spawn a new instance of Alacritty.
# - CreateNewWindow
# Create a new Alacritty window from the current process.
# - ClearLogNotice
# Clear Alacritty's UI warning and error notice.
# - ClearSelection
# Remove the active selection.
# - ReceiveChar
# - None
#
# - Vi mode exclusive actions:
#
# - Open
# Perform the action of the first matching hint under the vi mode cursor
# with `mouse.enabled` set to `true`.
# - ToggleNormalSelection
# - ToggleLineSelection
# - ToggleBlockSelection
# - ToggleSemanticSelection
# Toggle semantic selection based on `selection.semantic_escape_chars`.
# - CenterAroundViCursor
# Center view around vi mode cursor
#
# - Vi mode exclusive cursor motion actions:
#
# - Up
# One line up.
# - Down
# One line down.
# - Left
# One character left.
# - Right
# One character right.
# - First
# First column, or beginning of the line when already at the first column.
# - Last
# Last column, or beginning of the line when already at the last column.
# - FirstOccupied
# First non-empty cell in this terminal row, or first non-empty cell of
# the line when already at the first cell of the row.
# - High
# Top of the screen.
# - Middle
# Center of the screen.
# - Low
# Bottom of the screen.
# - SemanticLeft
# Start of the previous semantically separated word.
# - SemanticRight
# Start of the next semantically separated word.
# - SemanticLeftEnd
# End of the previous semantically separated word.
# - SemanticRightEnd
# End of the next semantically separated word.
# - WordLeft
# Start of the previous whitespace separated word.
# - WordRight
# Start of the next whitespace separated word.
# - WordLeftEnd
# End of the previous whitespace separated word.
# - WordRightEnd
# End of the next whitespace separated word.
# - Bracket
# Character matching the bracket at the cursor's location.
# - SearchNext
# Beginning of the next match.
# - SearchPrevious
# Beginning of the previous match.
# - SearchStart
# Start of the match to the left of the vi mode cursor.
# - SearchEnd
# End of the match to the right of the vi mode cursor.
#
# - Search mode exclusive actions:
# - SearchFocusNext
# Move the focus to the next search match.
# - SearchFocusPrevious
# Move the focus to the previous search match.
# - SearchConfirm
# - SearchCancel
# - SearchClear
# Reset the search regex.
# - SearchDeleteWord
# Delete the last word in the search regex.
# - SearchHistoryPrevious
# Go to the previous regex in the search history.
# - SearchHistoryNext
# Go to the next regex in the search history.
#
# - macOS exclusive actions:
# - ToggleSimpleFullscreen
# Enter fullscreen without occupying another space.
#
# - Linux/BSD exclusive actions:
#
# - CopySelection
# Copy from the selection buffer.
# - PasteSelection
# Paste from the selection buffer.
#
# - `command`: Fork and execute a specified command plus arguments
#
# The `command` field must be a map containing a `program` string and an
# `args` array of command line parameter strings. For example:
# `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this:
# `mods: Control|Shift`.
# Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
# This is mainly used to send applications the correct escape sequences
# when in different modes.
#
# - AppCursor
# - AppKeypad
# - Search
# - Alt
# - Vi
#
# A `~` operator can be used before a mode to apply the binding whenever
# the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# in the order they were defined in.
#key_bindings:
#- { key: Paste, action: Paste }
#- { key: Copy, action: Copy }
#- { key: L, mods: Control, action: ClearLogNotice }
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp }
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
# Vi Mode
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
#- { key: Y, mode: Vi|~Search, action: Copy }
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
#- { key: Return, mode: Vi|~Search, action: Open }
#- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor }
#- { key: K, mode: Vi|~Search, action: Up }
#- { key: J, mode: Vi|~Search, action: Down }
#- { key: H, mode: Vi|~Search, action: Left }
#- { key: L, mode: Vi|~Search, action: Right }
#- { key: Up, mode: Vi|~Search, action: Up }
#- { key: Down, mode: Vi|~Search, action: Down }
#- { key: Left, mode: Vi|~Search, action: Left }
#- { key: Right, mode: Vi|~Search, action: Right }
#- { key: Key0, mode: Vi|~Search, action: First }
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
#- { key: W, mode: Vi|~Search, action: SemanticRight }
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
#- { key: N, mode: Vi|~Search, action: SearchNext }
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
# Search Mode
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
#- { key: Escape, mode: Search, action: SearchCancel }
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
#- { key: U, mods: Control, mode: Search, action: SearchClear }
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
#- { key: Down, mode: Search, action: SearchHistoryNext }
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
# (Windows, Linux, and BSD only)
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Plus, mods: Control, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
# (Windows only)
#- { key: Return, mods: Alt, action: ToggleFullscreen }
# (macOS only)
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Plus, mods: Command, action: IncreaseFontSize }
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
#- { key: H, mods: Command, action: Hide }
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
#- { key: M, mods: Command, action: Minimize }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
#- { key: N, mods: Command, action: SpawnNewInstance }
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
#debug:
# Display the time it takes to redraw each frame.
#render_timer: false
# Keep the log file after quitting Alacritty.
#persistent_logging: false
# Log level
#
# Values for `log_level`:
# - Off
# - Error
# - Warn
# - Info
# - Debug
# - Trace
#log_level: Warn
# Print all received window events.
#print_events: false
# Highlight window damage information.
#highlight_damage: false

View file

@ -0,0 +1,79 @@
colors:
# Default colors
primary:
background: "#24273A" # base
foreground: "#CAD3F5" # text
# Bright and dim foreground colors
dim_foreground: "#CAD3F5" # text
bright_foreground: "#CAD3F5" # text
# Cursor colors
cursor:
text: "#24273A" # base
cursor: "#F4DBD6" # rosewater
vi_mode_cursor:
text: "#24273A" # base
cursor: "#B7BDF8" # lavender
# Search colors
search:
matches:
foreground: "#24273A" # base
background: "#A5ADCB" # subtext0
focused_match:
foreground: "#24273A" # base
background: "#A6DA95" # green
footer_bar:
foreground: "#24273A" # base
background: "#A5ADCB" # subtext0
# Keyboard regex hints
hints:
start:
foreground: "#24273A" # base
background: "#EED49F" # yellow
end:
foreground: "#24273A" # base
background: "#A5ADCB" # subtext0
# Selection colors
selection:
text: "#24273A" # base
background: "#F4DBD6" # rosewater
# Normal colors
normal:
black: "#494D64" # surface1
red: "#ED8796" # red
green: "#A6DA95" # green
yellow: "#EED49F" # yellow
blue: "#8AADF4" # blue
magenta: "#F5BDE6" # pink
cyan: "#8BD5CA" # teal
white: "#B8C0E0" # subtext1
# Bright colors
bright:
black: "#5B6078" # surface2
red: "#ED8796" # red
green: "#A6DA95" # green
yellow: "#EED49F" # yellow
blue: "#8AADF4" # blue
magenta: "#F5BDE6" # pink
cyan: "#8BD5CA" # teal
white: "#A5ADCB" # subtext0
# Dim colors
dim:
black: "#494D64" # surface1
red: "#ED8796" # red
green: "#A6DA95" # green
yellow: "#EED49F" # yellow
blue: "#8AADF4" # blue
magenta: "#F5BDE6" # pink
cyan: "#8BD5CA" # teal
white: "#B8C0E0" # subtext1
indexed_colors:
- { index: 16, color: "#F5A97F" }
- { index: 17, color: "#F4DBD6" }

View file

@ -0,0 +1,7 @@
[Desktop Entry]
Exec=xdg-user-dirs-update
NoDisplay=true
StartupNotify=false
Terminal=false
TryExec=xdg-user-dirs-update
Type=Application

View file

@ -0,0 +1,212 @@
#? Config file for btop v. 1.2.13
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "catppuccin_machiato.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = False
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = False
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "total"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "total"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"

View file

@ -0,0 +1,83 @@
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]="#24273A"
# Main text color
theme[main_fg]="#CAD3F5"
# Title color for boxes
theme[title]="#CAD3F5"
# Highlight color for keyboard shortcuts
theme[hi_fg]="#8AADF4"
# Background color of selected item in processes box
theme[selected_bg]="#494D64"
# Foreground color of selected item in processes box
theme[selected_fg]="#8AADF4"
# Color of inactive/disabled text
theme[inactive_fg]="#8087A2"
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
theme[graph_text]="#F4DBD6"
# Background color of the percentage meters
theme[meter_bg]="#494D64"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="#F4DBD6"
# CPU, Memory, Network, Proc box outline colors
theme[cpu_box]="#c6a0f6" #Mauve
theme[mem_box]="#a6da95" #Green
theme[net_box]="#ee99a0" #Maroon
theme[proc_box]="#8aadf4" #Blue
# Box divider line and small boxes line color
theme[div_line]="#6E738D"
# Temperature graph color (Green -> Yellow -> Red)
theme[temp_start]="#a6da95"
theme[temp_mid]="#eed49f"
theme[temp_end]="#ed8796"
# CPU graph colors (Teal -> Lavender)
theme[cpu_start]="#8bd5ca"
theme[cpu_mid]="#7dc4e4"
theme[cpu_end]="#b7bdf8"
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
theme[free_start]="#c6a0f6"
theme[free_mid]="#b7bdf8"
theme[free_end]="#8aadf4"
# Mem/Disk cached meter (Sapphire -> Lavender)
theme[cached_start]="#7dc4e4"
theme[cached_mid]="#8aadf4"
theme[cached_end]="#b7bdf8"
# Mem/Disk available meter (Peach -> Red)
theme[available_start]="#f5a97f"
theme[available_mid]="#ee99a0"
theme[available_end]="#ed8796"
# Mem/Disk used meter (Green -> Sky)
theme[used_start]="#a6da95"
theme[used_mid]="#8bd5ca"
theme[used_end]="#91d7e3"
# Download graph colors (Peach -> Red)
theme[download_start]="#f5a97f"
theme[download_mid]="#ee99a0"
theme[download_end]="#ed8796"
# Upload graph colors (Green -> Sky)
theme[upload_start]="#a6da95"
theme[upload_mid]="#8bd5ca"
theme[upload_end]="#91d7e3"
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
theme[process_start]="#7dc4e4"
theme[process_mid]="#b7bdf8"
theme[process_end]="#c6a0f6"

View file

@ -0,0 +1,32 @@
appearance.calendarview=monthly
appearance.compactpanels=no
appearance.defaultpanel=calendar
appearance.layout=1
appearance.headerline=yes
appearance.eventseparator=yes
appearance.dayseparator=yes
appearance.emptyline=yes
appearance.emptyday=--
appearance.notifybar=yes
appearance.sidebarwidth=27
appearance.theme=blue on default
appearance.todoview=hide-completed
appearance.headingpos=right-justified
daemon.enable=yes
daemon.log=no
format.inputdate=1
format.notifydate=%a %F
format.notifytime=%T
format.outputdate=%D
format.dayheading=%B %e, %Y
general.autogc=no
general.autosave=yes
general.confirmdelete=yes
general.confirmquit=no
general.firstdayofweek=monday
general.multipledays=yes
general.periodicsave=0
general.systemevents=yes
notification.command=printf '\a'
notification.notifyall=flagged-only
notification.warning=300

BIN
etc/skel/.config/dconf/user Normal file

Binary file not shown.

View file

@ -0,0 +1,459 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 400
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Corner radius for the icon image.
icon_corner_radius = 0
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 20
# Horizontal padding.
horizontal_padding = 20
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#8AADF4"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 5
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Noto Sans 9
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 128
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = open_url, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#24273a"
foreground = "#CAD3F5"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#24273A"
foreground = "#CAD3F5"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#24273A"
foreground = "#CAD3F5"
frame_color = "#F5A97F"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View file

@ -0,0 +1,78 @@
@define-color accent_color rgb(91, 96, 120);
@define-color accent_bg_color rgb(73, 77, 100);
@define-color accent_fg_color rgb(202, 211, 245);
@define-color destructive_color rgb(238, 153, 160);
@define-color destructive_bg_color rgb(237, 135, 150);
@define-color destructive_fg_color rgb(202, 211, 245);
@define-color success_color rgb(166, 218, 149);
@define-color success_bg_color rgb(139, 213, 202);
@define-color success_fg_color rgb(202, 211, 245);
@define-color warning_color rgb(245, 169, 127);
@define-color warning_bg_color rgb(238, 212, 159);
@define-color warning_fg_color rgb(24, 25, 38);
@define-color error_color rgb(238, 153, 160);
@define-color error_bg_color rgb(237, 135, 150);
@define-color error_fg_color rgb(202, 211, 245);
@define-color window_bg_color rgb(36, 39, 58);
@define-color window_fg_color rgb(202, 211, 245);
@define-color view_bg_color rgb(30, 32, 48);
@define-color view_fg_color rgb(202, 211, 245);
@define-color headerbar_bg_color rgb(24, 25, 38);
@define-color headerbar_fg_color rgb(202, 211, 245);
@define-color headerbar_border_color rgb(110, 115, 141);
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
@define-color card_bg_color rgb(30, 32, 48);
@define-color card_fg_color rgb(202, 211, 245);
@define-color card_shade_color rgba(0, 0, 0, 0.36);
@define-color dialog_bg_color rgb(30, 32, 48);
@define-color dialog_fg_color rgb(202, 211, 245);
@define-color popover_bg_color rgb(30, 32, 48);
@define-color popover_fg_color rgb(202, 211, 245);
@define-color shade_color rgba(0,0,0,0.36);
@define-color scrollbar_outline_color rgba(0,0,0,0.5);
@define-color blue_1 #99c1f1;
@define-color blue_2 #62a0ea;
@define-color blue_3 #3584e4;
@define-color blue_4 #1c71d8;
@define-color blue_5 #1a5fb4;
@define-color green_1 #8ff0a4;
@define-color green_2 #57e389;
@define-color green_3 #33d17a;
@define-color green_4 #2ec27e;
@define-color green_5 #26a269;
@define-color yellow_1 #f9f06b;
@define-color yellow_2 #f8e45c;
@define-color yellow_3 #f6d32d;
@define-color yellow_4 #f5c211;
@define-color yellow_5 #e5a50a;
@define-color orange_1 #ffbe6f;
@define-color orange_2 #ffa348;
@define-color orange_3 #ff7800;
@define-color orange_4 #e66100;
@define-color orange_5 #c64600;
@define-color red_1 #f66151;
@define-color red_2 #ed333b;
@define-color red_3 #e01b24;
@define-color red_4 #c01c28;
@define-color red_5 #a51d2d;
@define-color purple_1 #dc8add;
@define-color purple_2 #c061cb;
@define-color purple_3 #9141ac;
@define-color purple_4 #813d9c;
@define-color purple_5 #613583;
@define-color brown_1 #cdab8f;
@define-color brown_2 #b5835a;
@define-color brown_3 #986a44;
@define-color brown_4 #865e3c;
@define-color brown_5 #63452c;
@define-color light_1 #ffffff;
@define-color light_2 #f6f5f4;
@define-color light_3 #deddda;
@define-color light_4 #c0bfbc;
@define-color light_5 #9a9996;
@define-color dark_1 #77767b;
@define-color dark_2 #5e5c64;
@define-color dark_3 #3d3846;
@define-color dark_4 #241f31;
@define-color dark_5 #000000;

View file

@ -0,0 +1,17 @@
[Settings]
gtk-theme-name=Catppuccin-Macchiato-Standard-Blue-Dark
gtk-icon-theme-name=ePapirus-Dark
gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=Bibata-Modern-Classic
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1

View file

@ -0,0 +1,105 @@
[Default Applications]
x-scheme-handler/http=firefox-esr.desktop
x-scheme-handler/https=firefox-esr.desktop
application/x-extension-htm=firefox-esr.desktop
application/x-extension-html=firefox-esr.desktop
application/x-extension-shtml=firefox-esr.desktop
application/x-extension-xhtml=firefox-esr.desktop
application/x-extension-xht=firefox-esr.desktop
audio/x-ms-asx=mpv.desktop
audio/x-ms-wma=mpv.desktop
audio/mp2=mpv.desktop
audio/x-mpegurl=mpv.desktop
audio/ogg=mpv.desktop
audio/x-scpls=mpv.desktop
audio/mpeg=mpv.desktop
audio/x-wav=mpv.desktop
audio/aac=mpv.desktop
audio/mp4=mpv.desktop
audio/vnd.rn-realaudio=mpv.desktop
image/x-portable-anymap=imv.desktop
image/jpeg=imv.desktop
image/x-xbitmap=imv.desktop
image/tiff=imv.desktop
image/gif=imv.desktop
image/vnd.zbrush.pcx=imv.desktop
image/heif=imv.desktop
image/png=imv.desktop
image/x-portable-bitmap=imv.desktop
image/x-tga=imv.desktop
image/bmp=imv.desktop
image/x-portable-graymap=imv.desktop
image/x-portable-pixmap=imv.desktop
inode/directory=pcmanfm-qt.desktop
text/x-c++src=pluma.desktop
text/x-pascal=pluma.desktop
text/x-google-video-pointer=pluma.desktop
text/x-c++hdr=pluma.desktop
text/html=pluma.desktop
text/plain=pluma.desktop
text/tcl=pluma.desktop
text/x-csrc=pluma.desktop
text/x-makefile=pluma.desktop
text/x-chdr=pluma.desktop
text/x-tex=pluma.desktop
text/x-java=pluma.desktop
text/x-moc=pluma.desktop
video/3gpp=mpv.desktop
video/ogg=mpv.desktop
video/quicktime=mpv.desktop
video/x-ms-wmv=mpv.desktop
video/vnd.rn-realvideo=mpv.desktop
video/mp4=mpv.desktop
video/mpeg=mpv.desktop
video/x-matroska=mpv.desktop
video/x-flic=mpv.desktop
video/x-msvideo=mpv.desktop
video/x-theora+ogg=mpv.desktop
video/x-flv=mpv.desktop
application/zstd=engrampa.desktop
application/x-tzo=engrampa.desktop
application/x-bzip-compressed-tar=engrampa.desktop
application/x-cd-image=engrampa.desktop
application/x-ms-wim=engrampa.desktop
application/x-bzip=engrampa.desktop
application/x-arj=engrampa.desktop
application/x-lzip=engrampa.desktop
application/x-lzop=engrampa.desktop
application/x-stuffit=engrampa.desktop
application/x-lzip-compressed-tar=engrampa.desktop
application/x-cpio=engrampa.desktop
application/x-source-rpm=engrampa.desktop
application/gzip=engrampa.desktop
application/x-tarz=engrampa.desktop
application/x-lrzip=engrampa.desktop
application/x-java-archive=engrampa.desktop
application/vnd.rar=engrampa.desktop
application/x-lzma-compressed-tar=engrampa.desktop
application/x-lrzip-compressed-tar=engrampa.desktop
application/zip=engrampa.desktop
application/x-lzma=engrampa.desktop
application/x-alz=engrampa.desktop
application/x-compress=engrampa.desktop
application/vnd.ms-cab-compressed=engrampa.desktop
application/vnd.debian.binary-package=engrampa.desktop
application/x-ace=engrampa.desktop
application/x-xz-compressed-tar=engrampa.desktop
application/x-lha=engrampa.desktop
application/x-zoo=engrampa.desktop
application/x-rpm=engrampa.desktop
application/x-zstd-compressed-tar=engrampa.desktop
application/x-xar=engrampa.desktop
application/x-lz4=engrampa.desktop
application/x-compressed-tar=engrampa.desktop
application/x-xz=engrampa.desktop
application/x-tar=engrampa.desktop
application/x-7z-compressed=engrampa.desktop
application/x-archive=engrampa.desktop
application/x-lz4-compressed-tar=engrampa.desktop
application/x-lhz=engrampa.desktop
application/x-gzpostscript=engrampa.desktop
application/x-xpinstall=firefox-esr.desktop
application/xhtml+xml=firefox-esr.desktop
application/xml=firefox-esr.desktop
application/json=firefox-esr.desktop
application/pdf=org.pwmt.zathura.desktop

View file

@ -0,0 +1,32 @@
[
{
"label": "Lock",
"exec": "swaymsg exec ~/.config/swaylock/lock.sh",
"icon": "system-lock-screen"
},
{
"label": "Logout",
"exec": "swaymsg exit",
"icon": "system-log-out"
},
{
"label": "Suspend",
"exec": "systemctl suspend",
"icon": "system-suspend"
},
{
"label": "Hibernate",
"exec": "systemctl hibernate",
"icon": "system-hibernate"
},
{
"label": "Reboot",
"exec": "systemctl reboot",
"icon": "system-reboot"
},
{
"label": "Shutdown",
"exec": "systemctl -i poweroff",
"icon": "system-shutdown"
}
]

View file

@ -0,0 +1,35 @@
window {
background-color: rgba (0, 0, 0, 0.0)
}
/* Outer bar container, takes all the window width/height */
#outer-box {
margin: 0px
}
/* Inner bar container, surrounds buttons */
#inner-box {
background-color: @theme_bg_color;
border-radius: 4px;
border-style: solid;
border-width: 2px;
border-color: @theme_selected_bg_color;
padding: 5px;
margin: 5px
}
button, image {
background: none;
border: none;
box-shadow: none
}
button {
padding-left: 10px;
padding-right: 10px;
margin: 5px
}
button:hover {
background-color: @theme_selected_bg_color
}

View file

@ -0,0 +1,34 @@
window {
background-color: #24273a;
color: #cad3f5
}
/* search entry */
entry {
background-color: #363a4f
}
button, image {
background: none;
border: none
}
button:hover {
background-color: #5b6078
}
/* in case you wanted to give category buttons a different look */
#category-button {
margin: 0 10px 0 10px
}
#pinned-box {
padding-bottom: 5px;
border-bottom: 1px dotted gray
}
#files-box {
padding: 5px;
border: 1px dotted gray;
border-radius: 15px
}

View file

@ -0,0 +1,8 @@
{
"\\.pdf$": "zathura",
"\\.svg$": "inkscape",
"\\.(jpg|png|tiff|gif)$": "swayimg",
"\\.(mp3|ogg|flac|wav|wma)$": "audacious",
"\\.(avi|mp4|mkv|mov|wav)$": "mpv",
"\\.(doc|docx|xls|xlsx)$": "libreoffice"
}

View file

@ -0,0 +1,6 @@
{
"export-settings-ini": true,
"export-gtkrc-20": true,
"export-index-theme": true,
"export-xsettingsd": true
}

View file

@ -0,0 +1,2 @@
#!/bin/sh
/usr/share/sway/scripts/sbdp.py $HOME/.config/sway/config | jq --raw-output 'sort_by(.category) | .[] | .action + ": <b>" + .keybinding + "</b>"'

View file

@ -0,0 +1,13 @@
window {
background-color: @theme_bg_color;
font-size: medium;
color: #cad3f5;
}
#box-inner {
border-radius: 0px;
border-style: solid;
border-width: 2px;
border-color: #8aadf4;
padding: 10px;
}

View file

@ -0,0 +1,2 @@
[Recent]
Files=@Invalid()

View file

@ -0,0 +1,118 @@
[Behavior]
AutoSelectionDelay=600
BookmarkOpenMethod=current_tab
ConfirmDelete=false
ConfirmTrash=false
CtrlRightClick=false
NoUsbTrash=true
QuickExec=false
RecentFilesNumber=0
SelectNewFiles=true
SingleClick=false
SingleWindowMode=false
UseTrash=false
[Desktop]
AllSticky=false
BgColor=#000000
DesktopCellMargins=@Size(3 1)
DesktopIconSize=48
DesktopShortcuts=@Invalid()
FgColor=#ffffff
Font="Noto Sans,11,-1,5,50,0,0,0,0,0"
HideItems=false
LastSlide=
OpenWithDefaultFileManager=false
PerScreenWallpaper=false
ShadowColor=#000000
ShowHidden=false
SlideShowInterval=0
SortColumn=name
SortFolderFirst=true
SortHiddenLast=false
SortOrder=ascending
TransformWallpaper=false
Wallpaper=
WallpaperDialogSize=@Size(700 500)
WallpaperDialogSplitterPos=200
WallpaperDirectory=
WallpaperMode=none
WallpaperRandomize=false
WorkAreaMargins=12, 12, 12, 12
[FolderView]
BackupAsHidden=false
BigIconSize=48
CustomColumnWidths=@Invalid()
FolderViewCellMargins=@Size(3 3)
HiddenColumns=@Invalid()
Mode=icon
NoItemTooltip=false
ScrollPerPixel=true
ShadowHidden=true
ShowFilter=false
ShowFullNames=true
ShowHidden=false
SidePaneIconSize=24
SmallIconSize=24
SortCaseSensitive=false
SortColumn=name
SortFolderFirst=true
SortHiddenLast=false
SortOrder=ascending
ThumbnailIconSize=128
[Places]
HiddenPlaces=@Invalid()
[Search]
ContentPatterns=@Invalid()
MaxSearchHistory=0
NamePatterns=@Invalid()
searchContentCaseInsensitive=false
searchContentRegexp=true
searchNameCaseInsensitive=false
searchNameRegexp=true
searchRecursive=false
searchhHidden=false
[System]
Archiver=engrampa
FallbackIconThemeName=oxygen
OnlyUserTemplates=false
SIUnit=false
SuCommand=lxqt-sudo %s
TemplateRunApp=false
TemplateTypeOnce=false
Terminal=alacritty
[Thumbnail]
MaxExternalThumbnailFileSize=-1
MaxThumbnailFileSize=4096
ShowThumbnails=true
ThumbnailLocalFilesOnly=true
[Volume]
AutoRun=true
CloseOnUnmount=true
MountOnStartup=true
MountRemovable=true
[Window]
AlwaysShowTabs=true
FixedHeight=480
FixedWidth=640
LastWindowHeight=480
LastWindowMaximized=true
LastWindowWidth=640
PathBarButtons=true
RememberWindowSize=true
ReopenLastTabs=false
ShowMenuBar=false
ShowTabClose=true
SidePaneMode=places
SidePaneVisible=true
SplitView=false
SplitterPos=200
SwitchToNewTab=false
TabPaths=@Invalid()

View file

@ -0,0 +1,223 @@
; pluma GtkAccelMap rc-file -*- scheme -*-
; this file is an automated accelerator map dump
;
; (gtk_accel_path "<Actions>/FileBrowserWidgetSingleSelectionActionGroup/FileRename" "")
; (gtk_accel_path "<Actions>/LanguagesActions/php" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/Search" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSingleMostSelectionActionGroup/FileNew" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dpatch" "")
; (gtk_accel_path "<Actions>/PlumaDocInfoPluginActions/DocumentStatistics" "")
; (gtk_accel_path "<Actions>/LanguagesActions/idl-exelis" "")
; (gtk_accel_path "<Actions>/LanguagesActions/vala" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gtkrc" "")
; (gtk_accel_path "<Actions>/LanguagesActions/pig" "")
; (gtk_accel_path "<Actions>/LanguagesActions/vhdl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/puppet" "")
; (gtk_accel_path "<Actions>/LanguagesActions/automake" "")
; (gtk_accel_path "<Actions>/LanguagesActions/logcat" "")
; (gtk_accel_path "<Actions>/LanguagesActions/asp" "")
; (gtk_accel_path "<Actions>/LanguagesActions/sql" "")
; (gtk_accel_path "<Actions>/LanguagesActions/opal" "")
; (gtk_accel_path "<Actions>/LanguagesActions/eiffel" "")
; (gtk_accel_path "<Actions>/LanguagesActions/docker" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchGoToLine" "<Primary>i")
; (gtk_accel_path "<Actions>/LanguagesActions/opencl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/t2t" "")
; (gtk_accel_path "<Actions>/PlumaWindowPanesActions/ViewBottomPane" "<Primary>F9")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/HelpContents" "F1")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditDelete" "")
; (gtk_accel_path "<Actions>/LanguagesActions/idl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/kotlin" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/DocumentsPreviousDocument" "<Primary><Alt>Page_Up")
; (gtk_accel_path "<Actions>/LanguagesActions/erb-html" "")
; (gtk_accel_path "<Actions>/LanguagesActions/forth" "")
; (gtk_accel_path "<Actions>/LanguagesActions/vbnet" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditPaste" "<Primary>v")
; (gtk_accel_path "<Actions>/LanguagesActions/typescript" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/ViewFullscreen" "F11")
; (gtk_accel_path "<Actions>/PlumaSpellPluginActions/AutoSpell" "<Primary>F7")
; (gtk_accel_path "<Actions>/PlumaWindowActions/UpperCase" "")
; (gtk_accel_path "<Actions>/LanguagesActions/js" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ftl" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditUndo" "<Primary>z")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchFindNext" "<Primary>g")
; (gtk_accel_path "<Actions>/LanguagesActions/boo" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/Edit" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/DocumentsMoveToNewWindow" "")
; (gtk_accel_path "<Actions>/LanguagesActions/yacc" "")
; (gtk_accel_path "<Actions>/LanguagesActions/star" "")
; (gtk_accel_path "<Actions>/LanguagesActions/jsx" "")
; (gtk_accel_path "<Actions>/LanguagesActions/json" "")
; (gtk_accel_path "<Actions>/LanguagesActions/spice" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSensitiveActionGroup/DirectoryRefresh" "")
; (gtk_accel_path "<Actions>/LanguagesActions/docbook" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gdb-log" "")
; (gtk_accel_path "<Actions>/PlumaWindowPanesActions/ViewSidePane" "F9")
; (gtk_accel_path "<Actions>/LanguagesActions/meson" "")
; (gtk_accel_path "<Actions>/LanguagesActions/erb" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FileRevert" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ocl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dart" "")
; (gtk_accel_path "<Actions>/LanguagesActions/scala" "")
; (gtk_accel_path "<Actions>/LanguagesActions/xml" "")
; (gtk_accel_path "<Actions>/LanguagesActions/terraform" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetFileSelectionActionGroup/FileOpen" "")
; (gtk_accel_path "<Actions>/LanguagesActions/haskell-literate" "")
; (gtk_accel_path "<Actions>/LanguagesActions/commonlisp" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ooc" "")
; (gtk_accel_path "<Actions>/FileBrowserPluginSingleSelectionExtra/OpenTerminal" "")
; (gtk_accel_path "<Actions>/LanguagesActions/matlab" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ansforth94" "")
; (gtk_accel_path "<Actions>/LanguagesActions/scilab" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FileSave" "<Primary>s")
; (gtk_accel_path "<Actions>/LanguagesActions/rust" "")
; (gtk_accel_path "<Actions>/LanguagesActions/xslt" "")
; (gtk_accel_path "<Actions>/LanguagesActions/j" "")
; (gtk_accel_path "<Actions>/LanguagesActions/objj" "")
; (gtk_accel_path "<Actions>/LanguagesActions/verilog" "")
; (gtk_accel_path "<Actions>/LanguagesActions/tera" "")
; (gtk_accel_path "<Actions>/LanguagesActions/yaml" "")
; (gtk_accel_path "<Actions>/LanguagesActions/makefile" "")
; (gtk_accel_path "<Actions>/LanguagesActions/html" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gettext-translation" "")
; (gtk_accel_path "<Actions>/LanguagesActions/csv" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditCopy" "<Primary>c")
; (gtk_accel_path "<Actions>/LanguagesActions/llvm" "")
; (gtk_accel_path "<Actions>/LanguagesActions/cmake" "")
; (gtk_accel_path "<Actions>/LanguagesActions/imagej" "")
; (gtk_accel_path "<Actions>/LanguagesActions/octave" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetActionGroup/FilterBinary" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dosbatch" "")
; (gtk_accel_path "<Actions>/LanguagesActions/glsl" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/FileOpen" "<Primary>o")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FileCloseAll" "<Primary><Shift>w")
; (gtk_accel_path "<Actions>/LanguagesActions/desktop" "")
; (gtk_accel_path "<Actions>/LanguagesActions/diff" "")
; (gtk_accel_path "<Actions>/LanguagesActions/pkgconfig" "")
; (gtk_accel_path "<Actions>/LanguagesActions/haskell" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ada" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/View" "")
; (gtk_accel_path "<Actions>/LanguagesActions/chdr" "")
; (gtk_accel_path "<Actions>/LanguagesActions/maxima" "")
; (gtk_accel_path "<Actions>/PlumaSpellPluginActions/CheckSpell" "<Shift>F7")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/Help" "")
; (gtk_accel_path "<Actions>/PlumaQuitWindowActions/FileQuit" "<Primary>q")
; (gtk_accel_path "<Actions>/LanguagesActions/libtool" "")
; (gtk_accel_path "<Actions>/LanguagesActions/scss" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/HelpAbout" "")
; (gtk_accel_path "<Actions>/DocumentsListActions/Tab_0" "<Alt>1")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditRedo" "<Primary><Shift>z")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/Documents" "")
; (gtk_accel_path "<Actions>/LanguagesActions/rpmspec" "")
; (gtk_accel_path "<Actions>/LanguagesActions/css" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dot" "")
; (gtk_accel_path "<Actions>/LanguagesActions/python" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/InvertCase" "")
; (gtk_accel_path "<Actions>/LanguagesActions/awk" "")
; (gtk_accel_path "<Actions>/LanguagesActions/haxe" "")
; (gtk_accel_path "<Actions>/LanguagesActions/less" "")
; (gtk_accel_path "<Actions>/LanguagesActions/yara" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditSelectAll" "<Primary>a")
; (gtk_accel_path "<Actions>/LanguagesActions/netrexx" "")
; (gtk_accel_path "<Actions>/LanguagesActions/groovy" "")
; (gtk_accel_path "<Actions>/LanguagesActions/typescript-jsx" "")
; (gtk_accel_path "<Actions>/LanguagesActions/perl" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchIncrementalSearch" "<Primary>k")
; (gtk_accel_path "<Actions>/LanguagesActions/sparql" "")
; (gtk_accel_path "<Actions>/LanguagesActions/powershell" "")
; (gtk_accel_path "<Actions>/LanguagesActions/rst" "")
; (gtk_accel_path "<Actions>/LanguagesActions/d" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchClearHighlight" "<Primary><Shift>k")
; (gtk_accel_path "<Actions>/LanguagesActions/jade" "")
; (gtk_accel_path "<Actions>/LanguagesActions/m4" "")
; (gtk_accel_path "<Actions>/LanguagesActions/sh" "")
; (gtk_accel_path "<Actions>/LanguagesActions/pascal" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/EditCut" "<Primary>x")
; (gtk_accel_path "<Actions>/LanguagesActions/julia" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FilePrint" "<Primary>p")
; (gtk_accel_path "<Actions>/LanguagesActions/tcl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/c" "")
; (gtk_accel_path "<Actions>/LanguagesActions/mallard" "")
; (gtk_accel_path "<Actions>/LanguagesActions/objc" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dtl" "")
; (gtk_accel_path "<Actions>/PlumaSpellPluginActions/ConfigSpell" "")
; (gtk_accel_path "<Actions>/LanguagesActions/fsharp" "")
; (gtk_accel_path "<Actions>/LanguagesActions/systemverilog" "")
; (gtk_accel_path "<Actions>/LanguagesActions/erlang" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ruby" "")
; (gtk_accel_path "<Actions>/LanguagesActions/fish" "")
; (gtk_accel_path "<Actions>/PlumaTimePluginActions/InsertDateAndTime" "")
; (gtk_accel_path "<Actions>/LanguagesActions/go" "")
; (gtk_accel_path "<Actions>/LanguagesActions/fcl" "")
; (gtk_accel_path "<Actions>/LanguagesActions/fortran" "")
; (gtk_accel_path "<Actions>/LanguagesActions/python3" "")
; (gtk_accel_path "<Actions>/LanguagesActions/changelog" "")
; (gtk_accel_path "<Actions>/LanguagesActions/cobol" "")
; (gtk_accel_path "<Actions>/LanguagesActions/abnf" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchFindPrevious" "<Primary><Shift>g")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSelectionActionGroup/FileMoveToTrash" "")
; (gtk_accel_path "<Actions>/LanguagesActions/mediawiki" "")
; (gtk_accel_path "<Actions>/LanguagesActions/java" "")
; (gtk_accel_path "<Actions>/LanguagesActions/swift" "")
; (gtk_accel_path "<Actions>/LanguagesActions/genie" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetBookmarkActionGroup/BookmarkOpen" "")
; (gtk_accel_path "<Actions>/LanguagesActions/c-sharp" "")
; (gtk_accel_path "<Actions>/LanguagesActions/cuda" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gap" "")
; (gtk_accel_path "<Actions>/LanguagesActions/bluespec" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchFind" "<Primary>f")
; (gtk_accel_path "<Actions>/PlumaWindowActions/ChangeCase" "")
; (gtk_accel_path "<Actions>/PlumaCloseWindowActions/FileClose" "<Primary>w")
; (gtk_accel_path "<Actions>/LanguagesActions/solidity" "")
; (gtk_accel_path "<Actions>/LanguagesActions/lean" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FileSaveAs" "<Primary><Shift>s")
; (gtk_accel_path "<Actions>/FileBrowserWidgetActionGroup/FilterHidden" "")
; (gtk_accel_path "<Actions>/LanguagesActions/sweave" "")
; (gtk_accel_path "<Actions>/LanguagesActions/mxml" "")
; (gtk_accel_path "<Actions>/LanguagesActions/nemerle" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/ViewToolbar" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ini" "")
; (gtk_accel_path "<Actions>/LanguagesActions/cg" "")
; (gtk_accel_path "<Actions>/LanguagesActions/scheme" "")
; (gtk_accel_path "<Actions>/LanguagesActions/actionscript" "")
; (gtk_accel_path "<Actions>/LanguagesActions/toml" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetActionGroupToplevel/FilterMenuAction" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gradle" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/SearchReplace" "<Primary>h")
; (gtk_accel_path "<Actions>/LanguagesActions/bibtex" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FileSaveAll" "<Primary><Shift>l")
; (gtk_accel_path "<Actions>/LanguagesActions/asciidoc" "")
; (gtk_accel_path "<Actions>/LanguagesActions/ocaml" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/ViewHighlightMode" "")
; (gtk_accel_path "<Actions>/FileBrowserPluginExtra/SetActiveRoot" "")
; (gtk_accel_path "<Actions>/LanguagesActions/lua" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSingleMostSelectionActionGroup/DirectoryNew" "")
; (gtk_accel_path "<Actions>/LanguagesActions/latex" "")
; (gtk_accel_path "<Actions>/LanguagesActions/sml" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/FilePrintPreview" "<Primary><Shift>p")
; (gtk_accel_path "<Actions>/LanguagesActions/markdown" "")
; (gtk_accel_path "<Actions>/LanguagesActions/proto" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/EditPreferences" "")
; (gtk_accel_path "<Actions>/LanguagesActions/erb-js" "")
; (gtk_accel_path "<Actions>/LanguagesActions/gdscript" "")
; (gtk_accel_path "<Actions>/LanguagesActions/cpphdr" "")
; (gtk_accel_path "<Actions>/LanguagesActions/r" "")
; (gtk_accel_path "<Actions>/LanguagesActions/bennugd" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/TitleCase" "")
; (gtk_accel_path "<Actions>/LanguagesActions/logtalk" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/File" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/ViewStatusbar" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/DocumentsNextDocument" "<Primary><Alt>Page_Down")
; (gtk_accel_path "<Actions>/LanguagesActions/cpp" "")
; (gtk_accel_path "<Actions>/LanguagesActions/nsis" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSelectionActionGroup/FileDelete" "")
; (gtk_accel_path "<Actions>/LanguagesActions/dtd" "")
; (gtk_accel_path "<Actions>/LanguagesActions/prolog" "")
; (gtk_accel_path "<Actions>/FileBrowserWidgetSensitiveActionGroup/DirectoryOpen" "")
; (gtk_accel_path "<Actions>/LanguagesActions/texinfo" "")
; (gtk_accel_path "<Actions>/LanguagesActions/lex" "")
; (gtk_accel_path "<Actions>/PlumaWindowActions/LowerCase" "")
; (gtk_accel_path "<Actions>/LanguagesActions/modelica" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/Tools" "")
; (gtk_accel_path "<Actions>/PlumaWindowAlwaysSensitiveActions/FileNew" "<Primary>n")
; (gtk_accel_path "<Actions>/LanguagesActions/thrift" "")

View file

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Catppuccin Gedit theme based on Oblivion theme and Cappuccin for Visual Studio Code.
-->
<style-scheme id="catppuccin_macchiato" _name="Catppuccin macchiato" version="1.0">
<author>sacerdos</author>
<_description>Soothing pastel theme for Gedit</_description>
<!-- Catppuccin Palette -->
<color name="macchiato_rosewater" value="#f4dbd6"/>
<color name="macchiato_flamingo" value="#f0c6c6"/>
<color name="macchiato_pink" value="#f5bde6"/>
<color name="macchiato_mauve" value="#c6a0f6"/>
<color name="macchiato_red" value="#ed8796"/>
<color name="macchiato_maroon" value="#ee99a0"/>
<color name="macchiato_peach" value="#f5a97f"/>
<color name="macchiato_yellow" value="#eed49f"/>
<color name="macchiato_green" value="#a6da95"/>
<color name="macchiato_teal" value="#8bd5ca"/>
<color name="macchiato_sky" value="#91d7e3"/>
<color name="macchiato_sapphire" value="#7dc4e4"/>
<color name="macchiato_blue" value="#8aadf4"/>
<color name="macchiato_lavender" value="#b7bdf8"/>
<color name="macchiato_text" value="#cad3f5"/>
<color name="macchiato_subtext1" value="#b8c0e0"/>
<color name="macchiato_subtext0" value="#a5adcb"/>
<color name="macchiato_overlay2" value="#939ab7"/>
<color name="macchiato_overlay1" value="#8087a2"/>
<color name="macchiato_overlay0" value="#6e738d"/>
<color name="macchiato_surface2" value="#5b6078"/>
<color name="macchiato_surface1" value="#494d64"/>
<color name="macchiato_surface0" value="#363a4f"/>
<color name="macchiato_base" value="#24273a"/>
<color name="macchiato_mantle" value="#1e2030"/>
<color name="macchiato_crust" value="#181926"/>
<!-- Global Settings -->
<style name="text" foreground="macchiato_text" background = "macchiato_base"/>
<style name="selection" foreground="macchiato_text" background="macchiato_surface2"/>
<style name="cursor" foreground="macchiato_rosewater"/>
<style name="secondary-cursor" foreground="macchiato_rosewater"/>
<style name="current-line" background="macchiato_surface0"/>
<style name="line-numbers" foreground="macchiato_text" background="macchiato_crust"/>
<style name="draw-spaces" foreground="macchiato_text"/>
<style name="background-pattern" background="macchiato_mantle"/>
<!-- Bracket Matching -->
<style name="bracket-match" foreground="macchiato_mauve"/>
<style name="bracket-mismatch" foreground="macchiato_text" background="macchiato_peach"/>
<!-- Right Margin -->
<style name="right-margin" foreground="macchiato_text" background="crust"/>
<!-- Search Matching -->
<style name="search-match" foreground="macchiato_text" background="macchiato_blue"/>
<!-- Comments -->
<style name="def:comment" foreground="macchiato_overlay0"/>
<style name="def:shebang" foreground="macchiato_overlay0" bold="true"/>
<style name="def:doc-comment-element" italic="true"/>
<!-- Constants -->
<style name="def:constant" foreground="macchiato_green"/>
<style name="def:string" foreground="macchiato_green"/>
<style name="def:special-char" foreground="macchiato_lavender"/>
<style name="def:special-constant" foreground="macchiato_lavender"/>
<style name="def:floating-point" foreground="macchiato_lavender"/>
<!-- Identifiers -->
<style name="def:identifier" foreground="macchiato_blue"/>
<!-- Statements -->
<style name="def:statement" foreground="macchiato_sapphire" bold="true"/>
<!-- Types -->
<style name="def:type" foreground="macchiato_maroon" bold="true"/>
<!-- Markup -->
<style name="def:emphasis" italic="true"/>
<style name="def:strong-emphasis" foreground="macchiato_yellow" bold="true"/>
<style name="def:inline-code" foreground="macchiato_green"/>
<style name="def:insertion" underline="single"/>
<style name="def:deletion" strikethrough="true"/>
<style name="def:link-text" foreground="macchiato_rosewater"/>
<style name="def:link-symbol" foreground="macchiato_blue" bold="true"/>
<style name="def:link-destination" foreground="macchiato_blue" italic="true" underline="single"/>
<style name="def:heading" foreground="macchiato_teal" bold="true"/>
<style name="def:thematic-break" foreground="macchiato_green" bold="true"/>
<style name="def:preformatted-section" foreground="macchiato_green"/>
<style name="def:list-marker" foreground="macchiato_teal" bold="true"/>
<!-- Others -->
<style name="def:preprocessor" foreground="macchiato_teal"/>
<style name="def:error" foreground="macchiato_maroon" bold="true"/>
<style name="def:warning" foreground="macchiato_peach"/>
<style name="def:note" foreground="macchiato_blue" bold="true"/>
<style name="def:net-address" italic="true" underline="single"/>
</style-scheme>

View file

@ -0,0 +1,4 @@
[ColorScheme]
active_colors=#ffcad3f5, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff24273a, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2
disabled_colors=#ffa5adcb, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffa5adcb, #ffa5adcb, #ffa5adcb, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff494d64, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2
inactive_colors=#ffcdd6f4, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ffa5adcb, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2

View file

@ -0,0 +1,32 @@
[Appearance]
color_scheme_path=$HOME/.config/qt5ct/colors/Catppuccin-Macchiato.conf
custom_palette=true
icon_theme=ePapirus-Dark
standard_dialogs=default
style=kvantum-dark
[Fonts]
fixed=@Variant(\0\0\0@\0\0\0\x12\0N\0o\0t\0o\0 \0S\0\x61\0n\0s@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
general=@Variant(\0\0\0@\0\0\0\x12\0N\0o\0t\0o\0 \0S\0\x61\0n\0s@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2q\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2q\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2q)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()

View file

@ -0,0 +1,4 @@
[ColorScheme]
active_colors=#ffcad3f5, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff24273a, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2
disabled_colors=#ffa5adcb, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffa5adcb, #ffa5adcb, #ffa5adcb, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ff494d64, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2
inactive_colors=#ffcdd6f4, #ff1e2030, #ffa5adcb, #ff939ab7, #ff494d64, #ff6e738d, #ffcad3f5, #ffcad3f5, #ffcad3f5, #ff24273a, #ff1e2030, #ff8087a2, #ff8aadf4, #ffa5adcb, #ff8aadf4, #ffed8796, #ff24273a, #ffcad3f5, #ff181926, #ffcad3f5, #808087a2

View file

@ -0,0 +1,32 @@
[Appearance]
color_scheme_path=$HOME/.config/qt6ct/colors/Catppuccin-Macchiato.conf
custom_palette=true
icon_theme=ePapirus
standard_dialogs=default
style=kvantum-dark
[Fonts]
fixed="Noto Sans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
general="Noto Sans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x61\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x61\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x61)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()

View file

@ -0,0 +1,4 @@
[Default]
save_dir=${XDG_PICTURES_DIR:-$HOME/Pictures}
show_panel=true
early_exit=true

View file

@ -0,0 +1,33 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
# Color scheme
include /usr/share/themes/catppuccin-i3/catppuccin-macchiato
# Sway styling
include /etc/sway/styling
# Global variables
include /etc/sway/variables
# User variables
include $HOME/.config/sway/variables.d/*.conf
include /etc/sway/outputs/*.conf
include /etc/sway/inputs/*.conf
# include modes
include /etc/sway/modes/*.conf
# Additional configs (autostart, Sway theme, window rules, etc)
include /etc/sway/config.d/*.conf
# User config
include $HOME/.config/sway/config.d/*.conf
# Include nwg-displays config's (if exists)
include ~/.config/sway/outputs
include ~/.config/sway/workspaces

View file

@ -0,0 +1,19 @@
# input "*" equals all input methods
# to specify settings for a specific input method, use its identifier instead.
# query the connected input methods: `swaymsg -t get_inputs`
input * {
# toggles through configured layouts via caps-lock
# query the available layout toggles: `localectl list-x11-keymap-options | grep grp:`
# query the available led indicators: `localectl list-x11-keymap-options | grep grp_led`
# enables caps-lock led if not the first layout selected
# regular caps-lock behavior can be reached using shift+caps-lock
xkb_options grp:caps_toggle,grp_led:caps
# query the available layouts: `localectl list-x11-keymap-layouts`
xkb_layout "us,de"
# query the available variants for a given layout: `localectl list-x11-keymap-variants de`
# list in the same order as the layouts - empty equals the default layout
xkb_variant ","
}

View file

@ -0,0 +1,9 @@
# variables overrides for sway
refer to /etc/sway/variables for global variables that can be overridden here
e.g.:
* change modifier key from Win/Pine-Key to Alt: `set $mod Mod1`
* make a foot client instance the default terminal for even faster terminal windows: `set $term footclient`
* follow windows after moving them: `set $focus_after_move true`

View file

@ -0,0 +1,6 @@
timeout 240 'light -G > /tmp/brightness && light -S 10' resume 'light -S $([ -f /tmp/brightness ] && cat /tmp/brightness || echo 100%)'
timeout 300 ~/.config/swaylock/lock.sh
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"'
before-sleep 'playerctl pause'
before-sleep ~/.config/swaylock/lock.sh
lock ~/.config/swaylock/lock.sh

View file

@ -0,0 +1,18 @@
indicator-caps-lock
indicator-idle-visible
ignore-empty-password
show-failed-attempts
show-keyboard-layout
font=Noto Sans
color=24273a
inside-color=363a4f
inside-ver-color=8bd5ca
inside-clear-color=cad3f5
inside-wrong-color=ed8796
inside-caps-lock-color=181926
key-hl-color=a6da95
ring-color=c6a0f6
ring-ver-color=7dc4e4
ring-wrong-color=ee99a0
ring-clear-color=8aadf4
ring-caps-lock-color=f5a97f

View file

@ -0,0 +1,17 @@
#!/bin/bash
# This script takes a screenshot of current output and adds a blur and vignette to it
cd /tmp
grim screen.png
# Delete existing image
rm screen-out.png
#Adds a blur and vignette
ffmpeg -i screen.png -vf "gblur=sigma=10, vignette=PI/5" -c:a copy screen-out.png
#Uses output image with Swaylock
swaylock \
--image screen-out.png \
--daemonize

View file

@ -0,0 +1,37 @@
/*
*
* Catppuccin Frappe palette
* Maintainer: rubyowo
*
*/
@define-color base #303446;
@define-color mantle #292c3c;
@define-color crust #232634;
@define-color text #c6d0f5;
@define-color subtext0 #a5adce;
@define-color subtext1 #b5bfe2;
@define-color surface0 #414559;
@define-color surface1 #51576d;
@define-color surface2 #626880;
@define-color overlay0 #737994;
@define-color overlay1 #838ba7;
@define-color overlay2 #949cbb;
@define-color blue #8caaee;
@define-color lavender #babbf1;
@define-color sapphire #85c1dc;
@define-color sky #99d1db;
@define-color teal #81c8be;
@define-color green #a6d189;
@define-color yellow #e5c890;
@define-color peach #ef9f76;
@define-color maroon #ea999c;
@define-color red #e78284;
@define-color mauve #ca9ee6;
@define-color pink #f4b8e4;
@define-color flamingo #eebebe;
@define-color rosewater #f2d5cf;

View file

@ -0,0 +1,37 @@
/*
*
* Catppuccin Latte palette
* Maintainer: rubyowo
*
*/
@define-color base #eff1f5;
@define-color mantle #e6e9ef;
@define-color crust #dce0e8;
@define-color text #4c4f69;
@define-color subtext0 #6c6f85;
@define-color subtext1 #5c5f77;
@define-color surface0 #ccd0da;
@define-color surface1 #bcc0cc;
@define-color surface2 #acb0be;
@define-color overlay0 #9ca0b0;
@define-color overlay1 #8c8fa1;
@define-color overlay2 #7c7f93;
@define-color blue #1e66f5;
@define-color lavender #7287fd;
@define-color sapphire #209fb5;
@define-color sky #04a5e5;
@define-color teal #179299;
@define-color green #40a02b;
@define-color yellow #df8e1d;
@define-color peach #fe640b;
@define-color maroon #e64553;
@define-color red #d20f39;
@define-color mauve #8839ef;
@define-color pink #ea76cb;
@define-color flamingo #dd7878;
@define-color rosewater #dc8a78;

View file

@ -0,0 +1,37 @@
/*
*
* Catppuccin Macchiato palette
* Maintainer: rubyowo
*
*/
@define-color base #24273a;
@define-color mantle #1e2030;
@define-color crust #181926;
@define-color text #cad3f5;
@define-color subtext0 #a5adcb;
@define-color subtext1 #b8c0e0;
@define-color surface0 #363a4f;
@define-color surface1 #494d64;
@define-color surface2 #5b6078;
@define-color overlay0 #6e738d;
@define-color overlay1 #8087a2;
@define-color overlay2 #939ab7;
@define-color blue #8aadf4;
@define-color lavender #b7bdf8;
@define-color sapphire #7dc4e4;
@define-color sky #91d7e3;
@define-color teal #8bd5ca;
@define-color green #a6da95;
@define-color yellow #eed49f;
@define-color peach #f5a97f;
@define-color maroon #ee99a0;
@define-color red #ed8796;
@define-color mauve #c6a0f6;
@define-color pink #f5bde6;
@define-color flamingo #f0c6c6;
@define-color rosewater #f4dbd6;

View file

@ -0,0 +1,37 @@
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #1e1e2e;
@define-color mantle #181825;
@define-color crust #11111b;
@define-color text #cdd6f4;
@define-color subtext0 #a6adc8;
@define-color subtext1 #bac2de;
@define-color surface0 #313244;
@define-color surface1 #45475a;
@define-color surface2 #585b70;
@define-color overlay0 #6c7086;
@define-color overlay1 #7f849c;
@define-color overlay2 #9399b2;
@define-color blue #89b4fa;
@define-color lavender #b4befe;
@define-color sapphire #74c7ec;
@define-color sky #89dceb;
@define-color teal #94e2d5;
@define-color green #a6e3a1;
@define-color yellow #f9e2af;
@define-color peach #fab387;
@define-color maroon #eba0ac;
@define-color red #f38ba8;
@define-color mauve #cba6f7;
@define-color pink #f5c2e7;
@define-color flamingo #f2cdcd;
@define-color rosewater #f5e0dc;

View file

@ -0,0 +1,217 @@
{
"layer": "top",
"position": "top",
"height": 30,
"modules-left": ["custom/menu", "sway/workspaces", "sway/window"],
"modules-center": ["custom/wf-recorder", "sway/mode"],
"modules-right": [
"tray",
"custom/playerctl",
"custom/help",
"custom/wlsunset",
"idle_inhibitor",
"custom/dunst",
"sway/language",
"custom/clipboard",
"cpu",
"memory",
"battery",
"network",
"bluetooth",
"pulseaudio",
"clock",
"custom/power"
],
"custom/menu": {
"format": "",
"on-click": "exec nwg-drawer",
"tooltip": false
},
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true
},
"sway/window": {
"format": "{}",
"max-length": 50,
"tooltip": true
},
"custom/wf-recorder": {
"interval": "once",
"return-type": "json",
"format": "{}",
"tooltip-format": "{tooltip}",
"exec": "echo '{\"class\": \"recording\",\"text\":\"\",\"tooltip\":\"press $mod+Esc to stop recording\"}'",
"exec-if": "pgrep wf-recorder",
"on-click": "killall -s SIGINT wf-recorder",
"signal": 8
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>",
"tooltip": false
},
"custom/playerctl": {
"interval": "once",
"tooltip": true,
"return-type": "json",
"format": "{icon}",
"format-icons": {
"Playing": "",
"Paused": ""
},
"exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"tooltip\": \"{{playerName}}: {{markup_escape(title)}} - {{markup_escape(artist)}}\" }'",
"on-click": "playerctl play-pause; pkill -RTMIN+5 waybar",
"on-click-right": "playerctl next; pkill -RTMIN+5 waybar",
"on-scroll-up": "playerctl position 10+; pkill -RTMIN+5 waybar",
"on-scroll-down": "playerctl position 10-; pkill -RTMIN+5 waybar",
"signal": 5
},
"custom/help": {
"format": "",
"on-click": "/usr/share/sway/scripts/help.sh --toggle",
"tooltip": "false"
},
"custom/wlsunset": {
"interval": "once",
"tooltip": true,
"tooltip-format": "{tooltip}",
"return-type": "json",
"format": "{icon}",
"format-icons": {
"on": "",
"off": ""
},
"exec": "fallback_latitude=50.1 fallback_longitude=8.7 latitude= longitude= /usr/share/sway/scripts/sunset.sh",
"on-click": "/usr/share/sway/scripts/sunset.sh toggle; pkill -RTMIN+6 waybar",
"exec-if": "/usr/share/sway/scripts/sunset.sh check",
"signal": 6
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"start-activated": true,
"tooltip": true,
"tooltip-format-activated": "power-saving disabled",
"tooltip-format-deactivated": "power-saving enabled"
},
"custom/dunst": {
"exec": "/usr/share/sway/scripts/dunst.sh",
"on-click": "dunstctl set-paused toggle",
"restart-interval": 1,
},
"sway/language": {
"format": " {}",
"min-length": 5,
"tooltip": false,
"on-click": "swaymsg input $(swaymsg -t get_inputs --raw | jq '[.[] | select(.type == \"keyboard\")][0] | .identifier') xkb_switch_layout next"
},
"custom/clipboard": {
"format": "",
"interval": "once",
"return-type": "json",
"on-click": "swaymsg -q exec '$clipboard'; pkill -RTMIN+9 waybar",
"on-click-right": "swaymsg -q exec '$clipboard-del'; pkill -RTMIN+9 waybar",
"on-click-middle": "rm -f ~/.cache/cliphist/db; pkill -RTMIN+9 waybar",
"exec": "printf '{\"tooltip\":\"%s\"}' $(cliphist list | wc -l)' item(s) in the clipboard\r(Mid click to clear)'",
"exec-if": "[ -x \"$(command -v cliphist)\" ] && [ $(cliphist list | wc -l) -gt 0 ]",
"signal": 9
},
"cpu": {
"interval": 5,
"format": " {usage}%",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$flock \\$term_float btop"
},
"memory": {
"interval": 30,
"format": " {}%",
"states": {
"warning": 70,
"critical": 90
},
"on-click": "swaymsg exec \\$flock \\$term_float btop"
},
"battery": {
"format": "{icon} {capacity}%",
"format-icons": ["", "", "", "", ""]
},
"network": {
"format-wifi": " ({signalStrength}%)",
"format-ethernet": "",
"format-disconnected": "",
"tooltip-format": "{ifname} ({essid}): {ipaddr}",
"tooltip-format": "{icon} {ifname}: {ipaddr}",
"tooltip-format-ethernet": "{icon} {ifname}: {ipaddr}",
"tooltip-format-wifi": "{icon} {ifname} ({essid}): {ipaddr}",
"tooltip-format-disconnected": "{icon} disconnected",
"tooltip-format-disabled": "{icon} disabled",
"on-click": "swaymsg exec \\$flock \\$term_float nmtui connect"
},
"bluetooth": {
"format": "",
"format-disabled": "",
"format-no-controller": "",
"on-click": "swaymsg exec \\$bluetooth",
"on-click-right": "rfkill toggle bluetooth",
"tooltip-format": "{}"
},
"pulseaudio": {
"format": "{icon} {volume}% {format_source}",
"format-bluetooth": "{icon} {volume}%",
"format-muted": " {format_source}",
"format-source": "  {volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"headset": "",
"default": ["", "", ""]
},
"tooltip-format": "{icon} {volume}% {format_source}",
"on-click": "swaymsg exec \\$flock \\$pulseaudio",
"on-click-middle": "swaymsg exec \\$volume_mute",
"on-click-right": "swaymsg exec pavucontrol"
},
"clock": {
"format": "{:%e %b %H:%M}",
"tooltip": true,
"tooltip-format": "{:%d.%m.%Y %H:%M}",
"interval": 5,
"on-click": "swaymsg exec \\$calendar"
},
"custom/power": {
"format": "",
"on-click": "nwg-bar -x"
},
"tray": {
"icon-size": 21,
"spacing": 10
}
}

View file

@ -0,0 +1,206 @@
@import "colors/macchiato.css";
@keyframes blink-warning {
70% {
color: @wm_icon_bg;
}
to {
color: @wm_icon_bg;
background-color: @yellow;
}
}
@keyframes blink-critical {
70% {
color: @wm_icon_bg;
}
to {
color: @wm_icon_bg;
background-color: @red;
}
}
/* Reset all styles */
* {
border: 0px;
border-radius: 0px;
color: @text;
padding: 0 0;
margin-right: 2px;
margin-left: 2px;
font-family: "Noto Sans", "Font Awesome 6 Free", "Font Awesome";
font-size: 14px;
}
#window {
margin-left: 10px;
margin-bottom: 3px;
}
window#waybar {
background: @base;
}
window#waybar.hidden {
opacity: 0.2;
}
#workspaces button {
border-bottom: 2px;
border-color: @base;
border-style: solid;
margin-bottom: 3px;
}
#workspaces button.focused {
color: @sapphire;
border-color: @sapphire;
}
#workspaces button.urgent {
border-color: @red;
color: @red;
}
#mode {
color: @yellow;
margin-bottom: 3px;
}
#clock,
#custom-help,
#custom-playerctl,
#custom-power,
#custom-wlsunset,
#custom-clipboard,
#custom-menu,
#custom-dunst,
#battery,
#cpu,
#language,
#memory,
#network,
#bluetooth,
#pulseaudio,
#tray,
#mode,
#idle_inhibitor {
padding: 0 6px;
border-bottom: 2px;
border-style: solid;
margin-bottom: 3px;
}
#custom-menu {
color: @green;
}
#custom-wf-recorder {
color: @error_color;
padding-right: 10px;
}
#tray {
padding-left: 5px;
padding-right: 5px;
color: @rosewater;
}
#custom-playerctl {
color: @pink;
}
#custom-help {
color: @rosewater;
}
#custom-wlsunset {
color: @mauve;
}
#idle_inhibitor {
color: @red;
}
#custom-dunst {
color: @maroon;
}
#language {
color: @peach;
}
#custom-clipboard {
color: @yellow;
}
#cpu {
color: @green;
}
#memory {
color: @teal;
}
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
color: @sky;
}
#battery.warning {
color: @yellow;
}
#battery.critical {
color: @red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
label:focus {
background-color: #000000;
}
#network {
color: @sapphire;
}
#network.disconnected {
color: @wm_icon_bg
}
#bluetooth {
color: @blue;
}
#bluetooth.disabled {
color: @wm_icon_bg;
}
#pulseaudio {
color: @lavender;
}
#pulseaudio.muted {
color: @wm_icon_bg;
}
#clock {
color: @text;
}
#custom-power {
color: @subtext1;
}

View file

@ -0,0 +1,9 @@
Net/ThemeName "Catppuccin-Macchiato-Standard-Blue-Dark"
Net/IconThemeName "ePapirus-Dark"
Gtk/CursorThemeName "Bibata-Modern-Classic"
Net/EnableEventSounds 1
EnableInputFeedbackSounds 0
Xft/Antialias 1
Xft/Hinting 1
Xft/HintStyle "hintslight"
Xft/RGBA "rgb"

19
etc/skel/.gtkrc-2.0 Normal file
View file

@ -0,0 +1,19 @@
# DO NOT EDIT! This file will be overwritten by nwg-look.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/sunderland93/.gtkrc-2.0.mine"
gtk-theme-name="Catppuccin-Macchiato-Standard-Blue-Dark"
gtk-icon-theme-name="ePapirus-Dark"
gtk-font-name="Noto Sans 11"
gtk-cursor-theme-name="Bibata-Modern-Classic"
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight"
gtk-xft-rgba="rgb"

View file

@ -0,0 +1,5 @@
# This file is written by nwg-look. Do not edit.
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits=Bibata-Modern-Classic

View file

@ -0,0 +1,61 @@
# set floating mode for specific application
for_window [app_id="firefox" title="^Library$"] floating enable, border pixel 1, sticky enable
for_window [app_id="thunderbird" title=".*Reminder"] floating enable
for_window [app_id="floating_shell_portrait"] floating enable, border pixel 1, sticky enable, resize set width 30 ppt height 40 ppt
for_window [app_id="floating_shell"] floating enable, border pixel 1, sticky enable, resize set width 50 ppt height 60 ppt
for_window [app_id="" title="Picture in picture"] floating enable, sticky enable
for_window [app_id="" title="Picture-in-Picture"] floating enable, sticky enable
for_window [instance="around"] floating enable, sticky enable
for_window [app_id="xsensors"] floating enable
for_window [app_id = "qt5ct"] floating enable
for_window [app_id = "qt6ct"] floating enable
for_window [app_id="nm-connection-editor"] floating enable
for_window [app_id="pavucontrol"] floating enable
for_window [app_id="nwg-look"] floating enable
for_window [app_id="engrampa"] floating enable
for_window [app_id="software-properties-gtk"] floating enable
for_window [app_id="wdisplays"] floating enable
for_window [app_id="gpk-update-viewer"] floating enable
for_window [app_id="gpk-application"] floating enable
for_window [app_id="nwg-displays"] floating enable
for_window [class="calamares"] floating enable
for_window [app_id="calamares"] floating enable
for_window [app_id="sway-input-config"] floating enable
for_window [title="Save File"] floating enable
for_window [title="Firefox .*— Sharing Indicator"] floating enable, sticky enable, move to scratchpad
for_window [app_id="" title=".* is sharing your screen."] floating enable
# set floating mode for generated windows
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="dialog"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_role = "task_dialog"] floating enable
for_window [window_type = "menu"] floating enable
for_window [window_role = "GtkFileChooserDialog"] resize set 600 400
for_window [window_role = "GtkFiileChooserDialog"] move position center
for_window [window_role="Preferences"] floating enable
for_window [title="(?:Open|Save) (?:File|Folder|As)"] floating enable;
for_window [title="(?:Open|Save) (?:File|Folder|As)"] resize set 600 400
for_window [title="Copy Files"] floating enable;
for_window [title="Copy Files"] resize set 600 400
for_window [title="Confirm to replace files"] floating enable;
for_window [title="Confirm to replace files"] move position center
# apply mark for Xwayland and wayland native browser windows
for_window [class="Chromium-browser"] mark Browser
for_window [class="Brave-browser"] mark Browser
for_window [class="firefox"] mark Browser
for_window [app_id="Chromium-browser"] mark Browser
for_window [app_id="brave-browser"] mark Browser
for_window [app_id="firefox"] mark Browser
# inhibit scrensaver for fullscreen browser windows
for_window [con_mark="Browser"] {
inhibit_idle fullscreen
}
# Don't allow applications to inhibit shortcuts, i.e. grab total control of the
# keyboard. Chrome currently abuses this by enabling it for all "--app=..."
# shortcuts.
seat * shortcuts_inhibitor disable

View file

@ -0,0 +1,22 @@
# Autostart settings. For values of these variables see /etc/sway/variables
# You can add your own applications or daemons here
exec {
$polkit_agent
$swappy_notify
$wlsunset
$autotiling
$help_menu
$cliphist_store
$cliphist_watch
$autoname_workspaces
$switch_toplevel
$pcmanfm_daemon
}
exec_always {
$kanshi
$nwg_drawer_daemon
$watch_playerctl
$calendar_daemon
$update_rofi_theme
}

View file

@ -0,0 +1,6 @@
### Input configuration
#
# Keyboard layout
input type:keyboard {
xkb_layout us
}

View file

@ -0,0 +1,9 @@
### Input configuration
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
input type:touchpad {
dwt enabled
tap enabled
natural_scroll enabled
}

View file

@ -0,0 +1,8 @@
# Touchpad gestures. See "man 5 sway" for the details
# Allow switching between workspaces with left and right swipes (three fingers)
bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
# Allow toggling floating mode (and vice versa) for selected window
bindgesture swipe:down floating toggle

155
etc/sway/modes/default.conf Normal file
View file

@ -0,0 +1,155 @@
### Key bindings
#
# Basics:
#
## Launch // Terminal ##
$bindsym $mod+Return exec $term_cwd
$bindsym $mod+Shift+Return exec $term
## Action // Kill focused window ##
$bindsym $mod+Shift+q kill
## Launch // Launcher ##
$bindsym $mod+d exec $menu
## Launch // Clipboard ##
$bindsym $mod+Shift+p exec $clipboard
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
## Action // Reload Sway Configuration ##
$bindsym $mod+Shift+c reload
## Action // Exit Sway ##
$bindsym $mod+Shift+e exec nwg-bar -x
# Media keys
$bindsym --locked XF86AudioRaiseVolume exec $volume_up
$bindsym --locked XF86AudioLowerVolume exec $volume_down
$bindsym --locked XF86AudioMute exec $volume_mute
$bindsym --locked XF86AudioPlay exec playerctl play-pause
$bindsym --locked XF86AudioNext exec playerctl next
$bindsym --locked XF86AudioPrev exec playerctl previous
# Brightness control
$bindsym --locked XF86MonBrightnessUp exec $brightness_up
$bindsym --locked XF86MonBrightnessDown exec $brightness_down
# Other
$bindsym XF86Search exec $menu
$bindsym XF86PowerOff exec systemctl poweroff
$bindsym XF86TouchpadToggle input type:touchpad events toggle enabled disabled
$bindsym XF86ScreenSaver exec $lock
#
# Moving around:
#
## Navigation // Move focus // $mod + ↑ ↓ ← → ##
$bindsym $mod+$left focus left
$bindsym $mod+$down focus down
$bindsym $mod+$up focus up
$bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
$bindsym $mod+Left focus left
$bindsym $mod+Down focus down
$bindsym $mod+Up focus up
$bindsym $mod+Right focus right
## Navigation // Move focused window // $mod + Shift + ↑ ↓ ← → ##
$bindsym $mod+Shift+$left move left
$bindsym $mod+Shift+$down move down
$bindsym $mod+Shift+$up move up
$bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
$bindsym $mod+Shift+Left move left
$bindsym $mod+Shift+Down move down
$bindsym $mod+Shift+Up move up
$bindsym $mod+Shift+Right move right
## Navigation // List all open windows in last-recently-used order ##
$bindsym $mod+p exec env RUST_BACKTRACE=1 swayr switch-window &>> /tmp/swayr.log
## Navigation // Switch to the last recently used window ##
$bindsym Mod1+Tab exec env RUST_BACKTRACE=1 swayr switch-to-urgent-or-lru-window &>> /tmp/swayr.log
## Navigation // Switch to the last recently used workspace ##
$bindsym $mod+Tab workspace back_and_forth
## Navigation // Switching between containers in the workspace // $mod + [] ##
$bindsym $mod+bracketright nop top_next
$bindsym $mod+bracketleft nop top_prev
#
# Workspaces:
#
## Navigation // Switch workspace // $mod + [number] ##
$bindsym $mod+1 workspace $ws1
$bindsym $mod+2 workspace $ws2
$bindsym $mod+3 workspace $ws3
$bindsym $mod+4 workspace $ws4
$bindsym $mod+5 workspace $ws5
$bindsym $mod+6 workspace $ws6
$bindsym $mod+7 workspace $ws7
$bindsym $mod+8 workspace $ws8
$bindsym $mod+9 workspace $ws9
$bindsym $mod+0 workspace $ws10
set $focus_ws [ "$focus_after_move" == 'true' ] && swaymsg workspace
## Action // Move focused window to workspace // $mod + Shift + [number] ##
$bindsym $mod+Shift+1 move container to workspace $ws1, exec $focus_ws $ws1
$bindsym $mod+Shift+2 move container to workspace $ws2, exec $focus_ws $ws2
$bindsym $mod+Shift+3 move container to workspace $ws3, exec $focus_ws $ws3
$bindsym $mod+Shift+4 move container to workspace $ws4, exec $focus_ws $ws4
$bindsym $mod+Shift+5 move container to workspace $ws5, exec $focus_ws $ws5
$bindsym $mod+Shift+6 move container to workspace $ws6, exec $focus_ws $ws6
$bindsym $mod+Shift+7 move container to workspace $ws7, exec $focus_ws $ws7
$bindsym $mod+Shift+8 move container to workspace $ws8, exec $focus_ws $ws8
$bindsym $mod+Shift+9 move container to workspace $ws9, exec $focus_ws $ws9
$bindsym $mod+Shift+0 move container to workspace $ws10, exec $focus_ws $ws10
## Launch // Open launcher in a new workspace ##
$bindsym $mod+Shift+d exec /usr/share/sway/scripts/first-empty-workspace.py --switch, exec $menu
## Navigation // Switch to a new workspace ##
$bindsym $mod+n exec /usr/share/sway/scripts/first-empty-workspace.py --switch
## Action // Move focused window to a new workspace ##
$bindsym $mod+Shift+n exec /usr/share/sway/scripts/first-empty-workspace.py --move
## Action // Move focused window to a new workspace and switch there ##
$bindsym $mod+Shift+m exec /usr/share/sway/scripts/first-empty-workspace.py --move --switch
#
# Layout stuff:
#
## Setting // Split windows horizontally ##
$bindsym $mod+b splith
## Setting // Split windows vertically ##
$bindsym $mod+v splitv
## Action // Switch to window stacking ##
$bindsym $mod+s layout stacking
## Action // Switch to window tabbing ##
$bindsym $mod+w layout tabbed
## Action // Toggle window splitting ##
$bindsym $mod+e layout toggle split
## Action // Toggle fullscreen ##
$bindsym $mod+f fullscreen
## Action // Toggle floating ##
$bindsym $mod+Shift+space floating toggle
## Navigation // Toggle focus between tiling and floating ##
$bindsym $mod+space focus mode_toggle
## Navigation // Swap focus to the parent window ##
$bindsym $mod+a focus parent
## Launch // Toggle Help ##
$bindsym $mod+question exec $help

View file

@ -0,0 +1,19 @@
set $mode_recording "<span foreground='$sky'></span> \
<span foreground='$mauve'><b>Record</b></span> <span foreground='$sky'>(<b>r</b>)</span> \
<span foreground='$mauve'>+ [<span foreground='$sky'><b>Shift</b></span> for ]</span>"
set $recorder /usr/share/sway/scripts/recorder.sh
mode --pango_markup $mode_recording {
$bindsym r exec $recorder, mode "default"
$bindsym Shift+r exec $recorder -a, mode "default"
# Return to default mode.
$bindsym Escape mode "default"
}
## Launch // Recording Mode ##
$bindsym $mod+Shift+r mode $mode_recording
## Launch // Stop Recording Mode ##
$bindsym $mod+Escape exec killall -s SIGINT wf-recorder

View file

@ -0,0 +1,31 @@
set $mode_resize "<span foreground='$sky'></span> \
<span foreground='$mauve'><b>Resize</b></span> <span foreground='$sky'>(<b>↑ ↓ ← →</b>)</span> \
<span foreground='$mauve'><b>Increase Gaps</b></span> <span foreground='$sky'>(<b>+</b>)</span> \
<span foreground='$mauve'><b>Decrease Gaps</b></span> <span foreground='$sky'>(<b>-</b>)</span>"
mode --pango_markup $mode_resize {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
$bindsym $left resize shrink width 10px
$bindsym $down resize grow height 10px
$bindsym $up resize shrink height 10px
$bindsym $right resize grow width 10px
# Ditto, with arrow keys
$bindsym Left resize shrink width 10px
$bindsym Down resize grow height 10px
$bindsym Up resize shrink height 10px
$bindsym Right resize grow width 10px
## Resize // Window Gaps // + - ##
$bindsym minus gaps inner current minus 5px
$bindsym plus gaps inner current plus 5px
# Return to default mode
$bindsym Return mode "default"
$bindsym Escape mode "default"
}
## Launch // Resize Mode ##
$bindsym $mod+r mode $mode_resize

View file

@ -0,0 +1,11 @@
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
## Action // Move window to scratchpad ##
$bindsym $mod+Shift+minus move scratchpad
## Action // Toggle scratchpad ##
$bindsym $mod+minus scratchpad show

View file

@ -0,0 +1,21 @@
set $mode_screenshot "<span foreground='$sky'></span> \
<span foreground='$mauve'><b>Pick</b></span> <span foreground='$sky'>(<b>p</b>)</span> \
<span foreground='$mauve'><b>Output</b></span> <span foreground='$sky'>(<b>o</b>)</span> \
<span foreground='$mauve'><b>Active</b></span> <span foreground='$sky'>(<b>a</b>)</span>"
mode --pango_markup $mode_screenshot {
# output = currently active output
$bindsym o mode "default", exec $screenshot_screen
# pick the region to screenshot
$bindsym p mode "default", exec $screenshot_selection
# screenshot of active window
$bindsym a mode "default", exec $screenshot_active
# Return to default mode.
$bindsym Escape mode "default"
}
## Launch // Screenshot Mode ##
$bindsym Print mode $mode_screenshot

View file

@ -0,0 +1,10 @@
### Output configuration
#
# Default wallpaper (handled with Azote)
exec ~/.azotebg
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs

34
etc/sway/styling Normal file
View file

@ -0,0 +1,34 @@
################----------------STYLING----------------################
#don't show gaps if there's only one window on the desktop
smart_gaps on
# Window borders
default_border pixel 2
# Disable borders if there is only one window
smart_borders on
# Default gaps interval
gaps inner 6
# Set focus to application window when it request activation
focus_on_window_activation focus
# Tittle bar font
font pango:Noto Sans 12
# Fonts
set $term-font Hack 11
set $gui-font Noto Sans 12
################----------------DESKTOP EFFECTS----------------################
# Window blur
blur enable
# Window shadows
shadows enable
# Window corner radius
corner_radius 4

126
etc/sway/variables Normal file
View file

@ -0,0 +1,126 @@
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# flock wrapper for running only one process
set $flock /usr/share/sway/scripts/flock.sh
# Your preferred terminal emulator
set $term alacritty
set $term_cwd $term --working-directory "$(/usr/share/sway/scripts/swaycwd.sh 2>/dev/null || echo $HOME)"
set $term_float alacritty --class floating_shell -e
# Rofi theme
set $rofi_theme "* {lightbg: $base; background: $base; lightfg: $blue; foreground: $text; border-color: $blue;} window {border: 2;}"
# Your preferred application launcher
set $menu rofi -show combi -combi-modi "drun,run" -terminal $term -ssh-command "{terminal} {ssh-client} {host} [-p {port}]" -run-shell-command "{terminal} {cmd}" -show-icons -font "$gui-font"
# Add --to-code to bindsym, support for non-latin layouts
set $bindsym bindsym --to-code
# Bluetooth menu
set $bluetooth $flock $term_float bluetuith
# Volume notification
set $volume_bar /usr/share/sway/scripts/volume-notify.sh
# Brightness notification
set $brightness_bar /usr/share/sway/scripts/brightness-notify.sh
# Brightness control
set $brightness_step bash -c 'echo $(( $(light -Mr) / 100 * 5 < 1 ? 1 : $(( $(light -Mr) / 100 * 5 )) ))'
set $brightness_up light -r -A $($brightness_step) && $brightness_bar
set $brightness_down light -r -U $($brightness_step) && $brightness_bar
# Volume control
set $volume_down pulsemixer --change-volume -5 && $volume_bar
set $volume_up pulsemixer --change-volume +5 && $volume_bar
set $volume_mute pulsemixer --toggle-mute && $volume_bar
# Clipboard history
set $clipboard cliphist list | rofi -dmenu -font "$gui-font" -p "Select item to copy:" -lines 10 -width 35 | cliphist decode | wl-copy
set $clipboard-del cliphist list | rofi -dmenu -font "$gui-font" -p "Select item to delete:" -lines 10 -width 35 | cliphist delete
# Pulseaudo command
set $pulseaudio $term_float pulsemixer
# Calendar application
set $calendar $term_float calcurse
# Help overlay
set $help_menu '[ -x "$(command -v nwg-wrapper)" ] && [ -f $HOME/.config/nwg-wrapper/help.sh ] && /usr/share/sway/scripts/help.sh'
# Help overlay command
set $help /usr/share/sway/scripts/help.sh --toggle
# Workspace names
set $ws1 number 1
set $ws2 number 2
set $ws3 number 3
set $ws4 number 4
set $ws5 number 5
set $ws6 number 6
set $ws7 number 7
set $ws8 number 8
set $ws9 number 9
set $ws10 number 10
# Screenshot
set $grimshot /usr/bin/grimshot
set $pipe_output $grimshot save output -
set $pipe_selection $grimshot save window -
set $pipe_active $grimshot save active -
set $notify_paste bash -c '[[ $(wl-paste -l) == "image/png" ]] && notify-send "Screenshot copied to clipboard"'
set $swappy swappy -f -
set $screenshot_screen $pipe_output | $swappy && $notify_paste
set $screenshot_selection $pipe_selection | $swappy && $notify_paste
set $screenshot_active $pipe_active | $swappy && $notify_paste
# PolicyKit agent
set $polkit_agent /usr/bin/mate-polkit &
# Night Light
set $wlsunset '[ -x "$(command -v wlsunset)" ] && /usr/share/sway/scripts/sunset.sh "on"'
# Autotiling script
set $autotiling '[ -x "$(command -v autotiling)" ] && autotiling -w 1 3 5 7 9'
# Automatic workspace names
set $autoname_workspaces '[ -f /usr/share/sway/scripts/autoname-workspaces.py ] && /usr/share/sway/scripts/autoname-workspaces.py'
# switch between top-level containers (windows) in a workspace
set $switch_toplevel '[ -f /usr/share/sway/scripts/switch-top-level.py ] && /usr/share/sway/scripts/switch-top-level.py'
# restart kanshi https://github.com/emersion/kanshi/issues/43#issuecomment-531679213
set $kanshi '[ -x "$(command -v kanshi)" ] && pkill kanshi; exec kanshi'
# Start PCmanFM-Qt as a daemon
set $pcmanfm_daemon '[ -x "$(command -v pcmanfm)" ] && pcmanfm-qt -d'
# Clipboard manager
set $cliphist_store '[ -x "$(command -v wl-paste)" ] && [ -x "$(command -v cliphist)" ] && wl-paste --watch cliphist store'
set $cliphist_watch '[ -x "$(command -v wl-paste)" ] && [ -x "$(command -v cliphist)" ] && wl-paste --watch pkill -RTMIN+9 waybar'
# Start nwg-drawer as a daemon
set $nwg_drawer_daemon '[ -x "$(command -v nwg-drawer)" ] && nwg-drawer -r'
# Start playerctl as daemon
set $watch_playerctl '[ -x "$(command -v playerctl)" ] && pkill playerctl; playerctl -a metadata --format \'{{status}} {{title}}\' --follow | while read line; do pkill -RTMIN+5 waybar; done'
# Update Rofi theme based on $rofi_theme colors
set $update_rofi_theme mkdir -p $HOME/.config/rofi/ && echo $rofi_theme > $HOME/.config/rofi/config.rasi
# Start Calcurse calendar as a daemon
set $calendar_daemon 'calcurse --daemon'
# Notifications from Swappy
set $swappy_notify '[ -x "$(command -v swappy)" ] && /usr/share/sway/scripts/screenshot-notify.sh'

51
etc/xdg/swayr/config.toml Normal file
View file

@ -0,0 +1,51 @@
[menu]
executable = 'rofi'
args = [
'-dmenu',
'-markup-rows',
'-show-icons',
'-no-case-sensitive',
'-no-drun-use-desktop-cache',
'-p','{prompt}',
'-font','Noto Sans 11',
]
[format]
output_format = '{indent}<b>Output {name}</b> <span alpha="20000">({id})</span>'
workspace_format = '{indent}<b>Workspace {name} [{layout}]</b> on output {output_name} <span alpha="20000">({id})</span>'
container_format = '{indent}<b>Container [{layout}]</b> <i>{marks}</i> on workspace {workspace_name} <span alpha="20000">({id})</span>'
window_format = "{indent}<i>{app_name}</i> — {urgency_start}<b>“{title}”</b>{urgency_end} <i>{marks}</i> on workspace {workspace_name} / {output_name} <span alpha=\"20000\">({id})</span>\u0000icon\u001f{app_icon}"
indent = ' '
urgency_start = '<span background="darkred" foreground="yellow">'
urgency_end = '</span>'
html_escape = true
icon_dirs = [
'/usr/share/icons/ePapirus-Dark/48x48/apps',
'/usr/share/icons/hicolor/scalable/apps',
'/usr/share/icons/hicolor/64x64/apps',
'/usr/share/icons/hicolor/48x48/apps',
'/usr/share/icons/Adwaita/64x64/apps',
'/usr/share/icons/Adwaita/48x48/apps',
'/usr/share/pixmaps',
]
[layout]
auto_tile = false
auto_tile_min_window_width_per_output_width = [
[1024, 500],
[1280, 600],
[1400, 680],
[1440, 700],
[1600, 780],
[1920, 920],
[2560, 1000],
[3440, 1000],
[4096, 1200],
]
[focus]
lockin_delay = 750
[misc]
auto_nop_delay = 3000
seq_inhibit = false

55
usr/bin/start-swayfx Executable file
View file

@ -0,0 +1,55 @@
#!/usr/bin/env sh
## General exports
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
# Check if system is running in virtual machine
case "$(systemd-detect-virt)" in
qemu)
export WLR_RENDERER=pixman
export WLR_NO_HARDWARE_CURSORS=1
;;
kvm)
export WLR_NO_HARDWARE_CURSORS=1
;;
oracle)
export WLR_NO_HARDWARE_CURSORS=1
;;
esac
# Apply Nvidia-specific variables
if [ -d /sys/module/nvidia ]; then
export WLR_NO_HARDWARE_CURSORS=1
export GBM_BACKEND=nvidia-drm
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export LIBVA_DRIVER_NAME=nvidia
fi
## Load system environment customizations
if [ -d /etc/environment.d ]; then
set -o allexport
for f in /etc/environment.d/*.conf; do
# shellcheck source=/dev/null
. "$f"
done
set +o allexport
fi
## Load user environment customizations
if [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/environment.d" ]; then
set -o allexport
for i in "${XDG_CONFIG_HOME:-$HOME/.config}/environment.d"/*.conf; do
# shellcheck source=/dev/null
. "$i"
done
set +o allexport
fi
# Check if Nvidia driver installed, start Sway and send output to the journal
if [ -d /sys/module/nvidia ] && [ ! -d /sys/module/amdgpu ] && [ ! -d /sys/module/i915 ]; then
exec systemd-cat -- /usr/bin/sway --unsupported-gpu $@
else
exec systemd-cat -- /usr/bin/sway $@
fi

View file

@ -0,0 +1,12 @@
[Unit]
Description=Idle manager for Wayland
Documentation=man:swayidle(1)
PartOf=graphical-session.target
ConditionPathExists=/usr/bin/swayidle
[Service]
Type=simple
ExecStart=/usr/bin/swayidle
[Install]
WantedBy=sway-session.target

View file

@ -0,0 +1,169 @@
#!/usr/bin/python3
# This script requires i3ipc-python package (install it from a system package manager
# or pip).
# It adds icons to the workspace name for each open window.
# Set your keybindings like this: set $workspace1 workspace number 1
# Add your icons to WINDOW_ICONS.
# Based on https://github.com/maximbaz/dotfiles/blob/master/bin/i3-autoname-workspaces
import argparse
import i3ipc
import logging
import re
import signal
import sys
WINDOW_ICONS = {
"alacritty": "",
"audacious": "",
"azote": "",
"balena-etcher": "",
"Chromium": "",
"chromium": "",
"code": "",
"discord": "",
"engrampa": "",
"firefox": "",
"firefox-esr": "",
"foot": "",
"gimp-2.10": "",
"gimp-2.99": "",
"Google-chrome": "",
"google-chrome": "",
"gpk-application": "",
"kitty": "",
"libreoffice-startcenter": "",
"libreoffice-writer": "",
"libreoffice-calc": "",
"libreoffice-impress": "",
"libreoffice-draw": "",
"lximage-qt": "",
"mate-calc": "",
"mpv": "",
"nheko": "",
"nwg-look": "",
"nwg-displays": "",
"org.telegram.desktop": "",
"org.qbittorrent.qBittorrent": "",
"org.pwmt.zathura": "",
"org.inkscape.inkscape": "",
"pavucontrol": "",
"pluma": "",
"pcmanfm": "",
"pcmanfm-qt": "",
"simple-scan": "",
"software-properties-gtk": "",
"steam": "",
"sway-input-config": "",
"telegram": "",
"Thunderbird": "",
"thunderbird": "",
"transmission-gtk": "",
"vlc": ""
}
DEFAULT_ICON = ""
def icon_for_window(window):
name = None
if window.app_id is not None and len(window.app_id) > 0:
name = window.app_id.lower()
elif window.window_class is not None and len(window.window_class) > 0:
name = window.window_class.lower()
if name in WINDOW_ICONS:
return WINDOW_ICONS[name]
logging.info("No icon available for window with name: %s" % str(name))
return DEFAULT_ICON
def rename_workspaces(ipc):
for workspace in ipc.get_tree().workspaces():
name_parts = parse_workspace_name(workspace.name)
icon_tuple = ()
for w in workspace:
if w.app_id is not None or w.window_class is not None:
icon = icon_for_window(w)
if not ARGUMENTS.duplicates and icon in icon_tuple:
continue
icon_tuple += (icon,)
name_parts["icons"] = " ".join(icon_tuple) + " "
new_name = construct_workspace_name(name_parts)
ipc.command('rename workspace "%s" to "%s"' % (workspace.name, new_name))
def undo_window_renaming(ipc):
for workspace in ipc.get_tree().workspaces():
name_parts = parse_workspace_name(workspace.name)
name_parts["icons"] = None
new_name = construct_workspace_name(name_parts)
ipc.command('rename workspace "%s" to "%s"' % (workspace.name, new_name))
ipc.main_quit()
sys.exit(0)
def parse_workspace_name(name):
return re.match(
"(?P<num>[0-9]+):?(?P<shortname>\w+)? ?(?P<icons>.+)?", name
).groupdict()
def construct_workspace_name(parts):
new_name = str(parts["num"])
if parts["shortname"] or parts["icons"]:
new_name += ":"
if parts["shortname"]:
new_name += parts["shortname"]
if parts["icons"]:
new_name += " " + parts["icons"]
return new_name
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="This script automatically changes the workspace name in sway depending on your open applications."
)
parser.add_argument(
"--duplicates",
"-d",
action="store_true",
help="Set it when you want an icon for each instance of the same application per workspace.",
)
parser.add_argument(
"--logfile",
"-l",
type=str,
default="/tmp/sway-autoname-workspaces.log",
help="Path for the logfile.",
)
args = parser.parse_args()
global ARGUMENTS
ARGUMENTS = args
logging.basicConfig(
level=logging.INFO,
filename=ARGUMENTS.logfile,
filemode="w",
format="%(message)s",
)
ipc = i3ipc.Connection()
for sig in [signal.SIGINT, signal.SIGTERM]:
signal.signal(sig, lambda signal, frame: undo_window_renaming(ipc))
def window_event_handler(ipc, e):
if e.change in ["new", "close", "move"]:
rename_workspaces(ipc)
ipc.on("window", window_event_handler)
rename_workspaces(ipc)
ipc.main()

View file

@ -0,0 +1,11 @@
#!/bin/sh
VALUE=$(light -G | cut -d'.' -f1)
TEXT="Brightness: ${VALUE}%"
notify-send \
--expire-time 800 \
--hint string:x-canonical-private-synchronous:brightness \
--hint "int:value:$VALUE" \
--hint "int:transient:1" \
"${TEXT}"

15
usr/share/sway/scripts/dunst.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/bash
COUNT=$(dunstctl count waiting)
ENABLED=
DISABLED=
if [ $COUNT != 0 ]; then
DISABLED="$COUNT"
fi
if dunstctl is-paused | grep -q "false" ; then
echo $ENABLED
else
echo $DISABLED
fi

View file

@ -0,0 +1,54 @@
#!/usr/bin/python3
from argparse import ArgumentParser
import i3ipc
# Assumption: it exists 10 workspaces (otherwise, change this value)
NUM_WORKSPACES = 10
if __name__ == "__main__":
arguments_parser = ArgumentParser()
arguments_parser.add_argument('-s',
'--switch',
action='store_true',
help='switch to the first empty workspace'
)
arguments_parser.add_argument('-m',
'--move',
action='store_true',
help='move the currently focused container to the first empty workspace'
)
arguments = arguments_parser.parse_args()
assert (arguments.switch or arguments.move) # at least one of the flags must be specification
ipc = i3ipc.Connection()
tree = ipc.get_tree()
current_workspace = tree.find_focused().workspace()
workspaces = tree.workspaces() # includes current_workspace
workspace_numbers = [workspace.num for workspace in workspaces]
empty_workspace_numbers = set([number for number in range(1, NUM_WORKSPACES + 1)]) - set(workspace_numbers)
# Take into consideration that the current workspace exists but might be empty
if len(current_workspace.nodes) == 0:
empty_workspace_numbers.add(current_workspace.num)
# Get the minor empty workspaces number (or set it as the current workspaces number if all are busy)
first_empty_workspace_number = current_workspace.num
if empty_workspace_numbers:
first_empty_workspace_number = min(empty_workspace_numbers)
# Use the value of first_empty_workspace_number to make the requested actions
if arguments.move and arguments.switch:
# Avoid wallpaper flickering when moving and switching by specifying both actions in the same Sway's command
reply = ipc.command(
"move container to workspace number {}, workspace number {}".format(first_empty_workspace_number,
first_empty_workspace_number))
assert reply[0].success # exit with non-zero status if the assertion fails
elif arguments.switch:
reply = ipc.command("workspace number {}".format(first_empty_workspace_number))
assert reply[0].success # exit with non-zero status if the assertion fails
elif arguments.move:
reply = ipc.command("move container to workspace number {}".format(first_empty_workspace_number))
assert reply[0].success # exit with non-zero status if the assertion fails

View file

@ -0,0 +1,6 @@
#!/usr/bin/env sh
HASH="$(echo "$@" | shasum | cut -f1 -d" " | cut -c1-7)"
mkdir -p "$HOME/.local/state"
flock --verbose -n "$HOME/.local/state/${HASH}.lock" "$@"

15
usr/share/sway/scripts/help.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/sh
set -x
# toggles the help wrapper state
VISIBILITY_SIGNAL=30
QUIT_SIGNAL=31
if [ "$1" = "--toggle" ]; then
pkill -f -${VISIBILITY_SIGNAL} nwg-wrapper
else
pkill -f -${QUIT_SIGNAL} nwg-wrapper
for output in $(swaymsg -t get_outputs --raw | jq -r '.[].name'); do
nwg-wrapper -o "$output" -i -sv ${VISIBILITY_SIGNAL} -sq ${QUIT_SIGNAL} -s help.sh -p left -a end &
done
fi

View file

@ -0,0 +1,44 @@
#!/bin/bash
set -x
pgrep wf-recorder
status=$?
countdown() {
notify "Recording in 3 seconds" -t 1000
sleep 1
notify "Recording in 2 seconds" -t 1000
sleep 1
notify "Recording in 1 seconds" -t 1000
sleep 1
}
notify() {
line=$1
shift
notify-send "Recording" "${line}" -i /usr/share/icons/Yaru/scalable/devices/camera-video-symbolic.svg "$*"
}
if [ $status != 0 ]; then
target_path=$(xdg-user-dir VIDEOS)
timestamp=$(date +'recording_%Y%m%d-%H%M%S')
notify "Select a region to record" -t 1000
area=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp)
countdown
(sleep 0.5 && pkill -RTMIN+8 waybar) &
if [ "$1" == "-a" ]; then
file="$target_path/$timestamp.mp4"
wf-recorder --audio -g "$area" --file="$file"
else
file="$target_path/$timestamp.webm"
wf-recorder -g "$area" -c libvpx --codec-param="qmin=0" --codec-param="qmax=25" --codec-param="crf=4" --codec-param="b:v=1M" --file="$file"
fi
pkill -RTMIN+8 waybar && notify "Finished recording ${file}"
else
pkill --signal SIGINT wf-recorder
pkill -RTMIN+8 waybar
fi

138
usr/share/sway/scripts/sbdp.py Executable file
View file

@ -0,0 +1,138 @@
#!/usr/bin/python3
import sys
import glob
import re
import os
from typing import Text
import json
if len(sys.argv) >= 2:
rootPath = sys.argv[1]
else:
rootPath = '/etc/sway/config'
def readFile(filePath):
try:
paths = glob.glob(filePath)
except (Exception, IndexError):
print("couldn't resolve glob:", filePath)
paths = []
allLines: list[str] = []
for path in paths:
allLines = allLines + open(path, "r").readlines()
finalLines: list[str] = []
for line in allLines:
if re.search(r'^include\s+(.+?)$', line):
nextPath = re.findall(r'^include\s+(.+?)$', line)[0]
nextPath = os.path.expandvars(nextPath)
finalLines = finalLines + readFile(nextPath)
else:
finalLines = finalLines + [line]
return finalLines
lines = readFile(rootPath)
def findKeybindingForLine(lineNumber: int, lines: list[str]):
return lines[lineNumber + 1].split(' ')[1]
class DocsConfig:
category: Text
action: Text
keybinding: Text
def getDocsConfig(lines: list[str]):
docsLineRegex = r"^## (?P<category>.+?) // (?P<action>.+?)\s+(// (?P<keybinding>.+?))*##"
docsConfig: list[DocsConfig] = []
for index, line in enumerate(lines):
match = re.match(docsLineRegex, line)
if match:
config = DocsConfig()
config.category = match.group('category')
config.action = match.group('action')
config.keybinding = match.group('keybinding')
if config.keybinding is None:
config.keybinding = findKeybindingForLine(index, lines)
docsConfig = docsConfig + [config]
return docsConfig
def getSymbolDict(lines: list[str]):
setRegex = r"^set\s+(?P<variable>\$.+?)\s(?P<value>.+)?"
dictionary = {}
for line in lines:
match = re.match(setRegex, line)
if match:
if match.group('variable'):
dictionary[match.group('variable')] = match.group('value')
return dict(dictionary)
translations = {
'Mod1': "Alt",
'Mod2': "NumLk",
'Mod3': "",
'Mod4': "",
'Mod5': "Scroll",
'question': "?",
'space': "",
'minus': "-",
'plus': '+',
'Return': "Enter",
'XF86AudioRaiseVolume': "",
'XF86AudioLowerVolume': "",
'XF86AudioMute': "",
'XF86AudioMicMute': '',
'XF86MonBrightnessUp': "",
'XF86MonBrightnessDown': "",
'XF86PowerOff': "",
'XF86TouchpadToggle': "Toggle Touchpad"
}
def translate(word: Text, dictionary: dict):
try:
return dictionary[word.strip()]
except KeyError:
return word.strip()
def replaceBindingFromMap(binding: Text, dictionary: dict):
elements = binding.split('+')
resultElements = []
for el in elements:
translation = translate(translate(el, dictionary), translations)
resultElements = resultElements + [translation]
return " + ".join(resultElements)
def sanitize(configs: list[DocsConfig], symbolDict: dict):
for index, config in enumerate(configs):
config.keybinding = replaceBindingFromMap(
config.keybinding, symbolDict)
configs[index] = config
return configs
def getDocsList(lines: list[str]):
docsConfig = getDocsConfig(lines)
symbolDict = getSymbolDict(lines)
sanitizedConfig = sanitize(docsConfig, symbolDict)
return sanitizedConfig
docsList = getDocsList(lines)
result = []
for config in docsList:
result = result + [{'category': config.category,
'action': config.action, 'keybinding': config.keybinding}]
print(json.dumps(result))

View file

@ -0,0 +1,8 @@
#!/bin/sh
set -e
DIR=${XDG_PICTURES_DIR:-$HOME/Pictures}
while true; do
mkdir -p "$DIR" && inotifywait -q -e create "$DIR" --format '%w%f' | xargs notify-send "Screenshot saved"
done

View file

@ -0,0 +1,64 @@
#!/bin/bash
#Startup function
function start() {
[[ -f "$HOME/.config/wlsunset/config" ]] && source "$HOME/.config/wlsunset/config"
temp_low=${temp_low:-"4000"}
temp_high=${temp_high:-"6500"}
duration=${duration:-"900"}
sunrise=${sunrise:-"07:00"}
sunset=${sunset:-"19:00"}
location=${location:-"on"}
fallback_longitude=${fallback_longitude:-"8.7"}
fallback_latitude=${fallback_latitude:-"50.1"}
if [ "${location}" = "on" ]; then
if [[ -z ${longitude+x} ]] || [[ -z ${latitude+x} ]]; then
GEO_CONTENT=$(curl -sL https://freegeoip.live/json/)
fi
longitude=${longitude:-$(echo "$GEO_CONTENT" | jq '.longitude // empty')}
longitude=${longitude:-$fallback_longitude}
latitude=${latitude:-$(echo "$GEO_CONTENT" | jq '.latitude // empty')}
latitude=${latitude:-$fallback_latitude}
echo longitude: "$longitude" latitude: "$latitude"
wlsunset -l "$latitude" -L "$longitude" -t "$temp_low" -T "$temp_high" -d "$duration" &
else
wlsunset -t "$temp_low" -T "$temp_high" -d "$duration" -S "$sunrise" -s "$sunset" &
fi
}
#Accepts managing parameter
case $1'' in
'off')
pkill wlsunset
;;
'on')
start
;;
'toggle')
if pkill -0 wlsunset; then
pkill wlsunset
else
start
fi
;;
'check')
command -v wlsunset
exit $?
;;
esac
#Returns a string for Waybar
if pkill -0 wlsunset; then
class="on"
tooltip="Night Color mode: enabled"
else
class="off"
tooltip="Night Color mode: disabled"
fi
printf '{"alt":"%s", "tooltip":"%s"}\n' "$class" "$tooltip"

View file

@ -0,0 +1,19 @@
#!/bin/sh
# Author: Caleb Stewart
# URL: https://github.com/calebstewart/swaycwd.git
# Description: print the CWD of the currently focused window in swaywm
# Grab the window/display tree
TREE=$(swaymsg -t get_tree)
# Find the focused node
TREE_PATH=$(echo "$TREE" | gron | grep "focused = true" | sed 's/.focused.*$/.pid/g;s/^json//g')
# Find the PID of the process
PID=$(echo "$TREE" | jq "$TREE_PATH")
# how far down does the rabbit hole go? D:
while pgrep -P "$PID" >/dev/null; do
PID=$(pgrep -P "$PID" | tail -n1)
done
# Show the current working directory
readlink -e "/proc/$PID/cwd"

View file

@ -0,0 +1,98 @@
#!/usr/bin/env python3
import i3ipc
#
# This script requires i3ipc-python package (install it from a system package manager
# or pip).
#
# The scripts allows you to define two new bindings:
# bindsym $mod+bracketright nop top_next
# bindsym $mod+bracketleft nop top_prev
#
# The purpose of it is to switch between top-level containers (windows) in a workspace.
# One possible usecase is having a workspace with two (or more on large displays)
# columns of tabs: one on left and one on right. In such setup, "move left" and
# "move right" will only switch tabs inside the column.
#
# You can add a systemd user service to run this script on startup:
#
# ~> cat .config/systemd/user/switch-top-level.service
# [Install]
# WantedBy=graphical-session.target
# [Service]
# ExecStart=path/to/switch-top-level.py
# Restart=on-failure
# RestartSec=1
# [Unit]
# Requires=graphical-session.target
class TopLevelSwitcher:
def __init__(self):
self.top_to_selected = {} # top i3ipc.Con -> selected container id
self.con_to_top = {} # container id -> top i3ipc.Con
self.prev = None # previously focused container id
self.i3 = i3ipc.Connection()
self.i3.on('window::focus', self.on_window_focus)
self.i3.on(i3ipc.Event.BINDING, self.on_binding)
self.update_top_level()
self.i3.main()
def top_level(self, node):
if len(node.nodes) == 1:
return self.top_level(node.nodes[0])
return node.nodes
def update_top_level(self):
tree = self.i3.get_tree()
for ws in tree.workspaces():
for con in self.top_level(ws):
self.update_top_level_rec(con, con.id)
def update_top_level_rec(self, con: i3ipc.Con, top: i3ipc.Con):
self.con_to_top[con.id] = top
for child in con.nodes:
self.update_top_level_rec(child, top)
if len(con.nodes) == 0 and top not in self.top_to_selected:
self.top_to_selected[top] = con.id
def save_prev(self):
if not self.prev:
return
prev_top = self.con_to_top.get(self.prev)
if not prev_top:
return
self.top_to_selected[prev_top] = self.prev
def on_window_focus(self, _i3, event):
self.update_top_level()
self.save_prev()
self.prev = event.container.id
def on_top(self, _i3, _event, diff: int):
root = self.i3.get_tree()
if not self.prev:
return
top = self.con_to_top[self.prev]
ws = [top.id for top in self.top_level(root.find_focused().workspace())]
top_idx = ws.index(top)
top_idx = (top_idx + diff + len(ws)) % len(ws)
next_top = ws[top_idx]
next_window = self.top_to_selected.get(next_top)
self.i3.command('[con_id=%s] focus' % next_window)
def on_binding(self, i3, event):
if event.binding.command.startswith('nop top_next'):
self.on_top(i3, event, 1)
elif event.binding.command.startswith('nop top_prev'):
self.on_top(i3, event, -1)
if __name__ == '__main__':
TopLevelSwitcher()

View file

@ -0,0 +1,22 @@
#!/bin/sh
VOLUME=$(pulsemixer --get-volume)
# get first percent value
VOLUME=${VOLUME%%%*}
VOLUME=${VOLUME##* }
TEXT="Volume: ${VOLUME}%"
case $(pulsemixer --get-mute) in
*1)
TEXT="Volume: muted"
VOLUME=0
;;
esac
notify-send \
--app-name sway \
--expire-time 800 \
--hint string:x-canonical-private-synchronous:volume \
--hint "int:value:$VOLUME" \
--hint "int:transient:1" \
"${TEXT}"

View file

@ -0,0 +1,6 @@
[preferred]
# Use xdg-desktop-portal-gtk for every portal interface...
default=gtk
# ... except for the ScreenCast and Screenshot
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Screenshot=wlr