Add Kanshi, Hyprland, remove Niri
This commit is contained in:
parent
4e90ea2e1c
commit
6feca365ff
26 changed files with 430 additions and 461 deletions
|
@ -41,7 +41,6 @@
|
||||||
simple-tab-groups
|
simple-tab-groups
|
||||||
sponsorblock
|
sponsorblock
|
||||||
ublock-origin
|
ublock-origin
|
||||||
vimium
|
|
||||||
violentmonkey
|
violentmonkey
|
||||||
];
|
];
|
||||||
commonSearch = {
|
commonSearch = {
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"image/png" = [ "imv.desktop" ];
|
"image/png" = [ "imv.desktop" ];
|
||||||
"image/jpeg" = [ "imv.desktop" ];
|
"image/jpeg" = [ "imv.desktop" ];
|
||||||
"image/jp2" = [ "imv.desktop" ];
|
"image/jp2" = [ "imv.desktop" ];
|
||||||
|
"image/gif" = [ "mpv.desktop" ];
|
||||||
"video/*" = [ "mpv.desktop" ];
|
"video/*" = [ "mpv.desktop" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./niri
|
./hyprland
|
||||||
./programs
|
./programs
|
||||||
./sway
|
./sway
|
||||||
];
|
];
|
||||||
|
|
23
modules/home/wms/hyprland/autostart/default.nix
Normal file
23
modules/home/wms/hyprland/autostart/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ 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"
|
||||||
|
];
|
||||||
|
}
|
17
modules/home/wms/hyprland/default.nix
Normal file
17
modules/home/wms/hyprland/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./autostart
|
||||||
|
./hotkeys
|
||||||
|
./inputs
|
||||||
|
./outputs
|
||||||
|
./plugins
|
||||||
|
./rules
|
||||||
|
./theme
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.hyprlandPlugins; [ hy3 ];
|
||||||
|
};
|
||||||
|
}
|
170
modules/home/wms/hyprland/hotkeys/default.nix
Normal file
170
modules/home/wms/hyprland/hotkeys/default.nix
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
{ 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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
16
modules/home/wms/hyprland/inputs/default.nix
Normal file
16
modules/home/wms/hyprland/inputs/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
modules/home/wms/hyprland/outputs/default.nix
Normal file
29
modules/home/wms/hyprland/outputs/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ 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}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
22
modules/home/wms/hyprland/plugins/default.nix
Normal file
22
modules/home/wms/hyprland/plugins/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ 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)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
37
modules/home/wms/hyprland/rules/default.nix
Normal file
37
modules/home/wms/hyprland/rules/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{ 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";
|
||||||
|
};
|
||||||
|
}
|
51
modules/home/wms/hyprland/theme/default.nix
Normal file
51
modules/home/wms/hyprland/theme/default.nix
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
{ 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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,19 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.autostart = pkgs.writeText "autostart" ''
|
|
||||||
spawn-at-startup "waybar"
|
|
||||||
|
|
||||||
// Daemons and tray
|
|
||||||
spawn-at-startup "wpaperd"
|
|
||||||
spawn-at-startup "wl-paste" "-t" "text" "--watch" "clipman" "store" "-P"
|
|
||||||
spawn-at-startup "wl-copy"
|
|
||||||
spawn-at-startup "mako"
|
|
||||||
spawn-at-startup "rot8"
|
|
||||||
spawn-at-startup "wlsunset" "-s" "22:00" "-S" "07:30"
|
|
||||||
spawn-at-startup "${pkgs.xwayland-satellite}/bin/xwayland-satellite"
|
|
||||||
|
|
||||||
// Foreground
|
|
||||||
spawn-at-startup "thunderbird"
|
|
||||||
spawn-at-startup "vesktop"
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./autostart
|
|
||||||
./hotkeys
|
|
||||||
./inputs
|
|
||||||
./outputs
|
|
||||||
./rules
|
|
||||||
./theme
|
|
||||||
];
|
|
||||||
|
|
||||||
options.home.niri.settings = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.home.desktop.enable {
|
|
||||||
xdg.configFile."niri/config.kdl".text = ''
|
|
||||||
${builtins.readFile config.home.niri.settings.autostart}
|
|
||||||
${builtins.readFile config.home.niri.settings.hotkeys}
|
|
||||||
${builtins.readFile config.home.niri.settings.inputs}
|
|
||||||
${builtins.readFile config.home.niri.settings.outputs}
|
|
||||||
${builtins.readFile config.home.niri.settings.rules}
|
|
||||||
${builtins.readFile config.home.niri.settings.theme}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,164 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.hotkeys = let
|
|
||||||
primeMod = "Mod";
|
|
||||||
secMod = "Alt";
|
|
||||||
resizeAmount = "5";
|
|
||||||
in pkgs.writeText "hotkeys" ''
|
|
||||||
binds {
|
|
||||||
//// Launchers
|
|
||||||
|
|
||||||
// Browser
|
|
||||||
${primeMod}+F1 { spawn "sh" "-c" "librewolf -p Main --name MainBrowser | notify-send \"Main Browser\""; }
|
|
||||||
${primeMod}+F2 { spawn "sh" "-c" "librewolf -p Alt --name AltBrowser | notify-send \"Alternate Browser\""; }
|
|
||||||
|
|
||||||
// Virtual machines
|
|
||||||
${primeMod}+F4 { spawn "sh" "-c" "virt-manager | notify-send \"Virtual Machines\""; }
|
|
||||||
${primeMod}+F5 { spawn "sh" "-c" "looking-glass-client input:rawMouse=yes | notify-send \"Looking Glass\""; }
|
|
||||||
|
|
||||||
// Prime + key
|
|
||||||
${primeMod}+s { spawn "sh" "-c" "rofi -show run -p Command"; }
|
|
||||||
${primeMod}+c { spawn "sh" "-c" "clipman pick -t rofi"; }
|
|
||||||
${primeMod}+x { spawn "sh" "-c" "rofipower"; }
|
|
||||||
${primeMod}+b { spawn "sh" "-c" "pkill -USR1 waybar"; }
|
|
||||||
${primeMod}+Return { spawn "sh" "-c" "foot"; }
|
|
||||||
|
|
||||||
// Prime + shift + key
|
|
||||||
${primeMod}+Shift+s { spawn "sh" "-c" "rofi -show drun -modi drun -drun-display-format {name} -show-icons -disable-history"; }
|
|
||||||
${primeMod}+Shift+t { spawn "sh" "-c" "pcmanfm"; }
|
|
||||||
${primeMod}+Shift+e { spawn "sh" "-c" "bemoji -n -P 0"; }
|
|
||||||
${primeMod}+Shift+b { spawn "sh" "-c" "rofi-bluetooth"; }
|
|
||||||
${primeMod}+Shift+Return { spawn "sh" "-c" "foot ranger"; }
|
|
||||||
|
|
||||||
// Prime + ctrl + key
|
|
||||||
${primeMod}+Ctrl+s { spawn "sh" "-c" "rofiscratch"; }
|
|
||||||
${primeMod}+Ctrl+c { spawn "sh" "-c" "wlpicker && notify-send \"Color copied to clipboard\""; }
|
|
||||||
|
|
||||||
//// Media
|
|
||||||
|
|
||||||
// Volume
|
|
||||||
${secMod}+j { spawn "sh" "-c" "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; }
|
|
||||||
${secMod}+k { spawn "sh" "-c" "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; }
|
|
||||||
${secMod}+m { spawn "sh" "-c" "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
|
||||||
|
|
||||||
// MPD
|
|
||||||
${primeMod}+Backslash { spawn "sh" "-c" "playerctl -p firefox play-pause"; }
|
|
||||||
${primeMod}+Shift+Backslash { spawn "sh" "-c" "playerctl -p mpd play-pause"; }
|
|
||||||
${secMod}+Shift+h { spawn "sh" "-c" "playerctl -p mpd previous"; }
|
|
||||||
${secMod}+Shift+j { spawn "sh" "-c" "playerctl -p mpd volume 0.03-"; }
|
|
||||||
${secMod}+Shift+k { spawn "sh" "-c" "playerctl -p mpd volume 0.03+"; }
|
|
||||||
${secMod}+Shift+l { spawn "sh" "-c" "playerctl -p mpd next"; }
|
|
||||||
|
|
||||||
//// Miscellaneous
|
|
||||||
|
|
||||||
// Notifications
|
|
||||||
${primeMod}+n { spawn "sh" "-c" "makotoggle"; }
|
|
||||||
${primeMod}+Shift+n { spawn "sh" "-c" "makoctl restore"; }
|
|
||||||
${primeMod}+Ctrl+n { spawn "sh" "-c" "makoctl dismiss -a"; }
|
|
||||||
|
|
||||||
// Screenshots
|
|
||||||
${secMod}+F { screenshot; }
|
|
||||||
${secMod}+Shift+F { screenshot-screen; }
|
|
||||||
${secMod}+Ctrl+F { screenshot-window; }
|
|
||||||
|
|
||||||
// Display brightness
|
|
||||||
${primeMod}+equal { spawn "sh" "-c" "brightnessctl s 5%+"; }
|
|
||||||
${primeMod}+minus { spawn "sh" "-c" "brightnessctl s 5%-"; }
|
|
||||||
${primeMod}+Shift+equal { spawn "sh" "-c" "brightnessctl s 1%+"; }
|
|
||||||
${primeMod}+Shift+minus { spawn "sh" "-c" "brightnessctl s 1%-"; }
|
|
||||||
|
|
||||||
// Keyboard brightness
|
|
||||||
${primeMod}+Alt+equal { spawn "sh" "-c" "brightnessctl -d spi::kbd_backlight s 20%+"; }
|
|
||||||
${primeMod}+Alt+minus { spawn "sh" "-c" "brightnessctl -d spi::kbd_backlight s 20%-"; }
|
|
||||||
|
|
||||||
//// Window manager
|
|
||||||
${primeMod}+q { close-window; }
|
|
||||||
|
|
||||||
// Switch to workspaces
|
|
||||||
${primeMod}+grave { focus-workspace "${config.ws.w0}"; }
|
|
||||||
${primeMod}+1 { focus-workspace "${config.ws.w1}"; }
|
|
||||||
${primeMod}+2 { focus-workspace "${config.ws.w2}"; }
|
|
||||||
${primeMod}+3 { focus-workspace "${config.ws.w3}"; }
|
|
||||||
${primeMod}+4 { focus-workspace "${config.ws.w4}"; }
|
|
||||||
${primeMod}+5 { focus-workspace "${config.ws.w5}"; }
|
|
||||||
${primeMod}+6 { focus-workspace "${config.ws.w6}"; }
|
|
||||||
${primeMod}+7 { focus-workspace "${config.ws.w7}"; }
|
|
||||||
${primeMod}+8 { focus-workspace "${config.ws.w8}"; }
|
|
||||||
${primeMod}+9 { focus-workspace "${config.ws.w9}"; }
|
|
||||||
|
|
||||||
// Switch to alternate workspaces
|
|
||||||
${secMod}+F1 { focus-workspace "${config.ws.w1a}"; }
|
|
||||||
${secMod}+F2 { focus-workspace "${config.ws.w2a}"; }
|
|
||||||
${secMod}+F3 { focus-workspace "${config.ws.w3a}"; }
|
|
||||||
${secMod}+F4 { focus-workspace "${config.ws.w4a}"; }
|
|
||||||
${secMod}+F5 { focus-workspace "${config.ws.w5a}"; }
|
|
||||||
${secMod}+F6 { focus-workspace "${config.ws.w6a}"; }
|
|
||||||
${secMod}+F7 { focus-workspace "${config.ws.w7a}"; }
|
|
||||||
${secMod}+F8 { focus-workspace "${config.ws.w8a}"; }
|
|
||||||
${secMod}+F9 { focus-workspace "${config.ws.w9a}"; }
|
|
||||||
|
|
||||||
// Move window to and focus workspace
|
|
||||||
${primeMod}+Shift+grave { move-window-to-workspace "${config.ws.w0}"; }
|
|
||||||
${primeMod}+Shift+1 { move-window-to-workspace "${config.ws.w1}"; }
|
|
||||||
${primeMod}+Shift+2 { move-window-to-workspace "${config.ws.w2}"; }
|
|
||||||
${primeMod}+Shift+3 { move-window-to-workspace "${config.ws.w3}"; }
|
|
||||||
${primeMod}+Shift+4 { move-window-to-workspace "${config.ws.w4}"; }
|
|
||||||
${primeMod}+Shift+5 { move-window-to-workspace "${config.ws.w5}"; }
|
|
||||||
${primeMod}+Shift+6 { move-window-to-workspace "${config.ws.w6}"; }
|
|
||||||
${primeMod}+Shift+7 { move-window-to-workspace "${config.ws.w7}"; }
|
|
||||||
${primeMod}+Shift+8 { move-window-to-workspace "${config.ws.w8}"; }
|
|
||||||
${primeMod}+Shift+9 { move-window-to-workspace "${config.ws.w9}"; }
|
|
||||||
|
|
||||||
// Move window to and focus workspace
|
|
||||||
${secMod}+Shift+F1 { move-window-to-workspace "${config.ws.w1a}"; }
|
|
||||||
${secMod}+Shift+F2 { move-window-to-workspace "${config.ws.w2a}"; }
|
|
||||||
${secMod}+Shift+F3 { move-window-to-workspace "${config.ws.w3a}"; }
|
|
||||||
${secMod}+Shift+F4 { move-window-to-workspace "${config.ws.w4a}"; }
|
|
||||||
${secMod}+Shift+F5 { move-window-to-workspace "${config.ws.w5a}"; }
|
|
||||||
${secMod}+Shift+F6 { move-window-to-workspace "${config.ws.w6a}"; }
|
|
||||||
${secMod}+Shift+F7 { move-window-to-workspace "${config.ws.w7a}"; }
|
|
||||||
${secMod}+Shift+F8 { move-window-to-workspace "${config.ws.w8a}"; }
|
|
||||||
${secMod}+Shift+F9 { move-window-to-workspace "${config.ws.w9a}"; }
|
|
||||||
|
|
||||||
// Change focused window
|
|
||||||
${primeMod}+h { focus-column-or-monitor-left; }
|
|
||||||
${primeMod}+j { focus-window-down; }
|
|
||||||
${primeMod}+k { focus-window-up; }
|
|
||||||
${primeMod}+l { focus-column-or-monitor-right; }
|
|
||||||
|
|
||||||
// Move focused window
|
|
||||||
${primeMod}+Shift+h { move-column-left-or-to-monitor-left; }
|
|
||||||
${primeMod}+Shift+j { move-window-down; }
|
|
||||||
${primeMod}+Shift+k { move-window-up; }
|
|
||||||
${primeMod}+Shift+l { move-column-right-or-to-monitor-right; }
|
|
||||||
|
|
||||||
// Resize window
|
|
||||||
${primeMod}+${secMod}+h { set-column-width "-${resizeAmount}%"; }
|
|
||||||
${primeMod}+${secMod}+j { set-window-height "-${resizeAmount}%"; }
|
|
||||||
${primeMod}+${secMod}+k { set-window-height "+${resizeAmount}%"; }
|
|
||||||
${primeMod}+${secMod}+l { set-column-width "+${resizeAmount}%"; }
|
|
||||||
|
|
||||||
// Floating
|
|
||||||
${primeMod}+space { switch-focus-between-floating-and-tiling; }
|
|
||||||
${primeMod}+Shift+space { toggle-window-floating; }
|
|
||||||
|
|
||||||
// There are also commands that consume or expel a single window to the side.
|
|
||||||
${primeMod}+Ctrl+h { consume-or-expel-window-left; }
|
|
||||||
${primeMod}+Ctrl+l { consume-or-expel-window-right; }
|
|
||||||
|
|
||||||
// Toggle fullscreen
|
|
||||||
${primeMod}+f { maximize-column; }
|
|
||||||
${primeMod}+Shift+f { fullscreen-window; }
|
|
||||||
|
|
||||||
// Column functions
|
|
||||||
${primeMod}+r { switch-preset-column-width; }
|
|
||||||
${primeMod}+Shift+r { reset-window-height; }
|
|
||||||
${primeMod}+Shift+c { center-column; }
|
|
||||||
|
|
||||||
// Move these into scratchpads if or when they get supported
|
|
||||||
${primeMod}+Shift+BackSpace { spawn "sh" "-c" "foot btop"; }
|
|
||||||
${primeMod}+Shift+m { spawn "sh" "-c" "foot ncmpcpp"; }
|
|
||||||
${primeMod}+Shift+v { spawn "sh" "-c" "foot pulsemixer"; }
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.inputs = pkgs.writeText "inputs" ''
|
|
||||||
input {
|
|
||||||
mouse {
|
|
||||||
accel-profile "flat"
|
|
||||||
accel-speed -0.9
|
|
||||||
}
|
|
||||||
touchpad {
|
|
||||||
accel-profile "flat"
|
|
||||||
scroll-method "two-finger"
|
|
||||||
}
|
|
||||||
trackpoint {
|
|
||||||
off
|
|
||||||
}
|
|
||||||
warp-mouse-to-focus
|
|
||||||
focus-follows-mouse
|
|
||||||
}
|
|
||||||
clipboard {
|
|
||||||
disable-primary
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.outputs = pkgs.writeText "outputs" ''
|
|
||||||
// Workspace 1
|
|
||||||
workspace "${config.ws.w0}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w1}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w2}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w3}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w1a}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w2a}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w3a}" {
|
|
||||||
open-on-output "${config.displays.d1}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Workspace 2
|
|
||||||
workspace "${config.ws.w4}" {
|
|
||||||
open-on-output "${config.displays.d2}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w5}" {
|
|
||||||
open-on-output "${config.displays.d2}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w6}" {
|
|
||||||
open-on-output "${config.displays.d2}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w4a}" {
|
|
||||||
open-on-output "${config.displays.d2}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w5a}" {
|
|
||||||
open-on-output "${config.displays.d2}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Workspace 3
|
|
||||||
workspace "${config.ws.w7}" {
|
|
||||||
open-on-output "${config.displays.d3}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w8}" {
|
|
||||||
open-on-output "${config.displays.d3}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w9}" {
|
|
||||||
open-on-output "${config.displays.d3}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w7a}" {
|
|
||||||
open-on-output "${config.displays.d3}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w8a}" {
|
|
||||||
open-on-output "${config.displays.d3}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Workspace 4
|
|
||||||
workspace "${config.ws.w6a}" {
|
|
||||||
open-on-output "${config.displays.d4}"
|
|
||||||
}
|
|
||||||
workspace "${config.ws.w9a}" {
|
|
||||||
open-on-output "${config.displays.d4}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Monitors
|
|
||||||
output "${config.displays.d1}" {
|
|
||||||
mode "1920x1080@143.980"
|
|
||||||
position x=3840 y=405
|
|
||||||
variable-refresh-rate
|
|
||||||
}
|
|
||||||
output "${config.displays.d2}" {
|
|
||||||
mode "1920x1080@60"
|
|
||||||
position x=1920 y=405
|
|
||||||
}
|
|
||||||
output "${config.displays.d3}" {
|
|
||||||
mode "1680x1050@59.883"
|
|
||||||
transform "90"
|
|
||||||
position x=5760 y=0
|
|
||||||
}
|
|
||||||
output "${config.displays.d4}" {
|
|
||||||
mode "1920x1080@60"
|
|
||||||
position x=0 y=405
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.rules = pkgs.writeText "rules" ''
|
|
||||||
// Browsers
|
|
||||||
window-rule {
|
|
||||||
match app-id="MainBrowser"
|
|
||||||
open-on-workspace "${config.ws.w1}"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="AltBrowser"
|
|
||||||
open-on-workspace "${config.ws.w1a}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gaming
|
|
||||||
window-rule {
|
|
||||||
match app-id="steam"
|
|
||||||
open-on-workspace "${config.ws.w2}"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
|
|
||||||
default-floating-position x=10 y=10 relative-to="bottom-right"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Communication
|
|
||||||
window-rule {
|
|
||||||
match app-id="MiscBrowser"
|
|
||||||
match app-id="vesktop"
|
|
||||||
block-out-from "screencast"
|
|
||||||
open-maximized true
|
|
||||||
open-on-workspace "${config.ws.w7}"
|
|
||||||
}
|
|
||||||
window-rule {
|
|
||||||
match app-id="thunderbird"
|
|
||||||
block-out-from "screencast"
|
|
||||||
open-maximized true
|
|
||||||
open-on-workspace "${config.ws.w9}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Etc
|
|
||||||
window-rule {
|
|
||||||
match app-id="com.obsproject.Studio"
|
|
||||||
open-on-workspace "${config.ws.w4a}"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Layer rules
|
|
||||||
layer-rule {
|
|
||||||
match namespace="^notifications$"
|
|
||||||
block-out-from "screencast"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Everything else
|
|
||||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
|
||||||
|
|
||||||
hotkey-overlay {
|
|
||||||
skip-at-startup
|
|
||||||
}
|
|
||||||
|
|
||||||
environment {
|
|
||||||
DISPLAY ":0"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
config.home.niri.settings.theme = pkgs.writeText "theme" ''
|
|
||||||
prefer-no-csd
|
|
||||||
|
|
||||||
layout {
|
|
||||||
border {
|
|
||||||
width 3
|
|
||||||
active-color "#${config.look.colors.prime}"
|
|
||||||
inactive-color "#${config.look.colors.split}"
|
|
||||||
}
|
|
||||||
|
|
||||||
focus-ring {
|
|
||||||
off
|
|
||||||
}
|
|
||||||
|
|
||||||
gaps 7
|
|
||||||
center-focused-column "never"
|
|
||||||
default-column-width { proportion 0.5; }
|
|
||||||
|
|
||||||
preset-column-widths {
|
|
||||||
proportion 0.33333
|
|
||||||
proportion 0.5
|
|
||||||
proportion 0.66667
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -2,6 +2,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./grimsnap
|
./grimsnap
|
||||||
|
./kanshi
|
||||||
./mako
|
./mako
|
||||||
./swaylock
|
./swaylock
|
||||||
./waybar
|
./waybar
|
||||||
|
|
59
modules/home/wms/programs/kanshi/default.nix
Normal file
59
modules/home/wms/programs/kanshi/default.nix
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "tower";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "Microstep MSI G24C 0000000000001";
|
||||||
|
position = "3840,405";
|
||||||
|
mode = "1920x1080@143.979996Hz";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "BNQ BenQ GW2270 6CH00781019";
|
||||||
|
position = "1920,405";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "Eizo Nanao Corporation CG223W 23252050";
|
||||||
|
position = "5760,0";
|
||||||
|
transform = "90";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "Samsung Electric Company SAMSUNG Unknown";
|
||||||
|
position = "0,405";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "docked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "*";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "disable";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
profile = {
|
||||||
|
name = "undocked";
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,7 +5,6 @@
|
||||||
./hotkeys
|
./hotkeys
|
||||||
./inputs
|
./inputs
|
||||||
./outputs
|
./outputs
|
||||||
./programs
|
|
||||||
./rules
|
./rules
|
||||||
./theme
|
./theme
|
||||||
];
|
];
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
# Virtual machines
|
# Virtual machines
|
||||||
"${primeMod}+F4" = ''exec virt-manager | notify-send "Virtual Machines"'';
|
"${primeMod}+F4" = ''exec virt-manager | notify-send "Virtual Machines"'';
|
||||||
"${primeMod}+F5" = ''exec looking-glass-client input:rawMouse=yes | notify-send "Looking Glass"'';
|
"${primeMod}+F5" = ''exec looking-glass-client | notify-send "Looking Glass"'';
|
||||||
|
|
||||||
# Prime + key
|
# Prime + key
|
||||||
"${primeMod}+s" = ''exec rofi -show run -p Command'';
|
"${primeMod}+s" = ''exec rofi -show run -p Command'';
|
||||||
|
@ -34,7 +34,6 @@
|
||||||
"${primeMod}+Shift+Return" = ''exec foot ranger'';
|
"${primeMod}+Shift+Return" = ''exec foot ranger'';
|
||||||
|
|
||||||
# Prime + ctrl + key
|
# Prime + ctrl + key
|
||||||
"${primeMod}+Ctrl+x" = ''exec prop-sway'';
|
|
||||||
"${primeMod}+Ctrl+s" = ''exec rofiscratch'';
|
"${primeMod}+Ctrl+s" = ''exec rofiscratch'';
|
||||||
"${primeMod}+Ctrl+c" = ''exec wlpicker && notify-send "Color copied to clipboard"'';
|
"${primeMod}+Ctrl+c" = ''exec wlpicker && notify-send "Color copied to clipboard"'';
|
||||||
|
|
||||||
|
@ -45,7 +44,7 @@
|
||||||
"${secMod}+k" = ''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'';
|
"${secMod}+m" = ''exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'';
|
||||||
|
|
||||||
# MPD
|
# MPRIS
|
||||||
"${primeMod}+Backslash" = ''exec playerctl -p firefox play-pause'';
|
"${primeMod}+Backslash" = ''exec playerctl -p firefox play-pause'';
|
||||||
"${primeMod}+Shift+Backslash" = ''exec playerctl -p mpd play-pause'';
|
"${primeMod}+Shift+Backslash" = ''exec playerctl -p mpd play-pause'';
|
||||||
"${secMod}+Shift+h" = ''exec playerctl -p mpd previous'';
|
"${secMod}+Shift+h" = ''exec playerctl -p mpd previous'';
|
||||||
|
|
|
@ -41,30 +41,5 @@
|
||||||
(assign "${config.displays.d2}" workspaces2) ++
|
(assign "${config.displays.d2}" workspaces2) ++
|
||||||
(assign "${config.displays.d3}" workspaces3) ++
|
(assign "${config.displays.d3}" workspaces3) ++
|
||||||
(assign "${config.displays.d4}" workspaces4);
|
(assign "${config.displays.d4}" workspaces4);
|
||||||
|
|
||||||
output = {
|
|
||||||
${config.displays.d1} = {
|
|
||||||
pos = "3840 405";
|
|
||||||
mode = "1920x1080@143.980Hz";
|
|
||||||
max_render_time = "3";
|
|
||||||
allow_tearing = "yes";
|
|
||||||
};
|
|
||||||
${config.displays.d2} = {
|
|
||||||
pos = "1920 405";
|
|
||||||
mode = "1920x1080@60Hz";
|
|
||||||
max_render_time = "3";
|
|
||||||
};
|
|
||||||
${config.displays.d3} = {
|
|
||||||
pos = "5760 0";
|
|
||||||
mode = "1680x1050@59.883Hz";
|
|
||||||
transform = "270";
|
|
||||||
max_render_time = "3";
|
|
||||||
};
|
|
||||||
${config.displays.d4} = {
|
|
||||||
pos = "0 405";
|
|
||||||
mode = "1920x1080@60Hz";
|
|
||||||
max_render_time = "3";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./prop-sway ];
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; lib.mkIf config.wayland.windowManager.sway.enable [
|
|
||||||
(pkgs.writeScriptBin "prop-sway" ''
|
|
||||||
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | ${pkgs.slurp}/bin/slurp -r -c ${config.look.colors.prime} -B 00000066 -b 00000000)
|
|
||||||
if [ -n "$selected_window" ]; then
|
|
||||||
app_id=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .app_id')
|
|
||||||
system=$(sed 's/xdg_shell/Wayland/g; s/xwayland/Xorg/g' < <(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .shell'))
|
|
||||||
notify-send "$(echo -e "Window's app_id: $app_id\nWindow System: $system")"
|
|
||||||
fi
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -2,9 +2,8 @@
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.system.desktop.enable {
|
config = lib.mkIf config.system.desktop.enable {
|
||||||
programs = {
|
programs = {
|
||||||
|
hyprland.enable = true;
|
||||||
sway.enable = true;
|
sway.enable = true;
|
||||||
niri.enable = true;
|
|
||||||
xwayland.enable = lib.mkForce true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.sessionVariables.WLR_RENDERER = "vulkan";
|
environment.sessionVariables.WLR_RENDERER = "vulkan";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue