feat (home): formatting, dconf, librewolf

This commit is contained in:
Henri Saudubray 2026-01-20 15:10:55 +01:00
parent 215ecdf804
commit d5e56333bc
2 changed files with 208 additions and 178 deletions

View file

@ -1,12 +1,13 @@
{ config, pkgs, ... }:
{
home = {
username = "hms";
homeDirectory = "/home/hms";
# Packages
packages = with pkgs; [
packages =
with pkgs;
[
# Utilities
xz
zip
@ -15,6 +16,11 @@
tealdeer
zoxide
just
gnome-tweaks
protonmail-bridge-gui
xclip
adw-gtk3
nerd-fonts.adwaita-mono
# Applications
blackbox-terminal
@ -23,7 +29,6 @@
discord
signal-desktop
gapless
protonmail-bridge-gui
newsflash
gnome-solanum
@ -35,7 +40,16 @@
## Nix
nixfmt-rfc-style
nil
];
]
++ (with gnomeExtensions; [
blur-my-shell
clipboard-indicator
rounded-window-corners-reborn
runcat
caffeine
launch-new-instance
light-style
]);
# Bash configuration
shell.enableBashIntegration = true;
@ -62,10 +76,8 @@
stateVersion = "25.11";
};
programs = {
home-manager.enable = true;
taskwarrior = {
programs.home-manager.enable = true;
programs.taskwarrior = {
enable = true;
dataLocation = "${config.home.homeDirectory}/.local/share/task";
colorTheme = "light-256";
@ -73,7 +85,7 @@
};
# Helix configuration
helix = {
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
@ -87,8 +99,7 @@
keys.insert.j.k = "normal_mode";
};
};
jujutsu = {
programs.jujutsu = {
enable = true;
settings = {
user = {
@ -99,7 +110,8 @@
};
};
firefox = {
programs.firefox.enable = true;
programs.librewolf = {
enable = true;
profiles.default = {
name = "Default";
@ -109,15 +121,14 @@
"gnomeTheme.hideSingleTab" = true;
};
userChrome = ''
@import "firefox-gnome-theme/userChrome.css";
@import "firefox-gnome-theme/theme/colors/dark.css";
@import "librewolf-gnome-theme/userChrome.css";
@import "librewolf-gnome-theme/theme/colors/dark.css";
'';
};
};
bat.enable = true;
git = {
programs.bat.enable = true;
programs.git = {
enable = true;
settings = {
user = {
@ -126,33 +137,35 @@
};
init.defaultBranch = "main";
};
signing.format = "openpgp";
signing = {
format = "openpgp";
signByDefault = true;
key = "0x7065F57ED8856128";
};
};
bash = {
programs.bash = {
enable = true;
bashrcExtra = ''
export PS1=" \W \[\e[33m\]λ\[\e[0m\] "
task ls
if [ "$(ls -A ~/dwn)" ]; then echo "TODO: organize downloads."; fi
'';
};
gpg.enable = true;
programs.gpg.enable = true;
zoxide = {
programs.zoxide = {
enable = true;
enableBashIntegration = true;
options = [ "--cmd cd" ];
};
direnv = {
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
};
xdg.userDirs = {
enable = true;
@ -167,6 +180,7 @@
videos = "${config.home.homeDirectory}/vid";
};
## FIXME: Find an alternative.
# systemd.user.services.helix-theme = {
# Unit = {
# Description = "Helix System Colour Scheme Synchronisation Service";
@ -181,9 +195,7 @@
# ExecStart =
# let
# update-script = pkgs.writeShellScript "helix-theme-update" ''
# #!/bin/sh
# set -eu -o pipefail
# if [ "$1" = "default" ]; then
# sed -i 's/theme = ".*"/theme = "adwaita-light"/' \
# $HOME/.config/helix/config.toml
@ -191,12 +203,10 @@
# sed -i 's/theme = ".*"/theme = "adwaita-dark"/' \
# $HOME/.config/helix/config.toml
# fi
# killall -s SIGUSR1 hx
# '';
# in
# "${pkgs.writeShellScript "helix-theme-monitor" ''
# #!/bin/sh
# gsettings monitor org.gnome.desktop.interface color-scheme \
# | xargs -L1 bash -c "source ${update-script}"
# ''}";
@ -204,8 +214,52 @@
# };
dconf.settings = {
"org/gnome/TextEditor" = {
keybindings = "vim";
"org/gnome/TextEditor".keybindings = "vim";
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"clipboard-indicator@tudmotu.com"
"rounded-window-corners@fxgn"
"runcat@kolesnikov.se"
"caffeine@patapon.info"
"launch-new-instance@gnome-shell-extensions.gcampax.github.com"
];
};
"org/gnome/desktop/interface" = {
gtk-theme = "adw-gtk3";
show-battery-percentage = true;
};
"org/gnome/desktop/wm/preferences".button-layout = "appmenu:minimize,maximize,close";
## FIXME: Figure out why this does not work.
# "org/gnome/desktop/wm/keybindings" = {
# switch-applications = [ "<Alt>grave" ];
# switch-applications-backwards = [ "<Shift><Alt>grave" ];
# switch-windows = [ "<Alt>Tab" ];
# switch-windows-backwards = [ "<Shift><Alt>Tab" ];
# };
# "org/gnome/settings-daemon/plugins/media-keys".custom-keybindings = [
# "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0"
# "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1"
# ];
# "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
# name = "Terminal";
# command = "blackbox";
# binding = "<Super>Return";
# };
# "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
# name = "Dark mode switcher";
# command = "${pkgs.writeShellScript "gnome-dark-mode-switcher" ''
# SCHEMA=org.gnome.desktop.interface
# KEY=color-scheme
# if [ "$(gsettings get "$SCHEMA" "$KEY")" = "'prefer-dark'" ]; then
# gsettings set "$SCHEMA" "$KEY" "prefer-light";
# else
# gsettings set "$SCHEMA" "$KEY" "prefer-dark";
# fi
# ''}";
# binding = "<Super>d";
# };
};
}

View file

@ -1,23 +1,18 @@
{ pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
imports = [ ./hardware-configuration.nix ];
# Use flakes.
nix.settings.experimental-features = "nix-command flakes";
# Bootloader.
boot = {
loader = {
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
kernelPackages = pkgs.linuxPackages_latest;
initrd.luks.devices."luks-374c6259-18c4-462b-9f30-9c9648de00ae".device =
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.initrd.luks.devices."luks-374c6259-18c4-462b-9f30-9c9648de00ae".device =
"/dev/disk/by-uuid/374c6259-18c4-462b-9f30-9c9648de00ae";
};
networking = {
hostName = "nixos";
@ -28,9 +23,8 @@
time.timeZone = "Europe/Paris";
# Select internationalisation properties.
i18n = {
defaultLocale = "en_GB.UTF-8";
extraLocaleSettings = {
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "fr_FR.UTF-8";
LC_IDENTIFICATION = "fr_FR.UTF-8";
LC_MEASUREMENT = "fr_FR.UTF-8";
@ -41,35 +35,30 @@
LC_TELEPHONE = "fr_FR.UTF-8";
LC_TIME = "fr_FR.UTF-8";
};
};
services = {
xserver = {
services.xserver = {
# Use X11.
enable = true;
# Set keyboard layout in X11.
xkb = {
layout = "fr";
variant = "ergol";
};
xkb.layout = "fr";
xkb.variant = "ergol";
};
# Use GNOME.
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true;
services.gnome.gnome-browser-connector.enable = true;
# Use CUPSfor printing.
printing.enable = true;
services.printing.enable = true;
# Use pipewire for audio.
pulseaudio.enable = false;
pipewire = {
services.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
openssh.enable = true;
};
services.openssh.enable = true;
# Configure console keymap.
console.keyMap = "fr";
@ -85,8 +74,6 @@
packages = [ ];
};
programs.firefox.enable = true;
nixpkgs = {
overlays = [ ];
config.allowUnfree = true;
@ -95,19 +82,8 @@
environment.systemPackages = with pkgs; [
helix
wget
gnome-tweaks
gnomeExtensions.blur-my-shell
gnomeExtensions.clipboard-indicator
gnomeExtensions.rounded-window-corners-reborn
gnomeExtensions.runcat
gnomeExtensions.caffeine
gnomeExtensions.launch-new-instance
nerd-fonts.adwaita-mono
adw-gtk3
gnumake
clang
just
xclip
];
programs.gnupg.agent = {