some waybar adjustments

This commit is contained in:
Remy Moll 2025-03-05 19:57:18 +01:00
parent 6b1058f6a4
commit 41b8850196
10 changed files with 242 additions and 291 deletions

View File

@ -2,10 +2,10 @@
description = "Nix config entry point";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Home manager
home-manager.url = "github:nix-community/home-manager/release-25.05";
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Managing flatpak apps
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";

View File

@ -5,6 +5,7 @@
./configuration.nix
./hardware-configuration.nix
../../modules/nixos/bluetooth.nix
../../modules/nixos/flakes.nix
../../modules/nixos/fonts.nix
../../modules/nixos/hyprland.nix
../../modules/nixos/monitoring.nix
@ -12,6 +13,7 @@
../../modules/nixos/nvidia.nix
../../modules/nixos/pipewire.nix
../../modules/nixos/podman.nix
../../modules/nixos/power.nix
../../utils/binary-cache.nix
../../utils/garbage-collection.nix
];

View File

@ -3,119 +3,114 @@
programs.vscode = {
enable = true;
profiles = {
default = {
extensions = with pkgs.vscode-extensions; [
# QOL
mhutchie.git-graph
redhat.vscode-yaml
github.copilot
# profiles = {
# default = {
extensions = with pkgs.vscode-extensions; [
# QOL
mhutchie.git-graph
redhat.vscode-yaml
github.copilot
# python
ms-python.python
ms-python.isort
ms-python.debugpy
ms-python.vscode-pylance
# python
ms-python.python
ms-python.isort
ms-python.debugpy
ms-python.vscode-pylance
# Nix language
jnoortheen.nix-ide
];
# Nix language
jnoortheen.nix-ide
];
# };
keybindings = [
{
key = "ctrl+#";
command = "editor.action.commentLine";
when = "textInputFocus";
}
];
userSettings = {
"telemetry.enableCrashReporter" = false;
"telemetry.enableTelemetry" = false;
"git.ignoreMissingGitWarning" = true;
"editor.suggestSelection" = "first";
"workbench.editorAssociations" = {
"*.ipynb" = "jupyter-notebook";
};
keybindings = {
"ctrl+shift+." = "workbench.action.terminal.focus";
"ctlr+#" = "editor.action.commentLine";
"workbench.startupEditor" = "newUntitledFile";
"editor.renderWhitespace" = "none";
"editor.acceptSuggestionOnEnter" = "off";
"explorer.confirmDelete" = false;
"git.confirmSync" = false;
"workbench.iconTheme" = "vs-seti";
"editor.fontLigatures" = true;
"explorer.confirmDragAndDrop" = false;
"editor.wordWrap" = "on";
"settingsSync.ignoredSettings" = [
"editor.fontFamily"
"terminal.integrated.fontFamily"
"-python.venvFolders"
];
"jupyter.askForKernelRestart" = false;
"security.workspace.trust.untrustedFiles" = "open";
"notebook.cellToolbarLocation" = {
"default" = "right";
"jupyter-notebook" = "left";
};
userSettings = ''
{
"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false,
"git.ignoreMissingGitWarning": true,
"editor.suggestSelection": "first",
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"workbench.startupEditor": "newUntitledFile",
"editor.renderWhitespace": "none",
"editor.acceptSuggestionOnEnter": "off",
"explorer.confirmDelete": false,
"git.confirmSync": false,
"workbench.iconTheme": "vs-seti",
"editor.fontLigatures": true,
"explorer.confirmDragAndDrop": false,
"editor.wordWrap": "on",
"files.associations": {
},
"settingsSync.ignoredSettings": [
"editor.fontFamily",
"terminal.integrated.fontFamily",
"-python.venvFolders"
],
"jupyter.askForKernelRestart": false,
"security.workspace.trust.untrustedFiles": "open",
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
},
"git.enableSmartCommit": true,
"terminal.integrated.fontFamily": "Fira Code",
"settingsSync.ignoredExtensions": [
"ms-vscode-remote.remote-wsl",
"ms-vscode-remote.remote-ssh-edit",
"ms-vscode-remote.remote-ssh"
],
"editor.bracketPairColorization.enabled": true,
"jupyter.widgetScriptSources": [
"jsdelivr.com",
"unpkg.com"
],
"%DOC%.tex"
],
"diffEditor.renderSideBySide": false,
"editor.inlineSuggest.enabled": true,
"suppressLineUncommittedWarning": true
},
"github.copilot.enable": {
"*": true,
"plaintext": true,
"markdown": true,
"scminput": false,
"yaml": true
},
"redhat.telemetry.enabled": false,
"git.autofetch": true,
"terminal.integrated.enableMultiLinePasteWarning": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"jupyter.disableJupyterAutoStart": true,
"editor.unicodeHighlight.invisibleCharacters": false,
"editor.unicodeHighlight.ambiguousCharacters": false,
"diffEditor.ignoreTrimWhitespace": false,
"update.showReleaseNotes": false,
"terminal.external.linuxExec": "kitty",
"window.dialogStyle": "custom",
"window.titleBarStyle": "custom",
"github.copilot.editor.enableAutoCompletions": true,
"window.menuBarVisibility": "compact",
"workbench.colorTheme": "Default Light+",
"github.copilot.advanced": {},
"git.openRepositoryInParentFolders": "never",
"terminal.integrated.commandsToSkipShell": [
"language-julia.interrupt"
],
"diffEditor.hideUnchangedRegions.enabled": true,
"[typst]": {
"editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"
},
"[typst-code]": {
"editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?"
},
"tinymist.fontPaths": [
"./font"
],
"editor.fontFamily": "'FiraCode Nerd Font Mono', 'monospace', monospace",
};
'';
"git.enableSmartCommit" = true;
"terminal.integrated.fontFamily" = "Fira Code";
"settingsSync.ignoredExtensions" = [
"ms-vscode-remote.remote-wsl"
"ms-vscode-remote.remote-ssh-edit"
"ms-vscode-remote.remote-ssh"
];
"editor.bracketPairColorization.enabled" = true;
"jupyter.widgetScriptSources" = [
"jsdelivr.com"
"unpkg.com"
];
"diffEditor.renderSideBySide" = false;
"editor.inlineSuggest.enabled" = true;
"github.copilot.enable" = {
"*" = true;
"plaintext" = true;
"markdown" = true;
"scminput" = false;
"yaml" = true;
};
"redhat.telemetry.enabled" = false;
"git.autofetch" = true;
"terminal.integrated.enableMultiLinePasteWarning" = false;
"editor.unicodeHighlight.nonBasicASCII" = false;
"jupyter.disableJupyterAutoStart" = true;
"editor.unicodeHighlight.invisibleCharacters" = false;
"editor.unicodeHighlight.ambiguousCharacters" = false;
"diffEditor.ignoreTrimWhitespace" = false;
"update.showReleaseNotes" = false;
"terminal.external.linuxExec" = "kitty";
"window.dialogStyle" = "custom";
"window.titleBarStyle" = "custom";
"github.copilot.editor.enableAutoCompletions" = true;
"window.menuBarVisibility" = "compact";
"workbench.colorTheme" = "Default Light+";
"github.copilot.advanced" = {};
"git.openRepositoryInParentFolders" = "never";
"terminal.integrated.commandsToSkipShell" = [
"language-julia.interrupt"
];
"diffEditor.hideUnchangedRegions.enabled" = true;
"[typst]" = {
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
};
"[typst-code]" = {
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
};
"tinymist.fontPaths" = [
"./font"
];
"editor.fontFamily" = "'FiraCode Nerd Font Mono', 'monospace', monospace";
};
};
}

View File

@ -59,9 +59,9 @@
# "${pkgs.hyprpaper}/bin/hyprpaper"
# hyprpaper is handled as its own service
"${pkgs.waybar}/bin/waybar"
# Fixes cursor themes in gnome apps under hyprland
"gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'"
"gsettings set org.gnome.desktop.interface cursor-size ${toString home.pointerCursor.size}"
# # Fixes cursor themes in gnome apps under hyprland
# "gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'"
# "gsettings set org.gnome.desktop.interface cursor-size ${toString home.pointerCursor.size}"
];
general = {

View File

@ -4,23 +4,23 @@
...
}:
with lib; let
wallpapers = builtins.readDir ../../../wallpapers;
# wallpapers = builtins.readDir ../../../wallpapers;
wallpaperBashArray = "(\"${strings.concatStrings (strings.intersperse "\" \"" (map (wallpaper: ../../../wallpapers + "/" + wallpaper) (attrNames wallpapers)))}\")";
wallpaperRandomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" ''
wallpapers=${wallpaperBashArray}
rand=$[$RANDOM % ''${#wallpapers[@]}]
wallpaper=''${wallpapers[$rand]}
# wallpaperBashArray = "(\"${strings.concatStrings (strings.intersperse "\" \"" (map (wallpaper: ../../../wallpapers + "/" + wallpaper) (attrNames wallpapers)))}\")";
# wallpaperRandomizer = pkgs.writeShellScriptBin "wallpaperRandomizer" ''
# wallpapers=${wallpaperBashArray}
# rand=$[$RANDOM % ''${#wallpapers[@]}]
# wallpaper=''${wallpapers[$rand]}
monitor=(`hyprctl monitors | grep Monitor | awk '{print $2}'`)
hyprctl hyprpaper unload all
hyprctl hyprpaper preload $wallpaper
for m in ''${monitor[@]}; do
hyprctl hyprpaper wallpaper "$m,$wallpaper"
done
'';
# monitor=(`hyprctl monitors | grep Monitor | awk '{print $2}'`)
# hyprctl hyprpaper unload all
# hyprctl hyprpaper preload $wallpaper
# for m in ''${monitor[@]}; do
# hyprctl hyprpaper wallpaper "$m,$wallpaper"
# done
# '';
in {
home.packages = [wallpaperRandomizer];
# home.packages = [wallpaperRandomizer];
services.hyprpaper = {
enable = true;
@ -32,29 +32,29 @@ in {
# };
};
systemd.user = {
services.wallpaperRandomizer = {
Install = {WantedBy = ["graphical-session.target"];};
# systemd.user = {
# services.wallpaperRandomizer = {
# Install = {WantedBy = ["graphical-session.target"];};
Unit = {
Description = "Set random desktop background using hyprpaper";
After = ["graphical-session-pre.target"];
PartOf = ["graphical-session.target"];
};
# Unit = {
# Description = "Set random desktop background using hyprpaper";
# After = ["graphical-session-pre.target"];
# PartOf = ["graphical-session.target"];
# };
Service = {
Type = "oneshot";
ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer";
IOSchedulingClass = "idle";
};
};
# Service = {
# Type = "oneshot";
# ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer";
# IOSchedulingClass = "idle";
# };
# };
timers.wallpaperRandomizer = {
Unit = {Description = "Set random desktop background using hyprpaper on an interval";};
# timers.wallpaperRandomizer = {
# Unit = {Description = "Set random desktop background using hyprpaper on an interval";};
Timer = {OnUnitActiveSec = "6h";};
# Timer = {OnUnitActiveSec = "6h";};
Install = {WantedBy = ["timers.target"];};
};
};
# Install = {WantedBy = ["timers.target"];};
# };
# };
}

View File

@ -5,9 +5,13 @@
# waybar requires font-awesome
home.packages = [
# fira code now contains ligatures and font-awesome
nerd-fonts.fira-code
pkgs.pavucontrol
# fira code now contains ligatures and font-awesome
# TODO - this only works after nixpkgs 25.05
# nerd-fonts.fira-code
(pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; })
pkgs.fira-code
];
# enable waybar
@ -47,23 +51,18 @@
"battery"
"backlight"
"tray"
"idle_inhibitor"
];
# module specific settings
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
active = "";
default = "";
empty = "";
active = "";
default = "";
};
};
"custom/notification" = {
tooltip = false;
format = "";
on-click = "swaync-client -t -sw";
escape = true;
};
"clock" = {
format = "{:%H:%M}";
interval = 1;
@ -74,16 +73,16 @@
};
};
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
# "network" = {
# "format-wifi" = "";
# "format-ethernet" ="";
# "format-disconnected" = "";
# "tooltip-format-disconnected" = "Error";
# "tooltip-format-wifi" = "{essid} ({signalStrength}%) ";
# "tooltip-format-ethernet" = "{ifname} 🖧 ";
# "on-click" = "kitty nmtui";
# };
"bluetooth" = {
format-on = "󰂯";
format-off = "BT-off";
@ -110,28 +109,50 @@
};
"pulseaudio" = {
reverse-scrolling = 1;
format = "{volume}% {icon} {format_source}";
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = "{volume}% ";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = ["" "奔" ""];
default = [
""
""
""
];
};
on-click = "pavucontrol";
min-length = 13;
on-click = "sleep 0.1 && pavucontrol";
};
"tray" = {
spacing = 5;
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
};
};
@ -151,6 +172,11 @@
window#waybar.hidden {
opacity: 0.2;
}
.module {
color: #ffffff;
border: none;
}
#workspaces {
margin-right: 8px;
@ -172,56 +198,10 @@
font-size: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
transition: none;
box-shadow: inherit;
text-shadow: inherit;
border-radius: inherit;
color: #383c4a;
background: #7c818c;
}
#workspaces button.focused {
color: white;
}
#language {
padding-left: 16px;
padding-right: 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#keyboard-state {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-pacman {
padding-left: 16px;
padding-right: 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#custom-mail {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#mode {
padding-left: 16px;
padding-right: 16px;
@ -240,14 +220,6 @@
background: #383c4a;
}
#custom-weather {
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#pulseaudio {
margin-right: 8px;
padding-left: 16px;
@ -263,29 +235,7 @@
color: #2a5c45;
}
#custom-mem {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#temperature {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #ffffff;
background: #383c4a;
}
#temperature.critical {
background-color: #eb4d4b;
}
#backlight {
margin-right: 8px;

View File

@ -4,7 +4,7 @@
xdg.portal = {
enable = true;
configPackages [ pkgs.hyprland ];
configPackages = [ pkgs.hyprland ];
extraPortals = [
pkgs.xdg-desktop-portal-gtk
@ -17,7 +17,7 @@
createDirectories = true;
desktop = "Desktop";
documents = "Documents";
downloads = "Downloads";
# downloads = "Downloads";
pictures = "Pictures";
};
}

3
modules/nixos/flakes.nix Normal file
View File

@ -0,0 +1,3 @@
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}

View File

@ -1,8 +1,8 @@
{
config,
lib,
pkgs,
...
config,
lib,
pkgs,
...
}:
{
@ -29,14 +29,7 @@
intelBusId = "PCI:0:2:0";
};
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "565.77";
sha256_64bit = "sha256-CnqnQsRrzzTXZpgkAtF7PbH9s7wbiTRNcM0SPByzFHw=";
sha256_aarch64 = "sha256-LSAYUnhfnK3rcuPe1dixOwAujSof19kNOfdRHE7bToE=";
openSha256 = "sha256-Fxo0t61KQDs71YA8u7arY+503wkAc1foaa51vi2Pl5I=";
settingsSha256 = "sha256-VUetj3LlOSz/LB+DDfMCN34uA4bNTTpjDrb6C6Iwukk=";
persistencedSha256 = "sha256-wnDjC099D8d9NJSp9D0CbsL+vfHXyJFYYgU3CwcqKww=";
};
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
# overwrite the blacklists set previously
boot.extraModprobeConfig = "";
@ -65,31 +58,9 @@
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{power/control}="auto", ATTR{remove}="1"
'';
# # Remove the whole bridge responsible for the VGA/3D controller
# ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{class}=="0x060400", ATTR{power/control}="auto", ATTR{remove}="1"
# # somehow the udev rules are not enough to prevent the nouveau driver from loading
# # Also unload remove the bus by id manually
# # unload 0000:01:00.1 and 0000:01:00.0
# # at boot echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove
# # at boot echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove
# systemd.services.remove-nouveau = {
# description = "Remove Nouveau PCI devices";
# wantedBy = [ "multi-user.target" ];
# after = [ "sysinit.target" ];
# serviceConfig = {
# Type = "oneshot";
# ExecStart = "${pkgs.coreutils}/bin/echo 1 > /sys/bus/pci/devices/0000:01:00.1/remove";
# ExecStart = "${pkgs.coreutils}/bin/echo auto > /sys/bus/pci/devices/0000:00:01.0/power/control";
# ExecStart = "${pkgs.coreutils}/bin/echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove";
# ExecStart = "${pkgs.coreutils}/bin/echo auto > /sys/bus/pci/devices/0000:00:01.0/power/control";
# };
# };
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
}

30
modules/nixos/power.nix Normal file
View File

@ -0,0 +1,30 @@
{
config,
lib,
pkgs,
...
}:
{
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100;
CPU_MIN_PERF_ON_BAT = 0;
CPU_MAX_PERF_ON_BAT = 50;
};
};
systemd.sleep.extraConfig = ''
AllowSuspend=yes
AllowHibernation=yes
AllowHybridSleep=yes
AllowSuspendThenHibernate=yes
'';
}