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
|
# 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.
|
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
|
desktop-file-utils
|
||||||
shared-mime-info
|
shared-mime-info
|
||||||
xdg-user-dirs
|
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;
|
nixosModules = mapModulesRec ./modules import;
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
pipewire.enable = true;
|
pipewire.enable = true;
|
||||||
};
|
};
|
||||||
desktop = {
|
desktop = {
|
||||||
envProto = "x11";
|
envProto = "wayland";
|
||||||
gnome.enable = true;
|
gnome.enable = true;
|
||||||
gnome.keybinds.shell = {
|
gnome.keybinds.shell = {
|
||||||
# disable defaults
|
# disable defaults
|
||||||
|
@ -44,7 +44,9 @@
|
||||||
gnome.keybinds.custom = {
|
gnome.keybinds.custom = {
|
||||||
"take-screenshot" = {
|
"take-screenshot" = {
|
||||||
binding = "Print";
|
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" = {
|
"take-screen-recording" = {
|
||||||
binding = "<Shift>Print";
|
binding = "<Shift>Print";
|
||||||
|
@ -59,6 +61,7 @@
|
||||||
command = ''${grabScript}'';
|
command = ''${grabScript}'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
#xfce.enable = true;
|
||||||
themes.active = "catppuccin";
|
themes.active = "catppuccin";
|
||||||
};
|
};
|
||||||
software = {
|
software = {
|
|
@ -26,6 +26,8 @@ in {
|
||||||
# extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
# extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
# config.common.default = "*";
|
# config.common.default = "*";
|
||||||
#};
|
#};
|
||||||
|
|
||||||
|
services.xserver.excludePackages = [ pkgs.xterm ];
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,33 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
with builtins;
|
||||||
let
|
let
|
||||||
cfg = config.modules.desktop.gnome;
|
cfg = config.modules.desktop.gnome;
|
||||||
in {
|
in {
|
||||||
options.modules.desktop.gnome = {
|
options.modules.desktop.gnome = {
|
||||||
enable = mkEnableOption "Enable the Gnome desktop environment";
|
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 = {
|
keybinds = {
|
||||||
shell = mkOption {
|
shell = mkOption {
|
||||||
description = ''Override Gnome shell keybindings (org/gnome/shell/keybindings/...)'';
|
description = ''Override Gnome shell keybindings (org/gnome/shell/keybindings/...)'';
|
||||||
|
@ -60,27 +82,43 @@ in {
|
||||||
wayland = mkForce (config.modules.desktop.envProto == "wayland");
|
wayland = mkForce (config.modules.desktop.envProto == "wayland");
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gnome.sushi.enable = true;
|
services.gnome.games.enable = true;
|
||||||
|
|
||||||
hm.home.packages = with pkgs; [
|
hm.home.packages = with pkgs; [
|
||||||
dconf2nix
|
dconf2nix
|
||||||
gnome.gnome-disk-utility
|
gnome.gnome-disk-utility
|
||||||
gnome.dconf-editor
|
gnome.dconf-editor
|
||||||
gnome.gnome-tweaks
|
gnome.gnome-tweaks
|
||||||
] ++ (with pkgs.gnomeExtensions; [
|
gedit
|
||||||
appindicator
|
] ++ cfg.extensions;
|
||||||
clipboard-indicator
|
|
||||||
espresso
|
|
||||||
user-themes
|
|
||||||
|
|
||||||
# just out of curiosity
|
environment.gnome.excludePackages = with pkgs.gnome; [
|
||||||
aylurs-widgets
|
pkgs.gnome-tour
|
||||||
blur-my-shell
|
#baobab
|
||||||
dash-to-dock
|
epiphany
|
||||||
just-perfection
|
pkgs.gnome-text-editor
|
||||||
rounded-window-corners
|
#gnome-calculator
|
||||||
space-bar
|
#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
|
hm.dconf = let
|
||||||
# [ binding ]
|
# [ 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;
|
customBindingSets = imap0 (i: v: { name = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${toString i}"; value = v; }) customBindings;
|
||||||
# { key = binding }
|
# { key = binding }
|
||||||
customBindingsAttr = listToAttrs customBindingSets;
|
customBindingsAttr = listToAttrs customBindingSets;
|
||||||
|
|
||||||
|
extensions = map (pkg: pkg.extensionUuid) cfg.extensions;
|
||||||
in {
|
in {
|
||||||
settings = {
|
settings = {
|
||||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
@ -98,6 +138,8 @@ in {
|
||||||
"org/gnome/shell/keybindings" = cfg.keybinds.shell;
|
"org/gnome/shell/keybindings" = cfg.keybinds.shell;
|
||||||
"org/gnome/desktop/wm/keybindings" = cfg.keybinds.wm;
|
"org/gnome/desktop/wm/keybindings" = cfg.keybinds.wm;
|
||||||
"org/gnome/mutter/keybindings" = cfg.keybinds.mutter;
|
"org/gnome/mutter/keybindings" = cfg.keybinds.mutter;
|
||||||
|
|
||||||
|
"org/gnome/shell".enabled-extensions = extensions;
|
||||||
} // customBindingsAttr;
|
} // customBindingsAttr;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,6 +49,8 @@ in {
|
||||||
iconTheme = cfg.iconTheme;
|
iconTheme = cfg.iconTheme;
|
||||||
theme = cfg.gtkTheme;
|
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 = {
|
hm.programs.vscode = {
|
||||||
extensions = [ cfg.editor.vscode.extension ];
|
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 {
|
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.enable = true;
|
||||||
hm.services.syncthing.tray.enable = true;
|
hm.services.syncthing.tray.enable = true;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue