1

Compare commits

..

16 Commits

Author SHA1 Message Date
0efbd52631 Home: Disable AGS, Waybar, Dunst + Enable Hyprpanel 2025-06-17 01:49:57 +02:00
2210fa7654 Flake: Update lock 2025-06-17 01:49:40 +02:00
688ce92172 System: Enable bluetooth + gvfs 2025-06-17 01:49:31 +02:00
875dc2dc40 Modules/Hyprland: Add option to toggle dunst 2025-06-17 01:49:12 +02:00
d3742d78f3 Modules/AGS: Add WIP config 2025-06-17 01:48:59 +02:00
b042f46f57 Modules/Hyprpanel: Add hyprpanel module 2025-06-17 01:24:32 +02:00
4b03fba3f1 System: Open lan-mouse firewall ports 2025-06-16 23:22:00 +02:00
59f21166a5 Home: Add discord flatpak homedir override 2025-06-16 23:20:59 +02:00
2940eec8a3 Home: Add anytype (flatpak) 2025-06-13 20:14:35 +02:00
16852be668 Modules/Hyprland: Add generic windowrules option 2025-06-12 23:55:23 +02:00
07a3fff57e Home/Nixinator: Update Unity+Rider configuration 2025-06-12 23:19:42 +02:00
83c0993019 Modules/Hyprland: Run systemctl --user import-environment PATH to fix Flatpak not finding default apps 2025-06-12 21:18:10 +02:00
ce74e783ee System: Add xdg-desktop-portal-gtk 2025-06-12 21:17:24 +02:00
ffe7b54a5b Modules/AGS: Import colorscheme from ~/.config/_colors.scss into AGS stylesheet 2025-06-11 13:29:48 +02:00
03c2bc8225 Modules/AGS: Export colorschemes to ~/.config/_colors.scss 2025-06-11 13:29:17 +02:00
75f88b9503 Modules/Hyprland: Blur gtk4-layer-shell + dim around rofi layers 2025-06-11 13:28:39 +02:00
17 changed files with 459 additions and 78 deletions

88
flake.lock generated
View File

@ -19,6 +19,28 @@
"type": "github" "type": "github"
} }
}, },
"ags_2": {
"inputs": {
"astal": "astal_2",
"nixpkgs": [
"hyprpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"astal": { "astal": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -40,6 +62,49 @@
"type": "github" "type": "github"
} }
}, },
"astal_2": {
"inputs": {
"nixpkgs": [
"hyprpanel",
"ags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1742571008,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
"owner": "aylur",
"repo": "astal",
"rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"astal_3": {
"inputs": {
"nixpkgs": [
"hyprpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748416910,
"narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=",
"owner": "aylur",
"repo": "astal",
"rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"devshell": { "devshell": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
@ -187,6 +252,28 @@
"type": "github" "type": "github"
} }
}, },
"hyprpanel": {
"inputs": {
"ags": "ags_2",
"astal": "astal_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1750028451,
"narHash": "sha256-IQjlQcuoY89E1A1VkZo0lkpNy2ysXS9hXvtEGfhUoqQ=",
"owner": "jas-singhfsu",
"repo": "hyprpanel",
"rev": "e03666ab5d239e99b65a0df9cf33c6f47e145e4e",
"type": "github"
},
"original": {
"owner": "jas-singhfsu",
"repo": "hyprpanel",
"type": "github"
}
},
"ixx": { "ixx": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@ -457,6 +544,7 @@
"emacs-overlay": "emacs-overlay", "emacs-overlay": "emacs-overlay",
"hardware": "hardware", "hardware": "hardware",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprpanel": "hyprpanel",
"nix-alien": "nix-alien", "nix-alien": "nix-alien",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",

View File

@ -23,6 +23,8 @@
# Ags for widgets (this was a terrible idea) # Ags for widgets (this was a terrible idea)
ags.url = "github:Aylur/ags"; ags.url = "github:Aylur/ags";
hyprpanel.url = "github:jas-singhfsu/hyprpanel";
hyprpanel.inputs.nixpkgs.follows = "nixpkgs";
# Other # Other
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";

View File

@ -39,7 +39,7 @@ rec {
}; };
modules = { modules = {
ags.enable = true; # TODO: Configure ags.enable = false; # TODO: Configure
chromium = { chromium = {
enable = true; enable = true;
@ -66,8 +66,8 @@ rec {
hyprland = { hyprland = {
enable = true; enable = true;
# theme = "Three-Bears"; dunst.enable = false; # Disable for hyprpanel
theme = "Foggy-Lake"; theme = "Foggy-Lake"; # Three-Bears
keybindings = { keybindings = {
main-mod = "SUPER"; main-mod = "SUPER";
@ -99,6 +99,12 @@ rec {
]; ];
}; };
windowrules = [
# TODO: Doesn't work, use focus_on_activate for now
# "suppressevent activate, class:^(Unity)$"
# "suppressevent activatefocus, class:^(Unity)$"
];
workspacerules = { workspacerules = {
"2" = [ "2" = [
"neovide" "neovide"
@ -174,6 +180,7 @@ rec {
]; ];
}; };
hyprpanel.enable = true;
kitty.enable = true; kitty.enable = true;
latex.enable = true; latex.enable = true;
@ -191,7 +198,7 @@ rec {
theme = "Foggy-Lake"; theme = "Foggy-Lake";
}; };
waybar.enable = true; waybar.enable = false;
zathura.enable = true; zathura.enable = true;
}; };
@ -346,6 +353,7 @@ rec {
AusweisApp2 AusweisApp2
thunderbird # TODO: Email module thunderbird # TODO: Email module
obsidian obsidian
# anytype # Use flatpak
helvum helvum
# Office # Office
@ -616,6 +624,7 @@ rec {
# "com.google.Chrome" # "com.google.Chrome"
# "md.obsidian.Obsidian" # NOTE: Installed via package # "md.obsidian.Obsidian" # NOTE: Installed via package
"io.anytype.anytype"
]; ];
uninstallUnmanaged = true; uninstallUnmanaged = true;
@ -641,6 +650,18 @@ rec {
GTK_THEME = "Adwaita:light"; GTK_THEME = "Adwaita:light";
}; };
}; };
"io.anytype.anytype".Context = {
filesystems = [
"${config.home.homeDirectory}"
];
};
"com.discordapp.Discord".Context = {
filesystems = [
"${config.home.homeDirectory}"
];
};
}; };
}; };
}; };

View File

@ -3,6 +3,7 @@
pkgs, pkgs,
nixosConfig, nixosConfig,
config, config,
lib,
... ...
}: { }: {
imports = [ imports = [
@ -56,39 +57,95 @@
waybar.monitor = "HDMI-A-1"; waybar.monitor = "HDMI-A-1";
}; };
home.packages = with pkgs; [ home = let
# quartus-prime-lite # Intel FPGA design software # Extra config to make Rider Unity integration work
dotnetCore = with pkgs.dotnetCorePackages;
# Don't want heavy IDE's on the laptop
jetbrains.clion
jetbrains.rust-rover
jetbrains.pycharm-professional
jetbrains.idea-ultimate
jetbrains.webstorm
unityhub
jetbrains.rider
(with dotnetCorePackages;
combinePackages [ combinePackages [
# sdk_6_0_1xx # Is EOL # sdk_6_0_1xx # Is EOL
# sdk_7_0_3xx # Is EOL # sdk_7_0_3xx # Is EOL
sdk_8_0_3xx sdk_8_0_3xx
sdk_9_0_3xx sdk_9_0_3xx
]) # For Rider/Unity ];
mono # For Rider/Unity
blender extra-path = with pkgs; [
# godot_4 dotnetCore
obs-studio dotnetPackages.Nuget
kdePackages.kdenlive mono
krita # msbuild
makemkv
steam-devices-udev-rules # Add any extra binaries you want accessible to Rider here
]; ];
# home.file.".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.dotfiles}/mangohud/MangoHud.conf"; extra-lib = with pkgs; [
home.file.".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = ../../../config/mangohud/MangoHud.conf; # Add any extra libraries you want accessible to Rider here
];
rider = pkgs.jetbrains.rider.overrideAttrs (attrs: {
postInstall =
''
# Wrap rider with extra tools and libraries
mv $out/bin/rider $out/bin/.rider-toolless
makeWrapper $out/bin/.rider-toolless $out/bin/rider \
--argv0 rider \
--prefix PATH : "${lib.makeBinPath extra-path}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extra-lib}"
# Making Unity Rider plugin work!
# The plugin expects the binary to be at /rider/bin/rider,
# with bundled files at /rider/
# It does this by going up two directories from the binary path
# Our rider binary is at $out/bin/rider, so we need to link $out/rider/ to $out/
shopt -s extglob
ln -s $out/rider/!(bin) $out/
shopt -u extglob
''
+ attrs.postInstall or "";
});
in {
packages = with pkgs; [
# quartus-prime-lite # Intel FPGA design software
# Don't want heavy IDE's on the laptop
jetbrains.clion
jetbrains.rust-rover
jetbrains.pycharm-professional
jetbrains.idea-ultimate
jetbrains.webstorm
# Unity Stuff
unityhub
rider
dotnetCore
mono
blender
godot_4
obs-studio
kdePackages.kdenlive
krita
makemkv
steam-devices-udev-rules
];
file = {
".local/share/applications/jetbrains-rider.desktop".source = let
desktopFile = pkgs.makeDesktopItem {
name = "jetbrains-rider";
desktopName = "Rider";
exec = "\"${rider}/bin/rider\"";
icon = "rider";
type = "Application";
# Don't show desktop icon in search or run launcher
extraConfig.NoDisplay = "true";
};
in "${desktopFile}/share/applications/jetbrains-rider.desktop";
".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = ../../../config/mangohud/MangoHud.conf;
# ".var/app/com.valvesoftware.Steam/config/MangoHud/MangoHud.conf".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.dotfiles}/mangohud/MangoHud.conf";
};
};
services = { services = {
flatpak = { flatpak = {

View File

@ -1,20 +1,46 @@
// Import the colors exported by the nixos config
// TODO: Depend on username somehow...
@use "/home/christoph/.config/colors" as *;
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss // https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
$fg-color: #{"@theme_fg_color"}; $fg-color: #{"@theme_fg_color"};
$bg-color: #{"@theme_bg_color"}; $bg-color: #{"@theme_bg_color"};
window.Bar { // Order is Top-Right-Bottom-Left for combined properties
* {
// Remove the default theme's background-image, otherwise background-color doesn't work
background-image: none;
// Clear implicit paddings and margins, otherwise size management is terrible
padding: 0;
margin: 0;
}
.Window {
background: transparent; background: transparent;
color: $fg-color;
font-weight: bold; font-weight: bold;
font-size: x-large;
>centerbox { .Bar {
background: $bg-color; background-color: rgba($light-base, 0.3);
border-radius: 10px; border-radius: 6px;
margin: 8px; border-width: 2px;
} border-color: $dark-lavender;
border-style: solid;
margin: 10px 10px 0 10px;
button { .LauncherButton {
border-radius: 8px; background-color: $dark-lavender;
margin: 2px; border-radius: 6px;
border-width: 0;
margin: -1px 10px -1px -1px; // Negative margins to remove gaps from border radii
min-width: 36px;
min-height: 36px;
>label {
margin-left: -4px; // Tux not centered otherwise
}
}
} }
} }

View File

@ -1,36 +1,76 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4" import { App, Astal, Gtk, Gdk } from "astal/gtk4"
import { Variable } from "astal" import { GLib, Variable } from "astal"
import { SysTray } from "./SysTray";
const time = Variable("").poll(1000, "date") const user = Variable("")
.poll(60000, ["bash", "-c", "whoami"]);
const time = Variable("")
.poll(1000, ["bash", "-c", "date +'%H:%M:%S'"]);
const date = Variable("")
.poll(60000, ["bash", "-c", "date +'%y-%m-%d'"])
const uptime = Variable("")
.poll(60000, ["bash", "-c", "uptime | awk -F'( |,)+' '{print $4}'"]);
export default function Bar(gdkmonitor: Gdk.Monitor) { export default function Bar(gdkmonitor: Gdk.Monitor) {
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor const { TOP, LEFT, RIGHT } = Astal.WindowAnchor
return <window return <window
visible cssClasses={["Window"]}
cssClasses={["Bar"]} application={App}
gdkmonitor={gdkmonitor} gdkmonitor={gdkmonitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE} exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={TOP | LEFT | RIGHT} anchor={TOP | LEFT | RIGHT}
application={App}> visible
<centerbox cssName="centerbox">
<button child={
onClicked="echo hello" <centerbox
hexpand cssClasses={["Bar"]}
halign={Gtk.Align.CENTER}
> startWidget={
Welcome to AGS! <box
</button> halign={Gtk.Align.START}
<box /> children={[
<menubutton <button
hexpand cssClasses={["LauncherButton"]}
halign={Gtk.Align.CENTER} onClicked="rofi -drun-show-actions -show drun"
> cursor={Gdk.Cursor.new_from_name("pointer", null)}
<label label={time()} /> label={""}
<popover> />,
<Gtk.Calendar />
</popover> <label
</menubutton> cssClasses={["UserLabel"]}
</centerbox> label={user((value) => `${value.toUpperCase()}`)}
</window> />,
<label
cssClasses={["UptimeLabel"]}
label={uptime((value) => `${value}`)}
/>,
<label
cssClasses={["WindowNameLabel"]}
label={"WINDOW"}
/>
]}
/>
}
centerWidget={
<box />
}
endWidget={
<box
halign={Gtk.Align.START}
children={[
<SysTray />
]}
/>
}
/>
}
/>
} }

View File

@ -0,0 +1,40 @@
import { Variable, bind } from "astal";
import { Gtk } from "astal/gtk4"
import AstalTray from "gi://AstalTray";
export function SysTray() {
const tray = AstalTray.get_default()
const trayIcons = Variable.derive(
[bind(tray, "items")],
(items) => {
return items.map((item) => {
return (
<menubutton
item={item}
child={
<image gicon={bind(item, "gicon")} />
}
/>
);
});
},
);
return <box
cssClasses={["SysTray"]}
children={
bind(tray, "items").as(items => items.map(item => (
<menubutton
tooltipMarkup={bind(item, "tooltipMarkup")}
usePopover={false}
actionGroup={bind(item, "actionGroup").as(ag => ["dbusmenu", ag])}
menuModel={bind(item, "menuModel")}
child={
<image gicon={bind(item, "gicon")} />
}
/>
)))
}
/>
}

View File

@ -33,8 +33,8 @@ in {
inputs.ags.packages.${pkgs.system}.wireplumber inputs.ags.packages.${pkgs.system}.wireplumber
]; ];
# This should symlink # This should symlink but doesn't, it copies the files :/
configDir = ./config; # configDir = ./config;
}; };
# The ags module doesn't expose the "astal" cli tool or extraPackages # The ags module doesn't expose the "astal" cli tool or extraPackages
@ -64,11 +64,67 @@ in {
}; };
home.file = { home.file = {
# NOTE: Keep this symlinked as long as I'm configuring # Keep this symlinked as long as I'm configuring (not required anymore since I can start AGS locally)
# ".config/ags".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.nixflake}/home/modules/ags/config"; # ".config/ags".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.nixflake}/home/modules/ags/config";
# LSP typechecking support (use ags --init) # NOTE: Don't symlink to ~/.config/ags/colors.scss, since that is already used by configDir
# ".config/ags/types".source = config.lib.file.mkOutOfStoreSymlink "${pkgs.ags}/share/com.github.Aylur.ags/types"; ".config/_colors.scss".text = with config.modules.color.hex; ''
$dark-rosewater: #${dark.rosewater};
$dark-flamingo: #${dark.flamingo};
$dark-pink: #${dark.pink};
$dark-mauve: #${dark.mauve};
$dark-red: #${dark.red};
$dark-maroon: #${dark.maroon};
$dark-peach: #${dark.peach};
$dark-yellow: #${dark.yellow};
$dark-green: #${dark.green};
$dark-teal: #${dark.teal};
$dark-sky: #${dark.sky};
$dark-sapphire: #${dark.sapphire};
$dark-blue: #${dark.blue};
$dark-lavender: #${dark.lavender};
$dark-text: #${dark.text};
$dark-subtext1: #${dark.subtext1};
$dark-subtext0: #${dark.subtext0};
$dark-overlay2: #${dark.overlay2};
$dark-overlay1: #${dark.overlay1};
$dark-overlay0: #${dark.overlay0};
$dark-surface2: #${dark.surface2};
$dark-surface1: #${dark.surface1};
$dark-surface0: #${dark.surface0};
$dark-base: #${dark.base};
$dark-mantle: #${dark.mantle};
$dark-crust: #${dark.crust};
$light-rosewater: #${light.rosewater};
$light-flamingo: #${light.flamingo};
$light-pink: #${light.pink};
$light-mauve: #${light.mauve};
$light-red: #${light.red};
$light-maroon: #${light.maroon};
$light-peach: #${light.peach};
$light-yellow: #${light.yellow};
$light-green: #${light.green};
$light-teal: #${light.teal};
$light-sky: #${light.sky};
$light-sapphire: #${light.sapphire};
$light-blue: #${light.blue};
$light-lavender: #${light.lavender};
$light-text: #${light.text};
$light-subtext1: #${light.subtext1};
$light-subtext0: #${light.subtext0};
$light-overlay2: #${light.overlay2};
$light-overlay1: #${light.overlay1};
$light-overlay0: #${light.overlay0};
$light-surface2: #${light.surface2};
$light-surface1: #${light.surface1};
$light-surface0: #${light.surface0};
$light-base: #${light.base};
$light-mantle: #${light.mantle};
$light-crust: #${light.crust};
'';
}; };
}; };
} }

View File

@ -22,5 +22,6 @@
inputs.nix-flatpak.homeManagerModules.nix-flatpak inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
inputs.ags.homeManagerModules.default inputs.ags.homeManagerModules.default
inputs.hyprpanel.homeManagerModules.hyprpanel
]; ];
} }

View File

@ -118,9 +118,12 @@
"wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\"" "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
"hyprctl setcursor Bibata-Modern-Classic 16" "hyprctl setcursor Bibata-Modern-Classic 16"
# NOTE: Hack because Hyprland doesn't set the xwayland/x11 keymap correctly # HACK: Hyprland doesn't set the xwayland/x11 keymap correctly
"setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104" "setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104"
# HACK: Flatpak doesn't find applications in the system PATH
"systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service"
# Provide a polkit authentication UI. # Provide a polkit authentication UI.
# This is used for example when running systemd commands without root. # This is used for example when running systemd commands without root.
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1" "${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
@ -316,7 +319,7 @@ in {
# Notification service # Notification service
dunst = { dunst = {
enable = true; enable = hyprland.dunst.enable;
iconTheme.package = pkgs.papirus-icon-theme; iconTheme.package = pkgs.papirus-icon-theme;
iconTheme.name = "Papirus"; iconTheme.name = "Papirus";
@ -435,7 +438,8 @@ in {
] ]
++ lib.pipe hyprland.transparent [ ++ lib.pipe hyprland.transparent [
(builtins.map mkTranslucentRule) (builtins.map mkTranslucentRule)
]; ]
++ hyprland.windowrules;
dwindle = { dwindle = {
pseudotile = true; pseudotile = true;
@ -464,9 +468,10 @@ in {
layerrule = [ layerrule = [
"blur,rofi" "blur,rofi"
"ignorealpha 0.001,rofi" "ignorealpha 0.001,rofi"
# "dimaround,rofi" "dimaround,rofi"
"blur,waybar" "blur,waybar"
"blur,gtk4-layer-shell"
]; ];
decoration = { decoration = {

View File

@ -25,6 +25,8 @@ with mylib.modules; {
description = "Wallpaper and colorscheme to use"; description = "Wallpaper and colorscheme to use";
}; };
dunst.enable = mkEnableOption "Enable dunst notification daemon";
monitors = mkOption { monitors = mkOption {
type = types.attrs; type = types.attrs;
description = "Hyprland Monitor Configurations"; description = "Hyprland Monitor Configurations";
@ -90,6 +92,16 @@ with mylib.modules; {
''; '';
}; };
windowrules = mkOption {
type = types.listOf types.str;
description = "Specify specific window rules.";
example = ''
[
"suppressevent activate, class: Unity"
]
'';
};
transparent-opacity = mkOption { transparent-opacity = mkOption {
type = types.str; type = types.str;
description = "The opacity transparent windows should have."; description = "The opacity transparent windows should have.";

View File

@ -0,0 +1,20 @@
{
config,
nixosConfig,
lib,
mylib,
pkgs,
...
}: let
inherit (config.modules) hyprpanel;
in {
options.modules.hyprpanel = import ./options.nix {inherit lib mylib;};
config = lib.mkIf hyprpanel.enable {
programs.hyprpanel = {
enable = true;
overwrite.enable = true;
};
};
}

View File

@ -0,0 +1,9 @@
{
lib,
mylib,
...
}:
with lib;
with mylib.modules; {
enable = mkEnableOption "hyprpanel";
}

View File

@ -150,12 +150,12 @@ with mylib.networking; {
# XDG # XDG
xdg.portal = { xdg.portal = {
enable = true; enable = true;
wlr.enable = false; # I think hyprland has its own portal automatically enabled... xdgOpenUsePortal = true;
wlr.enable = false; # Hyprland has its own portal automatically enabled...
extraPortals = with pkgs; [ extraPortals = with pkgs; [
# TODO: Needed? xdg-desktop-portal-gtk
# xdg-desktop-portal-kde
# xdg-desktop-portal-gtk
# xdg-desktop-portal-kde
# xdg-desktop-portal-hyprland # Already enabled by hyprland system module # xdg-desktop-portal-hyprland # Already enabled by hyprland system module
# xdg-desktop-portal-termfilechooser # Filepicker using nnn # xdg-desktop-portal-termfilechooser # Filepicker using nnn
]; ];
@ -386,7 +386,7 @@ with mylib.networking; {
fwupd.enable = true; # Device firmware (I don't think I have any supported devices) fwupd.enable = true; # Device firmware (I don't think I have any supported devices)
# locate.enable = true; # Periodically update index # locate.enable = true; # Periodically update index
ntp.enable = true; # Clock sync ntp.enable = true; # Clock sync
gvfs.enable = false; # Network shares TODO: Only gnome? Needed? gvfs.enable = true; # Network shares, spotify cover art caching, ...
udev = { udev = {
packages = with pkgs; [ packages = with pkgs; [
usb-blaster-udev-rules # For Intel Quartus usb-blaster-udev-rules # For Intel Quartus

View File

@ -58,6 +58,7 @@
# 31431 # Parsec # 31431 # Parsec
5173 # SvelteKit 5173 # SvelteKit
8090 # PocketBase 8090 # PocketBase
4242 # Lan-Mouse
]; ];
allowedUDPPorts = [ allowedUDPPorts = [
@ -66,6 +67,7 @@
# 31431 # Parsec # 31431 # Parsec
5173 # SvelteKit 5173 # SvelteKit
8090 # PocketBase 8090 # PocketBase
4242 # Lan-Mouse
]; ];
wireguard-tunnels = { wireguard-tunnels = {

View File

@ -100,6 +100,7 @@
enableRedistributableFirmware = true; enableRedistributableFirmware = true;
# cpu.intel.updateMicrocode = true; # cpu.intel.updateMicrocode = true;
cpu.amd.updateMicrocode = true; cpu.amd.updateMicrocode = true;
bluetooth.enable = true;
nvidia = { nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;

View File

@ -53,6 +53,7 @@
hardware = { hardware = {
enableRedistributableFirmware = true; enableRedistributableFirmware = true;
cpu.intel.updateMicrocode = true; cpu.intel.updateMicrocode = true;
bluetooth.enable = true;
graphics = { graphics = {
enable = true; enable = true;