diff --git a/niri/Justfile b/niri/Justfile new file mode 100644 index 0000000..3c9a793 --- /dev/null +++ b/niri/Justfile @@ -0,0 +1,12 @@ +# Variables +config_dir := source_directory() +niri_dest := env("HOME") + "/.config/niri" + +default: deploy + +# Deploy Niri configuration +deploy: + @echo "Deploying Niri configuration..." + mkdir -p ~/.config + ln -sfnT {{config_dir}} {{niri_dest}} + @echo "Deployment successful!" diff --git a/niri/config.kdl b/niri/config.kdl new file mode 100644 index 0000000..6c1ca0a --- /dev/null +++ b/niri/config.kdl @@ -0,0 +1,16 @@ +include "internal.kdl" +include "screens/home.kdl" +include "screens/hei.kdl" +include "screens/heifr.kdl" +include "screens/isc.kdl" +include "input.kdl" +include "layout.kdl" +include "keybindings.kdl" +include "rules.kdl" +include "dms.kdl" +// include "noctalia.kdl" +recent-windows { + off +} +include "screens/lab320.kdl" +// include "/binds.kdl" diff --git a/niri/dms.kdl b/niri/dms.kdl new file mode 100644 index 0000000..1ad9b59 --- /dev/null +++ b/niri/dms.kdl @@ -0,0 +1,24 @@ +spawn-at-startup "bash" "-c" "wl-paste --watch cliphist store &" + +binds { + + // Mod+Space hotkey-overlay-title="Application Launcher" { + // spawn "dms" "ipc" "call" "spotlight" "toggle"; + // } + + Mod+Alt+V hotkey-overlay-title="Clipboard Manager" { + spawn "dms" "ipc" "call" "clipboard" "toggle"; + } + + Mod+Alt+s hotkey-overlay-title="Settings" { + spawn "dms" "ipc" "call" "settings" "toggle"; + } + + Mod+N hotkey-overlay-title="Notification Center" { + spawn "dms" "ipc" "call" "notifications" "toggle"; + } + + Super+Alt+L hotkey-overlay-title="Lock the Screen: lock" { + spawn-sh "dms ipc call lock lock"; + } +} diff --git a/niri/input.kdl b/niri/input.kdl new file mode 100644 index 0000000..c273bc5 --- /dev/null +++ b/niri/input.kdl @@ -0,0 +1,21 @@ +input { + touchpad { + tap + // dwt + // dwtp + // drag false + // drag-lock + natural-scroll + } + + keyboard { + xkb { + layout "ch" + variant "fr" + // options "compose:prsc" + } + } + + // warp-mouse-to-focus + // focus-follows-mouse max-scroll-amount="0%" +} diff --git a/niri/internal.kdl b/niri/internal.kdl new file mode 100644 index 0000000..0afa27a --- /dev/null +++ b/niri/internal.kdl @@ -0,0 +1,25 @@ +hotkey-overlay { + skip-at-startup +} + +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +output "LG Display 0x05EE Unknown" { + mode "1920x1080" + scale 1.5 + transform "normal" + position x=0 y=0 +} + +window-rule { + // Rounded corners for a modern look. + geometry-corner-radius 20 + + // Clips window contents to the rounded corner boundaries. + clip-to-geometry true +} + +debug { + // Allows notification actions and window activation from Noctalia. + honor-xdg-activation-with-invalid-serial +} diff --git a/niri/keybindings.kdl b/niri/keybindings.kdl new file mode 100644 index 0000000..0b63aab --- /dev/null +++ b/niri/keybindings.kdl @@ -0,0 +1,260 @@ +binds { + // Keys consist of modifiers separated by + signs, followed by an XKB key name + // in the end. To find an XKB name for a particular key, you may use a program + // like wev. + // + // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt + // when running as a winit window. + // + // Most actions that you can bind here can also be invoked programmatically with + // `niri msg action do-something`. + + // Mod-Shift-/, which is usually the same as Mod-?, + // shows a list of important hotkeys. + Mod+Shift+7 { show-hotkey-overlay; } + + // Suggested binds for running programs: terminal, app launcher, screen locker. + // Mod+T hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; } + Mod+T hotkey-overlay-title="Open Terminal" { spawn "gnome-terminal"; } + // Mod+T hotkey-overlay-title="Open Terminal" { spawn "ghostty"; } + + // Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { + // spawn-sh "swaylock -i [[/home/remi/Nextcloud/Pictures/Pictures/Farden/202486.jpg]:] --scaling fill --ring-color bb00cc --key-hl-color 880033 --line-color 00000000 --inside-color 00000088 --separator-color 00000000 --indicator-idle-visible"; + // } + + // Example volume keys mappings for PipeWire & WirePlumber. + // The allow-when-locked=true property makes them work even when the session is locked. + // Using spawn-sh allows to pass multiple arguments together with the command. + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + // Example brightness key mappings for brightnessctl. + // You can use regular spawn with multiple arguments too (to avoid going through "sh"), + // but you need to manually put each argument in separate "" quotes. + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + // Open/close the Overview: a zoomed-out view of workspaces and windows. + // You can also move the mouse into the top-left hot corner, + // or do a four-finger swipe up on a touchpad. + Mod+O repeat=false { toggle-overview; } + + Mod+Q repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + Mod+Ctrl+L { move-column-right; } + + // Alternative commands that move across workspaces when reaching + // the first or last window in a column. + // Mod+J { focus-window-or-workspace-down; } + // Mod+K { focus-window-or-workspace-up; } + // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } + // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + Mod+Shift+H { focus-monitor-left; } + Mod+Shift+J { focus-monitor-down; } + Mod+Shift+K { focus-monitor-up; } + Mod+Shift+L { focus-monitor-right; } + + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } + + // Alternatively, there are commands to move just a single window: + // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } + // ... + + // And you can also move a whole workspace to another monitor: + // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } + Mod+Shift+Ctrl+Page_Up { move-workspace-to-monitor-up; } + Mod+Shift+Ctrl+Page_Down { move-workspace-to-monitor-down; } + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + + // Alternatively, there are commands to move just a single window: + // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } + // ... + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + // You can bind mouse wheel scroll ticks using the following syntax. + // These binds will change direction based on the natural-scroll setting. + // + // To avoid scrolling through workspaces really fast, you can use + // the cooldown-ms property. The bind will be rate-limited to this value. + // You can set a cooldown on any bind, but it's most useful for the wheel. + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + + Mod+WheelScrollRight { focus-column-right; } + Mod+WheelScrollLeft { focus-column-left; } + Mod+Ctrl+WheelScrollRight { move-column-right; } + Mod+Ctrl+WheelScrollLeft { move-column-left; } + + // Usually scrolling up and down with Shift in applications results in + // horizontal scrolling; these binds replicate that. + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + // Similarly, you can bind touchpad scroll "ticks". + // Touchpad scrolling is continuous, so for these binds it is split into + // discrete intervals. + // These binds are also affected by touchpad's natural-scroll, so these + // example binds are "inverted", since we have natural-scroll enabled for + // touchpads by default. + // Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } + // Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } + + // You can refer to workspaces by index. However, keep in mind that + // niri is a dynamic workspace system, so these commands are kind of + // "best effort". Trying to refer to a workspace index bigger than + // the current workspace count will instead refer to the bottommost + // (empty) workspace. + // + // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on + // will all refer to the 3rd workspace. + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Ctrl+1 { move-column-to-workspace 1; } + Mod+Ctrl+2 { move-column-to-workspace 2; } + Mod+Ctrl+3 { move-column-to-workspace 3; } + Mod+Ctrl+4 { move-column-to-workspace 4; } + Mod+Ctrl+5 { move-column-to-workspace 5; } + Mod+Ctrl+6 { move-column-to-workspace 6; } + Mod+Ctrl+7 { move-column-to-workspace 7; } + Mod+Ctrl+8 { move-column-to-workspace 8; } + Mod+Ctrl+9 { move-column-to-workspace 9; } + + // Alternatively, there are commands to move just a single window: + // Mod+Ctrl+1 { move-window-to-workspace 1; } + + // Switches focus between the current and the previous workspace. + // Mod+Tab { focus-workspace-previous; } + + // The following binds move the focused window in and out of a column. + // If the window is alone, they will consume it into the nearby column to the side. + // If the window is already in a column, they will expel it out. + Mod+ISO_Level3_Shift+egrave { consume-or-expel-window-left; } + Mod+ISO_Level3_Shift+dead_diaeresis { consume-or-expel-window-right; } + + // Consume one window from the right to the bottom of the focused column. + Mod+Comma { consume-window-into-column; } + // Expel the bottom window from the focused column to the right. + Mod+Period { expel-window-from-column; } + + Mod+R { switch-preset-column-width; } + // Cycling through the presets in reverse order is also possible. + // Mod+R { switch-preset-column-width-back; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + // Expand the focused column to space not taken up by other fully visible columns. + // Makes the column "fill the rest of the space". + Mod+Ctrl+F { expand-column-to-available-width; } + + Mod+C { center-column; } + + // Center all fully visible columns on screen. + Mod+Ctrl+C { center-visible-columns; } + + // Finer width adjustments. + // This command can also: + // * set width in pixels: "1000" + // * adjust width in pixels: "-5" or "+5" + // * set width as a percentage of screen width: "25%" + // * adjust width as a percentage of screen width: "-10%" or "+10%" + // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, + // set-column-width "100" will make the column occupy 200 physical screen pixels. + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + // Finer height adjustments when in column with other windows. + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + // Move the focused window between the floating and the tiling layout. + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + // Toggle tabbed column display mode. + // Windows in this column will appear as vertical tabs, + // rather than stacked on top of each other. + Mod+W { toggle-column-tabbed-display; } + + Print { screenshot; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + + // Application Launchers + + // Mod+Space hotkey-overlay-title="Application Launcher" { + // spawn "ulauncher-toggle"; + // } + // Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } + Mod+Space hotkey-overlay-title="Run dms spotlight" { spawn "dms" "ipc" "call" "spotlight" "toggle"; } + + Mod+P hotkey-overlay-title="Set dynamic cast window" { set-dynamic-cast-window; } + Mod+Shift+P hotkey-overlay-title="Set dynamic cast monitor" { set-dynamic-cast-monitor; } + Mod+Alt+P hotkey-overlay-title="Clear dynamic cast target" { clear-dynamic-cast-target; } + Mod+Ctrl+P repeat=false hotkey-overlay-title="Mirror monitor" { spawn-sh "wl-mirror $(niri msg --json focused-output | jq -r .name)"; } + + Mod+M hotkey-overlay-title="Start Telegram" { spawn "flatpak" "run" "org.telegram.desktop"; } + + // XF86Launch5 { Ctrl+ + +} diff --git a/niri/layout.kdl b/niri/layout.kdl new file mode 100644 index 0000000..84370f1 --- /dev/null +++ b/niri/layout.kdl @@ -0,0 +1,38 @@ +layout { + gaps 2 + // center-focused-column "always" + center-focused-column "on-overflow" + always-center-single-column + + preset-column-widths { + proportion 0.5 + proportion 0.66667 + proportion 0.95 + // fixed 2500 + } + + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + + default-column-width { proportion 1.0; } + + focus-ring { + width 2 + active-color "#4ABA4A" // 7fc8ff + inactive-color "#505050" + } + + default-column-display "tabbed" + tab-indicator { + hide-when-single-tab + + place-within-column + width 10 + gaps-between-tabs 5 + corner-radius 10 + } + +} diff --git a/niri/noctalia.kdl b/niri/noctalia.kdl new file mode 100644 index 0000000..984b9f9 --- /dev/null +++ b/niri/noctalia.kdl @@ -0,0 +1,20 @@ +spawn-at-startup "qs" "-c" "noctalia-shell" + +binds { + + Mod+Alt+V hotkey-overlay-title="Clipboard Manager" { + spawn-sh "qs -c noctalia-shell ipc call launcher clipboard"; + } + + Mod+N hotkey-overlay-title="Notification Center" { + spawn-sh "qs -c noctalia-shell ipc call notifications toggleHistory"; + } + + Mod+Shift+N{ + spawn-sh "qs -c noctalia-shell ipc call notifications toggleDND"; + } + + Super+Alt+L hotkey-overlay-title="Lock the Screen: lock" { + spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; + } +} diff --git a/niri/rules.kdl b/niri/rules.kdl new file mode 100644 index 0000000..91bfe89 --- /dev/null +++ b/niri/rules.kdl @@ -0,0 +1,130 @@ +window-rule { + match is-active=false + opacity 0.9 +} + +window-rule { + match app-id=r#"firefox$"# + match app-id=r#"zen$"# + // default-column-width { fixed 1920; } + default-window-height { proportion 1.0; } + +} + +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + match app-id=r#"zen$"# title="^Picture-in-Picture$" + open-floating true + default-column-width { proportion 0.5; } + default-column-display "tabbed" + opacity 1.0 +} + +// window-rule { +// match app-id="superProductivity" +// default-column-width { proportion 1.0; } +// default-window-height { proportion 0.33; } +// open-on-output "Dell Inc. DELL P2417H CW6Y78814R0B" +// } + +window-rule { + match app-id="Plex" + open-on-output "BOE 0x0B7D Unknown" + default-column-width { proportion 1.0; } + opacity 1.0 +} + +window-rule { + match app-id="org.telegram.desktop" + default-column-width { fixed 1280; } + default-window-height { proportion 0.66; } + open-floating true +} + +window-rule { + match app-id="org.gnome.Terminal" + match app-id="Alacritty" + default-column-width { fixed 1280; } + default-window-height { proportion 0.66; } + open-floating true +} + +window-rule { + match is-window-cast-target=true + + focus-ring { off; } + + border { + active-color "#f38ba8" + inactive-color "#7d0d2d" + width 4 + on + } + + shadow { color "#7d0d2d70"; } + + tab-indicator { + active-color "#f38ba8" + inactive-color "#7d0d2d" + } +} + + +window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + match app-id="org.telegram.desktop" + match app-id="superproductivity-bin" + match title="Microsoft Teams" + match title="Outlook" + match title="Bitwarden" + match title="Google Messages" + match title="Proton" + match app-id="org.mozilla.Thunderbird" + match app-id="org.mozilla.thunderbird_esr" + match app-id="net.thunderbird.Thunderbird" + match app-id="discord" + match app-id="com.slack.Slack" + match app-id="gcr-prompter" + + block-out-from "screen-capture" +} + +layer-rule { + match namespace="notification" + block-out-from "screen-capture" +} + + +window-rule { + match app-id=r#"^org\.gnome\."# + draw-border-with-background false + geometry-corner-radius 12 + clip-to-geometry true +} + +window-rule { + match app-id="Ulauncher" + open-floating true + focus-ring { off; } +} + +window-rule { + geometry-corner-radius 12 + clip-to-geometry true +} + +window-rule { + match app-id="org.gnome.Nautilus" + match app-id="org.gnome.Evince" + match title="Settings" + // match app-id="app.zen_browser.zen" + match title="Star Citizen LUG Helper" + default-column-width { fixed 960; } +} + +window-rule { + match app-id="explorer.exe" + open-fullscreen true + geometry-corner-radius 0 +} diff --git a/niri/screens/hei.kdl b/niri/screens/hei.kdl new file mode 100644 index 0000000..3f5dc3f --- /dev/null +++ b/niri/screens/hei.kdl @@ -0,0 +1,73 @@ +output "Samsung Electric Company LS24A40xU H4TW301506" { // HEI-Samsung + // mode "1920x1080" + scale 1 + transform "normal" + position x=-1920 y=-450 +} + +output "Dell Inc. DELL P2417H CW6Y779Q080B" { // HEI-center Dell + // mode "1920x1080" + scale 1 + transform "normal" + position x=-1920 y=-450 +} + +output "Dell Inc. DELL P2417H CW6Y78814R0B" { // HEI-Dell + // mode "1920x1080" + scale 1 + transform "90" + position x=-3000 y=-840 + // position x=-3840 y=-450 + layout { + always-center-single-column false + preset-column-widths { + proportion 1.0 + } + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + default-column-width { proportion 1.0; } + } +} + +output "HP Inc. HP 534pm CNC51518S8" { // HEI-HP 21:9 + // mode "1920x1080" + scale 1 + // position x=1080 y=-1440 + position x=-540 y=-1440 + transform "normal" + layout { + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.25 + proportion 0.33333 + proportion 0.5 + // proportion 0.66667 + } + + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + } +} + +// output "Dell Inc. DELL P2417H CW6Y78814R0B" { // HEI-Dell +// // mode "1920x1080" +// scale 1 +// position x=-3840 y=-450 +// layout { +// center-focused-column "on-overflow" +// } +// } + +// Kingston Tech Corporation 86 Monitor 0x00000001 +output "Kramer Electronics Ltd. International VM-2HDT 295-883450100" { // Classroom 23N319 + // mode "1920x1080" + scale 1 + position x=-960 y=-1080 +} diff --git a/niri/screens/heifr.kdl b/niri/screens/heifr.kdl new file mode 100644 index 0000000..ec4ce77 --- /dev/null +++ b/niri/screens/heifr.kdl @@ -0,0 +1,7 @@ + +output "HP Inc. HP E24 G5 CN44151HCH" { + // mode "1920x1080" + scale 1 + transform "normal" + position x=-1920 y=-350 +} diff --git a/niri/screens/home.kdl b/niri/screens/home.kdl new file mode 100644 index 0000000..e37a4f0 --- /dev/null +++ b/niri/screens/home.kdl @@ -0,0 +1,31 @@ +output "Philips Consumer Electronics Company PHL 499P9 AU02027013590" { // Philips 32:9 + mode "3840x1080" + scale 1 + transform "normal" + position x=-360 y=-1080 + layout { + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.25 + proportion 0.33333 + proportion 0.5 + // proportion 0.66667 + } + + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + + default-column-width { fixed 1900; } + } +} + +output "Dell Inc. DELL 1707FP XP27769JBEZQ" { // Small Dell + mode "1280x1024" + scale 1 + transform "normal" + position x=1920 y=0 +} diff --git a/niri/screens/isc.kdl b/niri/screens/isc.kdl new file mode 100644 index 0000000..4669823 --- /dev/null +++ b/niri/screens/isc.kdl @@ -0,0 +1,75 @@ +output "Dell Inc. DELL S3425DW HFWNR44" { + // mode "2520x1080" + scale 1 + transform "normal" + position x=-3440 y=-900 + layout { + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.25 + proportion 0.33333 + proportion 0.5 + proportion 0.75 + proportion 0.66667 + } + + // preset-window-heights { + // proportion 0.33333 + // proportion 0.66667 + // proportion 1.0 + // } + } +} + +output "Dell Inc. DELL S3425DW 1DYNR44" { + // mode "2520x1080" + scale 1 + position x=-3440 y=-540 + // position x=-540 y=-1440 + transform "normal" + layout { + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.25 + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + } +} + +output "Samsung Electric Company PC Monitor Unknown" { + scale 2 + // position x=-3440 y=-540 + transform "normal" +} + +output "Dell Inc. DELL S3425DW 3FWNR44" { + // mode "2520x1080" + scale 1 + transform "normal" + layout { + center-focused-column "on-overflow" + + preset-column-widths { + proportion 0.25 + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + } +} diff --git a/niri/screens/lab320.kdl b/niri/screens/lab320.kdl new file mode 100644 index 0000000..9b9ee7d --- /dev/null +++ b/niri/screens/lab320.kdl @@ -0,0 +1,33 @@ +output "HP Inc. HP E24 G4 CN432306YR" { // HEI-Samsung + // mode "1920x1080" + scale 1 + transform "normal" + position x=-1920 y=-450 +} + +output "HP Inc. HP E24 G4 CN43240DK9" { // HEI-Dell + // mode "1920x1080" + scale 1 + transform "90" + position x=-3000 y=-840 + // position x=-3840 y=-450 + layout { + always-center-single-column false + preset-column-widths { + proportion 1.0 + } + preset-window-heights { + proportion 0.33333 + proportion 0.66667 + proportion 1.0 + } + default-column-width { proportion 1.0; } + } +} + +output "Dell Inc. DELL P2419H B9JSPF3" { + // mode "1920x1080" + scale 1 + transform "normal" + position x=-1920 y=-450 +}