revisions to i3

This commit is contained in:
alsaiduq-lab 2025-03-29 04:53:04 -06:00
parent 8fb3dcb013
commit 026d09a189
2 changed files with 93 additions and 58 deletions

View file

@ -3,6 +3,14 @@
... ...
}: { }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
polybar (polybar.override {
alsaSupport = false;
curlSupport = true;
i3Support = true;
mpdSupport = true;
pulseSupport = true;
nlSupport = true;
iwSupport = true;
})
]; ];
} }

View file

@ -1,9 +1,26 @@
{ {
pkgs, pkgs,
lib,
... ...
}: let }: let
customPkgs = import ../pkgs {inherit pkgs lib;}; wallpapers = [
"${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"
"${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/backgrounds/gnome/gnome-dark.png"
"${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"
];
randomWallpaper = pkgs.writeShellScript "wallpaper.sh" ''
#!${pkgs.runtimeShell}
set -e
BG_DIR="/var/lib/lightdm-background"
BG_LINK="$BG_DIR/current-wallpaper.png"
mkdir -p "$BG_DIR"
WALLPAPERS=( ${builtins.concatStringsSep " " (map (w: "\"${w}\"") wallpapers)} )
COUNT=''${#WALLPAPERS[@]}
if [[ "$COUNT" -eq 0 ]]; then exit 1; fi
RAND=$(shuf -i 0-$(($COUNT - 1)) -n 1)
SELECT=''${WALLPAPERS[$RAND]}
ln -sf "$SELECT" "$BG_LINK"
'';
in { in {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.xkb = { services.xserver.xkb = {
@ -28,20 +45,16 @@ in {
xsettingsd xsettingsd
]; ];
extraSessionCommands = '' extraSessionCommands = ''
${pkgs.feh}/bin/feh --randomize --bg-fill ~/wallpapers/* 2>/dev/null || ${pkgs.feh}/bin/feh --bg-fill ${pkgs.nixos-artwork.wallpapers.nineish-dark-gray}/share/backgrounds/nixos/nineish-dark-gray.png &
export GSETTINGS_SCHEMA_DIR="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas" export GSETTINGS_SCHEMA_DIR="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas"
export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:$XDG_DATA_DIRS"
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark" ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface gtk-theme "Tokyonight-Dark"
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "Vivid-Magna-Glassy-Dark-Icons" ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface icon-theme "candy-icons"
${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors" ${pkgs.glib}/bin/gsettings set org.gnome.desktop.interface cursor-theme "capitaine-cursors"
mkdir -p $HOME/.config
cat > $HOME/.config/xsettingsd << EOF cat > $HOME/.config/xsettingsd << EOF
Net/ThemeName "Tokyonight-Dark" Net/ThemeName "Tokyonight-Dark"
Net/IconThemeName "Vivid-Magna-Glassy-Dark-Icons" Net/IconThemeName "candy-icons"
Gtk/CursorThemeName "capitaine-cursors" Gtk/CursorThemeName "capitaine-cursors"
EOF EOF
killall xsettingsd || true
${pkgs.xsettingsd}/bin/xsettingsd & ${pkgs.xsettingsd}/bin/xsettingsd &
''; '';
}; };
@ -54,7 +67,7 @@ EOF
services.xserver.displayManager.lightdm = { services.xserver.displayManager.lightdm = {
enable = true; enable = true;
background = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"; background = "/var/lib/lightdm-background/current-wallpaper.png";
greeters.gtk = { greeters.gtk = {
enable = true; enable = true;
theme = { theme = {
@ -62,8 +75,8 @@ EOF
name = "Tokyonight-Dark"; name = "Tokyonight-Dark";
}; };
iconTheme = { iconTheme = {
package = customPkgs.vivid-icons; package = pkgs.candy-icons;
name = "Vivid-Magna-Glassy-Dark-Icons"; name = "candy-icons";
}; };
cursorTheme = { cursorTheme = {
package = pkgs.capitaine-cursors; package = pkgs.capitaine-cursors;
@ -71,12 +84,36 @@ EOF
}; };
extraConfig = '' extraConfig = ''
[greeter] [greeter]
greeting = Welcome back, Traveller
font-name=Clear Sans 10 font-name=Clear Sans 10
cursor-theme-name=capitaine-cursors cursor-theme-name=capitaine-cursors
icon-theme-name=candy-icons
''; '';
}; };
}; };
systemd.tmpfiles.rules = [
"d /var/lib/lightdm-background 0755 lightdm lightdm - -"
"L+ /var/lib/lightdm-background/current-wallpaper.png - - - - ${builtins.elemAt wallpapers 0}"
];
systemd.services.random-wallpaper = {
description = "Update wallpaper to a random image";
serviceConfig = {
Type = "oneshot";
ExecStart = "${randomWallpaper}";
User = "root";
};
};
systemd.timers.random-wallpaper = {
description = "Daily wallpaper refresh for LightDM";
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "daily";
Persistent = true;
};
};
services.displayManager.defaultSession = "xfce+i3"; services.displayManager.defaultSession = "xfce+i3";
services.displayManager.autoLogin = { services.displayManager.autoLogin = {
enable = true; enable = true;
@ -85,13 +122,13 @@ EOF
qt = { qt = {
enable = true; enable = true;
platformTheme = "gtk2"; platformTheme = "qt5ct";
}; };
environment.etc = { environment.etc = {
"gtk-2.0/gtkrc".text = '' "gtk-2.0/gtkrc".text = ''
gtk-theme-name="Tokyonight-Dark" gtk-theme-name="Tokyonight-Dark"
gtk-icon-theme-name="Vivid-Magna-Glassy-Dark-Icons" gtk-icon-theme-name="candy-icons"
gtk-font-name="Clear Sans 10" gtk-font-name="Clear Sans 10"
gtk-cursor-theme-name="capitaine-cursors" gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
@ -100,74 +137,64 @@ EOF
[Settings] [Settings]
gtk-application-prefer-dark-theme=1 gtk-application-prefer-dark-theme=1
gtk-theme-name=Tokyonight-Dark gtk-theme-name=Tokyonight-Dark
gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons gtk-icon-theme-name="candy-icons"
gtk-font-name=Clear Sans 10 gtk-font-name="Clear Sans 10"
gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
''; '';
"gtk-4.0/settings.ini".text = '' "gtk-4.0/settings.ini".text = ''
[Settings] [Settings]
gtk-application-prefer-dark-theme=1 gtk-application-prefer-dark-theme=1
gtk-theme-name=Tokyonight-Dark gtk-theme-name=Tokyonight-Dark
gtk-icon-theme-name=Vivid-Magna-Glassy-Dark-Icons gtk-icon-theme-name="candy-icons"
gtk-font-name=Clear Sans 10 gtk-font-name="Clear Sans 10"
gtk-cursor-theme-name=capitaine-cursors gtk-cursor-theme-name="capitaine-cursors"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
''; '';
}; };
environment.variables = {
GTK_THEME = "Tokyonight-Dark";
ICON_THEME = "Vivid-Magna-Glassy-Dark-Icons";
XCURSOR_THEME = "capitaine-cursors";
XCURSOR_SIZE = "24";
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
arandr arandr
nitrogen
xclip xclip
lxappearance lxappearance
gnome-themes-extra
gsettings-desktop-schemas gsettings-desktop-schemas
adwaita-qt adwaita-qt
arc-theme
arc-icon-theme
papirus-icon-theme
numix-icon-theme-circle
candy-icons candy-icons
capitaine-cursors capitaine-cursors
tokyonight-gtk-theme tokyonight-gtk-theme
nix-prefetch-git xsettingsd
hicolor-icon-theme hicolor-icon-theme
adwaita-icon-theme adwaita-icon-theme
xsettingsd breeze-icons
] ++ (with customPkgs; [ gnome-themes-extra
vivid-icons ];
]);
environment.pathsToLink = [ environment.pathsToLink = [
"/share/icons" "/share/icons"
"/share/pixmaps" "/share/pixmaps"
]; ];
services.xserver.desktopManager.session = [{ services.xserver.desktopManager.session = [
{
name = "xfce+i3"; name = "xfce+i3";
start = '' start = ''
export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${customPkgs.vivid-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS" export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${pkgs.candy-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS"
${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch & ${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch &
${pkgs.i3-gaps}/bin/i3 ${pkgs.i3-gaps}/bin/i3
''; '';
}]; }
];
programs.dconf.enable = true; programs.dconf.enable = true;
programs.dconf.profiles.user.databases = [{ programs.dconf.profiles.user.databases = [
{
settings = { settings = {
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
icon-theme = "Vivid-Magna-Glassy-Dark-Icons"; icon-theme = "candy-icons";
gtk-theme = "Tokyonight-Dark"; gtk-theme = "Tokyonight-Dark";
cursor-theme = "capitaine-cursors"; cursor-theme = "capitaine-cursors";
}; };
}; };
}]; }
];
} }