setup sway
This commit is contained in:
parent
093fe30d75
commit
81246671df
3 changed files with 175 additions and 1 deletions
|
@ -6,6 +6,7 @@
|
|||
./compositing.nix
|
||||
./panels
|
||||
./xmonad
|
||||
./sway
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
166
modules/desktop-environment/home/sway/default.nix
Normal file
166
modules/desktop-environment/home/sway/default.nix
Normal file
|
@ -0,0 +1,166 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.wofi.enable = true;
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
config = {
|
||||
modes = {
|
||||
resize = {
|
||||
Down = "resize grow height 10 px";
|
||||
Escape = "mode default";
|
||||
Left = "resize shrink width 10 px";
|
||||
Return = "mode default";
|
||||
Right = "resize grow width 10 px";
|
||||
Up = "resize shrink height 10 px";
|
||||
h = "resize shrink width 10 px";
|
||||
j = "resize grow height 10 px";
|
||||
k = "resize shrink height 10 px";
|
||||
l = "resize grow width 10 px";
|
||||
};
|
||||
};
|
||||
output = {
|
||||
"*" = {
|
||||
bg = "${../xmonad/wallpaper/wallpaper.jpg} fill";
|
||||
};
|
||||
};
|
||||
input = {
|
||||
"*" = {
|
||||
xkb_layout = "us";
|
||||
xkb_variant = "altgr-intl";
|
||||
};
|
||||
};
|
||||
menu = "wofi -d";
|
||||
modifier = "Mod4";
|
||||
keybindings = with {
|
||||
#mod = config.xsession.windowManager.i3.config.modifier;
|
||||
# mod = "Mod1";
|
||||
mod = config.wayland.windowManager.sway.config.modifier;
|
||||
};
|
||||
lib.mkOptionDefault {
|
||||
# switch window focus
|
||||
"${mod}+h" = "focus left";
|
||||
"${mod}+j" = "focus down";
|
||||
"${mod}+k" = "focus up";
|
||||
"${mod}+l" = "focus right";
|
||||
# move windows
|
||||
"${mod}+Shift+h" = "move left";
|
||||
"${mod}+Shift+j" = "move down";
|
||||
"${mod}+Shift+k" = "move up";
|
||||
"${mod}+Shift+l" = "move right";
|
||||
# layout shit
|
||||
"${mod}+shift+semicolon" = "split h";
|
||||
"${mod}+semicolon" = "split v";
|
||||
"${mod}+f" = "fullscreen toggle";
|
||||
"${mod}+Shift+w" = "layout tabbed";
|
||||
"${mod}+e" = "layout toggle split";
|
||||
"${mod}+Shift+space" = "floating toggle";
|
||||
# focus parents/children
|
||||
# "${mod}+Shift+a" = "focus parent";
|
||||
# "${mod}+Shift+c" = "focus child";
|
||||
# screenshot
|
||||
# "${mod}+w" = "exec window-screenshot.sh";
|
||||
# "${mod}+s" = "exec flameshot gui -c -p $HOME/Pictures/screenshots";
|
||||
# "${mod}+a" = "exec flameshot screen -c -p $HOME/Pictures/screenshots";
|
||||
# "${mod}+t" = "exec ocr-screenshot.sh";
|
||||
|
||||
# rofi fuckery
|
||||
"${mod}+d" = "exec wofi -S drun --allow-images";
|
||||
"${mod}+i" = "exec rofimoji --selector wofi -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy";
|
||||
# TODO: wayland
|
||||
# "${mod}+d" = "exec --no-startup-id rofi -show drun -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||
# "${mod}+space" = "exec --no-startup-id rofi -show combi -combi-show window#run -modes combi -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||
# "${mod}+i" = "exec --no-startup-id rofimoji -f alchemical_symbols anatolian_hieroglyphs emojis braille_patterns box_drawing chess_symbols emoticons geometric_shapes gothic greek_extended math mathematical_alphanumeric_symbols mathematical_operators miscellaneous_symbols miscellaneous_mathematical_symbols-a miscellaneous_mathematical_symbols-b miscellaneous_symbols_and_arrows miscellaneous_symbols_and_pictographs miscellaneous_technical modi modifier_tone_letters musical_symbols nerd_font number_forms shorthand_format_controls specials variation_selectors vertical_forms -a copy";
|
||||
# "${mod}+Shift+e" = "exec --no-startup-id rofi -show \"desktopctl\" -modes \"desktopctl:${desktop-ctl.outPath}/bin/desktopctl\" -theme ${../../other/rofi-themes/applauncher.rasi}";
|
||||
# "${mod}+m" = "exec --no-startup-id menu-qalc";
|
||||
|
||||
# "${mod}+o" = "exec --no-startup-id rofi -show searchwolf -modes \"searchwolf:${searchwolf.outPath}/bin/searchwolf\"";
|
||||
|
||||
# audio
|
||||
"XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status";
|
||||
"XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status";
|
||||
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
|
||||
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
|
||||
|
||||
"XF86AudioNext" = "exec playerctl next";
|
||||
"XF86AudioPrev" = "exec playerctl previous";
|
||||
"XF86AudioPause" = "exec playerctl pause";
|
||||
"XF86AudioPlay" = "exec playerctl play";
|
||||
"XF86AudioStop" = "exec playerctl stop";
|
||||
|
||||
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
|
||||
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
|
||||
|
||||
"XF86KbdBrightnessUp" = "exec brillo -kA 10.0";
|
||||
"XF86KbdBrightnessDown" = "exec brillo -kU 10.0";
|
||||
|
||||
# macros
|
||||
# "${mod}+q" = "exec em-record.sh";
|
||||
# "${mod}+p" = "exec em-play.sh";
|
||||
# "${mod}+Shift+p" = "exec em-play-loop.sh";
|
||||
|
||||
# permaclip
|
||||
# "${mod}+c" = "exec rofi -show register -modes \"register:${pc-set.outPath}/bin/pc-set.sh\" -theme gruvbox-dark";
|
||||
# "${mod}+v" = "exec rofi -show register -modes \"register:${pc-get.outPath}/bin/pc-get.sh\" -theme gruvbox-dark";
|
||||
};
|
||||
fonts = {
|
||||
names = ["Atkinson Hyperlegible"];
|
||||
style = "Regular";
|
||||
size = 9.0;
|
||||
};
|
||||
gaps = {
|
||||
#top = 24;
|
||||
inner = 15;
|
||||
outer = 0;
|
||||
smartGaps = true;
|
||||
smartBorders = "on";
|
||||
};
|
||||
colors = {
|
||||
background = "#1d2021";
|
||||
focused = {
|
||||
background = "#282828";
|
||||
border = "#504945";
|
||||
childBorder = "#7c6f64";
|
||||
indicator = "#504945";
|
||||
text = "#ebdbb2";
|
||||
};
|
||||
focusedInactive = {
|
||||
background = "#1d2021";
|
||||
border = "#504945";
|
||||
childBorder = "#665c54";
|
||||
indicator = "#664c54";
|
||||
text = "#d5c4a1";
|
||||
};
|
||||
placeholder = {
|
||||
background = "#1d2021";
|
||||
border = "#00ff00";
|
||||
childBorder = "#504945";
|
||||
indicator = "#504945";
|
||||
text = "#928374";
|
||||
};
|
||||
unfocused = {
|
||||
background = "#1d2021";
|
||||
border = "#3c3836";
|
||||
childBorder = "#504945";
|
||||
indicator = "#504945";
|
||||
text = "#bdae93";
|
||||
};
|
||||
urgent = {
|
||||
background = "#9d0006";
|
||||
border = "#cc241d";
|
||||
childBorder = "#3c3836";
|
||||
indicator = "#fb4943";
|
||||
text = "#ebdbb2";
|
||||
};
|
||||
};
|
||||
|
||||
window = {
|
||||
border = 2;
|
||||
titlebar = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{...}: {
|
||||
{pkgs, ...}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
|
@ -8,6 +8,10 @@
|
|||
|
||||
displayManager = {
|
||||
gdm.enable = true;
|
||||
sessionPackages = [
|
||||
pkgs.sway
|
||||
];
|
||||
gdm.autoLogin.delay = 5;
|
||||
};
|
||||
|
||||
windowManager.xmonad = {
|
||||
|
@ -15,5 +19,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
programs.sway.enable = true;
|
||||
|
||||
services.displayManager.defaultSession = "none+xmonad";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue