Skip to content

Instantly share code, notes, and snippets.

@solarkraft
Last active June 12, 2022 13:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save solarkraft/f46421295b8c211b2eb56b3acc118cc4 to your computer and use it in GitHub Desktop.
Save solarkraft/f46421295b8c211b2eb56b3acc118cc4 to your computer and use it in GitHub Desktop.
My desktop configuration
# Paul's Wayfire config
# Check out https://github.com/WayfireWM/wayfire/wiki/Configuration for help
### Output configuration
# Layout: Positiom in virtual pixels
# Negative values are mishandled by XWayland and some tools, so stay positive :-)
# 15" 4K laptop display
[output:eDP-1]
scale = 1.8
# 55" TV
[output:DP-3]
mode = 3840x2160@60
scale = 1
# wayland client output
[output:WL-1]
scale = 1
[input]
### Keyboard
xkb_layout = de
xkb_model =
xkb_option = caps:escape
xkb_rule = evdev
xkb_variant =
# a bit faster than usual
kb_repeat_delay = 200
kb_repeat_rate = 80
modifier_binding_timeout = 400
### Touchpad
disable_touchpad_while_mouse = false
disable_while_typing = false
natural_scroll = true
scroll_method
scroll_method = default
tap_to_click = true
touchpad_accel_profile = adaptive
touchpad_cursor_speed = 0
touchpad_scroll_speed = 0.3
click_method = clickfinger
### Mouse
mouse_accel_profile = adaptive
mouse_cursor_speed = -0.8
mouse_scroll_speed = 1
### Cursor
cursor_size = 24
cursor_theme = default
[core]
# support legacy apps
xwayland = true
preferred_decoration_mode = server
#virtual desktops
vheight = 3
vwidth = 4
close_top_view = <super> KEY_Q | <alt> KEY_F4
background_color = \#555f
plugins = alpha animate autostart command cube expo grid idle invert oswitch place vswitch window-rules wrot move zoom vswipe fisheye fast-switcher switcher wm-actions bench scale workarounds decoration resize glib-main-loop dbus_interface #blur
# available in stock wayfire: animate blur common cube decoration scale tile vswitch window-rules wm-actions wobbly alpha autostart command compositor-view-test expo extra-gestures fast-switcher fisheye grid idle invert move oswitch place preserve-output resize switcher vswipe wrot zoom
# available in wayfire-plugins-extra: annotate autorotate-iio background-view bench crosshair follow-focus force-fullscreen glip-main-loop join-views keycolor mag showrepaint water window-zoom workspace-names
#max_render_time = 12
# ammen99 instruction to combat random lag
max_render_time = -1
#focus_buttons_passthrough = false
#focus_buttons = BTN_RIGHT
[autostart]
# Automatically starts wf-background, wf-dock and wf-panel
# I don't want wf-panel because I start waybar instead
autostart_wf_shell = false
# Any assignment is fine as long as it's unique
# I like to do some logging of things that experience issues from time to time
# enable screen sharing through pipewire & desktop portal
portal = /usr/lib/xdg-desktop-portal -r
portal_wlr = /usr/lib/xdg-desktop-portal-wlr
# crashes a while after screen reconfiguration
notifications = mako
#outputs = kanshi
# Automatically start some apps
autostart_script = $(xdg-user-dir)/.autostart.sh
background = wf-background > $(xdg-user-dir)/.log/wf-background.log
panel = waybar
dock = wf-dock
#dock2 = cairo-dock
# idle/sleep/wakeup stuff
idle = sh -c 'swayidle \
after-resume "bluetoothctl power on" \ # fix bluetooth being disabled after sleep
after-resume "sudo systemctl restart systemd-networkd" \ #
before-sleep "swaylock" \ # lock screen before sleeping
'
[command]
binding_launcher = <super> KEY_SPACE
#command_launcher = wofi --normal-window --gtk-dark --insensitive --lines 5 --width 400 --show run --exec-search --term konsole
command_launcher = $(xdg-user-dir)/.cargo/bin/sirula
binding_terminal = <super> KEY_ENTER
command_terminal = konsole
# logout stuff
binding_lock = <super> KEY_ESC | <super> KEY_L
command_lock = swaylock --color 000000 --indicator-caps-lock --ignore-empty-password --show-failed-attempts
binding_sleep = <super> <alt> KEY_ESC
command_sleep = udo systemctl suspend
binding_logout = <super> <shift> KEY_ESC
# Looks messy, works flawlessly
#command_logout = sh -c 'if zenity --question --text="Log out?"; then killall --user $USER -INT wayfire; fi'
command_logout = killall --user $USER -INT wayfire
# screen capture
binding_screenshot_interactive = KEY_SYSRQ
binding_screenshot_complete = <shift> KEY_SYSRQ
command_screenshot_interactive = grim -g "$(slurp)" - | tee $(xdg-user-dir DOCUMENTS)/screencap/$(date +%Y-%m-%dT%H:%M:%SZ).png | wl-copy
command_screenshot_complete = grim - | tee $(xdg-user-dir DOCUMENTS)/screencap/$(date +%Y-%m-%dT%H:%M:%SZ).png | wl-copy
# screen recording
binding_screenrec_interactive = <super> KEY_SYSRQ
binding_screenrec_stop = <super> <shift> KEY_SYSRQ
command_screenrec_interactive = wf-recorder --file="$(xdg-user-dir DOCUMENTS)/screencap/$(date +%Y-%m-%dT%H:%M:%SZ).mp4" --geometry "$(slurp)"
# killall wf-recorder usually works, but you run into trouble when you simultaneously want to use it for screen sharing and recording
command_screenrec_stop=pkill --signal int --full "wf-recorder --file" && notify-send "Recording stopped"
# audio (needs refinement)
binding_mute = KEY_MUTE
repeatable_binding_volume_up = KEY_VOLUMEUP
repeatable_binding_volume_down = KEY_VOLUMEDOWN
#command_mute = amixer set Master toggle && notify-send "Mute toggled"
command_mute = amixer set Master toggle && notify-send "Mute toggled"
command_volume_up = pactl set-sink-volume 0 +3000
command_volume_down = pactl set-sink-volume 0 -3000
# screen brightness
repeatable_binding_light_down = KEY_BRIGHTNESSDOWN
repeatable_binding_light_up = KEY_BRIGHTNESSUP
command_light_down = light -T 0.5 && notify-send "Brightness: `light`"
command_light_up = light -T 2 && notify-send "Brightness: `light`"
# gammastep / redshit / red tint
command_redshift_on = systemctl --user start redshift.service
binding_redshift_on = <super> KEY_BRIGHTNESSDOWN
command_redshift_off = systemctl --user stop redshift.service
binding_redshift_off = <super> KEY_BRIGHTNESSUP
command_redshift_toggle = if (systemctl -q --user is-active redshift.service); then systemctl --user stop redshift.service; else systemctl --user start redshift.service; fi
binding_redshift_toggle = <super> KEY_R
binding_test_command = <super> KEY_E
#command_test_command = sh -c 'notify-send "test"'
command_test_command = sh -c '\
notify-send "test" \ #comment
"this is a test" \ #comment
'
[wm-actions]
toggle_always_on_top = <super> KEY_T
[animate]
open_animation = zoom
close_animation = fire
duration = 350
enabled_for = (type is toplevel || (type is x-or && focuseable is true))
fire_particle_size = 16.000000
fire_particles = 500
[decoration]
active_color = \#0009
border_size = 4
button_order = minimize maximize close
close_top_view = <super> KEY_Q | <alt> KEY_F4
#font = Noto Sans
font = Rubik
inactive_color = \#0006
title_height = 24
vheight = 6
vwidth = 6
[blur]
method = box
mode = normal
# no worky?
saturation = 0.1
bokeh_degrade = 5
bokeh_iterations = 10
bokeh_offset = 20
box_degrade = 4
box_iterations = 2
box_offset = 3
gaussian_degrade = 3
gaussian_iterations = 4
gaussian_offset = 2
kawase_degrade = 2
kawase_iterations = 2
kawase_offset = 10
# control a window's transparency using the scroll wheel
[alpha]
min_value = 0.100000
modifier = <super>
[expo]
background = \#1A1A1AFF
duration = 250
#offset = 10
select_workspace_1 = KEY_1
select_workspace_2 = KEY_2
select_workspace_3 = KEY_3
select_workspace_4 = KEY_4
select_workspace_5 = KEY_5
select_workspace_6 = KEY_6
select_workspace_7 = KEY_7
select_workspace_8 = KEY_8
select_workspace_9 = KEY_9
toggle = <ctrl> <super>
[fast-switcher]
activate = <alt> KEY_TAB
[fisheye]
radius = 1800
toggle = <alt> <super> KEY_F
zoom = 20
[scale]
toggle = <super>
toggle_all = <shift> <super>
duration = 250
interact = true
inactive_alpha = 0.9
middle_click_close = true
[idle]
cube_max_zoom = 1.5
cube_rotate_speed = 1
cube_zoom_speed = 1000
disable_on_fullscreen = true
dpms_timeout = -1
screensaver_timeout = 3600
toggle = none
[move]
activate = <super> BTN_LEFT
enable_snap = true
enable_snap_off = true
join_views = true
# How close to get to the edge before tiling is activated
snap_threshold = 0
# How many pixels to travel before a window is de-tiled ??? maybe not
snap_off_threshold = 50
[oswitch]
next_output = <super> KEY_O
next_output_with_win = <shift> <super> KEY_O
[place]
mode = center
[resize]
activate = <super> BTN_RIGHT
[simple-tile]
#button_move = <super> BTN_LEFT
#button_resize = <super> BTN_RIGHT
#keep_fullscreen_on_adjacent = true
#key_focus_above = <super> KEY_K
#key_focus_below = <super> KEY_J
#key_focus_left = <super> KEY_H
#key_focus_right = <super> KEY_L
#key_toggle = <super> KEY_T
#key_toggle_fullscreen = <super> KEY_M
tile_by_default = any
[grid]
duration = 200
restore = <super> KEY_DOWN | <super> KEY_KP0
slot_b = <super> KEY_KP2
slot_bl = <super> KEY_KP1
slot_br = <super> KEY_KP3
slot_c = <super> KEY_UP | <super> KEY_KP5
slot_l = <super> KEY_LEFT | <super> KEY_KP4
slot_r = <super> KEY_RIGHT | <super> KEY_KP6
slot_t = <super> KEY_KP8
slot_tl = <super> KEY_KP7
slot_tr = <super> KEY_KP9
type = simple
[switcher]
next_view = <super> KEY_TAB
prev_view = <shift> <super> KEY_TAB
speed = 250
view_thumbnail_scale = 1.5
gesture_toggle = edge-swipe down 3
touch_sensitivity = 1
[vswipe]
background = \#1A1A1AFF
delta_threshold = 24
duration = 260
enable_horizontal = true
enable_smooth_transition = true
enable_vertical = true
fingers = 4
gap = 32
speed_cap = 0.05
speed_factor = 350
threshold = 0.35
[vswitch]
binding_down = <ctrl> <super> KEY_DOWN
binding_left = <ctrl> <super> KEY_LEFT
binding_right = <ctrl> <super> KEY_RIGHT
binding_up = <ctrl> <super> KEY_UP
binding_win_down = <ctrl> <shift> <super> KEY_DOWN
binding_win_left = <ctrl> <shift> <super> KEY_LEFT
binding_win_right = <ctrl> <shift> <super> KEY_RIGHT
binding_win_up = <ctrl> <shift> <super> KEY_UP
duration = 300
# lacks stiffness :(
[wobbly]
friction = 5
grid_resolution = 8
spring_k = 100
[invert]
toggle = <super> KEY_I
[workarounds]
app_id_mode = stock
#dynamic_repaint_delay = true
# ammen99 instruction to combat random lag
dynamic_repaint_delay = false
all_dialogs_modal = false
[zoom]
modifier = <alt> <super>
# transition time
smoothing_duration = 300
# zoom acceleration
speed = 0.01
[wrot]
activate = <alt> <super> BTN_LEFT
reset_radius = 150
[window-rules]
[cube]
activate = <alt> <ctrl> BTN_LEFT
background = \#1A1A1AFF
background_mode = simple
cubemap_image =
deform = 0
initial_animation = 250
light = false
rotate_left = none
rotate_right = none
skydome_mirror = true
skydome_texture =
speed_spin_horiz = 0.02
speed_spin_vert = 0.02
speed_zoom = 0.07
zoom = 0.09
# Extra plugins
[bench]
frames_per_update = 10
average_frames = 10
position = top_left
[water]
activate = <ctrl> <super> BTN_LEFT
[showrepaint]
toggle = <super> <alt> KEY_S
reduce_flicker = true
[annotate]
draw = <super> <alt> BTN_RIGHT
clear_workspace = <super> <alt> KEY_C
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment