Compare commits
9 Commits
98dbf8271d
...
d92f5cd238
Author | SHA1 | Date |
---|---|---|
Jill | d92f5cd238 | |
Jill | c8433e9ce6 | |
Jill | 363a2710ab | |
Jill | c0d2c7d379 | |
Jill | a386ed30a7 | |
Jill | 24036ac7aa | |
Jill | c248973b5e | |
Jill | c53b2e531e | |
Jill | 95bbf76532 |
|
@ -1,6 +1,6 @@
|
|||
# nix-config
|
||||
|
||||
hello!! welcome to my little nix cave, home to `goop-drive` and potentially more hosts to come.
|
||||
hello!! welcome to my little nix cave, home to `seven-red-suns` and potentially more hosts to come.
|
||||
|
||||
this is a nix flake managing my nixos systems. it isn't really ready for other peoples' use, but you are free to look around.
|
||||
|
||||
|
|
10
default.nix
10
default.nix
|
@ -71,6 +71,14 @@ in {
|
|||
desktop-file-utils
|
||||
shared-mime-info
|
||||
xdg-user-dirs
|
||||
xdg-utils
|
||||
xdg-utils
|
||||
# fun fact! when using flakes not having
|
||||
# git available as a global package while operating
|
||||
# on a git repository makes nixos-rebuild break,
|
||||
# rendering your system unable to rebuild.
|
||||
# nix is really cool
|
||||
git
|
||||
];
|
||||
|
||||
documentation.nixos.enable = false;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {});
|
||||
#packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {});
|
||||
packages."${system}" = {};
|
||||
|
||||
nixosModules = mapModulesRec ./modules import;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
pipewire.enable = true;
|
||||
};
|
||||
desktop = {
|
||||
envProto = "x11";
|
||||
envProto = "wayland";
|
||||
gnome.enable = true;
|
||||
gnome.keybinds.shell = {
|
||||
# disable defaults
|
||||
|
@ -44,7 +44,9 @@
|
|||
gnome.keybinds.custom = {
|
||||
"take-screenshot" = {
|
||||
binding = "Print";
|
||||
command = "${lib.getExe pkgs.flameshot} gui";
|
||||
command = let
|
||||
screenshotScript = pkgs.writeScript "screenshot" "XDG_SESSION_TYPE=wayland ${lib.getExe pkgs.flameshot} gui -c";
|
||||
in ''${screenshotScript}'';
|
||||
};
|
||||
"take-screen-recording" = {
|
||||
binding = "<Shift>Print";
|
||||
|
@ -59,6 +61,7 @@
|
|||
command = ''${grabScript}'';
|
||||
};
|
||||
};
|
||||
#xfce.enable = true;
|
||||
themes.active = "catppuccin";
|
||||
};
|
||||
software = {
|
|
@ -26,6 +26,8 @@ in {
|
|||
# extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
# config.common.default = "*";
|
||||
#};
|
||||
|
||||
services.xserver.excludePackages = [ pkgs.xterm ];
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
|
|
|
@ -1,11 +1,33 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
with builtins;
|
||||
let
|
||||
cfg = config.modules.desktop.gnome;
|
||||
in {
|
||||
options.modules.desktop.gnome = {
|
||||
enable = mkEnableOption "Enable the Gnome desktop environment";
|
||||
extensions = mkOption {
|
||||
description = "Set a list of extensions to use";
|
||||
type = types.listOf types.package;
|
||||
default = with pkgs.gnomeExtensions; [
|
||||
rounded-window-corners
|
||||
force-quit
|
||||
pixel-saver
|
||||
status-area-horizontal-spacing
|
||||
weeks-start-on-monday-again
|
||||
user-themes
|
||||
espresso
|
||||
clipboard-indicator
|
||||
appindicator
|
||||
#blur-my-shell
|
||||
#dash-to-dock
|
||||
just-perfection
|
||||
disable-unredirect-fullscreen-windows
|
||||
#gsconnect
|
||||
#launch-new-instance
|
||||
];
|
||||
};
|
||||
keybinds = {
|
||||
shell = mkOption {
|
||||
description = ''Override Gnome shell keybindings (org/gnome/shell/keybindings/...)'';
|
||||
|
@ -60,27 +82,43 @@ in {
|
|||
wayland = mkForce (config.modules.desktop.envProto == "wayland");
|
||||
};
|
||||
|
||||
services.gnome.sushi.enable = true;
|
||||
services.gnome.games.enable = true;
|
||||
|
||||
hm.home.packages = with pkgs; [
|
||||
dconf2nix
|
||||
gnome.gnome-disk-utility
|
||||
gnome.dconf-editor
|
||||
gnome.gnome-tweaks
|
||||
] ++ (with pkgs.gnomeExtensions; [
|
||||
appindicator
|
||||
clipboard-indicator
|
||||
espresso
|
||||
user-themes
|
||||
gedit
|
||||
] ++ cfg.extensions;
|
||||
|
||||
# just out of curiosity
|
||||
aylurs-widgets
|
||||
blur-my-shell
|
||||
dash-to-dock
|
||||
just-perfection
|
||||
rounded-window-corners
|
||||
space-bar
|
||||
]);
|
||||
environment.gnome.excludePackages = with pkgs.gnome; [
|
||||
pkgs.gnome-tour
|
||||
#baobab
|
||||
epiphany
|
||||
pkgs.gnome-text-editor
|
||||
#gnome-calculator
|
||||
#gnome-calendar
|
||||
#gnome-characters
|
||||
#gnome-clocks
|
||||
pkgs.gnome-console
|
||||
gnome-contacts
|
||||
#gnome-font-viewer
|
||||
#gnome-logs
|
||||
gnome-maps
|
||||
gnome-music
|
||||
#gnome-system-monitor
|
||||
#gnome-weather
|
||||
#pkgs.loupe
|
||||
#nautilus
|
||||
pkgs.gnome-connections
|
||||
simple-scan
|
||||
pkgs.snapshot
|
||||
#totem
|
||||
yelp
|
||||
seahorse
|
||||
geary
|
||||
];
|
||||
|
||||
hm.dconf = let
|
||||
# [ binding ]
|
||||
|
@ -89,6 +127,8 @@ in {
|
|||
customBindingSets = imap0 (i: v: { name = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString i}"; value = v; }) customBindings;
|
||||
# { key = binding }
|
||||
customBindingsAttr = listToAttrs customBindingSets;
|
||||
|
||||
extensions = map (pkg: pkg.extensionUuid) cfg.extensions;
|
||||
in {
|
||||
settings = {
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
|
@ -98,6 +138,8 @@ in {
|
|||
"org/gnome/shell/keybindings" = cfg.keybinds.shell;
|
||||
"org/gnome/desktop/wm/keybindings" = cfg.keybinds.wm;
|
||||
"org/gnome/mutter/keybindings" = cfg.keybinds.mutter;
|
||||
|
||||
"org/gnome/shell".enabled-extensions = extensions;
|
||||
} // customBindingsAttr;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -49,6 +49,8 @@ in {
|
|||
iconTheme = cfg.iconTheme;
|
||||
theme = cfg.gtkTheme;
|
||||
};
|
||||
hm.dconf.settings."org/gnome/desktop/interface/gtk-theme".name = cfg.gtkTheme.name;
|
||||
hm.dconf.settings."org/gnome/shell/extensions/user-theme".name = cfg.gtkTheme.name;
|
||||
|
||||
hm.programs.vscode = {
|
||||
extensions = [ cfg.editor.vscode.extension ];
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop.xfce;
|
||||
in {
|
||||
options.modules.desktop.xfce = {
|
||||
enable = mkEnableOption "Enable Xfce, a lightweight desktop environment based on GTK+";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
desktopManager = {
|
||||
xterm.enable = false;
|
||||
xfce.enable = true;
|
||||
};
|
||||
displayManager.defaultSession = "xfce";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -9,7 +9,8 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# todo: declare sync folders & devices here
|
||||
# declare sync folders & devices here
|
||||
# edit: turns out you can't with hm. huh
|
||||
hm.services.syncthing.enable = true;
|
||||
hm.services.syncthing.tray.enable = true;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue