pain and suffering
This commit is contained in:
@@ -65,6 +65,7 @@
|
|||||||
"libvirt"
|
"libvirt"
|
||||||
"input"
|
"input"
|
||||||
"seat"
|
"seat"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
packages = with pkgs; [ ];
|
packages = with pkgs; [ ];
|
||||||
};
|
};
|
||||||
@@ -82,6 +83,7 @@
|
|||||||
"libvirt"
|
"libvirt"
|
||||||
"input"
|
"input"
|
||||||
"seat"
|
"seat"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
packages = with pkgs; [ ];
|
packages = with pkgs; [ ];
|
||||||
};
|
};
|
||||||
@@ -98,6 +100,7 @@
|
|||||||
"input"
|
"input"
|
||||||
"seat"
|
"seat"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
home = "/home/game";
|
home = "/home/game";
|
||||||
};
|
};
|
||||||
|
|||||||
423
dots/\
Normal file
423
dots/\
Normal file
@@ -0,0 +1,423 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
window_manager,
|
||||||
|
systemName,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
hypr-portal =
|
||||||
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
hypr-split =
|
||||||
|
inputs.hyprland-hyprsplit.packages.${pkgs.stdenv.hostPlatform.system}.split-monitor-workspaces;
|
||||||
|
#hyprscrolling = inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprscrolling;
|
||||||
|
mod = "Alt";
|
||||||
|
terminal = "footclient";
|
||||||
|
fileManager = "thunar";
|
||||||
|
#runner = "${lib.getExe caelestia-cli} shell drawers toggle launcher";
|
||||||
|
runner = "vicinae toggle";
|
||||||
|
# runner = "anyrun";
|
||||||
|
browser = "brave";
|
||||||
|
editor = "emacsclient -c";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = window_manager == "hyprland" || window_manager == "all";
|
||||||
|
package = hypr-package;
|
||||||
|
portalPackage = hypr-portal;
|
||||||
|
plugins = [
|
||||||
|
#pkgs.hyprlandPlugins.hyprsplit
|
||||||
|
hypr-split
|
||||||
|
#hyprscrolling
|
||||||
|
];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
##########################################################################
|
||||||
|
# Monitors
|
||||||
|
##########################################################################
|
||||||
|
#source = "./dms/outputs.conf";
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor = lib.mkMerge [
|
||||||
|
#(lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ])
|
||||||
|
(lib.mkIf (systemName == "pc") [
|
||||||
|
"HDMI-A-2, disable"
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
monitorv2 =
|
||||||
|
[ ]
|
||||||
|
++ lib.optional (systemName == "laptop") {
|
||||||
|
output = "eDP-1";
|
||||||
|
mode = "1920x1080@59.99700";
|
||||||
|
scale = 1;
|
||||||
|
position = "0x0";
|
||||||
|
}
|
||||||
|
++ lib.optional (systemName == "pc") {
|
||||||
|
output = "DP-1";
|
||||||
|
mode = "2560x1440@239.97";
|
||||||
|
position = "2560x0"; # "1440x750"; # Corrected from 2569x0 for seamless alignment
|
||||||
|
scale = 1;
|
||||||
|
#supports_wide_color = 1;
|
||||||
|
bitdepth = 10;
|
||||||
|
cm = "wide";
|
||||||
|
supports_hdr = true;
|
||||||
|
supports_wide_color = true;
|
||||||
|
sdr_min_luminance = 0; # For true black on OLED
|
||||||
|
sdr_max_luminance = 275; # Matches typical SDR brightness
|
||||||
|
min_luminance = 0;
|
||||||
|
max_luminance = 1000; # HDR peak
|
||||||
|
max_avg_luminance = 400; # Average frame luminance
|
||||||
|
sdrbrightness = 1.2; # Slight boost to avoid washed out look
|
||||||
|
sdrsaturation = 1.0;
|
||||||
|
}
|
||||||
|
++ lib.optional (systemName == "pc") {
|
||||||
|
output = "DP-2";
|
||||||
|
mode = "2560x1440@144";
|
||||||
|
scale = 1;
|
||||||
|
position = "0x0";
|
||||||
|
transform = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Autostart
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
|
# Or execute your favorite apps at launch like this:
|
||||||
|
exec-once = [
|
||||||
|
# "waybar"
|
||||||
|
# "quickshell"
|
||||||
|
#"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
||||||
|
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
|
||||||
|
"${pkgs.kdePackages.kwallet-pam}/libexec/pam_kwallet_init"
|
||||||
|
"fcitx5 -d"
|
||||||
|
"foot -s"
|
||||||
|
"systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME"
|
||||||
|
"dbus-update-activation-environment --systemd --all"
|
||||||
|
]
|
||||||
|
++ lib.optionals (config.home.username == "work") [
|
||||||
|
"thunderbird"
|
||||||
|
"sleep 10 && emacsclient -c --frame-parameters='((name . \"work\"))' $HOME/Documents/work/README.org"
|
||||||
|
];
|
||||||
|
# ++ lib.optional (systemName == "laptop")
|
||||||
|
# "swaybg -o eDP-1 -i ${../assets/Wallpapers/138.png}"
|
||||||
|
#
|
||||||
|
# ++ lib.optional (systemName == "pc")
|
||||||
|
# "swaybg -o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}";
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Plugins
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
plugin = {
|
||||||
|
split-monitor-workspaces = {
|
||||||
|
count = 10;
|
||||||
|
penable_persistent_workspaces = 1;
|
||||||
|
};
|
||||||
|
hyprscrolling = {
|
||||||
|
column_width = 0.9;
|
||||||
|
follow_focus = false;
|
||||||
|
fullscreen_on_one_column = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Environment
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"XCURSOR_SIZE, 24"
|
||||||
|
"HYPRCURSOR_SIZE, 24"
|
||||||
|
];
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# General / Render / Decoration / Animations
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general = {
|
||||||
|
gaps_in = 5;
|
||||||
|
gaps_out = 10;
|
||||||
|
border_size = 2;
|
||||||
|
# "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
# "col.inactive_border" = "rgba(595959aa)";
|
||||||
|
resize_on_border = false; # enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
allow_tearing = false; # see https://wiki.hyprland.org/Configuring/Tearing/ before enabling
|
||||||
|
layout = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
render = {
|
||||||
|
cm_enabled = true; # turn on the CM pipeline (requires Hyprland restart)
|
||||||
|
cm_fs_passthrough = 2; # passthrough only for HDR content (safer than 1)
|
||||||
|
cm_auto_hdr = 1; # auto-switch monitor to HDR for fullscreen apps
|
||||||
|
send_content_type = true; # helps auto HDR on some displays
|
||||||
|
# cm_fs_passthrough = 1; # optional: keep your existing line; you can replace with 2 as above
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration = {
|
||||||
|
rounding = 0;
|
||||||
|
rounding_power = 0;
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 4;
|
||||||
|
render_power = 3;
|
||||||
|
# color = "rgba(1a1a1aee)";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur = {
|
||||||
|
enabled = false;
|
||||||
|
size = 3;
|
||||||
|
passes = 1;
|
||||||
|
vibrancy = 0.1696;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = "yes, please :)";
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
bezier = [
|
||||||
|
"easeOutQuint,0.23,1,0.32,1"
|
||||||
|
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||||
|
"linear,0,0,1,1"
|
||||||
|
"almostLinear,0.5,0.5,0.75,1.0"
|
||||||
|
"quick,0.15,0,0.1,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"global, 1, 10, default"
|
||||||
|
"border, 1, 5.39, easeOutQuint"
|
||||||
|
"windows, 1, 4.79, easeOutQuint"
|
||||||
|
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||||
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||||
|
"fadeIn, 1, 1.73, almostLinear"
|
||||||
|
"fadeOut, 1, 1.46, almostLinear"
|
||||||
|
"fade, 1, 3.03, quick"
|
||||||
|
"layers, 1, 3.81, easeOutQuint"
|
||||||
|
"layersIn, 1, 4, easeOutQuint, fade"
|
||||||
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
|
"workspaces, 1, 1.94, almostLinear, fade"
|
||||||
|
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||||
|
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Layouts
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds
|
||||||
|
preserve_split = true; # You probably want this
|
||||||
|
force_split = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master = {
|
||||||
|
new_status = "master";
|
||||||
|
mfact = 0.5;
|
||||||
|
new_on_top = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Misc / Input / Gestures / Devices
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1; # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = true; # If true disables the random hyprland logo / anime girl background. :(
|
||||||
|
enable_swallow = true;
|
||||||
|
swallow_regex = "footclient";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
input = {
|
||||||
|
kb_layout = lib.mkMerge [
|
||||||
|
(lib.mkIf (systemName == "laptop") "ie")
|
||||||
|
(lib.mkIf (systemName == "pc") "us")
|
||||||
|
];
|
||||||
|
repeat_rate = 40;
|
||||||
|
repeat_delay = 500;
|
||||||
|
# kb_variant =
|
||||||
|
# kb_model =
|
||||||
|
# kb_options =
|
||||||
|
# kb_rules =
|
||||||
|
follow_mouse = 1;
|
||||||
|
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
# gestures = {
|
||||||
|
# workspace_swipe = true;
|
||||||
|
# workspace_swipe_cancel_ratio = 0.15;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Example per-device config
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs
|
||||||
|
device = {
|
||||||
|
name = "epic-mouse-v1";
|
||||||
|
sensitivity = -0.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Binds
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
# Launcher / apps
|
||||||
|
"${mod}, Return, exec, ${terminal}"
|
||||||
|
"${mod}, B, exec, ${browser}"
|
||||||
|
"${mod}, F, exec, ${fileManager}"
|
||||||
|
"${mod}, D, exec, ${runner}"
|
||||||
|
"${mod}, E, exec, ${editor}"
|
||||||
|
|
||||||
|
# Session / window controls
|
||||||
|
"${mod}, Q, killactive,"
|
||||||
|
"${mod}, M, exit,"
|
||||||
|
"${mod}, V, togglefloating,"
|
||||||
|
"${mod}, T, fullscreen"
|
||||||
|
# ",Print, exec, grim -g \"$(slurp)\" - | swappy -f -"
|
||||||
|
",Print, exec, dms screenshot"
|
||||||
|
"${mod}, f1, exec, dms ipc call keybinds toggle hyprland"
|
||||||
|
|
||||||
|
# Dwindle
|
||||||
|
"${mod}, P, pseudo, "
|
||||||
|
|
||||||
|
# Focus (arrows)
|
||||||
|
"${mod}, H, movefocus, l"
|
||||||
|
"${mod}, L, movefocus, r"
|
||||||
|
"${mod}, K, movefocus, u"
|
||||||
|
"${mod}, J, movefocus, d"
|
||||||
|
|
||||||
|
# Column movement (hyprscrolling)
|
||||||
|
#"${mod}, h, layoutmsg, move -col"
|
||||||
|
#"${mod}, L, layoutmsg, move +col"
|
||||||
|
|
||||||
|
# Move window
|
||||||
|
"${mod} SHIFT, H, movewindow, l"
|
||||||
|
"${mod} SHIFT, L, movewindow, r"
|
||||||
|
"${mod} SHIFT, K, movewindow, u"
|
||||||
|
"${mod} SHIFT, J, movewindow, d"
|
||||||
|
#"${mod} SHIFT, L, layoutmsg, movewindowto r"
|
||||||
|
#"${mod} SHIFT, H, layoutmsg, movewindowto l"
|
||||||
|
#"${mod} SHIFT, K, layoutmsg, movewindowto u"
|
||||||
|
#"${mod} SHIFT, J, layoutmsg, movewindowto d"
|
||||||
|
"${mod}, semicolon, layoutmsg, promote"
|
||||||
|
|
||||||
|
#hyperscrolling stuff
|
||||||
|
"${mod}, period, layoutmsg, move +col"
|
||||||
|
"${mod}, comma, layoutmsg, move -col"
|
||||||
|
|
||||||
|
# Workspaces (switch)
|
||||||
|
"${mod}, 1, split-workspace, 1 "
|
||||||
|
"${mod}, 2, split-workspace, 2 "
|
||||||
|
"${mod}, 3, split-workspace, 3 "
|
||||||
|
"${mod}, 4, split-workspace, 4 "
|
||||||
|
"${mod}, 5, split-workspace, 5 "
|
||||||
|
"${mod}, 6, split-workspace, 6 "
|
||||||
|
"${mod}, 7, split-workspace, 7 "
|
||||||
|
"${mod}, 8, split-workspace, 8 "
|
||||||
|
"${mod}, 9, split-workspace, 9 "
|
||||||
|
"${mod}, 0, split-workspace, 10"
|
||||||
|
|
||||||
|
# Workspaces (move active window)
|
||||||
|
"${mod} SHIFT, 1, split-movetoworkspacesilent, 1 "
|
||||||
|
"${mod} SHIFT, 2, split-movetoworkspacesilent, 2 "
|
||||||
|
"${mod} SHIFT, 3, split-movetoworkspacesilent, 3 "
|
||||||
|
"${mod} SHIFT, 4, split-movetoworkspacesilent, 4 "
|
||||||
|
"${mod} SHIFT, 5, split-movetoworkspacesilent, 5 "
|
||||||
|
"${mod} SHIFT, 6, split-movetoworkspacesilent, 6 "
|
||||||
|
"${mod} SHIFT, 7, split-movetoworkspacesilent, 7 "
|
||||||
|
"${mod} SHIFT, 8, split-movetoworkspacesilent, 8 "
|
||||||
|
"${mod} SHIFT, 9, split-movetoworkspacesilent, 9 "
|
||||||
|
"${mod} SHIFT, 0, split-movetoworkspacesilent, 10"
|
||||||
|
|
||||||
|
# Special workspace (scratchpad)
|
||||||
|
"${mod}, SLASH, togglespecialworkspace, magic"
|
||||||
|
"${mod} SHIFT, SLASH, movetoworkspace, special:magic"
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
"${mod}, mouse_down, workspace, e+1"
|
||||||
|
"${mod}, mouse_up, workspace, e-1"
|
||||||
|
|
||||||
|
# 8BitDo keyboard big red b Button
|
||||||
|
"${mod} SHIFT, F1, exec, scrcpy --video-source=camera -m3000 --camera-facing=back --v4l2-sink=/dev/video1 --no-video-playback --no-audio"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
"${mod}, mouse:272, movewindow"
|
||||||
|
"${mod}, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindel = [
|
||||||
|
",XF86AudioRaiseVolume, exec, pamixer -i 5"
|
||||||
|
",XF86AudioLowerVolume, exec, pamixer -d 5"
|
||||||
|
",XF86AudioMute, exec, pamixer --toggle-mute"
|
||||||
|
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
# ",XF86MonBrightnessUp, exec, light -A 5"
|
||||||
|
# ",XF86MonBrightnessDown, exec, light -U 5"
|
||||||
|
|
||||||
|
# Brightness
|
||||||
|
",XF86MonBrightnessUp, global, dms ipc call brightness increment 5"
|
||||||
|
",XF86MonBrightnessDown, global, dms ipc call brightness decrement 5"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindl = [
|
||||||
|
", XF86AudioNext, exec, playerctl next"
|
||||||
|
", XF86AudioPause, exec, playerctl play-pause"
|
||||||
|
", XF86AudioPlay, exec, playerctl play-pause "
|
||||||
|
", XF86AudioPrev, exec, playerctl previous "
|
||||||
|
];
|
||||||
|
|
||||||
|
binds = [ ];
|
||||||
|
|
||||||
|
##########################################################################
|
||||||
|
# Rules (windows / workspaces)
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Example windowrule
|
||||||
|
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
|
# Smart gaps / No gaps when only
|
||||||
|
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||||
|
# workspace = f[1], gapsout:0, gapsin:0
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||||
|
|
||||||
|
windowrule = [
|
||||||
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
"match:class .*, suppress_event maximize"
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
"match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0, no_focus on"
|
||||||
|
|
||||||
|
"match:class thunderbird, workspace special:magic silent"
|
||||||
|
"match:class emacs, match:title work, workspace special:magic silent"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -8,19 +8,19 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.dms.homeModules.dankMaterialShell.default
|
inputs.dms.homeModules.dank-material-shell
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.dankMaterialShell = {
|
programs.dank-material-shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true; # if you prefer starting from your compositor
|
enable = true; # if you prefer starting from your compositor
|
||||||
};
|
};
|
||||||
|
|
||||||
default.settings = {
|
#settings = {
|
||||||
theme = "dark";
|
# theme = "dark";
|
||||||
dynamicTheming = true;
|
# dynamicTheming = true;
|
||||||
# Add any other settings here
|
# # Add any other settings here
|
||||||
};
|
#};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,10 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
hypr-portal = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
hypr-portal =
|
||||||
hypr-split = inputs.hyprland-hyprsplit.packages.${pkgs.stdenv.hostPlatform.system}.split-monitor-workspaces;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
hypr-split =
|
||||||
|
inputs.hyprland-hyprsplit.packages.${pkgs.stdenv.hostPlatform.system}.split-monitor-workspaces;
|
||||||
#hyprscrolling = inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprscrolling;
|
#hyprscrolling = inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprscrolling;
|
||||||
mod = "Alt";
|
mod = "Alt";
|
||||||
terminal = "footclient";
|
terminal = "footclient";
|
||||||
@@ -18,7 +20,7 @@ let
|
|||||||
#runner = "${lib.getExe caelestia-cli} shell drawers toggle launcher";
|
#runner = "${lib.getExe caelestia-cli} shell drawers toggle launcher";
|
||||||
runner = "vicinae toggle";
|
runner = "vicinae toggle";
|
||||||
# runner = "anyrun";
|
# runner = "anyrun";
|
||||||
browser = "firefox";
|
browser = "brave";
|
||||||
editor = "emacsclient -c";
|
editor = "emacsclient -c";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -36,50 +38,49 @@ in
|
|||||||
##########################################################################
|
##########################################################################
|
||||||
# Monitors
|
# Monitors
|
||||||
##########################################################################
|
##########################################################################
|
||||||
source = "./dms/outputs.conf";
|
#source = "./dms/outputs.conf";
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
#monitor = lib.mkMerge [
|
monitor = lib.mkMerge [
|
||||||
# #(lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ])
|
#(lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ])
|
||||||
# (lib.mkIf (systemName == "pc") [
|
(lib.mkIf (systemName == "pc") [
|
||||||
# "HDMI-A-2, disable"
|
"HDMI-A-2, disable"
|
||||||
# ])
|
])
|
||||||
#];
|
];
|
||||||
|
|
||||||
#monitorv2 =
|
monitorv2 =
|
||||||
# [ ]
|
[ ]
|
||||||
# ++ lib.optional (systemName == "laptop") {
|
++ lib.optional (systemName == "laptop") {
|
||||||
# output = "eDP-1";
|
output = "eDP-1";
|
||||||
# mode = "1920x1080@59.99700";
|
mode = "1920x1080@59.99700";
|
||||||
# scale = 1;
|
scale = 1;
|
||||||
# position = "0x0";
|
position = "0x0";
|
||||||
# }
|
}
|
||||||
# ++ lib.optional (systemName == "pc") {
|
++ lib.optional (systemName == "pc") {
|
||||||
# output = "DP-1";
|
output = "DP-1";
|
||||||
# mode = "2560x1440@239.97";
|
mode = "2560x1440@239.97";
|
||||||
# position = "2560x0"; # "1440x750"; # Corrected from 2569x0 for seamless alignment
|
position = "2560x0"; # "1440x750"; # Corrected from 2569x0 for seamless alignment
|
||||||
# scale = 1;
|
scale = 1;
|
||||||
# #supports_wide_color = 1;
|
#supports_wide_color = 1;
|
||||||
# bitdepth = 10;
|
bitdepth = 10;
|
||||||
# cm = "hdr";
|
cm = "wide";
|
||||||
# supports_hdr = true;
|
supports_hdr = true;
|
||||||
# supports_wide_color = true;
|
supports_wide_color = true;
|
||||||
# sdr_min_luminance = 0; # For true black on OLED
|
sdr_min_luminance = 0; # For true black on OLED
|
||||||
# sdr_max_luminance = 275; # Matches typical SDR brightness
|
sdr_max_luminance = 275; # Matches typical SDR brightness
|
||||||
# min_luminance = 0;
|
min_luminance = 0;
|
||||||
# max_luminance = 1000; # HDR peak
|
max_luminance = 1000; # HDR peak
|
||||||
# max_avg_luminance = 400; # Average frame luminance
|
max_avg_luminance = 400; # Average frame luminance
|
||||||
# sdrbrightness = 1.2; # Slight boost to avoid washed out look
|
sdrbrightness = 1.2; # Slight boost to avoid washed out look
|
||||||
# sdrsaturation = 1.0;
|
sdrsaturation = 1.0;
|
||||||
# #transform = 2; # Uncomment if needed
|
}
|
||||||
# }
|
++ lib.optional (systemName == "pc") {
|
||||||
# ++ lib.optional (systemName == "pc") {
|
output = "DP-2";
|
||||||
# output = "DP-2";
|
mode = "2560x1440@144";
|
||||||
# mode = "2560x1440@144";
|
scale = 1;
|
||||||
# scale = 1;
|
position = "0x0";
|
||||||
# position = "0x0";
|
transform = 0;
|
||||||
# transform = 0;
|
};
|
||||||
# };
|
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Autostart
|
# Autostart
|
||||||
@@ -90,7 +91,9 @@ in
|
|||||||
exec-once = [
|
exec-once = [
|
||||||
# "waybar"
|
# "waybar"
|
||||||
# "quickshell"
|
# "quickshell"
|
||||||
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
#"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
||||||
|
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
|
||||||
|
"${pkgs.kdePackages.kwallet-pam}/libexec/pam_kwallet_init"
|
||||||
"fcitx5 -d"
|
"fcitx5 -d"
|
||||||
"foot -s"
|
"foot -s"
|
||||||
"systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME"
|
"systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME"
|
||||||
@@ -295,7 +298,6 @@ in
|
|||||||
",Print, exec, dms screenshot"
|
",Print, exec, dms screenshot"
|
||||||
"${mod}, f1, exec, dms ipc call keybinds toggle hyprland"
|
"${mod}, f1, exec, dms ipc call keybinds toggle hyprland"
|
||||||
|
|
||||||
|
|
||||||
# Dwindle
|
# Dwindle
|
||||||
"${mod}, P, pseudo, "
|
"${mod}, P, pseudo, "
|
||||||
|
|
||||||
|
|||||||
@@ -10,12 +10,12 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
discord = {
|
discord = {
|
||||||
enable = false;
|
enable = false;
|
||||||
package = pkgs.vencord;
|
#package = pkgs.vencord;
|
||||||
};
|
};
|
||||||
vesktop = {
|
vesktop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vesktop;
|
#package = pkgs.vesktop;
|
||||||
useSystemVencord = false;
|
#useSystemVencord = false;
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
plugins = {
|
plugins = {
|
||||||
@@ -42,9 +42,6 @@
|
|||||||
biggerStreamPreview = {
|
biggerStreamPreview = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
clearUrLs = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
copyFileContents = {
|
copyFileContents = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
defaultApplications =
|
defaultApplications =
|
||||||
let
|
let
|
||||||
browser = [ "firefox.desktop" ];
|
browser = [ "brave.desktop" ];
|
||||||
fileManager = [ "pcmanfm.desktop" ];
|
fileManager = [ "pcmanfm.desktop" ];
|
||||||
editor = [ "emacs.desktop" ];
|
editor = [ "emacs.desktop" ];
|
||||||
player = [ "mpv.desktop" ];
|
player = [ "mpv.desktop" ];
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
ns = "nh os switch --specialisation 00-main-system";
|
ns = "nh os switch --specialisation 00-main-system";
|
||||||
nu = "(cd ~/nixos-dots && nix flake update) && echo 'flake.lock updated'";
|
nu = "(cd ~/nixos-dots && nix flake update --commit-lock-file) && echo 'flake.lock updated'";
|
||||||
ne = "emacsclient -c ~/nixos-dots/configuration.nix";
|
ne = "emacsclient -c ~/nixos-dots/configuration.nix";
|
||||||
|
|
||||||
ls = "exa -lag --icons";
|
ls = "exa -lag --icons";
|
||||||
|
|||||||
56
flake.lock
generated
56
flake.lock
generated
@@ -233,11 +233,11 @@
|
|||||||
"quickshell": "quickshell_3"
|
"quickshell": "quickshell_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767536308,
|
"lastModified": 1767649471,
|
||||||
"narHash": "sha256-mtIZDKf4dO6Kaflg/tzHTwZwun04oDPO+ZK/r3XrPAw=",
|
"narHash": "sha256-njG0q58Xnx69/V0KCTwBsI514sO/Eq1yF74+8hLDU1A=",
|
||||||
"owner": "AvengeMedia",
|
"owner": "AvengeMedia",
|
||||||
"repo": "DankMaterialShell",
|
"repo": "DankMaterialShell",
|
||||||
"rev": "2e1bed5fb5080ad1a0bd2d7f270f916e6f57dfb2",
|
"rev": "ab071e12aaf0c42b6e0921b94f96553c4a10bcbf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -410,11 +410,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767525999,
|
"lastModified": 1767619743,
|
||||||
"narHash": "sha256-1E9xlYlyl3EnUrwxoaJMTK7dFrC2llL/TJ+T4xIcXDY=",
|
"narHash": "sha256-N0kK1JqxIjFl7hPAfhkW6C9AO7feYJUWLPyqJO2VuQQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7d5927b63cea63deb655b3e8421ae17ebb9feac2",
|
"rev": "a65c04965c841eb01ba401f5162f12bc8d52014f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -500,11 +500,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767523459,
|
"lastModified": 1767654014,
|
||||||
"narHash": "sha256-Z3EijMLd18cg8arhXv+A/tNiknQIYaeWQVoCNUm+c4A=",
|
"narHash": "sha256-M5WVoXwlZpYcEKS23sEQKMzzdqItY/iEWoj3reIBfiE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "0b3b012817ca381e40754cb4408e5c0cd3a2c732",
|
"rev": "9817553c664b0b7f6776671383a6368c74ee8dee",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -597,11 +597,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767473668,
|
"lastModified": 1767640250,
|
||||||
"narHash": "sha256-KLybElvKmWkCJBVgEesy7OueJsmDhksfbDFJ3UltPlk=",
|
"narHash": "sha256-502sjmbTK/W8x6DUbJAyiBOABwV1q5Wb5caCMwd6BuI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "a084d66d7d1334b89a07d0022fa12049141cb119",
|
"rev": "0b356053fa4e6a6f5e857529654ff45eba2859d8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -944,11 +944,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767513804,
|
"lastModified": 1767600187,
|
||||||
"narHash": "sha256-EbKqZJppvhtsj17IYu8EQm1WhfBuQbmLMmsbVlzSyh0=",
|
"narHash": "sha256-pnfuAPzku7uqNt7Bc0zILNrvmeHd+1/iEN5caWJb8x4=",
|
||||||
"owner": "kaylorben",
|
"owner": "kaylorben",
|
||||||
"repo": "nixcord",
|
"repo": "nixcord",
|
||||||
"rev": "f61c17099bbec0404af0f7639c2c7390ee2752ae",
|
"rev": "9748d874957aef2a3f44de2c3fdfe412c62a9063",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1021,11 +1021,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767379071,
|
"lastModified": 1766580501,
|
||||||
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
|
"narHash": "sha256-bGKKceW7Sr5HsuyDrdUCdx3/NkyvASdst86yx955CCE=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
|
"rev": "3bd884a63dc53ecb0bf43422f4aa4f51d87a04e9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1262,11 +1262,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767397606,
|
"lastModified": 1767652667,
|
||||||
"narHash": "sha256-QA1d/6XzxK3lsMiJ+xiJf340cpNeJs/xIM6D0/yLqs4=",
|
"narHash": "sha256-zsgfockkvK0JrSvzVAb8JeUq3SDdITu6ViUf7yeIpi4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "6850ad2e9f3f7ff6116e9e6fb73a9cca2d9b1a35",
|
"rev": "a4406d9799d002c41296c72378a1094a8fc9aa1b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1407,11 +1407,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767534317,
|
"lastModified": 1767621589,
|
||||||
"narHash": "sha256-22Iw3fka3S6rygdzMTKmwDVEIPRB9f238eln3QiYEdY=",
|
"narHash": "sha256-L0A4daBtEuponvKr5YM4wn8btDku0Cs2Eu5b+EtTgSk=",
|
||||||
"owner": "vicinaehq",
|
"owner": "vicinaehq",
|
||||||
"repo": "vicinae",
|
"repo": "vicinae",
|
||||||
"rev": "9d30e33b14248ad2f8b8bc55f488f1f552b8fec0",
|
"rev": "b79669006c4e49e32f2ae889c1294cd62c8071d5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1471,11 +1471,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767502237,
|
"lastModified": 1767568852,
|
||||||
"narHash": "sha256-rRrn9I4H692troUl5pBtE3Y5mG2msSMU/2ro7+ZQrFM=",
|
"narHash": "sha256-6s8hL3YX9zAq2T7qvcwwzaEVwc9MEYbW+C2LcAAQfbk=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "e3efa5e2b53982f985044062c98426ec75d6695b",
|
"rev": "350c729b261e6f5529460140a5f0943dd4c5e156",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
12
flake.nix
12
flake.nix
@@ -26,7 +26,7 @@
|
|||||||
url = "github:AvengeMedia/dgop";
|
url = "github:AvengeMedia/dgop";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
dms = {
|
dms = {
|
||||||
url = "github:AvengeMedia/DankMaterialShell";
|
url = "github:AvengeMedia/DankMaterialShell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.dgop.follows = "dgop";
|
inputs.dgop.follows = "dgop";
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
url = "github:vicinaehq/vicinae";
|
url = "github:vicinaehq/vicinae";
|
||||||
#inputs.nixpkgs.follows = "nixpkgs";
|
#inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
# ... your existing inputs ...
|
# ... your existing inputs ...
|
||||||
jovian = {
|
jovian = {
|
||||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -78,7 +78,13 @@
|
|||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
#pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
system = "x86_64-linux"; # or your system
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
#Avalable options are ["niri" "river" "hyprland" "all"]
|
#Avalable options are ["niri" "river" "hyprland" "all"]
|
||||||
window_manager = "hyprland";
|
window_manager = "hyprland";
|
||||||
in
|
in
|
||||||
|
|||||||
303
home/\
Normal file
303
home/\
Normal file
@@ -0,0 +1,303 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# hyprlock = pkgs.callPackage ../../universal/personalPKGS/hyprlock.nix {};
|
||||||
|
# hypridle = pkgs.callPackage ../../universal/personalPKGS/hypridle.nix {};
|
||||||
|
|
||||||
|
defaultProfile = {
|
||||||
|
id = 0;
|
||||||
|
name = "default";
|
||||||
|
isDefault = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.zen-browser.homeModules.beta
|
||||||
|
inputs.caelestia.homeManagerModules.default
|
||||||
|
inputs.vicinae.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zen-browser = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = defaultProfile;
|
||||||
|
};
|
||||||
|
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
profiles.default = defaultProfile;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
lazygit.enable = true;
|
||||||
|
|
||||||
|
vscode = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Key fix: don’t let the CLI touch ~/.vscode/extensions
|
||||||
|
mutableExtensionsDir = false;
|
||||||
|
|
||||||
|
# (Optional but nice) Use a build with a stable headless CLI:
|
||||||
|
# package = pkgs.vscodium; # or keep pkgs.vscode
|
||||||
|
|
||||||
|
profiles.default = {
|
||||||
|
extensions = with pkgs.vscode-extensions; [
|
||||||
|
platformio.platformio-vscode-ide
|
||||||
|
];
|
||||||
|
|
||||||
|
# Optional: keep Code from trying to self-update
|
||||||
|
# userSettings = {
|
||||||
|
# "update.mode" = "none";
|
||||||
|
# "extensions.autoUpdate" = false;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Optional (older HM versions expose these at top-level):
|
||||||
|
# enableUpdateCheck = false;
|
||||||
|
# enableExtensionUpdateCheck = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.vicinae = {
|
||||||
|
enable = true; # default: false
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
environment = {
|
||||||
|
USE_LAYER_SHELL = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
#package = # specify package to use here. Can be omitted.
|
||||||
|
# Installing (vicinae) extensions declaratively
|
||||||
|
#settings = {
|
||||||
|
# faviconService = "twenty"; # twenty | google | none
|
||||||
|
# font.size = 11;
|
||||||
|
# popToRootOnClose = false;
|
||||||
|
# rootSearch.searchFiles = false;
|
||||||
|
# theme.name = "vicinae-dark";
|
||||||
|
# window = {
|
||||||
|
# csd = true;
|
||||||
|
# opacity = 0.95;
|
||||||
|
# rounding = 10;
|
||||||
|
# };
|
||||||
|
#};
|
||||||
|
#extensions = [
|
||||||
|
# (inputs.vicinae.mkVicinaeExtension.${pkgs.stdenv.hostPlatform.system} {
|
||||||
|
# inherit pkgs;
|
||||||
|
# name = "extension-name";
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# # You can also specify different sources other than github
|
||||||
|
# owner = "repo-owner";
|
||||||
|
# repo = "repo-name";
|
||||||
|
# rev = "v1.0"; # If the extension has no releases use the latest commit hash
|
||||||
|
# # You can get the sha256 by rebuilding once and then copying the output hash from the error message
|
||||||
|
# sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
|
||||||
|
# }; # If the extension is in a subdirectory you can add ` + "/subdir"` between the brace and the semicolon here
|
||||||
|
# })
|
||||||
|
#];
|
||||||
|
};
|
||||||
|
|
||||||
|
qt.enable = true;
|
||||||
|
# qt.style = "gtk2";
|
||||||
|
# qt.platformTheme = "qt5ct";
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"freeimage-unstable-2021-11-01"
|
||||||
|
"qtwebengine-5.15.19"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.kdeconnect.enable = true;
|
||||||
|
pkgs = import inputs.nixpkgs {
|
||||||
|
config = {
|
||||||
|
android_sdk.accept_license = true; # Accept Android SDK license
|
||||||
|
# allowUnfree = true; # Uncomment if you encounter unfree issues with android-studio-full
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
############################
|
||||||
|
# Shells & Terminals
|
||||||
|
############################
|
||||||
|
alacritty
|
||||||
|
zsh
|
||||||
|
|
||||||
|
############################
|
||||||
|
# CLI Shit
|
||||||
|
############################
|
||||||
|
atuin
|
||||||
|
|
||||||
|
############################
|
||||||
|
# System Utilities
|
||||||
|
############################
|
||||||
|
app2unit
|
||||||
|
brightnessctl
|
||||||
|
ddcutil
|
||||||
|
duf
|
||||||
|
libnotify
|
||||||
|
lm_sensors
|
||||||
|
macchina
|
||||||
|
rm-improved
|
||||||
|
xarchiver
|
||||||
|
xdg-user-dirs
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Monitoring & TUI Apps
|
||||||
|
############################
|
||||||
|
btop
|
||||||
|
cava
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Wayland / Desktop Tools
|
||||||
|
############################
|
||||||
|
grim
|
||||||
|
hyprpaper
|
||||||
|
hyprpicker
|
||||||
|
mangohud
|
||||||
|
rofi
|
||||||
|
slurp
|
||||||
|
swappy
|
||||||
|
wf-recorder
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Audio / Media Tools
|
||||||
|
############################
|
||||||
|
openai-whisper
|
||||||
|
pamixer
|
||||||
|
playerctl
|
||||||
|
alsa-utils
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Browsers & Web
|
||||||
|
############################
|
||||||
|
brave
|
||||||
|
firefox
|
||||||
|
ladybird
|
||||||
|
wgnord
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Communication & Sharing
|
||||||
|
############################
|
||||||
|
#element-desktop
|
||||||
|
localsend
|
||||||
|
thunderbird
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Documents & Viewers
|
||||||
|
############################
|
||||||
|
libreoffice
|
||||||
|
libreoffice-fresh
|
||||||
|
zathura
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Media Players & Imaging
|
||||||
|
############################
|
||||||
|
imv
|
||||||
|
mpv
|
||||||
|
#upscaler
|
||||||
|
youtube-music
|
||||||
|
libsixel
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Development Toolchains
|
||||||
|
############################
|
||||||
|
gdb
|
||||||
|
nodejs_20
|
||||||
|
platformio
|
||||||
|
rustc
|
||||||
|
rustup
|
||||||
|
zed-editor
|
||||||
|
android-studio-full
|
||||||
|
|
||||||
|
# Language tooling from inputs
|
||||||
|
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode
|
||||||
|
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Game Dev / Engines / Creative
|
||||||
|
############################
|
||||||
|
blender-hip
|
||||||
|
godot_4
|
||||||
|
freecad
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Emulation
|
||||||
|
############################
|
||||||
|
fuse
|
||||||
|
fuse-emulator
|
||||||
|
fuse3
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Android Tools
|
||||||
|
############################
|
||||||
|
android-tools
|
||||||
|
scrcpy
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Gaming & Launchers
|
||||||
|
############################
|
||||||
|
dualsensectl
|
||||||
|
gamemode
|
||||||
|
goverlay
|
||||||
|
(pkgs.heroic.override {
|
||||||
|
extraPkgs = pkgs: [ pkgs.gamescope ]; # pulls in the real package
|
||||||
|
})
|
||||||
|
prismlauncher
|
||||||
|
protonup-qt
|
||||||
|
wineWowPackages.stable
|
||||||
|
mangayomi
|
||||||
|
rink
|
||||||
|
protontricks
|
||||||
|
|
||||||
|
abaddon
|
||||||
|
|
||||||
|
############################
|
||||||
|
# KDE / File Management
|
||||||
|
############################
|
||||||
|
kdePackages.qt6ct
|
||||||
|
kdePackages.baloo # new
|
||||||
|
kdePackages.baloo-widgets # new
|
||||||
|
kdePackages.dolphin
|
||||||
|
kdePackages.ffmpegthumbs # new
|
||||||
|
kdePackages.kdegraphics-mobipocket # new
|
||||||
|
kdePackages.kdegraphics-thumbnailers # new
|
||||||
|
kdePackages.kdesdk-thumbnailers # new
|
||||||
|
kdePackages.kimageformats # new
|
||||||
|
kdePackages.kio
|
||||||
|
kdePackages.kio-extras
|
||||||
|
# kdePackages.breeze-icons
|
||||||
|
# kdePackages.dolphin-plugins
|
||||||
|
# kdePackages.kde-cli-tools
|
||||||
|
# resvg # new
|
||||||
|
adwaita-icon-theme
|
||||||
|
hicolor-icon-theme
|
||||||
|
qt6.qtsvg
|
||||||
|
|
||||||
|
adw-gtk3
|
||||||
|
pywalfox-native
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Experimental (inputs)
|
||||||
|
############################
|
||||||
|
#inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
|
||||||
|
#inputs.hyprlauncher.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
|
|
||||||
|
############################
|
||||||
|
# Blockchain (inputs)
|
||||||
|
############################
|
||||||
|
#inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-cli
|
||||||
|
#inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -69,8 +69,12 @@ in
|
|||||||
|
|
||||||
services.vicinae = {
|
services.vicinae = {
|
||||||
enable = true; # default: false
|
enable = true; # default: false
|
||||||
autoStart = true; # default: true
|
systemd = {
|
||||||
useLayerShell = false;
|
enable = true;
|
||||||
|
environment = {
|
||||||
|
USE_LAYER_SHELL = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
#package = # specify package to use here. Can be omitted.
|
#package = # specify package to use here. Can be omitted.
|
||||||
# Installing (vicinae) extensions declaratively
|
# Installing (vicinae) extensions declaratively
|
||||||
#settings = {
|
#settings = {
|
||||||
@@ -108,6 +112,7 @@ in
|
|||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
|
android_sdk.accept_license = true;
|
||||||
permittedInsecurePackages = [
|
permittedInsecurePackages = [
|
||||||
"freeimage-unstable-2021-11-01"
|
"freeimage-unstable-2021-11-01"
|
||||||
"qtwebengine-5.15.19"
|
"qtwebengine-5.15.19"
|
||||||
@@ -209,7 +214,7 @@ in
|
|||||||
rustc
|
rustc
|
||||||
rustup
|
rustup
|
||||||
zed-editor
|
zed-editor
|
||||||
|
android-studio-full
|
||||||
# Language tooling from inputs
|
# Language tooling from inputs
|
||||||
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode
|
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode
|
||||||
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs
|
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs
|
||||||
@@ -250,6 +255,8 @@ in
|
|||||||
rink
|
rink
|
||||||
protontricks
|
protontricks
|
||||||
|
|
||||||
|
abaddon
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# KDE / File Management
|
# KDE / File Management
|
||||||
############################
|
############################
|
||||||
|
|||||||
@@ -136,7 +136,7 @@
|
|||||||
|
|
||||||
# Sunshine (only on PC)
|
# Sunshine (only on PC)
|
||||||
services.sunshine = lib.mkIf (systemName == "pc") {
|
services.sunshine = lib.mkIf (systemName == "pc") {
|
||||||
enable = true;
|
enable = false;
|
||||||
settings = {
|
settings = {
|
||||||
sunshine_name = "nixos";
|
sunshine_name = "nixos";
|
||||||
port = 47989;
|
port = 47989;
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ in
|
|||||||
compositor.name = "hyprland"; # Or "hyprland" or "sway"
|
compositor.name = "hyprland"; # Or "hyprland" or "sway"
|
||||||
configHome = "${config.users.users.mrfluffy.home}";
|
configHome = "${config.users.users.mrfluffy.home}";
|
||||||
};
|
};
|
||||||
|
#services.displayManager.cosmic-greeter.enable = true;
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Desktop / WM
|
# Desktop / WM
|
||||||
@@ -42,7 +43,6 @@ in
|
|||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# style = "gtk2";
|
|
||||||
platformTheme = "qt5ct";
|
platformTheme = "qt5ct";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -64,6 +64,9 @@ in
|
|||||||
enable = useHypr;
|
enable = useHypr;
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
};
|
};
|
||||||
|
#services.desktopManager.cosmic = {
|
||||||
|
# enable = true;
|
||||||
|
#};
|
||||||
|
|
||||||
# X11 base (kept enabled for keymap + DM if needed)
|
# X11 base (kept enabled for keymap + DM if needed)
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
|
kernelModules = lib.mkForce [
|
||||||
|
"cec"
|
||||||
|
];
|
||||||
kernelParams = lib.mkForce [
|
kernelParams = lib.mkForce [
|
||||||
"ipv6e=1"
|
"ipv6e=1"
|
||||||
"quiet"
|
"quiet"
|
||||||
@@ -25,40 +28,62 @@
|
|||||||
services.seatd.enable = true;
|
services.seatd.enable = true;
|
||||||
|
|
||||||
# A user service that runs once the graphical session (Steam/GameScope) is ready
|
# A user service that runs once the graphical session (Steam/GameScope) is ready
|
||||||
#systemd.user.services.cec-tv-on = {
|
systemd.services.cec-tv-control = {
|
||||||
# description = "Turn on TV via HDMI-CEC when entering Steam specialisation";
|
description = "Control TV via HDMI-CEC (turn on early, turn off on shutdown)";
|
||||||
# wantedBy = [ "graphical-session.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
# after = [ "graphical-session.target" ];
|
|
||||||
# serviceConfig = {
|
|
||||||
# Type = "oneshot";
|
|
||||||
# RemainAfterExit = true;
|
|
||||||
# ExecStart = toString (
|
|
||||||
# pkgs.writeShellScript "cec-tv-on.sh" ''
|
|
||||||
# # Wait a moment for the HDMI link to settle
|
|
||||||
# sleep 3
|
|
||||||
|
|
||||||
# # Turn on the TV and set it as active source (most TVs understand this)
|
# Run very early: after modules load and local filesystems are available,
|
||||||
# ${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
|
# but before Plymouth boot splash quits and before the display manager
|
||||||
# on 0
|
after = [
|
||||||
# as
|
"systemd-modules-load.service"
|
||||||
# EOF
|
"local-fs.target"
|
||||||
|
"systemd-udev-settle.service"
|
||||||
|
];
|
||||||
|
before = [
|
||||||
|
"plymouth-quit-wait.service"
|
||||||
|
"greetd.service"
|
||||||
|
];
|
||||||
|
|
||||||
# # Alternative one-liner if the above somehow fails:
|
# Ensure the /dev/cec* device exists (udev settles early)
|
||||||
# # echo 'on 0' | ${pkgs.libcec}/bin/cec-client -s -d 1
|
requires = [ "systemd-udev-settle.service" ];
|
||||||
# # echo 'as' | ${pkgs.libcec}/bin/cec-client -s -d 1
|
|
||||||
# ''
|
|
||||||
# );
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
|
||||||
|
# Turn TV on during boot
|
||||||
|
ExecStart = toString (
|
||||||
|
pkgs.writeShellScript "cec-tv-on.sh" ''
|
||||||
|
sleep 3 # Give CEC time to initialize
|
||||||
|
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
|
||||||
|
on 0
|
||||||
|
EOF
|
||||||
|
sleep 2
|
||||||
|
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
|
||||||
|
as
|
||||||
|
EOF
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
# Turn TV off on shutdown/reboot (ExecStop runs when the service stops)
|
||||||
|
ExecStop = toString (
|
||||||
|
pkgs.writeShellScript "cec-tv-off.sh" ''
|
||||||
|
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
|
||||||
|
standby 0
|
||||||
|
EOF
|
||||||
|
''
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
# THIS is the important part – direct boot into the Gamescope Steam session
|
# THIS is the important part – direct boot into the Gamescope Steam session
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
restart = true;
|
restart = true;
|
||||||
settings = {
|
settings = {
|
||||||
# Tell greetd to auto-start the official gamescope steam session immediately
|
# Tell greetd to auto-start the official gamescope steam session immediately
|
||||||
|
# HDMI-A-2
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "${pkgs.gamescope}/bin/gamescope --prefer-output HDMI-A-2 --hdr-enabled --steam --mangoapp -- steam -pipewire-dmabuf -gamepadui -steamos3 > /dev/null 2>&1";
|
command = "${pkgs.gamescope}/bin/gamescope --prefer-output HDMI-A-2 --hdr-enabled --steam --mangoapp -- steam -pipewire-dmabuf -gamepadui -steamos3 > /dev/null 2>&1";
|
||||||
user = "game";
|
user = "game";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user