Compare commits

..

1 Commits

Author SHA1 Message Date
dichgrem
8650ac8879 fix:switch.sh&&mysql 2025-12-04 18:47:47 +08:00
32 changed files with 1040 additions and 341 deletions

View File

@@ -1,5 +1,6 @@
exec-once = fcitx5 -d -r
exec-once = nm-applet
exec-once = swayosd-server
exec-once = swww-daemon
exec-once = swww restore
exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE $SCALE

View File

@@ -1,15 +1,33 @@
source = ~/.config/hypr/theme.conf
#animations {
# enabled = true
# bezier = liner, 1, 1, 1, 1
# bezier = overshot, 0.13, 0.99, 0.29, 1.1
# bezier = wind, 0.05, 0.9, 0.1, 1.05
# bezier = winIn, 0.1, 1.1, 0.1, 1.1
# animation = windows, 1, 6, wind, slide
# animation = windowsIn, 1, 7, winIn, slide
# animation = windowsOut, 1, 7, default, popin 80%
# animation = windowsMove, 1, 5, wind, slide
# animation = border, 1, 1, liner
# animation = fade, 1, 10, default
# animation = workspaces, 1, 8, default, slidefade 20%
# animation = specialWorkspaceIn, 1, 8, default, fade
# animation = specialWorkspaceOut, 1, 8, default, fade
#}
animations {
enabled = yes
bezier = niri, 0.2, 0.8, 0.2, 1.0
animation = windowsIn, 1, 3, niri, slide
animation = windowsOut, 1, 2, niri, popin 80%
animation = windowsMove, 1, 3, niri, slide
animation = workspacesIn, 1, 3, niri, slide
animation = workspacesOut, 1, 3, niri, slidefade 70%
animation = border, 1, 1, niri
animation = fade, 1, 1, niri
bezier = smooth, 0.1, 0.9, 0.2, 1.0
bezier = default, 0.25, 0.8, 0.5, 1
bezier = wind, 0.05, 0.9, 0.1, 1.05
animation = windowsIn, 1, 4, smooth, slide
animation = windowsOut, 1, 2, default, popin 80%
animation = windowsMove, 1, 4, wind, slide
animation = border, 1, 5, default
animation = workspacesIn, 1, 6, smooth, slide
animation = workspacesOut, 1, 6, smooth, slidefade 80%
}
@@ -19,26 +37,20 @@ debug {
}
general {
border_size = 1
gaps_in = 2
gaps_out = 2
}
decoration {
rounding = 0
active_opacity = 1.0
blur {
enabled = false
}
dim_inactive = false
fullscreen_opacity = 1.0
inactive_opacity = 1.0
rounding = 4
shadow {
enabled = false
}
}
general {
col.active_border = rgba(313244ff)
col.inactive_border = rgba(1e1e2eff)
}
ecosystem {
no_donation_nag = true
@@ -49,6 +61,16 @@ ecosystem {
env = XDG_SESSION_DESKTOP, Hyprland
general {
gaps_in = 1
gaps_out = 1
border_size = 2
col.active_border = $lavender
col.inactive_border = $base
layout = tile
}
gestures {
workspace_swipe = true
workspace_swipe_fingers = 3
@@ -92,6 +114,36 @@ misc {
}
#plugin {
# hy3 {
# no_gaps_when_only = 1
# node_collapse_policy = 1
# group_inset = 10
# tab_first_window = true
# tabs {
# col.active = rgb(b4befe)
# col.active.border = rgb(313244)
# col.active.text = rgb(181825)
# col.inactive = rgb(181825)
# col.inactive.border = rgb(313244)
# col.inactive.text = rgb(b4befe)
# col.urgent = rgb(f2cdcd)
# col.urgent.border = rgb(313244)
# col.urgent.text = rgb(181825)
# from_top = false
# height = 14
# padding = 2
# render_text = true
# rounding = 6
# text_center = true
# text_font = Sarasa Gothic SC
# text_height = 10
# text_padding = 0
# }
# }
#}
xwayland {
force_zero_scaling = true
}

View File

@@ -175,8 +175,8 @@ bind = SUPER, mouse:276, workspace, e-1
## Brightness control
bindel = , XF86MonBrightnessUp, exec, brightnessctl -d amdgpu_bl1 s +5%
bindel = , XF86MonBrightnessDown, exec, brightnessctl -d amdgpu_bl1 s 5%-
bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness +5
bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness -5
## Playback control
@@ -190,13 +190,13 @@ bindl = CONTROL_ALT, right, exec, playerctl next
bindl = CONTROL_ALT, left, exec, playerctl previous
## Volume control (stable, PipeWire)
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindl = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
## Volume control
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume +2
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume -2
bindl = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
bindl = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
## Volume control (bonus)
bindel = CONTROL_ALT, up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = CONTROL_ALT, down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = CONTROL_ALT, up, exec, swayosd-client --output-volume +2
bindel = CONTROL_ALT, down, exec, swayosd-client --output-volume -2

View File

@@ -165,26 +165,17 @@ binds {
// Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key.
Super+Shift+P { power-off-monitors; }
// Volume control (stable)
XF86AudioRaiseVolume {
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+";
}
XF86AudioLowerVolume {
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%-";
}
XF86AudioMute {
spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
}
XF86AudioMicMute {
spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
}
XF86MonBrightnessUp {
spawn "brightnessctl" "set" "+5%";
}
XF86MonBrightnessDown {
spawn "brightnessctl" "set" "5%-";
}
// Volume control
XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "-2"; }
XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "+2"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "swayosd-client" "--brightness" "-5"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "swayosd-client" "--brightness" "+5"; }
// Volume control (bonus)
Ctrl+Alt+Down allow-when-locked=true { spawn "swayosd-client" "--output-volume" "-2"; }
Ctrl+Alt+Up allow-when-locked=true { spawn "swayosd-client" "--output-volume" "+2"; }
}
@@ -206,10 +197,13 @@ screenshot-path "~/Pictures/Screenshots/SCREENSHOT-%Y-%m-%d-%H:%M:%S.png"
spawn-at-startup "fcitx5" "-d" "-r"
spawn-at-startup "nm-applet"
spawn-at-startup "blueman-applet"
spawn-at-startup "sh" "-c" "dbus-update-activation-environment --systemd --all && systemctl --user stop niri-session.target && systemctl --user start niri-session.target"
spawn-at-startup "swayosd-server"
spawn-at-startup "swww-daemon"
spawn-at-startup "swww" "img" "$HOME/Git/DCGOS/dotfiles/.local/share/wallpapers/yohoho.jpg"
spawn-at-startup "swww" "restore"
spawn-at-startup "waybar"
spawn-at-startup "lxqt-policykit-agent"
window-rule {
block-out-from "screen-capture"

View File

@@ -39,7 +39,7 @@
},
"backlight": {
"device": "amdgpu_bl1",
"device": "intel_backlight",
"format": "{icon} {percent}%",
"format-icons": [""],
"on-scroll-down": "brightnessctl s 2%-",
@@ -86,7 +86,15 @@
"on-click": "activate",
"on-click-middle": "close",
},
/*
"custom/screenshot": {
"format": " 󰨵 ",
"on-click": "sh ~/.config/waybar/scripts/Screenshot-Area.sh",
"on-click-right": "nemo ~/Pictures/Screenshots",
"on-click-middle": "sh ~/.config/waybar/scripts/Screenshot-Fullscreen.sh",
"tooltip": false,
},
*/
"tray": {
"spacing": 8,
},
@@ -100,7 +108,6 @@
"on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d -0.02",
"tooltip": false
},
"custom/wl-gammarelay-temperature": {
"format": "{}K",
"exec": "wl-gammarelay-rs watch {t}",
@@ -110,21 +117,47 @@
"on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100",
"tooltip": false
},
/*
"wireplumber": {
"on-click": "pwvucontrol",
"on-click-right": "easyeffects",
"on-click-middle": "swayosd-client --output-volume mute-toggle",
"on-scroll-down": "swayosd-client --output-volume -2",
"on-scroll-up": "swayosd-client --output-volume +2",
"format": "{icon} {volume}%",
"format-muted": " MUTE",
"format-muted": "MUTE",
"format-source": "",
"format-source-muted": "",
"format-icons": {
"default": ["", "", ""]
"default": ["", "", ""],
},
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-",
"on-click": "pwvucontrol",
// "on-click-right": "easyeffects"
},
*/
"wireplumber": {
"on-click": "pwvucontrol",
"on-click-right": "easyeffects",
"on-click-middle": "swayosd-client --output-volume mute-toggle",
"on-scroll-down": "swayosd-client --output-volume -2",
"on-scroll-up": "swayosd-client --output-volume +2",
"format": "{icon} {volume}%",
"format-muted": "MUTE",
"format-source": "",
"format-source-muted": "",
"format-icons": {
"default": ["", "", ""],
},
},
/*
"clock": {
"interval": 60,
"align": 0,
"rotate": 0,
"tooltip-format": "<tt><big>{calendar}</big></tt>",
"format": " {:%d.%m.%Y}",
"format-alt": " {:%b%d %a,%G}",
},
*/
"clock": {
"interval": 60,
"align": 0,

441
flake.lock generated
View File

@@ -21,17 +21,17 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
@@ -68,14 +68,76 @@
"type": "github"
}
},
"chaotic": {
"inputs": {
"flake-schemas": "flake-schemas",
"home-manager": "home-manager",
"jovian": "jovian",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1764720660,
"narHash": "sha256-zrU6DwLb5zXCg6JxfVJyNCJex0LjuTUXchotq44Vn+w=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "1739cb8049b3184496279dc6a272b56d466ddd58",
"type": "github"
},
"original": {
"owner": "chaotic-cx",
"ref": "nyxpkgs-unstable",
"repo": "nyx",
"type": "github"
}
},
"daeuniverse": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1762203410,
"narHash": "sha256-+WqPI5Il43oI2/TMUrZUzzReLW/dnWM6GNqrekDXgos=",
"owner": "daeuniverse",
"repo": "flake.nix",
"rev": "effa0f113add0f982a657f5bce92bac503b542b6",
"type": "github"
},
"original": {
"owner": "daeuniverse",
"repo": "flake.nix",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1764627417,
"narHash": "sha256-D6xc3Rl8Ab6wucJWdvjNsGYGSxNjQHzRc2EZ6eeQ6l4=",
"owner": "nix-community",
"repo": "disko",
"rev": "5a88a6eceb8fd732b983e72b732f6f4b8269bef3",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"type": "github"
},
"original": {
@@ -86,17 +148,14 @@
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github"
},
"original": {
@@ -105,6 +164,62 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-schemas": {
"locked": {
"lastModified": 1721999734,
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
"revCount": 75,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -143,11 +258,11 @@
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"type": "gitlab"
},
"original": {
@@ -161,15 +276,16 @@
"home-manager": {
"inputs": {
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1770263241,
"narHash": "sha256-R1WFtIvp38hS9x63dnijdJw1KyIiy30KGea6e6N7LHs=",
"lastModified": 1764636297,
"narHash": "sha256-S41K55kw+hWgDfgKmZ9/fMZ3F0BQDMvqFfE120fMHeE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "04e5203db66417d548ae1ff188a9f591836dfaa7",
"rev": "ff067cfc619fdf6f82d50344e7d19ff2323f0827",
"type": "github"
},
"original": {
@@ -178,34 +294,150 @@
"type": "github"
}
},
"lazyvim": {
"home-manager_2": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770068987,
"narHash": "sha256-NZy5S0xkntbfW3SfluZg5hbDzRw4eFBsFm9knXzH8Eo=",
"owner": "pfassina",
"repo": "lazyvim-nix",
"rev": "a88c488cfd96e1d4274d34d2e35ddbe99dbe5757",
"lastModified": 1764788330,
"narHash": "sha256-hE/gXK+Z0j654T0tsW+KcndRqsgZXe8HyWchjBJgQpw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "fca4cba863e76c26cfe48e5903c2ff4bac2b2d5d",
"type": "github"
},
"original": {
"owner": "pfassina",
"repo": "lazyvim-nix",
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"jovian": {
"inputs": {
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764655750,
"narHash": "sha256-tBrcUSu/47u+E+81SUVUpXrqhkcM3Xqg/4taWFI/99k=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "1127a4fc66425cceae683becb93f038819cf2633",
"type": "github"
},
"original": {
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"chaotic",
"jovian",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729697500,
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
"owner": "zhaofengli",
"repo": "nix-github-actions",
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"ref": "matrix-name",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1770197578,
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1738452942,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1739866667,
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1764667669,
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
"rev": "418468ac9527e799809c900eda37cbff999199b6",
"type": "github"
},
"original": {
@@ -215,6 +447,45 @@
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1764803799,
"narHash": "sha256-94SMf4Uw5iSoX37ui6LAdcadCUHUDfrvggGay0uWkis=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "5d1c27e53c96e2c94e69f2e2d083ef147b3a3ccb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
@@ -227,11 +498,11 @@
]
},
"locked": {
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github"
},
"original": {
@@ -240,14 +511,61 @@
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"lazyvim": "lazyvim",
"nixpkgs": "nixpkgs",
"chaotic": "chaotic",
"daeuniverse": "daeuniverse",
"disko": "disko",
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_3",
"nixvim": "nixvim",
"stylix": "stylix"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764643237,
"narHash": "sha256-6Ezx9DqVv5UZ7DBK9rcNwBuQUENFyWPS7M09I+FvNao=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e66d6b924ac59e6c722f69332f6540ea57c69233",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
@@ -255,13 +573,11 @@
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs": "nixpkgs_4",
"nur": "nur",
"systems": "systems_2",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@@ -269,11 +585,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1769978605,
"narHash": "sha256-Vjniae6HHJCb9xZLeUOP15aRQXSZuKeeaZFM+gRDCgo=",
"lastModified": 1764798099,
"narHash": "sha256-IIwR5ZWo7tjxjRpkz0tViF9KFbQ1YXs9Wkan46WQbfk=",
"owner": "danth",
"repo": "stylix",
"rev": "ce22070ec5ce6169a6841da31baea33ce930ed38",
"rev": "4b9e0e7ba3cccb86fe2bf0f4a2dd18256bef1cc6",
"type": "github"
},
"original": {
@@ -312,6 +628,21 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
@@ -348,11 +679,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github"
},
"original": {
@@ -364,11 +695,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github"
},
"original": {
@@ -380,11 +711,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github"
},
"original": {

View File

@@ -2,12 +2,15 @@
description = "🥶";
inputs = {
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
daeuniverse.url = "github:daeuniverse/flake.nix";
disko.inputs.nixpkgs.follows = "nixpkgs";
disko.url = "github:nix-community/disko";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
lazyvim.inputs.nixpkgs.follows = "nixpkgs";
lazyvim.url = "github:pfassina/lazyvim-nix";
stylix.inputs.nixpkgs.follows = "nixpkgs";
nixvim.inputs.nixpkgs.follows = "nixpkgs";
nixvim.url = "github:nix-community/nixvim";
stylix.url = "github:danth/stylix";
};

View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
tsukimi
];
}

5
home/gui/editor/zed.nix Normal file
View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
zed-editor
];
}

View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
syncthing
];
}

View File

@@ -1,81 +1,235 @@
{ inputs, config, lib, pkgs, ... }:
{
imports = [ inputs.lazyvim.homeManagerModules.default ];
programs.lazyvim = {
{ config
, lib
, pkgs
, ...
}: {
programs.neovim = {
enable = true;
configFiles = ./lua;
extras = {
lang = {
go.enable = true;
clangd.enable = true;
rust.enable = true;
typescript.enable = true;
python.enable = true;
tailwind.enable = true;
java.enable = true;
json.enable = true;
yaml.enable = true;
toml.enable = true;
docker.enable = true;
kotlin.enable = true;
# dart.enable = true;
nix.enable = true;
};
};
extraPackages = with pkgs; [
# All
tree-sitter
# Go
#Go
gopls
gofumpt
golines
# Lua
#Lua
stylua
lua-language-server
# Nix
#Nix
nixd
nixpkgs-fmt
# Java
#Java
google-java-format
jdt-language-server
# Rust
#Rust
clippy
rustfmt
rust-analyzer
# Shell
#Shell
shfmt
bash-language-server
# C/C++
#C/C++
clang-tools
# Kotlin
#Kotlin
ktlint
kotlin-language-server
# Python
#Python
ruff
black
python312Packages.python-lsp-server
# JS/TS/Web
biome
#JS/TS/Web
prettierd
nodePackages.prettier
# Data formats
jq #JSON
taplo #TOML
yamlfmt #YAML
];
plugins = with pkgs.vimPlugins; [
lazy-nvim
];
extraLuaConfig =
let
plugins = with pkgs.vimPlugins; [
LazyVim
bufferline-nvim
cmp_luasnip
conform-nvim
dashboard-nvim
flash-nvim
friendly-snippets
gitsigns-nvim
lualine-nvim
neo-tree-nvim
neoconf-nvim
neodev-nvim
noice-nvim
nui-nvim
nvim-lint
nvim-lspconfig
nvim-notify
nvim-spectre
nvim-treesitter
nvim-treesitter-context
nvim-ts-autotag
nvim-ts-context-commentstring
nvim-web-devicons
persistence-nvim
plenary-nvim
todo-comments-nvim
tokyonight-nvim
trouble-nvim
vim-illuminate
vim-startuptime
which-key-nvim
fzf-lua
snacks-nvim
markview-nvim
{
name = "lazydev.nvim";
path = lazydev-nvim;
}
{
name = "blink.cmp";
path = blink-cmp;
}
{
name = "LuaSnip";
path = luasnip;
}
{
name = "mini.ai";
path = mini-nvim;
}
{
name = "mini.bufremove";
path = mini-nvim;
}
{
name = "mini.comment";
path = mini-nvim;
}
{
name = "mini.indentscope";
path = mini-nvim;
}
{
name = "mini.pairs";
path = mini-nvim;
}
{
name = "mini.surround";
path = mini-nvim;
}
{
name = "mini.icons";
path = mini-icons;
}
{
name = "grug-far.nvim";
path = grug-far-nvim;
}
];
mkEntryFromDrv = drv:
if lib.isDerivation drv
then {
name = "${lib.getName drv}";
path = drv;
}
else drv;
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
in
''
require("lazy").setup({
defaults = {
lazy = true,
},
dev = {
-- reuse files from pkgs.vimPlugins.*
path = "${lazyPath}",
patterns = { "." },
-- fallback to download
fallback = true,
},
rocks = {
enabled = false,
hererocks = false,
},
spec = {
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- The following configs are needed for fixing lazyvim on nix
-- disable mason.nvim, use programs.neovim.extraPackages
{ "mason-org/mason-lspconfig.nvim", enabled = false },
{ "mason-org/mason.nvim", enabled = false },
-- import/override with your plugins
{ import = "lazyvim.plugins.extras.lang.go" },
{ import = "lazyvim.plugins.extras.lang.clangd" },
{ import = "lazyvim.plugins.extras.lang.rust" },
{ import = "lazyvim.plugins.extras.lang.typescript" },
{ import = "lazyvim.plugins.extras.lang.python" },
{ import = "lazyvim.plugins.extras.lang.tailwind" },
{ import = "lazyvim.plugins.extras.lang.java" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "lazyvim.plugins.extras.lang.yaml" },
{ import = "lazyvim.plugins.extras.lang.toml" },
{ import = "lazyvim.plugins.extras.lang.docker" },
{ import = "lazyvim.plugins.extras.lang.kotlin" },
{ import = "lazyvim.plugins.extras.lang.dart" },
{ import = "plugins" },
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed
{ "nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.ensure_installed = {}
end,
},
},
})
'';
};
# https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position
xdg.configFile."nvim/parser".source =
let
parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths =
(pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins:
with plugins; [
bash
c
go
lua
rust
java
dart
kotlin
python
javascript
typescript
tsx
vue
html
css
json
yaml
toml
dockerfile
markdown
markdown_inline
])).dependencies;
};
in
"${parsers}/parser";
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
xdg.configFile."nvim/lua".source = ./lua;
}

View File

@@ -0,0 +1,8 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")

View File

@@ -5,31 +5,40 @@
local map = vim.keymap.set
local opts = { noremap = true, silent = true }
-- === VSCode-like buffer/tab navigation ===
-- === VSCode-like buffer/tab navigation ===
map("n", "<C-Tab>", "<cmd>bnext<CR>", { desc = "Next buffer (like VSCode)" })
map("n", "<C-S-Tab>", "<cmd>bprevious<CR>", { desc = "Previous buffer (like VSCode)" })
-- === Vscode-like Close buffer navigation ===
vim.keymap.set("n", "<C-w>", function()
local current = vim.api.nvim_get_current_buf()
local buffers = vim.fn.getbufinfo({buflisted = 1})
-- === Close buffer like Ctrl + W in VSCode ===
vim.keymap.set("n", "<C-w>", "<cmd>BufferLinePickClose<CR>", { desc = "Close buffer (BufferLine)" })
local next_buf = nil
for i, buf in ipairs(buffers) do
if buf.bufnr == current then
next_buf = buffers[i + 1] or buffers[i - 1]
break
end
end
vim.keymap.set("n", "<C-S-5>", function()
if vim.bo.buftype == "terminal" then
vim.cmd("vsplit | terminal")
else
vim.cmd("botright split | terminal")
end
end, { desc = "Split terminal" })
if next_buf then
vim.api.nvim_set_current_buf(next_buf.bufnr)
end
-- 在终端模式下的快捷键
vim.keymap.set("t", "<C-h>", "<C-\\><C-n><C-w>h", { desc = "Go to left window" })
vim.keymap.set("t", "<C-j>", "<C-\\><C-n><C-w>j", { desc = "Go to lower window" })
vim.keymap.set("t", "<C-k>", "<C-\\><C-n><C-w>k", { desc = "Go to upper window" })
vim.keymap.set("t", "<C-l>", "<C-\\><C-n><C-w>l", { desc = "Go to right window" })
vim.api.nvim_buf_delete(current, { force = true })
end, { desc = "Close current buffer like VSCode" })
-- XDG Open
vim.keymap.set("n", "<leader>xo", function()
vim.fn.jobstart({ "xdg-open", vim.fn.expand("%:p") }, { detach = true })
end, { desc = "使用系统默认应用程序打开当前文件" })
-- === Markdown priview ===
vim.keymap.set("n", "<leader>mp", "<cmd>Markview<CR>", {
desc = "Toggle Markview Inline Preview",
})
-- 开启对比预览
vim.keymap.set("n", "<leader>mv", "<cmd>Markview splitToggle<CR>", {
desc = "Toggle Markview Split Preview",
})
-- 关闭对比预览
vim.keymap.set("n", "<leader>mc", "<cmd>Markview splitClose<CR>", {
desc = "Close Markview Split Preview",
})

View File

@@ -0,0 +1,53 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})

View File

@@ -1,16 +1,4 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
-- Disable autoformat
vim.g.autoformat = false
-- Let terminal just one
vim.g.root_spec = { "cwd" }
-- Disable markdown views
vim.api.nvim_create_autocmd("FileType", {
pattern = "markdown",
callback = function()
vim.opt_local.conceallevel = 0
vim.opt_local.concealcursor = ""
end,
})
vim.g.autoformat = false

View File

@@ -34,11 +34,11 @@ return {
-- Python
opts.formatters_by_ft.python = { "black", "ruff_format" }
-- JS/TS/Web
opts.formatters_by_ft.javascript = { "biome" }
opts.formatters_by_ft.typescript = { "biome" }
opts.formatters_by_ft.javascriptreact = { "biome" }
opts.formatters_by_ft.typescriptreact = { "biome" }
opts.formatters_by_ft.vue = { "biome" }
opts.formatters_by_ft.javascript = { "prettierd" }
opts.formatters_by_ft.typescript = { "prettierd" }
opts.formatters_by_ft.javascriptreact = { "prettierd" }
opts.formatters_by_ft.typescriptreact = { "prettierd" }
opts.formatters_by_ft.vue = { "prettierd" }
-- JSON
opts.formatters_by_ft.json = { "jq" }
-- YAML

View File

@@ -0,0 +1,19 @@
return {
"OXY2DEV/markview.nvim",
name = "markview.nvim",
lazy = false,
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("markview").setup({
markdown = { enable = true },
latex = {
enable = true,
inline = { enable = true },
block = { enable = true },
},
})
end,
}

View File

@@ -0,0 +1,30 @@
return {
{
"LazyVim/LazyVim",
opts = {
treesitter = false,
},
},
{
"nvim-treesitter/nvim-treesitter",
event = { "BufReadPost", "BufNewFile" },
opts = {
ensure_installed = {},
auto_install = false,
highlight = { enable = true },
indent = { enable = true },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
},
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
}

View File

@@ -3,10 +3,10 @@
force = true;
recursive = true;
source = pkgs.fetchFromGitHub {
hash = "sha256-GyiOlTr1Nw2ANTE7/fdyrPQkvRFWOyal3oAcDvsqF5A=";
hash = "sha256-s3r8cdEliiPnKWs64Wgi0rC9Ngl1mkIrLnr2tIcyXWw=";
owner = "iDvel";
repo = "rime-ice";
tag = "2025.12.08";
tag = "2025.04.06";
};
};

View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
lxqt.lxqt-policykit
];
}

View File

@@ -1,21 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
polkit_gnome
];
systemd.user.services.polkit-gnome-authentication-agent = {
Unit = {
Description = "PolicyKit GNOME Authentication Agent";
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
};
Service = {
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
Slice = "session.slice";
};
Install = {
WantedBy = ["graphical-session.target"];
};
};
}

5
home/wayland/swayosd.nix Normal file
View File

@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [
swayosd
];
}

View File

@@ -6,6 +6,8 @@
}: {
imports = with inputs; [
./${hostname}
chaotic.nixosModules.default
disko.nixosModules.disko
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
{

View File

@@ -1,55 +1,57 @@
{
# -------------------- Hardware --------------------
# See: https://github.com/blueman-project/blueman
# Specific Use Cases
## Hardware related
Bluetooth = true;
### See https://github.com/blueman-project/blueman
# See: https://nixos.wiki/wiki/AMD_GPU
GPU-AMD = true;
# See: https://github.com/linrunner/TLP
Power-control = "TLP"; ## Possible options: PPD ; TLP
# -------------------- System --------------------
# See https://nixos.wiki/wiki/Bootloader
# See: https://search.nixos.org/options?show=boot.loader.grub.mirroredBoots
BootLoader = "systemd-boot"; ## Possible options: grub ; grub-mirror ; systemd-boot
# See: https://search.nixos.org/options?show=boot.kernelPackages
# See: https://www.nyx.chaotic.cx/#using-sched-ext-schedulers
KernelPackages = "linuxPackages_lqx";
# See: https://mynixos.com/nixpkgs/option/system.stateVersion
StateVersion = "26.05";
# See: https://docs.moodle.org/405/en/Table_of_locales
Locale = "en_US.UTF-8";
# See: https://en.wikipedia.org/wiki/Keyboard_layout
KeyboardLayout = "us";
# See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TimeZone = "Asia/Singapore";
# -------------------- Display --------------------
WM = "niri"; ## Options: "Hyprland" | "niri" | "sway"
# See: https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland
# See: https://github.com/swaywm/sway/wiki#hidpi
ScaleLevel = "1";
# See: https://github.com/swaywm/sway/wiki#display-configuration
OutputSettings = "output * scale 1";
# See: https://wiki.hyprland.org/Configuring/Monitors
MonitorSettings = "
monitor=eDP-1, 2560x1600@165, 0x0, 1.25
";
# -------------------- Software --------------------
# See: https://sing-box.sagernet.org
### See https://nixos.wiki/wiki/AMD_GPU
SingBox = true;
# See: https://github.com/qemu/qemu
# See: https://github.com/virt-manager/virt-manager
Power-control = "TLP";
### Possible options: PPD ; TLP
## Software related
QEMU-VM-Use-Case = true;
### See https://github.com/qemu/qemu ; https://github.com/virt-manager/virt-manager
Database-Use-Case = true;
# Options
## System related
BootLoader = "systemd-boot";
### Possible options: grub ; grub-mirror ; systemd-boot # See https://nixos.wiki/wiki/Bootloader https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=mirroredBoots
KernelPackages = "linuxPackages_cachyos";
### See https://search.nixos.org/options?show=boot.kernelPackages https://www.nyx.chaotic.cx/#using-sched-ext-schedulers
KeyboardLayout = "us";
### See https://en.wikipedia.org/wiki/Keyboard_layout
Locale = "en_US.UTF-8";
### See https://docs.moodle.org/405/en/Table_of_locales
StateVersion = "25.11";
### See https://mynixos.com/nixpkgs/option/system.stateVersion
TimeZone = "Asia/Singapore";
### See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
## Wayland related
MonitorSettings = "
monitor=eDP-1, 2560x1600@165, 0x0, 1.25
monitor=DP-1, 2560x1440@144, 2560x0, 1.25
";
### MonitorSettings For Hyprland See https://wiki.hyprland.org/Configuring/Monitors/
OutputSettings = "output * scale 1";
### OutputSettings For sway See https://github.com/swaywm/sway/wiki#display-configuration
ScaleLevel = "1";
### For Hyprland see https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland
### For sway see https://github.com/swaywm/sway/wiki#hidpi
WM = "niri";
### Possible options: Hyprland ; niri ; sway
}

View File

@@ -1,53 +1,63 @@
{
# -------------------- Hardware --------------------
# See: https://github.com/blueman-project/blueman
# Specific Use Cases
## Hardware related
Bluetooth = false;
### See https://github.com/blueman-project/blueman
# See: https://nixos.wiki/wiki/AMD_GPU
GPU-AMD = false;
### See https://nixos.wiki/wiki/AMD_GPU
# See: https://github.com/linrunner/TLP
Power-control = "PPD"; ## Possible options: PPD ; TLP
GPU-Nvidia = false;
### See https://nixos.wiki/wiki/Nvidia
# -------------------- System --------------------
# See https://nixos.wiki/wiki/Bootloader
# See: https://search.nixos.org/options?show=boot.loader.grub.mirroredBoots
BootLoader = "systemd-boot"; ## Possible options: grub ; grub-mirror ; systemd-boot
GPU-Intel = false;
### See https://nixos.wiki/wiki/Intel_Graphics
# See: https://search.nixos.org/options?show=boot.kernelPackages
# See: https://www.nyx.chaotic.cx/#using-sched-ext-schedulers
KernelPackages = "linuxPackages_zen";
HotSpot-Use-Case = false;
### See https://nixos.wiki/wiki/Internet_Connection_Sharing
# See: https://mynixos.com/nixpkgs/option/system.stateVersion
StateVersion = "26.05";
# See: https://docs.moodle.org/405/en/Table_of_locales
Locale = "en_US.UTF-8";
# See: https://en.wikipedia.org/wiki/Keyboard_layout
KeyboardLayout = "us";
# See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TimeZone = "Asia/Singapore";
# -------------------- Display --------------------
WM = "Hyprland"; ## Options: "Hyprland" | "niri" | "sway"
# See: https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland
# See: https://github.com/swaywm/sway/wiki#hidpi
ScaleLevel = "1";
# See: https://github.com/swaywm/sway/wiki#display-configuration
OutputSettings = "output * scale 1";
# See: https://wiki.hyprland.org/Configuring/Monitors
MonitorSettings = "monitor = , preferred, auto, auto";
# -------------------- Software --------------------
# See: https://sing-box.sagernet.org
SingBox = true;
# See: https://github.com/qemu/qemu
# See: https://github.com/virt-manager/virt-manager
Power control = "PPD";
### Possible options: PPD ; TLP
## Software related
QEMU-VM-Use-Case = false;
### See https://github.com/qemu/qemu ; https://github.com/virt-manager/virt-manager
Database-Use-Case = true;
# Options
## System related
BootLoader = "systemd-boot";
### Possible options: grub ; grub-mirror ; systemd-boot # See https://nixos.wiki/wiki/Bootloader https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=mirroredBoots
KernelPackages = "linuxPackages_cachyos";
### See https://search.nixos.org/options?show=boot.kernelPackages https://www.nyx.chaotic.cx/#using-sched-ext-schedulers
KeyboardLayout = "us";
### See https://en.wikipedia.org/wiki/Keyboard_layout
Locale = "en_US.UTF-8";
### See https://docs.moodle.org/405/en/Table_of_locales
StateVersion = "25.11";
### See https://mynixos.com/nixpkgs/option/system.stateVersion
TimeZone = "Asia/Singapore";
### See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
## Wayland related
MonitorSettings = "monitor = , preferred, auto, auto";
### MonitorSettings For Hyprland See https://wiki.hyprland.org/Configuring/Monitors/
OutputSettings = "output * scale 1";
### OutputSettings For sway See https://github.com/swaywm/sway/wiki#display-configuration
ScaleLevel = "1";
### For Hyprland see https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland
### For sway see https://github.com/swaywm/sway/wiki#hidpi
WM = "Hyprland";
### Possible options: Hyprland ; niri ; sway
}

View File

@@ -0,0 +1,20 @@
{ hostname, lib, pkgs, ... }:
with lib; let
inherit (import ../../hosts/${hostname}/env.nix) Database-Use-Case;
in
{
config = mkIf Database-Use-Case {
services.mysql = {
enable = true;
package = pkgs.mysql84;
};
systemd.services.mysql = {
enable = false;
};
environment.systemPackages = [
pkgs.dbeaver-bin
];
};
}

View File

@@ -1,6 +1,5 @@
{ hostname, lib, pkgs, ... }:
with lib;
let
with lib; let
inherit (import ../../hosts/${hostname}/env.nix) Power-control;
in
{
@@ -8,18 +7,17 @@ in
services.tlp = lib.mkIf (Power-control == "TLP") {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "powersave";
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "powersave";
CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 100;
CPU_MAX_PERF_ON_BAT = 85;
};
};
}

View File

@@ -3,5 +3,10 @@
{
services = {
gvfs.enable = true;
scx = {
enable = true;
scheduler = "scx_lavd";
};
};
}

View File

@@ -30,9 +30,9 @@ in
"wdat_wdt"
];
consoleLogLevel = 2; # Only errors and warnings are displayed
extraModulePackages = [
config.boot.kernelPackages.v4l2loopback # v4l2loopback is for OBS Virtual Cam Support
];
# extraModulePackages = [
# config.boot.kernelPackages.v4l2loopback # v4l2loopback is for OBS Virtual Cam Support
# ];
initrd = {
compressor = "zstd";
compressorArgs = ["-T0" "-19" "--long"];
@@ -43,9 +43,9 @@ in
"kernel.core_pattern" = "|/bin/false"; # Disable automatic core dumps
"vm.max_map_count" = 2147483642; # Needed For Some Steam Games
};
kernelModules = ["v4l2loopback"]; # v4l2loopback is for OBS Virtual Cam Support
# kernelModules = ["v4l2loopback"]; # v4l2loopback is for OBS Virtual Cam Support
kernelPackages = pkgs.${KernelPackages};
kernelParams = ["8250.nr_uarts=0" "8250.skip_txen_test=1" "i8042.nopnp" "amd_pstate=active" "audit=0" "console=tty1" "erst_disable" "nmi_watchdog=0" "noatime" "nowatchdog"];
kernelParams = ["audit=0" "console=tty1" "erst_disable" "nmi_watchdog=0" "noatime" "nowatchdog"];
loader = {
grub = mkIf (strings.hasInfix "grub" BootLoader) {
configurationLimit = 50;
@@ -101,13 +101,15 @@ in
};
networking = {
dhcpcd.extraConfig = "nohook resolv.conf";
firewall.enable = false;
hostName = hostname;
nameservers = ["8.8.8.8" "1.1.1.1"];
nameservers = ["127.0.0.1" "::1"];
networkmanager = {
dns = "none";
enable = true;
};
resolvconf.enable = mkForce false;
};
security = {
@@ -142,6 +144,7 @@ in
};
system = {
rebuild.enableNg = true;
stateVersion = StateVersion;
};

View File

@@ -52,11 +52,9 @@ in {
curl
wget
aria2
syncthing
yt-dlp
openssl
# Android
#Android
xxd
file
binwalk
@@ -64,14 +62,6 @@ in {
android-tools
payload-dumper-go
# Embedded
scons
openocd
stlink
stlink-tool
gcc-arm-embedded
tio
# Misc
tree
libnotify
@@ -79,9 +69,6 @@ in {
lm_sensors
usbutils
libsecret
lsof
nano
zed-editor
# Niri
wlr-randr
@@ -103,16 +90,7 @@ in {
jdk17
python312
pnpm
bun
nodejs_24
# Agent
opencode
gemini-cli-bin
# Blog
zola
pagefind
nodejs_20
];
};

View File

@@ -31,11 +31,13 @@ with lib; {
substituters = [
"https://cache.garnix.io" # See https://github.com/daeuniverse/flake.nix
"https://cache.nixos.org" # See https://nixos.wiki/wiki/Binary_Cache
"https://chaotic-nyx.cachix.org" # See https://github.com/chaotic-cx/nyx
"https://nix-community.cachix.org" # See https://nix-community.org/cache/
];
trusted-public-keys = [
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
warn-dirty = false;