# Default config for Wayfire
#
# Copy this to ~/.config/wayfire.ini and edit it to your liking.
#
# Take the tutorial to get started.
# https://github.com/WayfireWM/wayfire/wiki/Tutorial
#
# Read the Configuration document for a complete reference.
# https://github.com/WayfireWM/wayfire/wiki/Configuration

# Input configuration ──────────────────────────────────────────────────────────

# Example configuration:
#
[input]
xkb_layout = us
xkb_variant = dvorak,bepo
natural_scroll = enabled
#
# See Input options for a complete reference.
# https://github.com/WayfireWM/wayfire/wiki/Configuration#input

[input-device:Wacom One by Wacom S Pen]
output = eDP-1
#

# Output configuration ─────────────────────────────────────────────────────────

# Example configuration:
#
[output:eDP-1]
#mode = 1920x1080@60000
mode = 2400x1350@60000
position = 0,0
transform = normal
scale = 1.000000
#
# You can get the names of your outputs with wlr-randr.
# https://github.com/emersion/wlr-randr
#
# See also kanshi for configuring your outputs automatically.
# https://wayland.emersion.fr/kanshi/
#
# See Output options for a complete reference.
# https://github.com/WayfireWM/wayfire/wiki/Configuration#output

# Core options ─────────────────────────────────────────────────────────────────

[core]

# List of plugins to be enabled.
# See the Configuration document for a complete list.
plugins = \
  alpha \
  animate \
  autostart \
  command \
  cube \
  decoration \
  expo \
  fast-switcher \
  fisheye \
  grid \
  idle \
  invert \
  move \
  oswitch \
  place \
  resize \
  switcher \
  vswitch \
  window-rules \
  wm-actions \
  wobbly \
  wrot \
  zoom \
  spacing

# Note: [blur] is not enabled by default, because it can be resource-intensive.
# Feel free to add it to the list if you want it.
# You can find its documentation here:
# https://github.com/WayfireWM/wayfire/wiki/Configuration#blur

# Close focused window.
close_top_view = <super> KEY_Q | <alt> KEY_F4

# Workspaces arranged into a grid: 3 × 3.
vwidth = 3
vheight = 3

# Prefer client-side decoration or server-side decoration
preferred_decoration_mode = server

# Mouse bindings ───────────────────────────────────────────────────────────────

# Drag windows by holding down Super and left mouse button.
[move]
activate = <super> BTN_LEFT

# Resize them with right mouse button + Super.
[resize]
activate = <super> BTN_RIGHT

# Zoom in the desktop by scrolling + Super.
[zoom]
modifier = <super>

# Change opacity by scrolling with Super + Alt.
[alpha]
modifier = <super> <alt>

# Rotate windows with the mouse.
[wrot]
activate = <super> <ctrl> BTN_RIGHT

# Fisheye effect.
[fisheye]
toggle = <super> <ctrl> KEY_F

# Startup commands ─────────────────────────────────────────────────────────────

[autostart]

# Automatically start background and panel.
# Set to false if you want to override the default clients.
environment = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XAUTHORITY
autostart_wf_shell = false

# greetd
# gtkgreet = gtkgreet -l

# chromium screenshare
0_0 = systemctl --user import-environment
xdg = sleep 1 && (XDG_SESSION_TYPE=wayland XDG_CURRENT_DESKTOP=sway /usr/lib/xdg-desktop-portal --replace & /usr/lib/xdg-desktop-portal-wlr)

# Set the wallpaper, start a panel and dock if you want one.
# https://github.com/WayfireWM/wf-shell
#
# These are started by the autostart_wf_shell option above.
background = wf-background
# background = swaybg -i $HOME/.config/swaylock/bg.png
panel = wf-panel 
# dock = wf-dock

# Output configuration
# https://wayland.emersion.fr/kanshi/
# outputs = kanshi
#email = geary
# Notifications
# https://wayland.emersion.fr/mako/
notifications = mako

# input
fcitx5 = fcitx

# KDEConnect
kdeconnect = kdeconnect-indicator

# Screen color temperature
# https://sr.ht/~kennylevinsen/wlsunset/
gamma = wlsunset

# Idle configuration
# https://github.com/swaywm/swayidle
# https://github.com/swaywm/swaylock
idle = swayidle before-sleep swaylock

# XDG desktop portal
# Needed by some GTK applications
portal = /usr/libexec/xdg-desktop-portal

# Example configuration:
#
[idle]
# toggle = <super> KEY_Z
screensaver_timeout = 360000
dpms_timeout = 360000
#
# Disables the compositor going idle with Super + z.
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds.

# Applications ─────────────────────────────────────────────────────────────────

[command]

# Start a terminal
# https://github.com/alacritty/alacritty
binding_terminal = <super> KEY_T
command_terminal = tilix

# Start your launcher
# https://hg.sr.ht/~scoopta/wofi
# Note: Add mode=run or mode=drun to ~/.config/wofi/config.
# You can also specify the mode with --show option.
binding_launcher = <super> KEY_ENTER
command_launcher = wofi

# Screen locker
# https://github.com/swaywm/swaylock
binding_lock = <super> <shift> KEY_ESC
command_lock = swaylock -C $HOME/.config/swaylock/conig


# Logout
# https://github.com/ArtsyMacaw/wlogout
binding_logout = <super> KEY_ESC
command_logout = nwgbar
# command_logout = wlogout -p xdg

# Screenshots
# https://wayland.emersion.fr/grim/
# https://wayland.emersion.fr/slurp/
binding_screenshot = <shift> KEY_SYSRQ
command_screenshot = grim ~/Pictures/$(date '+%F_%T').png
binding_screenshot_interactive = <super> <shift> KEY_SYSRQ
command_screenshot_interactive = slurp | grim -g - ~/Pictures/$(date '+%F_%T').png
binding_screenshot_clipboard = KEY_SYSRQ
command_screenshot_clipboard = slurp -b ff00ff20 -B ff00ff20 -c ff00ff80 -o | grim -g - - | wl-copy --type image/png

# Screencast
binding_screencast = <alt> KEY_SYSRQ
command_screencast = wf-recorder -f $HOME/Videos/$(date '+%F_%T').mp4
binding_screencast_voice = <super> <alt> KEY_SYSRQ
command_screencast_voice = wf-recorder -a -f $HOME/Videos/$(data '+%F_%T').mp4
binding_screencast_stop = <ctrl> <alt> KEY_SYSRQ
command_screencast_stop = killall -INT wf-recorder

binding_kooha = <super> KEY_R
command_kooha = kooha

# Volume controls alias-utils
# https://alsa-project.org
repeatable_binding_volume_up = KEY_F3
command_volume_up = pulsemixer --change-volume +5
repeatable_binding_volume_down = KEY_F2
command_volume_down = pulsemixer --change-volume -5
binding_mute = KEY_F1
command_mute = pulsemixer --mute
binding_unmute = <alt> KEY_F1
command_unmate = pulsemixer --unmute
# Screen brightness
# https://haikarainen.github.io/light/
# repeatable_binding_light_up =  KEY_F7
# command_light_up = light -A 5
# repeatable_binding_light_down = <shift> KEY_7
# command_light_down = light -U 5

# Windows ──────────────────────────────────────────────────────────────────────

# Actions related to window management functionalities.
#
# Example configuration:
#
[wm-actions]
toggle_fullscreen = <super> KEY_F
toggle_always_on_top = <super> KEY_X
toggle_sticky = <super> <shift> KEY_X

# Position the windows in certain regions of the output.
[grid]
#
# ⇱ ↑ ⇲   │ 7 8 9
# ← f →   │ 4 5 6
# ⇱ ↓ ⇲ d │ 1 2 3 0
# ‾   ‾
slot_bl = <super> KEY_F1
slot_b = <super> KEY_DOWN | <super> KEY_F2
slot_br = <super> KEY_F3
slot_l = <super> KEY_LEFT | <super> KEY_F4
slot_c = <super> KEY_F5
slot_r = <super> KEY_RIGHT | <super> KEY_F6
slot_tl = <super> KEY_F7
slot_t = <super> KEY_UP | <super> KEY_F8
slot_tr = <super> KEY_F9
# Restore default.
restore = <super> KEY_F10

# Change active window with an animation.
[switcher]
next_view = <shift> <alt> KEY_TAB
prev_view = <alt> KEY_TAB

# Simple active window switcher.
[fast-switcher]
activate = <alt> KEY_ESC

# Workspaces ───────────────────────────────────────────────────────────────────

# Switch to workspace.
[vswitch]
binding_left = <ctrl> KEY_LEFT
binding_down = <ctrl> KEY_DOWN
binding_up = <ctrl> KEY_UP
binding_right = <ctrl> KEY_RIGHT
# Move the focused window with the same key-bindings, but add Shift.
binding_win_left = <ctrl> <super> KEY_LEFT
binding_win_down = <ctrl> <super>  KEY_DOWN
binding_win_up = <ctrl> <super>  KEY_UP
binding_win_right = <ctrl> <super>  KEY_RIGHT

# Show the current workspace row as a cube.
[cube]
activate = <ctrl> <alt> BTN_LEFT
# Switch to the next or previous workspace.
rotate_left = <super> <ctrl> KEY_R
rotate_right = <super> <ctrl> KEY_L

# Show an overview of all workspaces.
[expo]
toggle = <super>
# Select a workspace.
# Workspaces are arranged into a grid of 3 × 3.
# The numbering is left to right, line by line.
#
# ⇱ k ⇲
# h ⏎ l
# ⇱ j ⇲
# ‾   ‾
# See core.vwidth and core.vheight for configuring the grid.
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

# Outputs ──────────────────────────────────────────────────────────────────────

# Change focused output.
[oswitch]
# Switch to the next output.
next_output = <super> KEY_O
# Same with the window.
next_output_with_win = <super> <shift> KEY_O

# Invert the colors of the whole output.
[invert]
toggle = <super> KEY_I

# Animate 
[animate]
close_animation = fade
duration = 300

[decoration]
title_height = 0
#broder_size = 1
active_color = \#f9f06bAA
inactive_color = \#268bd2AA
# Rules ────────────────────────────────────────────────────────────────────────

# Example configuration:
#
# [window-rules]
# maximize_alacritty = on created if app_id is "Alacritty" then maximize
#
# You can get the properties of your applications with the following command:
# $ WAYLAND_DEBUG=1 alacritty 2>&1 | kak
#
# See Window rules for a complete reference.
# https://github.com/WayfireWM/wayfire/wiki/Configuration#window-rules
