mirror of
https://forge.katzen.cafe/schrottkatze/nix-configs.git
synced 2024-12-23 09:45:52 +01:00
228 lines
7 KiB
Nix
228 lines
7 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
# stolen: https://github.com/MultisampledNight/core/blob/678f176cb24f5dc4b5dc629cfd3e643487be01bb/system/packages/layaway/default.nix#L7-L25
|
|
layaway = pkgs.rustPlatform.buildRustPackage rec {
|
|
pname = "layaway";
|
|
version = "0.2.0";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "MultisampledNight";
|
|
repo = pname;
|
|
rev = "v${version}";
|
|
hash = "sha256-SzAuVFEy56svasO3+1p6ysBRrIQd0UZX++/P4ZuwWm0=";
|
|
};
|
|
|
|
cargoHash = "sha256-liWP6AI72xG1O+MbCZ0cjJ2llHj/iv3hR/U3BLv5fKA=";
|
|
|
|
meta = with lib; {
|
|
description = "Layout creation for Sway via a relative and human-readable DSL.";
|
|
homepage = "https://github.com/MultisampledNight/layaway";
|
|
maintainers = [maintainers.multisn8];
|
|
};
|
|
};
|
|
in {
|
|
programs.wofi.enable = true;
|
|
programs.swaylock.enable = true;
|
|
services.network-manager-applet.enable = true;
|
|
home.packages = [layaway];
|
|
|
|
xdg.portal = {
|
|
enable = true;
|
|
extraPortals = [pkgs.xdg-desktop-portal-wlr];
|
|
# sway = {
|
|
# default = ["wlr"];
|
|
# };
|
|
config.common.default = "*";
|
|
};
|
|
|
|
services.swayidle = {
|
|
enable = true;
|
|
events = [
|
|
{
|
|
event = "before-sleep";
|
|
command = "${pkgs.swaylock}/bin/swaylock -fF -c 442244";
|
|
}
|
|
{
|
|
event = "lock";
|
|
command = "swaylock -c 441144";
|
|
}
|
|
];
|
|
};
|
|
|
|
wayland.windowManager.sway = {
|
|
enable = true;
|
|
systemd = {
|
|
enable = true;
|
|
};
|
|
wrapperFeatures = {
|
|
base = true;
|
|
gtk = 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";
|
|
};
|
|
};
|
|
terminal = "kitty";
|
|
output = {
|
|
"*" = {
|
|
bg = "${../xmonad/wallpaper/wallpaper.jpg} fill";
|
|
};
|
|
};
|
|
input = {
|
|
"*" = {
|
|
xkb_layout = "us";
|
|
xkb_variant = "altgr-intl";
|
|
};
|
|
};
|
|
startup = [
|
|
{
|
|
command = "eww open-many topBar bottomBar";
|
|
}
|
|
{
|
|
command = "sleep 1 && mullvad-gui";
|
|
}
|
|
];
|
|
bars = [];
|
|
menu = "wofi -d";
|
|
modifier = "Mod4";
|
|
assigns = {
|
|
"1" = [
|
|
{class = "^Signal$";}
|
|
{class = "^Element$";}
|
|
{class = "^Evolution$";}
|
|
{class = "^teams-for-linux$";}
|
|
];
|
|
"2" = [
|
|
{app_id = "^firefox$";}
|
|
];
|
|
};
|
|
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 gscreenshot -csf $HOME/Pictures/screenshots";
|
|
"${mod}+a" = "exec gscreenshot -cf $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";
|
|
|
|
# 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";
|
|
};
|
|
focus = {
|
|
wrapping = "yes";
|
|
};
|
|
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 = false;
|
|
};
|
|
};
|
|
};
|
|
}
|