# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.

### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod1
# Home row direction keys, like vim
#set $left h
#set $down j
#set $up k
#set $right l
# Your preferred terminal emulator
set $term xfce4-terminal
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
#set $menu wofi --show drun
set $menu rofi -show drun

### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
set $bg /data/sync/images/wallpapers/0002.png
set $screenlock 'swaylock -i $bg'
set $images $(xdg-user-dir PICTURES)/$(date +'%s_grim.png')
#

exec --no-startup-id swaybg -m fill -i $bg
# Example configuration:
#
#output HDMI-A-1 resolution 1920x1080@120hz position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs

### Idle configuration
#
# Example configuration:
#
exec swayidle -w \
         timeout 900 $screenlock \
         timeout 1800 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
         before-sleep $screenlock
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.

### Input configuration
         input "type:touchpad" {
             tap enabled
                 natural_scroll enabled
                 middle_emulation enabled
         }

# Example configuration:
#
#   input "2:14:SynPS/2_Synaptics_TouchPad" {
#       dwt enabled
#       tap enabled
#       natural_scroll enabled
#       middle_emulation enabled
#   }
#
# 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 "2:7:SynPS/2_Synaptics_TouchPad" {
    events disabled_on_external_mouse
}
input "5426:156:Razer_Razer_DeathAdder_V2_X_HyperSpeed" {
    accel_profile "flat" # disable mouse acceleration (enabled by default; to set it manually, use "adaptive" instead of "flat")
    pointer_accel 0.5 # set mouse sensitivity (between -1 and 1)
}

#exec --no-startup-id /usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh
exec --no-startup-id source ~/.config/fcitx.sh
exec --no-startup-id fcitx5
exec --no-startup-id kwalletd6
#exec --no-startup-id blueman-applet
exec --no-startup-id owncloud 
exec --no-startup-id waybar
exec --no-startup-id nm-applet --indicator
exec --no-startup-id nohup gentoo-pipewire-launcher restart >/dev/null 2>&1 &
exec --no-startup-id xset m 1/1 0
exec --no-startup-id /usr/lib/pam_kwallet_init


set $lower-volume wpctl set-volume @DEFAULT_SINK@ 0.01- 
set $raise-volume wpctl set-volume @DEFAULT_SINK@ 0.01+ --limit 1 
set $mute-sink wpctl set-mute @DEFAULT_SINK@ toggle 
set $mute-source wpctl set-mute @DEFAULT_SOURCE@ toggle 


bindsym XF86AudioRaiseVolume exec --no-startup-id $raise-volume
bindsym XF86AudioLowerVolume exec --no-startup-id $lower-volume
bindsym XF86AudioMute        exec --no-startup-id $mute-sink
bindsym XF86AudioMicMute     exec --no-startup-id $mute-source
bindsym $mod+slash  exec --no-startup-id $mute-sink
bindsym $mod+period exec --no-startup-id $raise-volume
bindsym $mod+comma  exec --no-startup-id $lower-volume


# Brightness key bindings
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-

# Media player key bindings (need media-sound/playerctl for playerctl.)
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous

bindsym $mod+Shift+comma exec playerctl previous
bindsym $mod+Shift+period exec playerctl next 
bindsym $mod+Shift+slash exec playerctl play-pause

bindsym Print exec grim -g "$(slurp)" - | wl-copy
bindsym $mod+Print exec grim -o $images
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term

# Kill focused window
bindsym $mod+Shift+q kill

# Start your launcher
bindsym $mod+d exec $menu
#
bindsym $mod+l exec $screenlock
# 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

# Reload the configuration file
bindsym $mod+Shift+c reload

# Exit sway (logs you out of your Wayland session)
#bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Shift+p exec systemctl poweroff
bindsym $mod+Shift+l exec swaymsg exit 
#
# Moving around:
#
# Move your focus around
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
#bindsym $mod+Shift+j move left
#bindsym $mod+Shift+k move down
#bindsym $mod+Shift+l move up
#bindsym $mod+Shift+semicolon move right

# alternatively, you can use the cursor 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
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv

# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# Make the current focus fullscreen
bindsym $mod+Shift+space fullscreen

# Toggle the current focus between tiling and floating mode
bindsym $mod+f floating toggle

# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle

# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.

# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad

# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
bindsym $mod+Tab workspace back_and_forth
# Resizing containers:
#
mode "resize" {
# These bindings trigger as soon as you enter the resize mode

# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
    bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym semicolon resize grow width 10 px or 10 ppt

# same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

# back to normal: Enter or Escape or $mod+r
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"

#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
}

for_window [class="^.*"] border pixel 1

#floating 
for_window [app_id="signal"] floating enable
for_window [app_id="fluffychat"] floating enable
for_window [app_id="im.dino.Dino"] floating enable
for_window [app_id="desktopclient.owncloud.com.owncloud"] floating enable
for_window [app_id="firefox-bin"] move to workspace 1
for_window [app_id="thunderbird"] move container to workspace 4
for_window [app_id="thunar"] move container to workspace 3
for_window [title="wtui"] floating enable
include ~./config/sway/*

#include /etc/sway/config.d/*
