stylix and bugfixes

This commit is contained in:
alisceon 2026-01-08 18:05:08 +01:00
parent 1b31f9e29c
commit 86a63e1131
11 changed files with 193 additions and 155 deletions

View file

@ -31,6 +31,7 @@
globalShellAbbrs = baseAbbrs // hostnameAbbrs;
in
{
stylix.enableReleaseChecks = false;
home.username = "alisceon";
home.homeDirectory = "/home/alisceon";
home.stateVersion = "24.05";

View file

@ -7,17 +7,19 @@
programs = {
vscode.enable = true;
firefox = {
enable = true;
nativeMessagingHosts = [
pkgs.firefoxpwa
];
profiles = {
default = {};
};
}; # end firefox
chromium = {
enable = true;
commandLineArgs = [
"--enable-features=TouchpadOverscrollHistoryNavigation,VaapiVideoDecoder"
];
extensions = [
{ id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # ublock origin lite
{ id = "nngceckbapebfimnlniiiahkandclblb"; } # bitwarden
{ id = "mdjildafknihdffpkfmmpnpoiajfjnjd"; } # consent-o-matic
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # sponsorblock
{ id = "ijcpiojgefnkmcadacmacogglhjdjphj"; } # shinigami eyes
{ id = "kbmfpngjjgdllneeigpgjifpgocmfgmb"; } # reddit enhancement suite
];
}; # end chromium
direnv = {
enable = true;
@ -27,12 +29,6 @@
enable = true;
}; # end discord
}; # end programs
stylix.targets = {
firefox = {
enable = true;
profileNames = [ "default" ];
};
};
# obsidian special case
# programs.obsidian.enable = true;
@ -49,13 +45,21 @@
autostart = {
enable = true;
entries = [
"${pkgs.firefox}/share/applications/firefox.desktop"
"${pkgs.chromium}/share/applications/chromium-browser.desktop"
"${pkgs.discord}/share/applications/discord.desktop"
"${pkgs.signal-desktop}/share/applications/signal.desktop"
"${pkgs.obsidian}/share/applications/obsidian.desktop"
"${pkgs.vscode}/share/applications/code.desktop"
];
};
desktopEntries = {
chromium-dailies = {
name = "Chromium Dailies";
genericName = "Web Browser (with dailies)";
exec = "xonsh /home/alisceon/.nixos_config/util/open_dailies.xsh";
terminal = false;
};
};
};
services.syncthing = {

View file

@ -17,6 +17,7 @@ if $XONSH_INTERACTIVE:
from datetime import datetime
import importlib.util
t0 = datetime.now()
## ENV ##
$XONSH_COLOR_STYLE = 'native'
$PROMPT = '{YELLOW}{env_name}{RESET}{BOLD_GREEN}{user}@{hostname} {cwd}{branch_color}{curr_branch: {}}{RESET} {RED}{last_return_code_if_nonzero:[{BOLD_INTENSE_RED}{}{RED}] }{RESET}{BOLD_BLUE}{prompt_end}{RESET} '
@ -51,6 +52,8 @@ if $XONSH_INTERACTIVE:
## THICC SHELL
if $SHELL_THICCNESS == "HIGH" and not $SHELL_THICKENED == "TRUE":
t0_0 = datetime.now()
# Standard Library Imports
import os
import sys
import subprocess
@ -60,15 +63,25 @@ if $XONSH_INTERACTIVE:
import pathlib
import re
import json
import scapy.all
import yaml
import requests
import threading
import multiprocessing
# Third Party Imports
if importlib.util.find_spec("scapy") is not None:
import scapy.all
if importlib.util.find_spec("yaml") is not None:
import yaml
if importlib.util.find_spec("requests") is not None:
import requests
$SHELL_THICKENED = "TRUE"
t0_1 = datetime.now()
else:
xonsh_rc_path = $XONSHRC[0]
aliases["thicken-shell"] = f"export SHELL_THICCNESS=HIGH && source {xonsh_rc_path}"
## THEO GREETING ##
hour = t0.hour
theo | kittycatsay
dt = round((datetime.now() - t0).microseconds/1000000, 2)
print("Load time:", dt, "seconds")
if $SHELL_THICKENED == "TRUE":
print_color("{BOLD_GREEN}THICC SHELL LOADED!{RESET}")
print_color("{BOLD_GREEN}SHELL THICKENED IN " + str(round((t0_1 - t0_0).microseconds/1000000, 2)) + "{RESET}")
print("Load time:", dt, "seconds")

View file

@ -1,10 +1,5 @@
{ pkgs, config, hostName, lib, ... }: {
programs = {
firefox = {
nativeMessagingHosts = [
pkgs.gnome-browser-connector
];
}; # end firefox
}; # end programs
dconf.enable = true;

View file

@ -110,7 +110,7 @@
modifier = "${key_mod}";
startup = [
{ command = "systemctl --user start libinput-gestures"; }
{ command = "swaybg -m fill -i /home/alisceon/Pictures/system/bg.png";}
{ command = "swaybg -m fill -i /home/alisceon/Pictures/system/bg.png";}
];
bars = [
{ command = "${pkgs.waybar}/bin/waybar"; }
@ -127,6 +127,7 @@
"type:mouse" = {
natural_scroll = "disabled";
accel_profile = "flat";
pointer_accel = "0.5";
};
"*" = {
xkb_layout = hostnameInputs;
@ -226,7 +227,7 @@
];
}; # end window
assigns = {
"1" = [{app_id = "firefox";}];
"1" = [{app_id = "chromium";}];
"2" = [{class = "steam";}];
"3" = [];
"4" = [{class = "Code";}];
@ -361,6 +362,9 @@
enable_audio_bell = false;
window_padding_width = 2;
};
environment = {
SHELL_THICCNESS = "LOW"; # instructs xonsh to default to a slim environment
};
}; # end kitty
}; # end programs
gtk = {
@ -369,73 +373,58 @@
gtk3.enable = true;
gtk4.enable = true;
};
xdg = {
configFile."libinput-gestures.conf".text = ''
gesture pinch in 3 sh -c "echo key ctrl+w | ${pkgs.dotool}/bin/dotool"
gesture swipe left 3 ${swaymsg} workspace prev
gesture swipe right 3 ${swaymsg} workspace next
gesture swipe down 3 ${swaymsg} move container to scratchpad
gesture swipe up 3 ${swaymsg} fullscreen
gesture swipe down 4 ${lock}
gesture pinch out 3 ${swaymsg} floating toggle
gesture pinch in 4 ${swaymsg} kill
'';
configFile."electron-flags.conf".text = ''
--enable-features=WaylandWindowDecorations,AllowQt
--ozone-platform=wayland
--gtk-version=4
'';
mimeApps = {
enable = true;
defaultApplicationPackages = [
pkgs.gnome-text-editor
pkgs.evince
pkgs.vlc
pkgs.loupe
pkgs.nautilus
pkgs.chromium
];
defaultApplications = { # mostly redundant but the additional granularity is good for reducing friction
# Text
"text/*" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"application/xml" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"application/json" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"application/pdf" = [ "${pkgs.evince}/share/applications/org.gnome.Evince.desktop" ];
# Media
"video/*" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"audio/*" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
xdg.configFile."libinput-gestures.conf".text = ''
gesture swipe left 3 ${swaymsg} workspace prev
gesture swipe right 3 ${swaymsg} workspace next
gesture swipe down 3 ${swaymsg} move container to scratchpad
gesture swipe up 3 ${swaymsg} fullscreen
gesture pinch in 3 ${swaymsg} floating enable
gesture pinch out 3 ${swaymsg} floating disable
gesture pinch in 4 ${swaymsg} kill
gesture swipe up 4 ${lock}
'';
xdg.configFile."electron-flags.conf".text = ''
--enable-features=WaylandWindowDecorations,AllowQt
--ozone-platform=wayland
--gtk-version=4
'';
xdg.configFile."chromium-flags.conf".text = ''
--enable-features=WaylandWindowDecorations,AllowQt
--ozone-platform=wayland
--gtk-version=4
'';
xdg.mimeApps = {
enable = true;
defaultApplications ={
# Text
"text/plain" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"text/markdown" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"text/x-markdown" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"text/csv" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"text/xml" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"application/xml" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
"application/json" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
# Media
"video/mp4" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"audio/mpeg" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"audio/ogg" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"audio/wav" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"audio/flac" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"video/x-matroska" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"video/webm" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"video/avi" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
"video/mkv" = [ "${pkgs.vlc}/share/applications/vlc.desktop" ];
# Browser
"text/html" = [ "${pkgs.chromium}/share/applications/chromium.desktop" ];
"application/xhtml+xml" = [ "${pkgs.chromium}/share/applications/chromium.desktop" ];
"application/x-web-app-manifest+json" = [ "${pkgs.chromium}/share/applications/chromium.desktop" ];
"application/xml-dtd" = [ "${pkgs.chromium}/share/applications/chromium.desktop" ];
# Browser
"text/html" = [ "${pkgs.firefox}/share/applications/firefox.desktop" ];
"application/xhtml+xml" = [ "${pkgs.firefox}/share/applications/firefox.desktop" ];
"application/x-web-app-manifest+json" = [ "${pkgs.firefox}/share/applications/firefox.desktop" ];
"application/xml-dtd" = [ "${pkgs.firefox}/share/applications/firefox.desktop" ];
# Images
"image/png" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/jpeg" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/gif" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/bmp" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/webp" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/svg+xml" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/svg+xml-compressed" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/tiff" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/apng" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
"image/heic" = [ "${pkgs.swayimg}/share/applications/swayimg.desktop" ];
# Images
"image/*" = [ "${pkgs.loupe}/share/applications/org.gnome.Loupe.desktop.desktop" ];
};
};
};
# this right here offends me https://source.chromium.org/chromium/chromium/src/+/main:base/nix/xdg_util.cc;l=179-180
systemd.user.sessionVariables = {
# this right here offends me https://source.chromium.org/chromium/chromium/src/+/main:base/nix/xdg_util.cc;l=179-180
# setting GNOME_DESKTOP_SESSION_ID will fool some legacy systems into thinking we're running gnome
# this is an issue for xdg-open which can be circumvented by adding glib to the system which lets xdg-open fallback to gio-open
GNOME_DESKTOP_SESSION_ID = "999";
SHELL_THICCNESS = "LOW";
};
} # end file