diff --git a/README.md b/README.md
index c6fb8d5..e51ac9a 100755
--- a/README.md
+++ b/README.md
@@ -22,5 +22,5 @@ each host should have these files:
- divide steam and gamemode?
- laptop specific configuration (power profiles daemon, battery, etc)
- 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
\ No newline at end of file
diff --git a/config/dunst.conf b/config/dunst.conf
index 12d9efc..da4bc4e 100644
--- a/config/dunst.conf
+++ b/config/dunst.conf
@@ -1,53 +1,54 @@
# https://github.com/catppuccin/dunst/blob/main/src/mocha.conf
[global]
- frame_color = "#89B4FA"
- separator_color= frame
+frame_color = "#89B4FA"
+separator_color= frame
- follow = "mouse"
- width = 300
- height = 145
- origin = top-right
- alignment = "left"
- vertical_alignment = "center"
- ellipsize = "middle"
- offset = "15x15"
- padding = 15
- horizontal_padding = 15
- text_icon_padding = 15
- icon_position = "left"
- min_icon_size = 48
- max_icon_size = 64
- progress_bar = true
- progress_bar_height = 8
- progress_bar_frame_width = 1
- progress_bar_min_width = 150
- progress_bar_max_width = 300
- separator_height = 2
- frame_width = 2
- corner_radius = 8
- transparency = 0
- gap_size = 8
- line_height = 0
- notification_limit = 0
- idle_threshold = 120
- history_length = 20
- show_age_threshold = 60
- markup = "full"
- font = "Atkinson Hyperlegible Pro 10"
- word_wrap = "yes"
- sort = "yes"
- shrink = "no"
- indicate_hidden = "yes"
- sticky_history = "yes"
- ignore_newline = "no"
- show_indicators = "no"
- stack_duplicates = true
- always_run_script = true
- hide_duplicate_count = false
- ignore_dbusclose = false
- mouse_left_click = "do_action"
- mouse_middle_click = "close_all"
- mouse_right_click = "close_current"
+follow = "mouse"
+width = 300
+height = 145
+origin = top-right
+alignment = "left"
+vertical_alignment = "center"
+ellipsize = "middle"
+offset = "15x15"
+padding = 15
+horizontal_padding = 15
+text_icon_padding = 15
+icon_position = "left"
+min_icon_size = 48
+max_icon_size = 64
+progress_bar = true
+progress_bar_height = 8
+progress_bar_frame_width = 1
+progress_bar_min_width = 150
+progress_bar_max_width = 300
+separator_height = 2
+frame_width = 2
+corner_radius = 8
+transparency = 0
+gap_size = 8
+line_height = 0
+notification_limit = 0
+idle_threshold = 120
+history_length = 20
+show_age_threshold = 60
+markup = "full"
+format = "%a\n%s\n%b"
+font = "Atkinson Hyperlegible Pro 11"
+word_wrap = "yes"
+sort = "yes"
+shrink = "no"
+indicate_hidden = "yes"
+sticky_history = "yes"
+ignore_newline = "no"
+show_indicators = "no"
+stack_duplicates = true
+always_run_script = true
+hide_duplicate_count = false
+ignore_dbusclose = false
+mouse_left_click = "do_action"
+mouse_middle_click = "close_all"
+mouse_right_click = "close_current"
[urgency_low]
background = "#1E1E2E"
diff --git a/config/waybar.css b/config/waybar.css
index 305d5a1..0dd5959 100644
--- a/config/waybar.css
+++ b/config/waybar.css
@@ -79,6 +79,30 @@ window#waybar.floating #window {
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 {
color: @pink;
}
diff --git a/default.nix b/default.nix
index b8e7203..d00411f 100755
--- a/default.nix
+++ b/default.nix
@@ -85,5 +85,4 @@ in {
xdg-utils
git
];
-
}
diff --git a/flake.lock b/flake.lock
index d538ec3..8adaae6 100644
--- a/flake.lock
+++ b/flake.lock
@@ -487,11 +487,11 @@
},
"nixpkgs_7": {
"locked": {
- "lastModified": 1711523803,
- "narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
+ "lastModified": 1715266358,
+ "narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
+ "rev": "f1010e0469db743d14519a1efd37e23f8513d714",
"type": "github"
},
"original": {
diff --git a/hosts/goopnet-interface/default.nix b/hosts/goopnet-interface/default.nix
index 52ed123..381c89b 100755
--- a/hosts/goopnet-interface/default.nix
+++ b/hosts/goopnet-interface/default.nix
@@ -40,6 +40,7 @@
enable = true;
};
desktop = {
+ # sets magical variables; use `x11` or `wayland`
envProto = "wayland";
hyprland.enable = true;
@@ -48,13 +49,16 @@
hyprpaper.enable = true;
polkit-gnome.enable = true;
+ gnome-keyring.enable = true;
dunst.enable = true;
rofi.enable = true;
nwg-drawer.enable = true;
waybar.enable = true;
+ # login manager
sddm.enable = true;
+ # set active theme, see `modules/desktop/themes`
themes.active = "catppuccin";
};
software = {
diff --git a/hosts/goopnet-interface/hardware.nix b/hosts/goopnet-interface/hardware.nix
index ecca96a..7e06b8d 100755
--- a/hosts/goopnet-interface/hardware.nix
+++ b/hosts/goopnet-interface/hardware.nix
@@ -21,8 +21,15 @@
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
services.thermald.enable = true;
+ # power-profile-daemon for power management
+ services.power-profiles-daemon.enable = true;
# nvidia driver
services.xserver.videoDrivers = [ "nvidia" ];
diff --git a/modules/desktop/gnome-keyring.nix b/modules/desktop/gnome-keyring.nix
new file mode 100644
index 0000000..14b3ebc
--- /dev/null
+++ b/modules/desktop/gnome-keyring.nix
@@ -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;
+ };
+}
diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix
index b0ceb0a..948d6ab 100644
--- a/modules/desktop/hyprland.nix
+++ b/modules/desktop/hyprland.nix
@@ -20,7 +20,7 @@ in {
};
config = mkIf cfg.enable {
- services.xserver.displayManager.sessionPackages = [ cfg.package ];
+ services.displayManager.sessionPackages = [ cfg.package ];
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk cfg.portalPackage ];
@@ -53,6 +53,11 @@ in {
bindl = [ # "bind locked"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 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"
"SUPER, Super_L, exec, ${lib.getExe pkgs.nwg-drawer}"
@@ -126,17 +131,23 @@ in {
windowrulev2 = [
# common popups
- "float, class:file-roller"
- "size 1100 730, class:file-roller"
+ "float, class:org.gnome.FileRoller"
+ "center, class:org.gnome.FileRoller"
+ "size 1100 730, class:org.gnome.FileRoller"
"float, class:org.gnome.Loupe"
+ "center, class:org.gnome.Loupe"
"size 1100 730, class:org.gnome.Loupe"
"float, initialTitle:^Open Folder$"
+ "center, initialTitle:^Open Folder$"
"size 1100 730, initialTitle:^Open Folder$"
"float, initialTitle:^Open File$"
+ "center, initialTitle:^Open File$"
"size 1100 730, initialTitle:^Open File$"
"float, initialTitle:^Open Files$"
+ "center, initialTitle:^Open Files$"
"size 1100 730, initialTitle:^Open Files$"
"float, initialTitle:^Save As$"
+ "center, initialTitle:^Save As%"
"size 1100 730, initialTitle:^Save As$"
"float, class:\.exe$"
@@ -173,7 +184,7 @@ in {
};
drop_shadow = false;
- #shadow_range = 30;
+ #shadow_range = 4;
#shadow_render_power = 3;
};
diff --git a/modules/desktop/sddm.nix b/modules/desktop/sddm.nix
index 1ab2038..69efeea 100644
--- a/modules/desktop/sddm.nix
+++ b/modules/desktop/sddm.nix
@@ -9,15 +9,13 @@ in {
};
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; [
config.modules.desktop.themes.sddmTheme.package
libsForQt5.qt5.qtsvg
libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtquickcontrols2
];
- services.xserver.displayManager.sddm = {
+ services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = config.modules.desktop.themes.sddmTheme.name;
diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix
index 0e4df6d..9c4e939 100644
--- a/modules/desktop/waybar.nix
+++ b/modules/desktop/waybar.nix
@@ -49,9 +49,11 @@ in {
orientation = "inherit";
modules = [
"pulseaudio"
+ #"network"
"cpu"
"memory"
- #"network"
+ "power-profiles-daemon"
+ "battery"
];
};
"group/power" = {
@@ -139,6 +141,17 @@ in {
};
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 = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} {volume}%";
@@ -165,17 +178,31 @@ in {
format = " {percentage}%";
tooltip-format = "{used:0.1f}GiB/{avail:0.1f}GiB used\n{swapUsed:0.1f}GiB/{swapAvail:0.1f}GiB swap";
};
- "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";
+ power-profiles-daemon = {
+ format = "{icon}";
+ tooltip-format = "Power profile: {profile}\nDriver: {driver}";
+ tooltip = true;
+ format-icons = {
+ default = "";
+ performance = " perf";
+ balanced = " balance";
+ 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-alt = "{:%a %b %d %R}";
tooltip-format = "{calendar}";
diff --git a/modules/hardware/bluetooth.nix b/modules/hardware/bluetooth.nix
index e121d64..b306481 100644
--- a/modules/hardware/bluetooth.nix
+++ b/modules/hardware/bluetooth.nix
@@ -14,6 +14,5 @@ in {
# frontend
services.blueman.enable = true;
- hm.services.blueman-applet.enable = true;
};
}
diff --git a/modules/software/editors/vscode.nix b/modules/software/editors/vscode.nix
index f2ade51..60e0785 100644
--- a/modules/software/editors/vscode.nix
+++ b/modules/software/editors/vscode.nix
@@ -34,6 +34,7 @@ in {
"terminal.integrated.fontFamily" = "\"${monospace.family}\"";
"terminal.integrated.fontSize" = monospace.size;
+ "terminal.integrated.smoothScrolling" = true;
"telemetry.telemetryLevel" = "off";
@@ -44,6 +45,7 @@ in {
"window.titleBarStyle" = "custom";
"workbench.tips.enabled" = false;
+ "workbench.list.smoothScrolling" = true;
"nix.enableLanguageServer" = true;
"nix.serverPath" = "${lib.getExe pkgs.nil}";
diff --git a/modules/software/system/fish.nix b/modules/software/system/fish.nix
index 6f816de..d514dcf 100644
--- a/modules/software/system/fish.nix
+++ b/modules/software/system/fish.nix
@@ -24,7 +24,9 @@ in {
interactiveShellInit = ''
sh ${colorScript}
'';
- # TODO: add fish greeting?
+ functions.fish_greeting = ''
+ ${lib.getExe pkgs.pfetch}
+ '';
};
};
}