update nvidia driver, install ghostty and other things
before refactor the arch of configuration.
move some nixos configuration to ./nixos/modules and ./nixos/configurations. try to find a good arch to conbine home-manager and nixos modules.
fix callPackage firefox-addons missing key immersive-translate.
wrap niri and spotx overlays into overlay.modifications.
build a brandnew architecture for configurations.
change the import method of homeManagerModules."${unixName}" to use outputs.
add ghostty overlay to replace ghostty.
add nix config in home/modules/nix.nix when not nixos
fix call nixpkgs.foldr. modify to call nixpkgs.lib.foldr.
modify firefox config, to use flake packages as extension
modify i18n config, to use flake packages as addons
remove ssh private key and add it to sops.
update partial flake inputs
update partial flake inputs, add some package to user config
move helix as home module, provide option youthlic.programs.helix.
change fcitx5 config to pkg, use rime-ice default config.
move spotify installation to default.nix neither spotify.nix
change gpg encrypt key
add gpg option to home-manager module
add fd as user level package
remove gpg option in system level
add git option
update flake inputs, and install all gpg pinentry
add gh to git module
change shell config to module, and ghostty also.
change gpg pinentry from pinentry-all to pinentry-qt.
change gh config, use ssh as git protocol
remove zed editor
move foot to module, and disable it.
add store as git credential helper
rename sops.secrets.gitea to sops.secrets.git-credential
add git delta config
move starship configuration to home/modules.
update flake inputs
add ssh config to sops encrypt file `secrets/ssh-config.yaml`
change niri to niri-unstable and update flake inputs
change encypt key from gnupg to age. And encrypt dae url
move home sops config to module
update flake inputs
add duf and doggo to home packages
291 lines
9.9 KiB
Text
291 lines
9.9 KiB
Text
input {
|
|
keyboard {
|
|
xkb {
|
|
}
|
|
}
|
|
|
|
touchpad {
|
|
tap
|
|
natural-scroll
|
|
}
|
|
|
|
mouse {
|
|
}
|
|
|
|
trackpoint {
|
|
}
|
|
}
|
|
|
|
output "DP-1" {
|
|
mode "2560x1440@169.900"
|
|
scale 1
|
|
transform "normal"
|
|
position x=0 y=0
|
|
}
|
|
|
|
|
|
output "eDP-1" {
|
|
mode "2560x1440@165.003"
|
|
scale 1.5
|
|
transform "normal"
|
|
position x=2560 y=0
|
|
}
|
|
|
|
layout {
|
|
gaps 16
|
|
center-focused-column "never"
|
|
preset-column-widths {
|
|
proportion 0.33333
|
|
proportion 0.5
|
|
proportion 0.66667
|
|
}
|
|
|
|
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
|
// preset-window-heights { }
|
|
|
|
default-column-width {}
|
|
|
|
// By default focus ring and border are rendered as a solid background rectangle
|
|
// behind windows. That is, they will show up through semitransparent windows.
|
|
// This is because windows using client-side decorations can have an arbitrary shape.
|
|
//
|
|
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
|
// Niri will draw focus ring and border *around* windows that agree to omit their
|
|
// client-side decorations.
|
|
//
|
|
// Alternatively, you can override it with a window rule called
|
|
// `draw-border-with-background`.
|
|
|
|
// You can change how the focus ring looks.
|
|
focus-ring {
|
|
// Uncomment this line to disable the focus ring.
|
|
// off
|
|
|
|
// How many logical pixels the ring extends out from the windows.
|
|
width 4
|
|
|
|
// Colors can be set in a variety of ways:
|
|
// - CSS named colors: "red"
|
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
|
|
|
// Color of the ring on the active monitor.
|
|
active-color "#7fc8ff"
|
|
|
|
// Color of the ring on inactive monitors.
|
|
inactive-color "#505050"
|
|
|
|
// You can also use gradients. They take precedence over solid colors.
|
|
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
|
// The angle is the same as in linear-gradient, and is optional,
|
|
// defaulting to 180 (top-to-bottom gradient).
|
|
// You can use any CSS linear-gradient tool on the web to set these up.
|
|
// Changing the color space is also supported, check the wiki for more info.
|
|
//
|
|
// active-gradient from="#80c8ff" to="#bbddff" angle=45
|
|
|
|
// You can also color the gradient relative to the entire view
|
|
// of the workspace, rather than relative to just the window itself.
|
|
// To do that, set relative-to="workspace-view".
|
|
//
|
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
|
}
|
|
|
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
|
border {
|
|
// The settings are the same as for the focus ring.
|
|
// If you enable the border, you probably want to disable the focus ring.
|
|
off
|
|
|
|
width 4
|
|
active-color "#ffc87f"
|
|
inactive-color "#505050"
|
|
|
|
// active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view"
|
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
|
}
|
|
|
|
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
|
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
|
// Left and right struts will cause the next window to the side to always be visible.
|
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
|
// layer-shell panels and regular gaps.
|
|
struts {
|
|
// left 64
|
|
// right 64
|
|
// top 64
|
|
// bottom 64
|
|
}
|
|
}
|
|
|
|
// Add lines like this to spawn processes at startup.
|
|
// Note that running niri as a session supports xdg-desktop-autostart,
|
|
// which may be more convenient to use.
|
|
// See the binds section below for more spawn examples.
|
|
environment {
|
|
DISPLAY ":1"
|
|
}
|
|
spawn-at-startup "waybar"
|
|
spawn-at-startup "mako"
|
|
spawn-at-startup "swaybg" "-i" "/home/david/pic/wallpaper/screenbackground.png"
|
|
spawn-at-startup "fcitx5" "-d" "--replace"
|
|
spawn-at-startup "xwayland-satellite" ":1"
|
|
|
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
|
// If the client will specifically ask for CSD, the request will be honored.
|
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
|
// prefer-no-csd
|
|
|
|
screenshot-path "~/pic/screenshot%Y-%m-%d-%H-%M-%S.png"
|
|
|
|
// You can also set this to null to disable saving screenshots to disk.
|
|
// screenshot-path null
|
|
|
|
animations {
|
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
|
// slowdown 3.0
|
|
}
|
|
|
|
window-rule {
|
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
|
default-column-width {}
|
|
}
|
|
window-rule {
|
|
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
|
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
|
|
|
block-out-from "screen-capture"
|
|
}
|
|
window-rule {
|
|
draw-border-with-background false
|
|
}
|
|
|
|
// Example: enable rounded corners for all windows.
|
|
// (This example rule is commented out with a "/-" in front.)
|
|
/-window-rule {
|
|
geometry-corner-radius 12
|
|
clip-to-geometry true
|
|
}
|
|
|
|
binds {
|
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
|
|
|
Mod+T { spawn "ghostty"; }
|
|
Mod+Space { spawn "fuzzel"; }
|
|
|
|
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
|
|
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
|
|
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
|
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
|
|
|
Mod+Q { 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-or-workspace-down; }
|
|
Mod+K { focus-window-or-workspace-up; }
|
|
Mod+L { focus-column-right; }
|
|
|
|
Mod+Shift+Left { move-column-left; }
|
|
Mod+Shift+Down { move-window-down; }
|
|
Mod+Shift+Up { move-window-up; }
|
|
Mod+Shift+Right { move-column-right; }
|
|
Mod+Shift+H { move-column-left; }
|
|
Mod+Shift+J { move-window-down-or-to-workspace-down; }
|
|
Mod+Shift+K { move-window-up-or-to-workspace-up; }
|
|
Mod+Shift+L { move-column-right; }
|
|
|
|
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+Ctrl+Left { focus-monitor-left; }
|
|
Mod+Ctrl+Down { focus-monitor-down; }
|
|
Mod+Ctrl+Up { focus-monitor-up; }
|
|
Mod+Ctrl+Right { focus-monitor-right; }
|
|
Mod+Ctrl+H { focus-monitor-left; }
|
|
Mod+Ctrl+J { focus-monitor-down; }
|
|
Mod+Ctrl+K { focus-monitor-up; }
|
|
Mod+Ctrl+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; }
|
|
|
|
Mod+Page_Down { focus-workspace-down; }
|
|
Mod+Page_Up { focus-workspace-up; }
|
|
Mod+U { focus-workspace-down; }
|
|
Mod+I { focus-workspace-up; }
|
|
Mod+Shift+Page_Down { move-column-to-workspace-down; }
|
|
Mod+Shift+Page_Up { move-column-to-workspace-up; }
|
|
Mod+Shift+U { move-column-to-workspace-down; }
|
|
Mod+Shift+I { move-column-to-workspace-up; }
|
|
|
|
Mod+Ctrl+Page_Down { move-workspace-down; }
|
|
Mod+Ctrl+Page_Up { move-workspace-up; }
|
|
Mod+Ctrl+U { move-workspace-down; }
|
|
Mod+Ctrl+I { move-workspace-up; }
|
|
|
|
Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
|
Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
|
Mod+WheelScrollDown { focus-column-right; }
|
|
Mod+WheelScrollUp { focus-column-left; }
|
|
|
|
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+Shift+1 { move-column-to-workspace 1; }
|
|
Mod+Shift+2 { move-column-to-workspace 2; }
|
|
Mod+Shift+3 { move-column-to-workspace 3; }
|
|
Mod+Shift+4 { move-column-to-workspace 4; }
|
|
Mod+Shift+5 { move-column-to-workspace 5; }
|
|
Mod+Shift+6 { move-column-to-workspace 6; }
|
|
Mod+Shift+7 { move-column-to-workspace 7; }
|
|
Mod+Shift+8 { move-column-to-workspace 8; }
|
|
Mod+Shift+9 { move-column-to-workspace 9; }
|
|
|
|
Mod+Tab { focus-workspace-previous; }
|
|
|
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
|
Mod+BracketRight { consume-or-expel-window-right; }
|
|
|
|
Mod+Comma { consume-window-into-column; }
|
|
|
|
Mod+Period { expel-window-from-column; }
|
|
|
|
Mod+R { switch-preset-column-width; }
|
|
Mod+Shift+R { switch-preset-window-height; }
|
|
Mod+Ctrl+R { reset-window-height; }
|
|
Mod+M { maximize-column; }
|
|
Mod+Shift+M { fullscreen-window; }
|
|
Mod+Z { center-column; }
|
|
|
|
Mod+Minus { set-column-width "-10%"; }
|
|
Mod+Equal { set-column-width "+10%"; }
|
|
|
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
|
|
|
Print { screenshot; }
|
|
Ctrl+Print { screenshot-screen; }
|
|
Alt+Print { screenshot-window; }
|
|
|
|
Mod+Shift+E { quit; }
|
|
}
|