my dotz
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

add niri conf, fork xdg-open

+609
+597
.config/niri/config.kdl
··· 1 + // This config is in the KDL format: https://kdl.dev 2 + // "/-" comments out the following node. 3 + 4 + input { 5 + keyboard { 6 + xkb { 7 + // You can set rules, model, layout, variant and options. 8 + // For more information, see xkeyboard-config(7). 9 + 10 + // For example: 11 + // layout "us,ru" 12 + // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" 13 + } 14 + 15 + // You can set the keyboard repeat parameters. The defaults match wlroots and sway. 16 + // Delay is in milliseconds before the repeat starts. Rate is in characters per second. 17 + // repeat-delay 600 18 + // repeat-rate 25 19 + 20 + // Niri can remember the keyboard layout globally (the default) or per-window. 21 + // - "global" - layout change is global for all windows. 22 + // - "window" - layout is tracked for each window individually. 23 + // track-layout "global" 24 + } 25 + 26 + // Next sections include libinput settings. 27 + // Omitting settings disables them, or leaves them at their default values. 28 + touchpad { 29 + tap 30 + // dwt 31 + // dwtp 32 + // natural-scroll 33 + // accel-speed 0.2 34 + // accel-profile "flat" 35 + // tap-button-map "left-middle-right" 36 + } 37 + 38 + mouse { 39 + // natural-scroll 40 + // accel-speed 0.2 41 + // accel-profile "flat" 42 + } 43 + 44 + trackpoint { 45 + // natural-scroll 46 + // accel-speed 0.2 47 + // accel-profile "flat" 48 + } 49 + 50 + tablet { 51 + // Set the name of the output (see below) which the tablet will map to. 52 + // If this is unset or the output doesn't exist, the tablet maps to one of the 53 + // existing outputs. 54 + map-to-output "eDP-1" 55 + } 56 + 57 + touch { 58 + // Set the name of the output (see below) which touch input will map to. 59 + // If this is unset or the output doesn't exist, touch input maps to one of the 60 + // existing outputs. 61 + map-to-output "eDP-1" 62 + } 63 + 64 + // By default, niri will take over the power button to make it sleep 65 + // instead of power off. 66 + // Uncomment this if you would like to configure the power button elsewhere 67 + // (i.e. logind.conf). 68 + // disable-power-key-handling 69 + } 70 + 71 + // You can configure outputs by their name, which you can find 72 + // by running `niri msg outputs` while inside a niri instance. 73 + // The built-in laptop monitor is usually called "eDP-1". 74 + // Remember to uncomment the node by removing "/-"! 75 + output "eDP-1" { 76 + // Uncomment this line to disable this output. 77 + // off 78 + 79 + // Scale is a floating-point number, but at the moment only integer values work. 80 + scale 2.0 81 + 82 + // Transform allows to rotate the output counter-clockwise, valid values are: 83 + // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. 84 + transform "normal" 85 + 86 + // Resolution and, optionally, refresh rate of the output. 87 + // The format is "<width>x<height>" or "<width>x<height>@<refresh rate>". 88 + // If the refresh rate is omitted, niri will pick the highest refresh rate 89 + // for the resolution. 90 + // If the mode is omitted altogether or is invalid, niri will pick one automatically. 91 + // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. 92 + mode "1920x1080" 93 + 94 + // Position of the output in the global coordinate space. 95 + // This affects directional monitor actions like "focus-monitor-left", and cursor movement. 96 + // The cursor can only move between directly adjacent outputs. 97 + // Output scale has to be taken into account for positioning: 98 + // outputs are sized in logical, or scaled, pixels. 99 + // For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080, 100 + // so to put another output directly adjacent to it on the right, set its x to 1920. 101 + // It the position is unset or results in an overlap, the output is instead placed 102 + // automatically. 103 + position x=1280 y=0 104 + } 105 + 106 + layout { 107 + // By default focus ring and border are rendered as a solid background rectangle 108 + // behind windows. That is, they will show up through semitransparent windows. 109 + // This is because windows using client-side decorations can have an arbitrary shape. 110 + // 111 + // If you don't like that, you should uncomment `prefer-no-csd` below. 112 + // Niri will draw focus ring and border *around* windows that agree to omit their 113 + // client-side decorations. 114 + 115 + // You can change how the focus ring looks. 116 + focus-ring { 117 + // Uncomment this line to disable the focus ring. 118 + // off 119 + 120 + // How many logical pixels the ring extends out from the windows. 121 + width 3 122 + 123 + // Colors can be set in a variety of ways: 124 + // - CSS named colors: "red" 125 + // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" 126 + // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. 127 + 128 + // Color of the ring on the active monitor. 129 + active-color "#7fc8ff" 130 + 131 + // Color of the ring on inactive monitors. 132 + inactive-color "#505050" 133 + 134 + // Additionally, there's a legacy RGBA syntax: 135 + // active-color 127 200 255 255 136 + 137 + // You can also use gradients. They take precedence over solid colors. 138 + // Gradients are rendered the same as CSS linear-gradient(angle, from, to). 139 + // The angle is the same as in linear-gradient, and is optional, 140 + // defaulting to 180 (top-to-bottom gradient). 141 + // You can use any CSS linear-gradient tool on the web to set these up. 142 + // 143 + // active-gradient from="#80c8ff" to="#bbddff" angle=45 144 + 145 + // You can also color the gradient relative to the entire view 146 + // of the workspace, rather than relative to just the window itself. 147 + // To do that, set relative-to="workspace-view". 148 + // 149 + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" 150 + } 151 + 152 + // You can also add a border. It's similar to the focus ring, but always visible. 153 + border { 154 + // The settings are the same as for the focus ring. 155 + // If you enable the border, you probably want to disable the focus ring. 156 + off 157 + 158 + width 4 159 + active-color "#ffc87f" 160 + inactive-color "#505050" 161 + 162 + // active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view" 163 + // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" 164 + } 165 + 166 + // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. 167 + preset-column-widths { 168 + // Proportion sets the width as a fraction of the output width, taking gaps into account. 169 + // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. 170 + // The default preset widths are 1/3, 1/2 and 2/3 of the output. 171 + proportion 0.33333 172 + proportion 0.5 173 + proportion 0.66667 174 + 175 + // Fixed sets the width in logical pixels exactly. 176 + // fixed 1920 177 + } 178 + 179 + // You can change the default width of the new windows. 180 + default-column-width { proportion 0.5; } 181 + // If you leave the brackets empty, the windows themselves will decide their initial width. 182 + // default-column-width {} 183 + 184 + // Set gaps around windows in logical pixels. 185 + gaps 4 186 + 187 + // Struts shrink the area occupied by windows, similarly to layer-shell panels. 188 + // You can think of them as a kind of outer gaps. They are set in logical pixels. 189 + // Left and right struts will cause the next window to the side to always be visible. 190 + // Top and bottom struts will simply add outer gaps in addition to the area occupied by 191 + // layer-shell panels and regular gaps. 192 + struts { 193 + // left 64 194 + // right 64 195 + // top 64 196 + // bottom 64 197 + } 198 + 199 + // When to center a column when changing focus, options are: 200 + // - "never", default behavior, focusing an off-screen column will keep at the left 201 + // or right edge of the screen. 202 + // - "on-overflow", focusing a column will center it if it doesn't fit 203 + // together with the previously focused column. 204 + // - "always", the focused column will always be centered. 205 + center-focused-column "never" 206 + } 207 + 208 + // Add lines like this to spawn processes at startup. 209 + // Note that running niri as a session supports xdg-desktop-autostart, 210 + // which may be more convenient to use. 211 + // spawn-at-startup "alacritty" "-e" "fish" 212 + 213 + // You can override environment variables for processes spawned by niri. 214 + environment { 215 + // Set a variable like this: 216 + // QT_QPA_PLATFORM "wayland" 217 + 218 + // Remove a variable by using null as the value: 219 + // DISPLAY null 220 + } 221 + 222 + cursor { 223 + // Change the theme and size of the cursor as well as set the 224 + // `XCURSOR_THEME` and `XCURSOR_SIZE` env variables. 225 + // xcursor-theme "default" 226 + // xcursor-size 24 227 + } 228 + 229 + // Uncomment this line to ask the clients to omit their client-side decorations if possible. 230 + // If the client will specifically ask for CSD, the request will be honored. 231 + // Additionally, clients will be informed that they are tiled, removing some rounded corners. 232 + // prefer-no-csd 233 + 234 + // You can change the path where screenshots are saved. 235 + // A ~ at the front will be expanded to the home directory. 236 + // The path is formatted with strftime(3) to give you the screenshot date and time. 237 + screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" 238 + 239 + // You can also set this to null to disable saving screenshots to disk. 240 + // screenshot-path null 241 + 242 + // Settings for the "Important Hotkeys" overlay. 243 + hotkey-overlay { 244 + // Uncomment this line if you don't want to see the hotkey help at niri startup. 245 + // skip-at-startup 246 + } 247 + 248 + // Animation settings. 249 + animations { 250 + // Uncomment to turn off all animations. 251 + // off 252 + 253 + // Slow down all animations by this factor. Values below 1 speed them up instead. 254 + // slowdown 3.0 255 + 256 + // You can configure all individual animations. 257 + // Available settings are the same for all of them. 258 + // - off disables the animation. 259 + // 260 + // Niri supports two animation types: easing and spring. 261 + // You can set properties for only ONE of them. 262 + // 263 + // Easing has the following settings: 264 + // - duration-ms sets the duration of the animation in milliseconds. 265 + // - curve sets the easing curve. Currently, available curves 266 + // are "ease-out-cubic" and "ease-out-expo". 267 + // 268 + // Spring animations work better with touchpad gestures, because they 269 + // take into account the velocity of your fingers as you release the swipe. 270 + // The parameters are less obvious and generally should be tuned 271 + // with trial and error. Notably, you cannot directly set the duration. 272 + // You can use this app to help visualize how the spring parameters 273 + // change the animation: https://flathub.org/apps/app.drey.Elastic 274 + // 275 + // A spring animation is configured like this: 276 + // - spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001 277 + // 278 + // The damping ratio goes from 0.1 to 10.0 and has the following properties: 279 + // - below 1.0: underdamped spring, will oscillate in the end. 280 + // - above 1.0: overdamped spring, won't oscillate. 281 + // - 1.0: critically damped spring, comes to rest in minimum possible time 282 + // without oscillations. 283 + // 284 + // However, even with damping ratio = 1.0 the spring animation may oscillate 285 + // if "launched" with enough velocity from a touchpad swipe. 286 + // 287 + // Lower stiffness will result in a slower animation more prone to oscillation. 288 + // 289 + // Set epsilon to a lower value if the animation "jumps" in the end. 290 + // 291 + // The spring mass is hardcoded to 1.0 and cannot be changed. Instead, change 292 + // stiffness proportionally. E.g. increasing mass by 2x is the same as 293 + // decreasing stiffness by 2x. 294 + 295 + // Animation when switching workspaces up and down, 296 + // including after the touchpad gesture. 297 + workspace-switch { 298 + // off 299 + // spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001 300 + } 301 + 302 + // All horizontal camera view movement: 303 + // - When a window off-screen is focused and the camera scrolls to it. 304 + // - When a new window appears off-screen and the camera scrolls to it. 305 + // - When a window resizes bigger and the camera scrolls to show it in full. 306 + // - And so on. 307 + horizontal-view-movement { 308 + // off 309 + // spring damping-ratio=1.0 stiffness=800 epsilon=0.0001 310 + } 311 + 312 + // Window opening animation. Note that this one has different defaults. 313 + window-open { 314 + // off 315 + // duration-ms 150 316 + // curve "ease-out-expo" 317 + 318 + // Example for a slightly bouncy window opening: 319 + // spring damping-ratio=0.8 stiffness=1000 epsilon=0.0001 320 + } 321 + 322 + // Config parse error and new default config creation notification 323 + // open/close animation. 324 + config-notification-open-close { 325 + // off 326 + // spring damping-ratio=0.6 stiffness=1000 epsilon=0.001 327 + } 328 + } 329 + 330 + // Window rules let you adjust behavior for individual windows. 331 + // They are processed in order of appearance in this file. 332 + // (This example rule is commented out with a "/-" in front.) 333 + /-window-rule { 334 + // Match directives control which windows this rule will apply to. 335 + // You can match by app-id and by title. 336 + // The window must match all properties of the match directive. 337 + match app-id="org.myapp.MyApp" title="My Cool App" 338 + 339 + // There can be multiple match directives. A window must match any one 340 + // of the rule's match directives. 341 + // 342 + // If there are no match directives, any window will match the rule. 343 + match title="Second App" 344 + 345 + // You can also add exclude directives which have the same properties. 346 + // If a window matches any exclude directive, it won't match this rule. 347 + // 348 + // Both app-id and title are regular expressions. 349 + // Raw KDL strings are helpful here. 350 + exclude app-id=r#"\.unwanted\."# 351 + 352 + // Here are the properties that you can set on a window rule. 353 + // You can override the default column width. 354 + default-column-width { proportion 0.75; } 355 + 356 + // You can set the output that this window will initially open on. 357 + // If such an output does not exist, it will open on the currently 358 + // focused output as usual. 359 + open-on-output "eDP-1" 360 + 361 + // Make this window open as a maximized column. 362 + open-maximized true 363 + 364 + // Make this window open fullscreen. 365 + open-fullscreen true 366 + // You can also set this to false to prevent a window from opening fullscreen. 367 + // open-fullscreen false 368 + } 369 + 370 + // Here's a useful example. Work around WezTerm's initial configure bug 371 + // by setting an empty default-column-width. 372 + window-rule { 373 + // This regular expression is intentionally made as specific as possible, 374 + // since this is the default config, and we want no false positives. 375 + // You can get away with just app-id="wezterm" if you want. 376 + // The regular expression can match anywhere in the string. 377 + match app-id=r#"^org\.wezfurlong\.wezterm$"# 378 + default-column-width {} 379 + } 380 + 381 + binds { 382 + // Keys consist of modifiers separated by + signs, followed by an XKB key name 383 + // in the end. To find an XKB name for a particular key, you may use a program 384 + // like wev. 385 + // 386 + // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt 387 + // when running as a winit window. 388 + // 389 + // Most actions that you can bind here can also be invoked programmatically with 390 + // `niri msg action do-something`. 391 + 392 + // Mod-Shift-/, which is usually the same as Mod-?, 393 + // shows a list of important hotkeys. 394 + Mod+Shift+Slash { show-hotkey-overlay; } 395 + 396 + // Suggested binds for running programs: terminal, app launcher, screen locker. 397 + Mod+Return { spawn "foot"; } 398 + Mod+D { spawn "fuzzel"; } 399 + Mod+Shift+L { spawn "swaylock"; } 400 + 401 + // You can also use a shell: 402 + // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } 403 + 404 + // Example volume keys mappings for PipeWire & WirePlumber. 405 + XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } 406 + XF86AudioLowerVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } 407 + 408 + Mod+Shift+Q { close-window; } 409 + 410 + Mod+Left { focus-column-left; } 411 + Mod+Down { focus-window-down; } 412 + Mod+Up { focus-window-up; } 413 + Mod+Right { focus-column-right; } 414 + Mod+H { focus-column-left; } 415 + Mod+J { focus-window-down; } 416 + Mod+K { focus-window-up; } 417 + Mod+L { focus-column-right; } 418 + 419 + Mod+Ctrl+Left { move-column-left; } 420 + Mod+Ctrl+Down { move-window-down; } 421 + Mod+Ctrl+Up { move-window-up; } 422 + Mod+Ctrl+Right { move-column-right; } 423 + Mod+Ctrl+H { move-column-left; } 424 + Mod+Ctrl+J { move-window-down; } 425 + Mod+Ctrl+K { move-window-up; } 426 + Mod+Ctrl+L { move-column-right; } 427 + 428 + // Alternative commands that move across workspaces when reaching 429 + // the first or last window in a column. 430 + // Mod+J { focus-window-or-workspace-down; } 431 + // Mod+K { focus-window-or-workspace-up; } 432 + // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } 433 + // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } 434 + 435 + Mod+Home { focus-column-first; } 436 + Mod+End { focus-column-last; } 437 + Mod+Ctrl+Home { move-column-to-first; } 438 + Mod+Ctrl+End { move-column-to-last; } 439 + 440 + // Mod+Shift+Left { focus-monitor-left; } 441 + // Mod+Shift+Down { focus-monitor-down; } 442 + // Mod+Shift+Up { focus-monitor-up; } 443 + // Mod+Shift+Right { focus-monitor-right; } 444 + // Mod+Shift+H { focus-monitor-left; } 445 + // Mod+Shift+J { focus-monitor-down; } 446 + // Mod+Shift+K { focus-monitor-up; } 447 + // Mod+Shift+L { focus-monitor-right; } 448 + 449 + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } 450 + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } 451 + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } 452 + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } 453 + Mod+Shift+Ctrl+H { move-column-to-monitor-left; } 454 + Mod+Shift+Ctrl+J { move-column-to-monitor-down; } 455 + Mod+Shift+Ctrl+K { move-column-to-monitor-up; } 456 + Mod+Shift+Ctrl+L { move-column-to-monitor-right; } 457 + 458 + // Alternatively, there are commands to move just a single window: 459 + // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } 460 + // ... 461 + 462 + // And you can also move a whole workspace to another monitor: 463 + // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } 464 + // ... 465 + 466 + Mod+Page_Down { focus-workspace-down; } 467 + Mod+Page_Up { focus-workspace-up; } 468 + Mod+U { focus-workspace-down; } 469 + Mod+I { focus-workspace-up; } 470 + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } 471 + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } 472 + Mod+Ctrl+U { move-column-to-workspace-down; } 473 + Mod+Ctrl+I { move-column-to-workspace-up; } 474 + 475 + // Alternatively, there are commands to move just a single window: 476 + // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } 477 + // ... 478 + 479 + Mod+Shift+Page_Down { move-workspace-down; } 480 + Mod+Shift+Page_Up { move-workspace-up; } 481 + Mod+Shift+U { move-workspace-down; } 482 + Mod+Shift+I { move-workspace-up; } 483 + 484 + // You can refer to workspaces by index. However, keep in mind that 485 + // niri is a dynamic workspace system, so these commands are kind of 486 + // "best effort". Trying to refer to a workspace index bigger than 487 + // the current workspace count will instead refer to the bottommost 488 + // (empty) workspace. 489 + // 490 + // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on 491 + // will all refer to the 3rd workspace. 492 + Mod+1 { focus-workspace 1; } 493 + Mod+2 { focus-workspace 2; } 494 + Mod+3 { focus-workspace 3; } 495 + Mod+4 { focus-workspace 4; } 496 + Mod+5 { focus-workspace 5; } 497 + Mod+6 { focus-workspace 6; } 498 + Mod+7 { focus-workspace 7; } 499 + Mod+8 { focus-workspace 8; } 500 + Mod+9 { focus-workspace 9; } 501 + Mod+Ctrl+1 { move-column-to-workspace 1; } 502 + Mod+Ctrl+2 { move-column-to-workspace 2; } 503 + Mod+Ctrl+3 { move-column-to-workspace 3; } 504 + Mod+Ctrl+4 { move-column-to-workspace 4; } 505 + Mod+Ctrl+5 { move-column-to-workspace 5; } 506 + Mod+Ctrl+6 { move-column-to-workspace 6; } 507 + Mod+Ctrl+7 { move-column-to-workspace 7; } 508 + Mod+Ctrl+8 { move-column-to-workspace 8; } 509 + Mod+Ctrl+9 { move-column-to-workspace 9; } 510 + 511 + // Alternatively, there are commands to move just a single window: 512 + // Mod+Ctrl+1 { move-window-to-workspace 1; } 513 + 514 + Mod+Comma { consume-window-into-column; } 515 + Mod+Period { expel-window-from-column; } 516 + 517 + // There are also commands that consume or expel a single window to the side. 518 + // Mod+BracketLeft { consume-or-expel-window-left; } 519 + // Mod+BracketRight { consume-or-expel-window-right; } 520 + 521 + Mod+R { switch-preset-column-width; } 522 + Mod+F { maximize-column; } 523 + Mod+Shift+F { fullscreen-window; } 524 + Mod+C { center-column; } 525 + 526 + // Finer width adjustments. 527 + // This command can also: 528 + // * set width in pixels: "1000" 529 + // * adjust width in pixels: "-5" or "+5" 530 + // * set width as a percentage of screen width: "25%" 531 + // * adjust width as a percentage of screen width: "-10%" or "+10%" 532 + // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, 533 + // set-column-width "100" will make the column occupy 200 physical screen pixels. 534 + Mod+Minus { set-column-width "-10%"; } 535 + Mod+Equal { set-column-width "+10%"; } 536 + 537 + // Finer height adjustments when in column with other windows. 538 + Mod+Shift+Minus { set-window-height "-10%"; } 539 + Mod+Shift+Equal { set-window-height "+10%"; } 540 + 541 + // Actions to switch layouts. 542 + // Note: if you uncomment these, make sure you do NOT have 543 + // a matching layout switch hotkey configured in xkb options above. 544 + // Having both at once on the same hotkey will break the switching, 545 + // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). 546 + // Mod+Space { switch-layout "next"; } 547 + // Mod+Shift+Space { switch-layout "prev"; } 548 + 549 + Print { screenshot; } 550 + Ctrl+Print { screenshot-screen; } 551 + Alt+Print { screenshot-window; } 552 + 553 + // The quit action will show a confirmation dialog to avoid accidental exits. 554 + // If you want to skip the confirmation dialog, set the flag like so: 555 + // Mod+Shift+E { quit skip-confirmation=true; } 556 + Mod+Shift+E { quit; } 557 + 558 + Mod+Shift+P { power-off-monitors; } 559 + 560 + // This debug bind will tint all surfaces green, unless they are being 561 + // directly scanned out. It's therefore useful to check if direct scanout 562 + // is working. 563 + // Mod+Shift+Ctrl+T { toggle-debug-tint; } 564 + } 565 + 566 + // Settings for debugging. Not meant for normal use. 567 + // These can change or stop working at any point with little notice. 568 + debug { 569 + // Make niri take over its DBus services even if it's not running as a session. 570 + // Useful for testing screen recording changes without having to relogin. 571 + // The main niri instance will *not* currently take back the services; so you will 572 + // need to relogin in the end. 573 + // dbus-interfaces-in-non-session-instances 574 + 575 + // Wait until every frame is done rendering before handing it over to DRM. 576 + // wait-for-frame-completion-before-queueing 577 + 578 + // Enable direct scanout into overlay planes. 579 + // May cause frame drops during some animations on some hardware. 580 + // enable-overlay-planes 581 + 582 + // Disable the use of the cursor plane. 583 + // The cursor will be rendered together with the rest of the frame. 584 + // disable-cursor-plane 585 + 586 + // Override the DRM device that niri will use for all rendering. 587 + // render-drm-device "/dev/dri/renderD129" 588 + 589 + // Enable the color-transformations capability of the Smithay renderer. 590 + // May cause a slight decrease in rendering performance. 591 + // enable-color-transformations-capability 592 + 593 + // Emulate zero (unknown) presentation time returned from DRM. 594 + // This is a thing on NVIDIA proprietary drivers, so this flag can be 595 + // used to test that we don't break too hard on those systems. 596 + // emulate-zero-presentation-time 597 + }
+12
bin/rose/xdg-open
··· 1 + #!/bin/sh 2 + case "${1%%:*}" in 3 + http|https) 4 + exec firefox "$1" 5 + ;; 6 + *.pdf) 7 + exec zathura "$1" 8 + ;; 9 + *) 10 + exec /usr/bin/xdg-open "$@" 11 + ;; 12 + esac