The commit message reflects the main changes: 1. Updated model name from "gpt-oss-20b" to "qwen3-coder-30b" in aichat.nix 2. Changed the default model to ryu:qwen3-coder-30b in aichat.nix 3. Added a new chat template file (chat.hbs) with tool/function calling support 4. Configured llama.cpp to use the new chat template file 5. Enabled HDR display settings in hyprland 6. Modified gamemode to unload lmstudio on start and added custom script for gamemode startup All changes are focused on implementing Qwen3-Coder-30B model with enhanced tool calling capabilities and system configuration improvements.
290 lines
9.0 KiB
Nix
290 lines
9.0 KiB
Nix
{
|
|
pkgs,
|
|
device,
|
|
lib,
|
|
...
|
|
}:
|
|
# lib.optionalAttrs device.isNix
|
|
{
|
|
# services.hyprpolkitagent.enable = true;
|
|
services.hypridle = {
|
|
enable = device.is "ryu";
|
|
settings = {
|
|
general = {
|
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
};
|
|
listener = [
|
|
{
|
|
timeout = 300;
|
|
on-timeout = "hyprctl dispatch dpms off";
|
|
on-resume = "hyprctl dispatch dpms on";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
services.hyprsunset = {
|
|
enable = device.is "ryu";
|
|
};
|
|
programs.hyprlock = {
|
|
enable = device.is "ryu";
|
|
};
|
|
wayland.windowManager.hyprland = {
|
|
enable = device.is "ryu";
|
|
systemd.enable = true;
|
|
|
|
settings = {
|
|
# source = "${pkgs.catppuccinThemes.hyprland}/themes/mocha.conf";
|
|
render = {
|
|
direct_scanout = true;
|
|
cm_fs_passthrough = 1;
|
|
cm_auto_hdr = 1;
|
|
};
|
|
experimental = {
|
|
xx_color_management_v4 = true;
|
|
};
|
|
monitorv2 = [
|
|
{
|
|
output = device.monitors.primary;
|
|
mode = "2560x1440@360";
|
|
position = "0x0";
|
|
scale = 1;
|
|
transform = 0;
|
|
supports_wide_color = 1;
|
|
supports_hdr = 1;
|
|
bitdepth = 10;
|
|
cm = "hdr";
|
|
# sdrbrightness = 0.005;
|
|
# sdrsaturation = 200;
|
|
}
|
|
{
|
|
output = device.monitors.secondary;
|
|
mode = "2560x1440@170";
|
|
position = "-1440x-1120";
|
|
scale = 1;
|
|
transform = 1;
|
|
}
|
|
{
|
|
output = device.monitors.tertiary;
|
|
mode = "2560x1440@170";
|
|
position = "2560x-1120";
|
|
scale = 1;
|
|
transform = 3;
|
|
}
|
|
];
|
|
|
|
input = {
|
|
kb_layout = "us";
|
|
# kb_variant = "";
|
|
# kb_model = "";
|
|
kb_options = "ctrl:nocaps";
|
|
# kb_rules = "";
|
|
|
|
follow_mouse = 2;
|
|
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
tap-to-click = true;
|
|
disable_while_typing = true;
|
|
};
|
|
};
|
|
|
|
general = {
|
|
gaps_in = 5;
|
|
gaps_out = 20;
|
|
border_size = 2;
|
|
# "col.active_border" = "$mauve $mauve 45deg";
|
|
# "col.inactive_border" = "$crust";
|
|
};
|
|
|
|
ecosystem = {
|
|
no_update_news = true;
|
|
};
|
|
decoration = {
|
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
|
|
rounding = 10;
|
|
# drop_shadow = true;
|
|
# shadow_range = 4;
|
|
# shadow_render_power = 3;
|
|
# col.shadow = "rgba(1a1a1aee)";
|
|
|
|
blur = {
|
|
enabled = true;
|
|
size = 3;
|
|
passes = 1;
|
|
};
|
|
};
|
|
|
|
animations = {
|
|
enabled = true;
|
|
|
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
|
|
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
|
|
animation = [
|
|
"windows, 1, 7, myBezier"
|
|
"windowsOut, 1, 7, default, popin 80%"
|
|
"border, 1, 10, default"
|
|
"borderangle, 1, 8, default"
|
|
"fade, 1, 7, default"
|
|
"workspaces, 1, 6, default"
|
|
];
|
|
};
|
|
|
|
dwindle = {
|
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
pseudotile =
|
|
true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
preserve_split = true; # you probably want this
|
|
};
|
|
|
|
master = {
|
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
new_status = "master";
|
|
};
|
|
|
|
# Example per-device config
|
|
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
|
|
# "device:epic-mouse-v1" = { sensitivity = -0.5; };
|
|
|
|
# Example windowrule v1
|
|
# windowrule = float, ^(kitty)$
|
|
# Example windowrule v2
|
|
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
|
|
windowrulev2 = [
|
|
# "float, title:^(Steam)$"
|
|
"float, title:^(Archetype.*)$"
|
|
"float, class:(.*nextcloud.*)"
|
|
"float, class:org.kde.kdeconnect.app"
|
|
];
|
|
|
|
# "misc:vfr" = true;
|
|
|
|
env = [
|
|
"XCURSOR_SIZE,24"
|
|
"XDG_SESSION_TYPE,wayland"
|
|
"MOZ_ENABLE_WAYLAND,1"
|
|
"QT_QPA_PLATFORM,wayland"
|
|
];
|
|
exec-once = [
|
|
# "${pkgs.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
|
"${pkgs.mate.mate-polkit}/libexec/polkit-mate-authentication-agent-1"
|
|
# "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
|
# "${pkgs.swww}/bin/swww init; swww img ~/.local/share/dotfiles/images/wallpaper.jpg"
|
|
# "${pkgs.ironbar}/bin/ironbar"
|
|
# "${pkgs.swayosd}/bin/swayosd-server"
|
|
# "${pkgs.nextcloud-client}/bin/nextcloud --background"
|
|
];
|
|
|
|
"$mainMod" = "SUPER";
|
|
"$mainModShift" = "SUPER_SHIFT";
|
|
|
|
binde = [
|
|
",xf86audioraisevolume, exec, ${pkgs.swayosd}/bin/swayosd-client --output-volume raise"
|
|
",xf86audiolowervolume, exec, ${pkgs.swayosd}/bin/swayosd-client --output-volume lower"
|
|
];
|
|
bind = [
|
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
"$mainMod, Return, exec, ${lib.getExe pkgs.kitty}"
|
|
"$mainModShift, Return, exec, ${lib.getExe pkgs.wezterm}"
|
|
# "$mainModShift, Return, exec, ${pkgs.foot}/bin/foot"
|
|
"$mainModShift, Q, killactive,"
|
|
"$mainModShift, s, exec, ${lib.getExe pkgs.hyprshot} -m region -o ~/Pictures/Screenshots/"
|
|
# "$mainMod, M, exit,"
|
|
"$mainModShift, f, togglefloating,"
|
|
"$mainModShift, f, pin"
|
|
"$mainModShift, f, alterzorder, top"
|
|
"$mainMod, f, fullscreen,"
|
|
"$mainMod, g, fullscreenstate,0,2"
|
|
"$mainMod, d, exec, ${lib.getExe pkgs.anyrun}"
|
|
"$mainMod, Space, exec, ${lib.getExe pkgs.anyrun}"
|
|
"$mainMod, p, pseudo, # dwindle"
|
|
"$mainMod, v, togglesplit,"
|
|
"$mainMod, a, exec, ${pkgs.swaynotificationcenter}/bin/swaync-client -t"
|
|
"$mainMod, Tab, cyclenext"
|
|
# Audio
|
|
",xf86audiomute, exec, ${pkgs.swayosd}/bin/swayosd-client --output-volume mute-toggle"
|
|
# replace with later
|
|
# https://github.com/uttarayan21/mctl-rs
|
|
",xf86audioprev, exec, ${lib.getExe pkgs.playerctl} previous"
|
|
",xf86audionext, exec, ${lib.getExe pkgs.playerctl} next"
|
|
",xf86audioplay, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
|
",xf86monbrightnessup, exec, ${lib.getExe pkgs.ddcbacklight} inc 10"
|
|
",xf86monbrightnessdown, exec, ${lib.getExe pkgs.ddcbacklight} dec 10"
|
|
|
|
# Screenshot
|
|
# "$mainMod,Print, exec, grim"
|
|
# "$mainModShift,Print, exec, grim -g "$(slurp)""
|
|
|
|
# Move focus with mainMod + arrow keys
|
|
"$mainMod, left, movefocus, l"
|
|
"$mainMod, right, movefocus, r"
|
|
"$mainMod, up, movefocus, u"
|
|
"$mainMod, down, movefocus, d"
|
|
|
|
"$mainMod, h, movefocus, l"
|
|
"$mainMod, j, movefocus, d"
|
|
"$mainMod, k, movefocus, u"
|
|
"$mainMod, l, movefocus, r"
|
|
|
|
"$mainModShift, h, movewindow, l"
|
|
"$mainModShift, j, movewindow, d"
|
|
"$mainModShift, k, movewindow, u"
|
|
"$mainModShift, l, movewindow, r"
|
|
|
|
# Switch workspaces with mainMod + [0-9]
|
|
"$mainMod, 1, workspace, 1"
|
|
"$mainMod, 2, workspace, 2"
|
|
"$mainMod, 3, workspace, 3"
|
|
"$mainMod, 4, workspace, 4"
|
|
"$mainMod, 5, workspace, 5"
|
|
"$mainMod, 6, workspace, 6"
|
|
"$mainMod, 7, workspace, 7"
|
|
"$mainMod, 8, workspace, 8"
|
|
"$mainMod, 9, workspace, 9"
|
|
"$mainMod, 0, workspace, 10"
|
|
|
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
|
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
|
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
|
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
|
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
|
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
|
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
|
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
|
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
|
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
|
|
|
# Scroll through existing workspaces with mainMod + scroll
|
|
"$mainMod, mouse_down, workspace, e+1"
|
|
"$mainMod, mouse_up, workspace, e-1"
|
|
|
|
"$mainMod, Tab, cyclenext, bind = ALT, Tab, bringactivetotop,"
|
|
];
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
|
|
bindm = [
|
|
"$mainMod, mouse:272, movewindow"
|
|
"$mainMod, mouse:273, resizewindow"
|
|
];
|
|
workspace = [
|
|
"1, monitor:${device.monitors.primary}"
|
|
"2, monitor:${device.monitors.primary}"
|
|
"3, monitor:${device.monitors.primary}"
|
|
"4, monitor:${device.monitors.primary}"
|
|
"5, monitor:${device.monitors.secondary}"
|
|
"6, monitor:${device.monitors.secondary}"
|
|
"7, monitor:${device.monitors.secondary}"
|
|
"8, monitor:${device.monitors.tertiary}"
|
|
"9, monitor:${device.monitors.tertiary}"
|
|
"10, monitor:${device.monitors.tertiary}"
|
|
];
|
|
};
|
|
};
|
|
}
|