mirror of
https://codeberg.org/tmayoff/.dotfiles.git
synced 2025-12-06 16:58:34 -05:00
263 lines
7.9 KiB
Nix
263 lines
7.9 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
mod = "Mod4";
|
|
term = "kitty";
|
|
menu = "rofi -combi-modi window,drun,ssh -show combi -show-icons";
|
|
|
|
image = pkgs.fetchurl {
|
|
url = "https://www.pixelstalk.net/wp-content/uploads/image11/Get-Glittery-blue-4K-wallpaper-with-a-calm-cool-sparkle.jpg";
|
|
sha256 = "sha256-inZkyQsiF+aqgj2IK2AKN9STYLJBzG+QQCzw/X7cdcw=";
|
|
};
|
|
in {
|
|
imports = [
|
|
./rofi.nix
|
|
];
|
|
|
|
programs.swaylock = {
|
|
enable = true;
|
|
package = pkgs.swaylock-effects;
|
|
|
|
settings = {
|
|
image = "${image}";
|
|
effect-blur = "30x3";
|
|
|
|
submit-on-touch = true;
|
|
|
|
indicator = true;
|
|
clock = true;
|
|
# grace = 2;
|
|
};
|
|
};
|
|
|
|
services.swayidle = {
|
|
enable = true;
|
|
extraArgs = ["-w"];
|
|
events = [
|
|
{
|
|
event = "before-sleep";
|
|
command = "${lib.getExe pkgs.swaylock-effects} -f";
|
|
}
|
|
{
|
|
event = "lock";
|
|
command = "${lib.getExe pkgs.swaylock-effects} -f";
|
|
}
|
|
];
|
|
timeouts = [
|
|
{
|
|
timeout = 300;
|
|
command = "${lib.getExe pkgs.swaylock-effects} -f";
|
|
}
|
|
{
|
|
timeout = 305;
|
|
command = ''${pkgs.sway}/bin/swaymsg "output * dpms off"'';
|
|
resumeCommand = ''${pkgs.sway}/bin/swaymsg "output * dpms on"'';
|
|
}
|
|
{
|
|
timeout = 600;
|
|
command = ''systemctl suspend'';
|
|
}
|
|
{
|
|
timeout = 1200;
|
|
command = ''systemctl hibernate'';
|
|
}
|
|
];
|
|
};
|
|
|
|
services.flameshot = {
|
|
enable = true;
|
|
settings = {
|
|
General = {
|
|
# disabledTrayIcon = true;
|
|
showStartupLaunchMessage = false;
|
|
uiColor = "#24273a";
|
|
};
|
|
};
|
|
};
|
|
|
|
wayland.windowManager.sway = {
|
|
enable = true;
|
|
checkConfig = true;
|
|
config = rec {
|
|
output."*" = {
|
|
scale = "1";
|
|
background = "${image} fill";
|
|
};
|
|
|
|
startup = [];
|
|
|
|
# Home row direction keys, like vim
|
|
up = "k";
|
|
left = "h";
|
|
down = "j";
|
|
right = "l";
|
|
|
|
input = {
|
|
"*" = {
|
|
tap = "enabled";
|
|
natural_scroll = "enabled";
|
|
};
|
|
};
|
|
|
|
keybindings = {
|
|
### Key bindings
|
|
#
|
|
# Basics:
|
|
|
|
# Start a terminal
|
|
"${mod}+Return" = "exec ${term}";
|
|
|
|
# Kill focused window
|
|
"${mod}+q" = "kill";
|
|
|
|
# Start launcher
|
|
"${mod}+space" = "exec \"${menu}\"";
|
|
|
|
# Reload the configuration file
|
|
"${mod}+Shift+c" = "reload";
|
|
|
|
"${mod}+r" = "mode resize";
|
|
|
|
#### Moving around:
|
|
|
|
# Move your focus around
|
|
"${mod}+Left" = "focus left";
|
|
"${mod}+Down" = "focus down";
|
|
"${mod}+Up" = "focus up";
|
|
"${mod}+Right" = "focus right";
|
|
|
|
# Exit sway (logs you out of your Wayland session)
|
|
"${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'";
|
|
|
|
## Window
|
|
# Move the focused window with the same, but add Shift
|
|
"${mod}+Shift+${left}" = "move left";
|
|
"${mod}+Shift+${down}" = "move down";
|
|
"${mod}+Shift+${up}" = "move up";
|
|
"${mod}+Shift+${right}" = "move right";
|
|
# Ditto, with arrow keys
|
|
"${mod}+Shift+Left" = "move left";
|
|
"${mod}+Shift+Down" = "move down";
|
|
"${mod}+Shift+Up" = "move up";
|
|
"${mod}+Shift+Right" = "move right";
|
|
|
|
## Workspaces
|
|
|
|
# Switch to workspace
|
|
"${mod}+1" = "workspace number 1";
|
|
"${mod}+2" = "workspace number 2";
|
|
"${mod}+3" = "workspace number 3";
|
|
"${mod}+4" = "workspace number 4";
|
|
"${mod}+5" = "workspace number 5";
|
|
"${mod}+6" = "workspace number 6";
|
|
"${mod}+7" = "workspace number 7";
|
|
"${mod}+8" = "workspace number 8";
|
|
"${mod}+9" = "workspace number 9";
|
|
# Move focused container to workspace
|
|
"${mod}+Shift+1" = "move container to workspace number 1";
|
|
"${mod}+Shift+2" = "move container to workspace number 2";
|
|
"${mod}+Shift+3" = "move container to workspace number 3";
|
|
"${mod}+Shift+4" = "move container to workspace number 4";
|
|
"${mod}+Shift+5" = "move container to workspace number 5";
|
|
"${mod}+Shift+6" = "move container to workspace number 6";
|
|
"${mod}+Shift+7" = "move container to workspace number 7";
|
|
"${mod}+Shift+8" = "move container to workspace number 8";
|
|
"${mod}+Shift+9" = "move container to workspace number 9";
|
|
|
|
## Layout
|
|
|
|
# You can "split" the current object of your focus with
|
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
|
# respectively.
|
|
"${mod}+b" = "splith";
|
|
"${mod}+v" = "splitv";
|
|
|
|
# Switch the current container between different layout styles
|
|
"${mod}+s" = "layout stacking";
|
|
"${mod}+w" = "layout tabbed";
|
|
"${mod}+e" = "layout toggle split";
|
|
|
|
# Make the current focus fullscreen
|
|
"${mod}+f" = "fullscreen";
|
|
|
|
"Print" = "exec flameshot gui";
|
|
};
|
|
|
|
# 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
|
|
|
|
# # Layout stuff:
|
|
# #
|
|
# # 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+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
|
|
# #
|
|
# # 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"
|
|
# }
|
|
|
|
# #
|
|
# # Utilities:
|
|
# #
|
|
# # Special keys to adjust volume via PulseAudio
|
|
# bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
|
# bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
|
# bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
|
# bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
|
# # Special keys to adjust brightness via brightnessctl
|
|
# bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
|
# bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
|
# # Special key to take a screenshot with grim
|
|
# bindsym Print exec grim
|
|
|
|
bars = [
|
|
{
|
|
command = "waybar";
|
|
position = "top";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|