Compare commits

..

16 commits

14 changed files with 160 additions and 72 deletions

View file

@ -22,5 +22,5 @@ each host should have these files:
- divide steam and gamemode? - divide steam and gamemode?
- laptop specific configuration (power profiles daemon, battery, etc) - laptop specific configuration (power profiles daemon, battery, etc)
- sddm cursors no work :( - sddm cursors no work :(
- try out the [new sddm options](https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=sddm) - sddm x11 support, too. or maybe just remove x11
- gnome keyring / gcr for saving passwords - gnome keyring / gcr for saving passwords

View file

@ -33,7 +33,8 @@
history_length = 20 history_length = 20
show_age_threshold = 60 show_age_threshold = 60
markup = "full" markup = "full"
font = "Atkinson Hyperlegible Pro 10" format = "<b>%a</b>\n<b>%s</b>\n%b"
font = "Atkinson Hyperlegible Pro 11"
word_wrap = "yes" word_wrap = "yes"
sort = "yes" sort = "yes"
shrink = "no" shrink = "no"

View file

@ -79,6 +79,30 @@ window#waybar.floating #window {
color: @lavender; color: @lavender;
} }
#power-profiles-daemon {
color: @teal;
}
#battery {
color: @green;
}
#battery.charging {
color: @green;
}
#battery.warning:not(.charging) {
color: @peach;
}
#battery.critical:not(.charging) {
color: @maroon;
}
#network {
color: @sapphire;
}
#pulseaudio { #pulseaudio {
color: @pink; color: @pink;
} }

View file

@ -85,5 +85,4 @@ in {
xdg-utils xdg-utils
git git
]; ];
} }

6
flake.lock generated
View file

@ -487,11 +487,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1711523803, "lastModified": 1715266358,
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=", "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443", "rev": "f1010e0469db743d14519a1efd37e23f8513d714",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -40,6 +40,7 @@
enable = true; enable = true;
}; };
desktop = { desktop = {
# sets magical variables; use `x11` or `wayland`
envProto = "wayland"; envProto = "wayland";
hyprland.enable = true; hyprland.enable = true;
@ -48,13 +49,16 @@
hyprpaper.enable = true; hyprpaper.enable = true;
polkit-gnome.enable = true; polkit-gnome.enable = true;
gnome-keyring.enable = true;
dunst.enable = true; dunst.enable = true;
rofi.enable = true; rofi.enable = true;
nwg-drawer.enable = true; nwg-drawer.enable = true;
waybar.enable = true; waybar.enable = true;
# login manager
sddm.enable = true; sddm.enable = true;
# set active theme, see `modules/desktop/themes`
themes.active = "catppuccin"; themes.active = "catppuccin";
}; };
software = { software = {

View file

@ -21,8 +21,15 @@
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
# support power features such as suspend to ram
powerManagement.enable = true;
# tune power saving options on boot
# todo: fix usb mice and keyboards from suspending
#powerManagement.powertop.enable = true;
# thermald proactively prevents overheating on intel CPUs and works well with other tools # thermald proactively prevents overheating on intel CPUs and works well with other tools
services.thermald.enable = true; services.thermald.enable = true;
# power-profile-daemon for power management
services.power-profiles-daemon.enable = true;
# nvidia driver # nvidia driver
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = [ "nvidia" ];

View file

@ -0,0 +1,14 @@
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.gnome-keyring;
in {
options.modules.desktop.gnome-keyring = {
enable = mkEnableOption "Enable gnome-keyring, a lightweight keyring with git, gpg, and ssh integration";
};
config = mkIf cfg.enable {
services.gnome.gnome-keyring.enable = true;
};
}

View file

@ -20,7 +20,7 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.displayManager.sessionPackages = [ cfg.package ]; services.displayManager.sessionPackages = [ cfg.package ];
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk cfg.portalPackage ]; extraPortals = [ pkgs.xdg-desktop-portal-gtk cfg.portalPackage ];
@ -53,6 +53,11 @@ in {
bindl = [ # "bind locked" bindl = [ # "bind locked"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop"
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
]; ];
bindr = [ # "bind released" bindr = [ # "bind released"
"SUPER, Super_L, exec, ${lib.getExe pkgs.nwg-drawer}" "SUPER, Super_L, exec, ${lib.getExe pkgs.nwg-drawer}"
@ -126,17 +131,23 @@ in {
windowrulev2 = [ windowrulev2 = [
# common popups # common popups
"float, class:file-roller" "float, class:org.gnome.FileRoller"
"size 1100 730, class:file-roller" "center, class:org.gnome.FileRoller"
"size 1100 730, class:org.gnome.FileRoller"
"float, class:org.gnome.Loupe" "float, class:org.gnome.Loupe"
"center, class:org.gnome.Loupe"
"size 1100 730, class:org.gnome.Loupe" "size 1100 730, class:org.gnome.Loupe"
"float, initialTitle:^Open Folder$" "float, initialTitle:^Open Folder$"
"center, initialTitle:^Open Folder$"
"size 1100 730, initialTitle:^Open Folder$" "size 1100 730, initialTitle:^Open Folder$"
"float, initialTitle:^Open File$" "float, initialTitle:^Open File$"
"center, initialTitle:^Open File$"
"size 1100 730, initialTitle:^Open File$" "size 1100 730, initialTitle:^Open File$"
"float, initialTitle:^Open Files$" "float, initialTitle:^Open Files$"
"center, initialTitle:^Open Files$"
"size 1100 730, initialTitle:^Open Files$" "size 1100 730, initialTitle:^Open Files$"
"float, initialTitle:^Save As$" "float, initialTitle:^Save As$"
"center, initialTitle:^Save As%"
"size 1100 730, initialTitle:^Save As$" "size 1100 730, initialTitle:^Save As$"
"float, class:\.exe$" "float, class:\.exe$"
@ -173,7 +184,7 @@ in {
}; };
drop_shadow = false; drop_shadow = false;
#shadow_range = 30; #shadow_range = 4;
#shadow_render_power = 3; #shadow_render_power = 3;
}; };

View file

@ -9,15 +9,13 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.xserver.enable = true; # this is needed, unfortunately!
services.xserver.excludePackages = [ pkgs.xterm ]; # prevents xterm on wayland and x
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
config.modules.desktop.themes.sddmTheme.package config.modules.desktop.themes.sddmTheme.package
libsForQt5.qt5.qtsvg libsForQt5.qt5.qtsvg
libsForQt5.qt5.qtgraphicaleffects libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtquickcontrols2 libsForQt5.qt5.qtquickcontrols2
]; ];
services.xserver.displayManager.sddm = { services.displayManager.sddm = {
enable = true; enable = true;
wayland.enable = true; wayland.enable = true;
theme = config.modules.desktop.themes.sddmTheme.name; theme = config.modules.desktop.themes.sddmTheme.name;

View file

@ -49,9 +49,11 @@ in {
orientation = "inherit"; orientation = "inherit";
modules = [ modules = [
"pulseaudio" "pulseaudio"
#"network"
"cpu" "cpu"
"memory" "memory"
#"network" "power-profiles-daemon"
"battery"
]; ];
}; };
"group/power" = { "group/power" = {
@ -139,6 +141,17 @@ in {
}; };
separate-outputs = true; separate-outputs = true;
}; };
#network = {
# format = "";
# format-ethernet = "";
# format-wifi = " {signalStrength}%";
# format-disconnected = "";
# tooltip-format = "{ifname} via {gwaddr}";
# tooltip-format-wifi = "connected to {essid}";
# tooltip-format-ethernet = "{ifname}";
# tooltip-format-disconnected = "Disconnected";
# on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
#};
pulseaudio = { pulseaudio = {
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%"; format-bluetooth = "{icon} {volume}%";
@ -165,17 +178,31 @@ in {
format = " {percentage}%"; format = " {percentage}%";
tooltip-format = "{used:0.1f}GiB/{avail:0.1f}GiB used\n{swapUsed:0.1f}GiB/{swapAvail:0.1f}GiB swap"; tooltip-format = "{used:0.1f}GiB/{avail:0.1f}GiB used\n{swapUsed:0.1f}GiB/{swapAvail:0.1f}GiB swap";
}; };
"network" = { power-profiles-daemon = {
format = ""; format = "{icon}";
format-ethernet = ""; tooltip-format = "Power profile: {profile}\nDriver: {driver}";
format-wifi = " {signalStrength}%"; tooltip = true;
format-disconnected = ""; format-icons = {
tooltip-format = "{ifname} via {gwaddr}"; default = "";
tooltip-format-wifi = "connected to {essid}"; performance = " perf";
tooltip-format-ethernet = "{ifname}"; balanced = " balance";
tooltip-format-disconnected = "Disconnected"; power-saver = " save";
}; };
"clock" = { };
battery = {
interval = 30;
states = {
warning = 20;
critical = 10;
};
full-at = 98;
format = "{icon} {capacity}%";
format-icons = ["" "" "" "" ""];
format-critical = " {capacity}%";
tooltip-format = "{timeTo} ({power}W)";
format-charging = " {capacity}%";
};
clock = {
format = "{:%H:%M}"; format = "{:%H:%M}";
format-alt = "{:%a %b %d %R}"; format-alt = "{:%a %b %d %R}";
tooltip-format = "<tt><small>{calendar}</small></tt>"; tooltip-format = "<tt><small>{calendar}</small></tt>";

View file

@ -14,6 +14,5 @@ in {
# frontend # frontend
services.blueman.enable = true; services.blueman.enable = true;
hm.services.blueman-applet.enable = true;
}; };
} }

View file

@ -34,6 +34,7 @@ in {
"terminal.integrated.fontFamily" = "\"${monospace.family}\""; "terminal.integrated.fontFamily" = "\"${monospace.family}\"";
"terminal.integrated.fontSize" = monospace.size; "terminal.integrated.fontSize" = monospace.size;
"terminal.integrated.smoothScrolling" = true;
"telemetry.telemetryLevel" = "off"; "telemetry.telemetryLevel" = "off";
@ -44,6 +45,7 @@ in {
"window.titleBarStyle" = "custom"; "window.titleBarStyle" = "custom";
"workbench.tips.enabled" = false; "workbench.tips.enabled" = false;
"workbench.list.smoothScrolling" = true;
"nix.enableLanguageServer" = true; "nix.enableLanguageServer" = true;
"nix.serverPath" = "${lib.getExe pkgs.nil}"; "nix.serverPath" = "${lib.getExe pkgs.nil}";

View file

@ -24,7 +24,9 @@ in {
interactiveShellInit = '' interactiveShellInit = ''
sh ${colorScript} sh ${colorScript}
''; '';
# TODO: add fish greeting? functions.fish_greeting = ''
${lib.getExe pkgs.pfetch}
'';
}; };
}; };
} }