Wrap sway config with nix.
This commit is contained in:
parent
4af279ff01
commit
3fcbc67bd3
3 changed files with 285 additions and 218 deletions
|
@ -8,7 +8,7 @@ with lib; {
|
|||
environment.etc = mkIf (elem "etcfiles" config.machine.conffiles) {
|
||||
"rofi.rasi".source = import ./etc/rofi.rasi.nix {inherit pkgs;};
|
||||
"i3/py3status".source = ./etc/i3/py3status;
|
||||
"sway/config".source = mkDefault ./etc/sway/config;
|
||||
"sway/config".source = mkDefault (import ./etc/sway/config.nix {inherit pkgs;});
|
||||
"mpv/input.conf".source = ./etc/mpv/input.conf;
|
||||
"mpv/mpv.conf".source = ./etc/mpv/mpv.conf;
|
||||
"youtube-dl.conf".source = ./etc/youtube-dl.conf;
|
||||
|
|
|
@ -1,217 +0,0 @@
|
|||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### 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
|
||||
# Your preferred terminal emulator
|
||||
set $term alacritty
|
||||
# Your preferred application launcher
|
||||
# Note: it's recommended that you pass the final command to sway
|
||||
set $menu dmenu_path | dmenu | xargs swaymsg exec
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper
|
||||
output * bg ~/Pictures/wallpaper.jpg fill
|
||||
output eDP-1 scale 1.5
|
||||
#
|
||||
# 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
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * dpms off"' \
|
||||
# resume 'swaymsg "output * dpms on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# 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
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs xkb_options grp:alt_shift_toggle# Read `man 5 sway-input` for more information about this section.
|
||||
input "1118:2496:Microsoft_Surface_Type_Cover_Touchpad" {
|
||||
dwt enabled
|
||||
tap enabled
|
||||
natural_scroll disabled
|
||||
middle_emulation enabled
|
||||
}
|
||||
|
||||
input "1118:2496:Microsoft_Surface_Type_Cover_Keyboard" {
|
||||
xkb_layout de
|
||||
xkb_variant nodeadkeys
|
||||
}
|
||||
|
||||
### 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
|
||||
|
||||
# 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'
|
||||
#
|
||||
# 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
|
||||
# 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
|
||||
|
||||
# _move_ the focused window with the same, but add 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
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace 1
|
||||
bindsym $mod+2 workspace 2
|
||||
bindsym $mod+3 workspace 3
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
bindsym $mod+Shift+2 move container to workspace 2
|
||||
bindsym $mod+Shift+3 move container to workspace 3
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 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+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space 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+p 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+Shift+p scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
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
|
||||
|
||||
# return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position top
|
||||
|
||||
# When the status_command prints a new line to stdout, swaybar updates.
|
||||
# The default just shows the current date and time.
|
||||
#status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
|
||||
status_command i3status
|
||||
#status_command py3status -c /etc/i3/py3status
|
||||
colors {
|
||||
separator #586e75
|
||||
background #002b36
|
||||
statusline #aea79f
|
||||
focused_workspace #586e75 #586e75 #ffffff
|
||||
active_workspace #073642 #073642 #ffffff
|
||||
inactive_workspace #002b36 #002b36 #aea79f
|
||||
urgent_workspace #77216f #77216f #ffffff
|
||||
}
|
||||
}
|
284
config/etc/sway/config.nix
Normal file
284
config/etc/sway/config.nix
Normal file
|
@ -0,0 +1,284 @@
|
|||
{pkgs}:
|
||||
pkgs.writeText "config"
|
||||
/*
|
||||
sway
|
||||
*/
|
||||
''
|
||||
include /etc/sway/config.d/*
|
||||
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
|
||||
workspace "HDMI" output HDMI1
|
||||
workspace_auto_back_and_forth yes
|
||||
default_border pixel
|
||||
hide_edge_borders both
|
||||
|
||||
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term ${pkgs.wezterm}/bin/wezterm
|
||||
# Your preferred application launcher
|
||||
# Note: it's recommended that you pass the final command to sway
|
||||
set $menu ${pkgs.rofi-wayland}/bin/rofi -config /etc/rofi.rasi -show combi
|
||||
input type:keyboard xkb_layout de
|
||||
input type:keyboard xkb_numlock enabled
|
||||
input type:touchpad {
|
||||
tap enabled
|
||||
natural_scroll disabled
|
||||
dwt disabled
|
||||
}
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper
|
||||
output * bg ${../../../assets/mount3.jpg} fill
|
||||
#output eDP-1 scale 1.5
|
||||
#
|
||||
# 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
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * dpms off"' \
|
||||
# resume 'swaymsg "output * dpms on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# 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
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs xkb_options grp:alt_shift_toggle# Read `man 5 sway-input` for more information about this section.
|
||||
### 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 XF86AudioPlay exec ${pkgs.playerctl}/bin/playerctl play
|
||||
bindsym XF86AudioPause exec ${pkgs.playerctl}/bin/playerctl pause
|
||||
bindsym XF86AudioNext exec ${pkgs.playerctl}/bin/playerctl next
|
||||
bindsym XF86AudioPrev exec ${pkgs.playerctl}/bin/playerctl previous
|
||||
|
||||
bindsym $mod+Mod1+space exec ${pkgs.playerctl}/bin/playerctl play-pause
|
||||
bindsym $mod+Mod1+Left exec ${pkgs.playerctl}/bin/playerctl position 10-
|
||||
bindsym $mod+Mod1+Right exec ${pkgs.playerctl}/bin/playerctl position 10+
|
||||
bindsym $mod+Mod1+Down exec ${pkgs.playerctl}/bin/playerctl next
|
||||
bindsym $mod+Mod1+Up exec ${pkgs.playerctl}/bin/playerctl previous
|
||||
|
||||
bindsym $mod+b border toggle
|
||||
bindsym $mod+m bar mode toggle
|
||||
bindsym $mod+y move container to output left
|
||||
bindsym $mod+x move container to output right
|
||||
bindsym $mod+Shift+y move workspace to output left
|
||||
bindsym $mod+Shift+x move workspace to output right
|
||||
bindsym $mod+Alt+l exec ${pkgs.i3lock}/bin/i3lock -efc 000000
|
||||
bindsym $mod+minus exec ${pkgs.alsa-utils}/bin/amixer -c 0 sset Master 1%-
|
||||
bindsym $mod+plus exec ${pkgs.alsa-utils}/bin/amixer -c 0 sset Master 1%+
|
||||
bindsym $mod+Mod1+minus exec ${pkgs.alsa-utils}/bin/amixer -D pulse sset Master 1%-
|
||||
bindsym $mod+Mod1+plus exec ${pkgs.alsa-utils}/bin/amixer -D pulse sset Master 1%+
|
||||
bindsym $mod+Shift+minus exec ${pkgs.acpilight}/bin/xbacklight -5
|
||||
bindsym $mod+Shift+plus exec ${pkgs.acpilight}/bin/xbacklight +5
|
||||
bindsym $mod+Ctrl+1 exec ${pkgs.acpilight}/bin/xbacklight -set 0
|
||||
bindsym $mod+Ctrl+2 exec ${pkgs.acpilight}/bin/xbacklight -set 1
|
||||
bindsym $mod+Ctrl+3 exec ${pkgs.acpilight}/bin/xbacklight -set 10
|
||||
bindsym $mod+Ctrl+4 exec ${pkgs.acpilight}/bin/xbacklight -set 25
|
||||
bindsym $mod+Ctrl+5 exec ${pkgs.acpilight}/bin/xbacklight -set 50
|
||||
bindsym $mod+Ctrl+6 exec ${pkgs.acpilight}/bin/xbacklight -set 60
|
||||
bindsym $mod+Ctrl+7 exec ${pkgs.acpilight}/bin/xbacklight -set 70
|
||||
bindsym $mod+Ctrl+8 exec ${pkgs.acpilight}/bin/xbacklight -set 80
|
||||
bindsym $mod+Ctrl+9 exec ${pkgs.acpilight}/bin/xbacklight -set 90
|
||||
bindsym $mod+Ctrl+0 exec ${pkgs.acpilight}/bin/xbacklight -set 100
|
||||
|
||||
bindsym $mod+Shift+w sticky toggle
|
||||
|
||||
# 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'
|
||||
#
|
||||
# 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
|
||||
# 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
|
||||
|
||||
# _move_ the focused window with the same, but add 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
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace 1
|
||||
bindsym $mod+2 workspace 2
|
||||
bindsym $mod+3 workspace 3
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
bindsym $mod+Shift+2 move container to workspace 2
|
||||
bindsym $mod+Shift+3 move container to workspace 3
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
bindsym $mod+c 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+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space 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+p 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+Shift+p scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
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
|
||||
|
||||
# return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Define kanagawa colors
|
||||
set $base00 "1F1F28"
|
||||
set $base01 "2A2A37"
|
||||
set $base02 "223249"
|
||||
set $base03 "727169"
|
||||
set $base04 "C8C093"
|
||||
set $base05 "DCD7BA"
|
||||
set $base06 "938AA9"
|
||||
set $base07 "363646"
|
||||
set $base08 "C34043"
|
||||
set $base09 "FFA066"
|
||||
set $base0A "DCA561"
|
||||
set $base0B "98BB6C"
|
||||
set $base0C "7FB4CA"
|
||||
set $base0D "7E9CD8"
|
||||
set $base0E "957FB8"
|
||||
set $base0F "D27E99"
|
||||
|
||||
client.focused $base05 $base0D $base00 $base0D $base0D
|
||||
client.focused_inactive $base01 $base01 $base05 $base03 $base01
|
||||
client.unfocused $base01 $base00 $base05 $base01 $base01
|
||||
client.urgent $base08 $base08 $base00 $base08 $base08
|
||||
client.placeholder $base00 $base00 $base05 $base00 $base00
|
||||
client.background $base07
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
position top
|
||||
|
||||
# When the status_command prints a new line to stdout, swaybar updates.
|
||||
# The default just shows the current date and time.
|
||||
#status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
|
||||
status_command ${pkgs.python3Packages.py3status}/bin/py3status -c /etc/i3/py3status
|
||||
colors {
|
||||
background $base00
|
||||
separator $base01
|
||||
statusline $base04
|
||||
|
||||
# State Border BG Text
|
||||
focused_workspace $base05 $base0D $base00
|
||||
active_workspace $base05 $base03 $base00
|
||||
inactive_workspace $base03 $base01 $base05
|
||||
urgent_workspace $base08 $base08 $base00
|
||||
binding_mode $base00 $base0A $base00
|
||||
}
|
||||
}
|
||||
''
|
Loading…
Reference in a new issue