Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mbrignall/sway-dotfiles

Crafting a desktop experience with Fedora 37 and Sway.
https://github.com/mbrignall/sway-dotfiles

doom-emacs emacs fedora fedora-workstation fuzzel linux mako sway swaylock swaywm waybar wayland

Last synced: 19 days ago
JSON representation

Crafting a desktop experience with Fedora 37 and Sway.

Awesome Lists containing this project

README

        

#+title: Sway on Fedora 37
#+author: mbrignall
#+options: toc:2

* Crafting a desktop experience

#+ATTR_HTML: :align center
[[./img/logo.png]]

nb: I've moved to nixOS now and have been updating this repo with my dotfiles. If you're keen to see the configuration.nix go [[https://www.github.com/mbrignall/nixos-config][here]].

** What is this all about?

Here is what 'my' Sway looks like:

#+ATTR_HTML: :align center :width 300px
[[./img/desktopnew.png]]

I received a test laptop from our work supplier. It's a Lenovo ThinkPad P16s. Initial boot had some issues with the laptop lid and resume (i.e. when I closed the lid the laptop screen would turn off but not wake up after suspend resumed)

#+begin_src
sudo dmidecode -s bios-version
#+end_src

If the response is less than 1.30/1.10 then I recommend upgrading.

The fix for this was to [[https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-p-series-laptops/thinkpad-p16s-gen-1-type-21bt-21bu/21bt/21bt000vuk/pf3z0wnh/downloads/driver-list/component?name=BIOS%2FUEFI][update the BIOS]]. Lenovo released a new version on 22nd December 2022 which addressed this issue and some others for Linux.

A weird thing happened with Chrome when I installed it, is that I could not use file browser (Nautilus) to 'save as' on images for example. I had to go to the chrome://flags/ and search Ozone and change the platform to Wayland. Firefox however operated as expected.

*Some things* I personally need in a desktop experience:

- Monitor management
- Bluetooth and audio input/output management
- Ability to logically navigate windows with keybindings
- Lock screen and normal idle/suspend behaviour must be present
- Screenshot (grim) and edit (swappy/slurp)

/Updated: 16/03/23 - it's been a while since I did anything on here./
- Added script to symbolically link folders back to the repo folder (it can be used without editing)
- Some more CSS adjustments, kinda moved away from the initial waybar layout and included a wallpaper I preferred
- [TODO] More to come on this...

** Themes

I've been using Doom Emacs recently and got inspiration from a built in theme 'doom-shades-of-purple'. I've tried to link the colour and theme to all the features added below. This is very much WIP and I will continue as I test the device.

*** [[https://codeberg.org/dnkl/fuzzel][Fuzzel]]

#+ATTR_HTML: :align center
[[./img/fuzzel.png]]

Fuzzel does what it needs to do and is styled like the rest of the theme using the colors of shades-of-purple. Fuzzel seems really easy to configure.

*** [[https://github.com/emersion/mako][Mako]]

Mako is an alternative to Dunst/Rofication. I use [[https://github.com/dunst-project/dunst][Dunst]] in my Regolith set up which works really well. Mako is just as cusomisable. I amended my config file to include all the parameters from the man page so I can build it out in time. Keen to explore the menu option.

- added battery notification for low and critical:

#+begin_src
"states": {
"warning": 15,
"critical": 5
}
#+end_src

*** [[https://github.com/emersion/grim][Grim]] and [[https://github.com/jtheoof/swappy][Slurp/Swappy]]

I use screengrab and area grabs a lot. Some I just need to go straight to clipboard and others I want to add context with an editor.

*** [[https://swaywm.org/][Sway]]

Added many Regolith keybindings and some more nice to haves - like switch to window resize (mod+r) and arrows for resize plus hold shift for a bigger jump.

#+begin_src shell
input "1267:12811:ELAN0683:00_04F3:320B_Touchpad" {
accel_profile "adaptive"
pointer_accel 0.80
}

bindgesture swipe:right workspace prev
bindgesture swipe:left workspace next
bindgesture swipe:up exec $term
#+end_src

Was keen to add some config to the touchpad of the Thinkpad. Amended sensitivity using adaptive and accel value. The bindgesture is a new feature in Sway apparently.

- Swipe right/left: Workspace switch
- Swipe up: launch terminal

*** [[https://github.com/swaywm/swaylock][Swaylock]]

Styled a bit, but more a WIP. Note: Gave up on swaylock-effects as I found it was crashing if I plugged external monitors in whilst locked. This didn't seem like a great idea so I've now changed back to the swaylock in installed with dnf.

*** [[https://github.com/Alexays/Waybar][Waybar]]

#+ATTR_HTML: :align center
[[./img/waybar.png]]

Waybar is a really cool, sway specific equivalent to something like [[https://polybar.github.io/][Polybar]]. I really like Waybar and using CSS to style it. This is different to Polybar which feels it has a higher entry level for tweaking.

*** Plymouth theme

I amended the theme to remove the Fedora logo on the splash screen (spinner theme) in favour of the Sway logo:

note: You will need to check the current theme and replace anything after /themes/ below.

#+begin_src
sudo mv /usr/share/plymouth/themes/theme/currentlogo.png /usr/share/themes/theme/currentlogo.png.bac
sudo cp /path/to/logo.png /usr/share/plymouth/themes/theme/nameofcurrentlogo.png

# Then refresh the theme:
plymouth-set-default-theme -R theme
#+end_src