Remove Hyprland and make Sway work on Nvidia

This commit is contained in:
Bun 2025-05-05 01:43:21 -04:00
parent 30b3ff1d0f
commit 1a4e8b4b88
12 changed files with 12 additions and 383 deletions

View file

@ -1,7 +1,6 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./hyprland
./programs ./programs
./sway ./sway
]; ];

View file

@ -1,23 +0,0 @@
{ pkgs, ... }:
{
wayland.windowManager.hyprland.settings.exec-once = [
"waybar"
# Scratchpads
"foot -a btop -T Gotop btop"
"foot -a music -T Music ncmpcpp"
"foot -a sound -T Sound pulsemixer"
# Deamons and tray
"wpaperd"
"wl-paste -t text --watch clipman store -P"
"wl-copy"
"mako"
"rot8"
"wlsunset -s 22:30 -S 07:30"
# Foreground
"thunderbird"
"vesktop"
];
}

View file

@ -1,17 +0,0 @@
{ config, pkgs, ... }:
{
imports = [
./autostart
./hotkeys
./inputs
./outputs
./plugins
./rules
./theme
];
wayland.windowManager.hyprland = {
enable = true;
plugins = with pkgs.hyprlandPlugins; [ hy3 ];
};
}

View file

@ -1,170 +0,0 @@
{ pkgs, config, ... }:
{
wayland.windowManager.hyprland.settings = let
# Set default modifier and variables
primeMod = "Super";
secMod = "Alt";
resizeAmount = "55";
in {
bind = [
## Launchers
# Browser
''${primeMod}, F1, exec, librewolf -p Main --name MainBrowser | notify-send "Main Browser"''
''${primeMod}, F2, exec, librewolf -p Alt --name AltBrowser | notify-send "Alternate Browser"''
''${primeMod}, F3, exec, librewolf -p Misc --name MiscBrowser | notify-send "Miscellaneous Browser"''
# Virtual machines
''${primeMod}, F4, exec, virt-manager | notify-send "Virtual Machines"''
''${primeMod}, F5, exec, looking-glass-client | notify-send "Looking Glass"''
# Prime + key
"${primeMod}, s, exec, rofi -show run -p Command"
"${primeMod}, c, exec, clipman pick -t rofi"
"${primeMod}, x, exec, rofipower"
"${primeMod}, b, exec, pkill -USR1 waybar"
"${primeMod}, Return, exec, foot"
# Prime + shift + key
"${primeMod} Shift, s, exec, rofi -show drun -modi drun -drun-display-format {name} -show-icons -disable-history"
"${primeMod} Shift, t, exec, pcmanfm"
"${primeMod} Shift, e, exec, bemoji -n -P 0"
"${primeMod} Shift, b, exec, rofi-bluetooth"
"${primeMod} Shift, Return, exec, foot ranger"
# Prime + ctrl + key
"${primeMod} Ctrl, s, exec, rofiscratch"
''${primeMod} Ctrl, c, exec, wlpicker && notify-send "Color copied to clipboard"''
## Media
# Volume
"${secMod}, j, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
"${secMod}, k, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
"${secMod}, m, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
# MPRIS
"${primeMod}, Backslash, exec, playerctl -p firefox play-pause"
"${primeMod} Shift, Backslash, exec, playerctl -p mpd play-pause"
"${secMod} Shift, h, exec, playerctl -p mpd previous"
"${secMod} Shift, j, exec, playerctl -p mpd volume 0.03-"
"${secMod} Shift, k, exec, playerctl -p mpd volume 0.03+"
"${secMod} Shift, l, exec, playerctl -p mpd next"
## Miscellaneous
# Notifications
"${primeMod}, n, exec, makotoggle"
"${primeMod} Shift, n, exec, makoctl restore"
"${primeMod} Ctrl, n, exec, makoctl dismiss -a"
# Screenshots
''${secMod}, f, exec, XDG_SCREENSHOTS_DIR="$HOME/Pictures/Screenshots" SLURP_ARGS="-w 3 -c 3823C4 -B 00000066 -b 00000099" grimblast --freeze --notify copysave area''
"${secMod} Shift, f, exec, grimblast --notify copysave output"
"${secMod} Ctrl, f, exec, grimblast --notify copysave active"
# Screenshots
# Display brightness
"${primeMod}, equal, exec, brightnessctl s 5%+"
"${primeMod}, minus, exec, brightnessctl s 5%-"
"${primeMod} Shift, equal, exec, brightnessctl s 1%+"
"${primeMod} Shift, minus, exec, brightnessctl s 1%-"
# Keyboard brightness
"${primeMod} Alt, equal, exec, brightnessctl -d spi::kbd_backlight s 20%+"
"${primeMod} Alt, minus, exec, brightnessctl -d spi::kbd_backlight s 20%-"
## Window manager
"${primeMod}, q, killactive,"
# Switch to workspaces
"${primeMod}, grave, workspace, name:0"
"${primeMod}, 1, workspace, name:${config.ws.w1}"
"${primeMod}, 2, workspace, name:${config.ws.w2}"
"${primeMod}, 3, workspace, name:${config.ws.w3}"
"${primeMod}, 4, workspace, name:${config.ws.w4}"
"${primeMod}, 5, workspace, name:${config.ws.w5}"
"${primeMod}, 6, workspace, name:${config.ws.w6}"
"${primeMod}, 7, workspace, name:${config.ws.w7}"
"${primeMod}, 8, workspace, name:${config.ws.w8}"
"${primeMod}, 9, workspace, name:${config.ws.w9}"
# Switch to alternate workspaces
"${secMod}, F1, workspace, name:${config.ws.w1a}"
"${secMod}, F2, workspace, name:${config.ws.w2a}"
"${secMod}, F3, workspace, name:${config.ws.w3a}"
"${secMod}, F4, workspace, name:${config.ws.w4a}"
"${secMod}, F5, workspace, name:${config.ws.w5a}"
"${secMod}, F6, workspace, name:${config.ws.w6a}"
"${secMod}, F7, workspace, name:${config.ws.w7a}"
"${secMod}, F8, workspace, name:${config.ws.w8a}"
"${secMod}, F9, workspace, name:${config.ws.w9a}"
# Move window to and focus workspace
"${primeMod} Shift, grave, movetoworkspace, name:${config.ws.w0}"
"${primeMod} Shift, 1, movetoworkspace, name:${config.ws.w1}"
"${primeMod} Shift, 2, movetoworkspace, name:${config.ws.w2}"
"${primeMod} Shift, 3, movetoworkspace, name:${config.ws.w3}"
"${primeMod} Shift, 4, movetoworkspace, name:${config.ws.w4}"
"${primeMod} Shift, 5, movetoworkspace, name:${config.ws.w5}"
"${primeMod} Shift, 6, movetoworkspace, name:${config.ws.w6}"
"${primeMod} Shift, 7, movetoworkspace, name:${config.ws.w7}"
"${primeMod} Shift, 8, movetoworkspace, name:${config.ws.w8}"
"${primeMod} Shift, 9, movetoworkspace, name:${config.ws.w9}"
# Move window to and focus alternate workspace
"${secMod} Shift, F1, movetoworkspace, name:${config.ws.w1a}"
"${secMod} Shift, F2, movetoworkspace, name:${config.ws.w2a}"
"${secMod} Shift, F3, movetoworkspace, name:${config.ws.w3a}"
"${secMod} Shift, F4, movetoworkspace, name:${config.ws.w4a}"
"${secMod} Shift, F5, movetoworkspace, name:${config.ws.w5a}"
"${secMod} Shift, F6, movetoworkspace, name:${config.ws.w6a}"
"${secMod} Shift, F7, movetoworkspace, name:${config.ws.w7a}"
"${secMod} Shift, F8, movetoworkspace, name:${config.ws.w8a}"
"${secMod} Shift, F9, movetoworkspace, name:${config.ws.w9a}"
# Change focused window
"${primeMod}, h, hy3:movefocus, l"
"${primeMod}, j, hy3:movefocus, d"
"${primeMod}, k, hy3:movefocus, u"
"${primeMod}, l, hy3:movefocus, r"
# Move focused window
"${primeMod} Shift, h, hy3:movewindow, l"
"${primeMod} Shift, j, hy3:movewindow, d"
"${primeMod} Shift, k, hy3:movewindow, u"
"${primeMod} Shift, l, hy3:movewindow, r"
# Resize window
"${primeMod} ${secMod}, h, resizeactive, -${resizeAmount} 0"
"${primeMod} ${secMod}, j, resizeactive, 0 -${resizeAmount}"
"${primeMod} ${secMod}, k, resizeactive, 0 ${resizeAmount}"
"${primeMod} ${secMod}, l, resizeactive, ${resizeAmount} 0"
# Floating
"${primeMod}, Space, hy3:togglefocuslayer"
"${primeMod} Shift, Space, togglefloating"
# Change layout
"${primeMod}, f, fullscreen"
"${primeMod}, w, hy3:changegroup, opposite"
"${primeMod}, v, hy3:makegroup, v"
"${primeMod}, e, hy3:changegroup, toggletab"
## Scratchpads
"${primeMod} Shift, BackSpace, togglespecialworkspace, btop"
"${primeMod} Shift, m, togglespecialworkspace, music"
"${primeMod} Shift, v, togglespecialworkspace, sound"
];
# Mouse
bindm = [
"${primeMod}, mouse:272, movewindow"
"${primeMod}, mouse:273, resizewindow"
];
bindn = [
",mouse:272, hy3:focustab, mouse"
];
};
}

View file

@ -1,16 +0,0 @@
{ config, ... }:
{
wayland.windowManager.hyprland.settings = {
input = {
follow_mouse = 1;
accel_profile = "flat";
scroll_factor = 0.7;
touchpad.natural_scroll = false;
};
gestures.workspace_swipe = false;
device = {
name = "sinowealth-game-mouse";
sensitivity = "-0.9";
};
};
}

View file

@ -1,29 +0,0 @@
{ config, ... }:
{
# Monitors
wayland.windowManager.hyprland.settings = {
workspace = [
"name:${config.ws.w1}, monitor:${config.displays.d1}, default:true"
"name:${config.ws.w2}, monitor:${config.displays.d1}"
"name:${config.ws.w3}, monitor:${config.displays.d1}"
"name:${config.ws.w1a}, monitor:${config.displays.d1}"
"name:${config.ws.w2a}, monitor:${config.displays.d1}"
"name:${config.ws.w3a}, monitor:${config.displays.d1}"
"name:${config.ws.w4}, monitor:${config.displays.d2}, default:true"
"name:${config.ws.w5}, monitor:${config.displays.d2}"
"name:${config.ws.w6}, monitor:${config.displays.d2}"
"name:${config.ws.w4a}, monitor:${config.displays.d2}"
"name:${config.ws.w5a}, monitor:${config.displays.d2}"
"name:${config.ws.w7}, monitor:${config.displays.d3}, default:true"
"name:${config.ws.w8}, monitor:${config.displays.d3}"
"name:${config.ws.w9}, monitor:${config.displays.d3}"
"name:${config.ws.w7a}, monitor:${config.displays.d3}"
"name:${config.ws.w8a}, monitor:${config.displays.d3}"
"name:${config.ws.w6a}, monitor:${config.displays.d4}, default:true"
"name:${config.ws.w9a}, monitor:${config.displays.d4}"
];
};
}

View file

@ -1,22 +0,0 @@
{ config, ... }:
{
wayland.windowManager.hyprland.settings.plugin = {
hy3 = {
no_gaps_when_only = 0;
node_collapse_policy = 0;
group_inset = 5;
tabs = {
text_font = config.look.fonts.main;
text_height = 10;
height = 17;
padding = 0;
rounding = 0;
"col.active" = "rgba(${config.look.colors.prime}FF)";
"col.inactive" = "rgba(${config.look.colors.split}FF)";
"col.urgent" = "rgba(${config.look.colors.urgent}FF)";
"col.text.active" = "rgba(${config.look.colors.text}FF)";
"col.text.inactive" = "rgba(${config.look.colors.text}FF)";
};
};
};
}

View file

@ -1,37 +0,0 @@
{ config, ... }:
{
wayland.windowManager.hyprland.settings = {
windowrulev2 = [
# Scratchpads
"workspace special:btop silent, class:^(btop)$"
"workspace special:music silent, class:^(music)$"
"workspace special:sound silent, class:^(sound)$"
# Browsers
"workspace name:${config.ws.w1} silent, class:(MainBrowser)"
"workspace name:${config.ws.w1a} silent, class:(AltBrowser)"
# Communication
"workspace name:${config.ws.w7} silent, class:(MiscBrowser)"
"workspace name:${config.ws.w7} silent, class:(vesktop)"
"workspace name:${config.ws.w8} silent, class:(org.gnome.Fractal)"
"workspace name:${config.ws.w8} silent, class:(org.telegram.desktop)"
"workspace name:${config.ws.w9} silent, class:(thunderbird)"
# Etc
"workspace name:${config.ws.w2} silent, class:(steam)"
"workspace name:${config.ws.w2} silent, class:(heroic)"
"workspace name:${config.ws.w2a} silent, class:(looking-glass-client)"
"workspace name:${config.ws.w4a} silent, class:(com.obsproject.Studio)"
# Borderless single window part 1
"bordersize 0, floating:0, onworkspace:w[tv1]"
];
# Borderless on single window part 2
workspace = [ "w[tv1], gapsout:0, gapsin:0" ];
# Borderless screenshots
layerrule = "noanim, selection";
};
}

View file

@ -1,51 +0,0 @@
{ config, ... }:
{
wayland.windowManager.hyprland.settings = {
general = {
"col.active_border" = "rgba(${config.look.colors.prime}FF)";
"col.inactive_border" = "rgba(${config.look.colors.split}FF)";
gaps_in = 4;
gaps_out = 10;
border_size = config.look.border.string;
allow_tearing = true;
layout = "hy3";
};
misc = {
disable_hyprland_logo = true;
font_family = config.look.fonts.main;
middle_click_paste = false;
vrr = 2;
};
decoration.blur.enabled = false;
animations = {
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
};
}

View file

@ -10,12 +10,13 @@
{ command = "foot -a sound -T Sound pulsemixer"; } { command = "foot -a sound -T Sound pulsemixer"; }
# Daemons and tray # Daemons and tray
{ command = "wpaperd"; } { command = "kanshi"; }
{ command = "wl-paste -t text --watch clipman store -P"; }
{ command = "wl-copy"; }
{ command = "mako"; } { command = "mako"; }
{ command = "rot8"; } { command = "rot8"; }
{ command = "wl-copy"; }
{ command = "wl-paste -t text --watch clipman store -P"; }
{ command = "wlsunset -s 22:30 -S 07:30"; } { command = "wlsunset -s 22:30 -S 07:30"; }
{ command = "wpaperd"; }
# Foreground # Foreground
{ command = "thunderbird"; } { command = "thunderbird"; }

View file

@ -1,9 +1,10 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
config = lib.mkIf config.system.desktop.enable { config = lib.mkIf config.system.desktop.enable {
programs = { programs.sway = {
hyprland.enable = true; enable = true;
sway.enable = true; extraOptions = [ "--unsupported-gpu" ];
wrapperFeatures.gtk = true;
}; };
environment.sessionVariables.WLR_RENDERER = "vulkan"; environment.sessionVariables.WLR_RENDERER = "vulkan";

View file

@ -1,14 +1,7 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
xdg.portal = lib.mkIf config.system.desktop.enable { xdg.portal.extraPortals = with pkgs; lib.mkIf config.system.desktop.enable [
wlr = { xdg-desktop-portal-gnome
enable = lib.mkForce true; xdg-desktop-portal-wlr
settings.screencast = { ];
max_fps = 60;
chooser_type = "simple";
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or -B 00000066 -b 00000099";
};
};
extraPortals = with pkgs; [ xdg-desktop-portal-gnome ];
};
} }