feat (home): formatting, dconf, librewolf
This commit is contained in:
parent
215ecdf804
commit
d5e56333bc
2 changed files with 208 additions and 178 deletions
282
home/home.nix
282
home/home.nix
|
|
@ -1,41 +1,55 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home = {
|
||||
username = "hms";
|
||||
homeDirectory = "/home/hms";
|
||||
|
||||
# Packages
|
||||
packages = with pkgs; [
|
||||
# Utilities
|
||||
xz
|
||||
zip
|
||||
unzip
|
||||
ripgrep
|
||||
tealdeer
|
||||
zoxide
|
||||
just
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
# Utilities
|
||||
xz
|
||||
zip
|
||||
unzip
|
||||
ripgrep
|
||||
tealdeer
|
||||
zoxide
|
||||
just
|
||||
gnome-tweaks
|
||||
protonmail-bridge-gui
|
||||
xclip
|
||||
adw-gtk3
|
||||
nerd-fonts.adwaita-mono
|
||||
|
||||
# Applications
|
||||
blackbox-terminal
|
||||
zotero
|
||||
zulip
|
||||
discord
|
||||
signal-desktop
|
||||
gapless
|
||||
protonmail-bridge-gui
|
||||
newsflash
|
||||
gnome-solanum
|
||||
# Applications
|
||||
blackbox-terminal
|
||||
zotero
|
||||
zulip
|
||||
discord
|
||||
signal-desktop
|
||||
gapless
|
||||
newsflash
|
||||
gnome-solanum
|
||||
|
||||
# Development
|
||||
## Typst, LaTeX
|
||||
tinymist
|
||||
texliveFull
|
||||
# Development
|
||||
## Typst, LaTeX
|
||||
tinymist
|
||||
texliveFull
|
||||
|
||||
## Nix
|
||||
nixfmt-rfc-style
|
||||
nil
|
||||
];
|
||||
## 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,98 +76,97 @@
|
|||
stateVersion = "25.11";
|
||||
};
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
programs.home-manager.enable = true;
|
||||
programs.taskwarrior = {
|
||||
enable = true;
|
||||
dataLocation = "${config.home.homeDirectory}/.local/share/task";
|
||||
colorTheme = "light-256";
|
||||
config.editor = "hx";
|
||||
};
|
||||
|
||||
taskwarrior = {
|
||||
enable = true;
|
||||
dataLocation = "${config.home.homeDirectory}/.local/share/task";
|
||||
colorTheme = "light-256";
|
||||
config.editor = "hx";
|
||||
# Helix configuration
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
theme = "adwaita-light";
|
||||
editor = {
|
||||
lsp.display-messages = true;
|
||||
inline-diagnostics.cursor-line = "hint";
|
||||
rulers = [ 81 ];
|
||||
gutters.layout = [ "diagnostics" ];
|
||||
};
|
||||
keys.insert.j.k = "normal_mode";
|
||||
};
|
||||
};
|
||||
programs.jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Henri Saudubray";
|
||||
email = "henri.saudubray@proton.me";
|
||||
};
|
||||
ui.default-command = "log";
|
||||
};
|
||||
};
|
||||
|
||||
# Helix configuration
|
||||
helix = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
programs.firefox.enable = true;
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
name = "Default";
|
||||
settings = {
|
||||
theme = "adwaita-light";
|
||||
editor = {
|
||||
lsp.display-messages = true;
|
||||
inline-diagnostics.cursor-line = "hint";
|
||||
rulers = [ 81 ];
|
||||
gutters.layout = [ "diagnostics" ];
|
||||
};
|
||||
keys.insert.j.k = "normal_mode";
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
"gnomeTheme.hideSingleTab" = true;
|
||||
};
|
||||
};
|
||||
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Henri Saudubray";
|
||||
email = "henri.saudubray@proton.me";
|
||||
};
|
||||
ui.default-command = "log";
|
||||
};
|
||||
};
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
name = "Default";
|
||||
settings = {
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
"gnomeTheme.hideSingleTab" = true;
|
||||
};
|
||||
userChrome = ''
|
||||
@import "firefox-gnome-theme/userChrome.css";
|
||||
@import "firefox-gnome-theme/theme/colors/dark.css";
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
bat.enable = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
email = "henri.saudubray@proton.me";
|
||||
name = "Henri Saudubray";
|
||||
};
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
signing.format = "openpgp";
|
||||
};
|
||||
|
||||
bash = {
|
||||
enable = true;
|
||||
bashrcExtra = ''
|
||||
export PS1=" \W \[\e[33m\]λ\[\e[0m\] "
|
||||
|
||||
task ls
|
||||
if [ "$(ls -A ~/dwn)" ]; then echo "TODO: organize downloads."; fi
|
||||
userChrome = ''
|
||||
@import "librewolf-gnome-theme/userChrome.css";
|
||||
@import "librewolf-gnome-theme/theme/colors/dark.css";
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
gpg.enable = true;
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
options = [ "--cmd cd" ];
|
||||
programs.bat.enable = true;
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
email = "henri.saudubray@proton.me";
|
||||
name = "Henri Saudubray";
|
||||
};
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
signing = {
|
||||
format = "openpgp";
|
||||
signByDefault = true;
|
||||
key = "0x7065F57ED8856128";
|
||||
};
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
bashrcExtra = ''
|
||||
export PS1=" \W \[\e[33m\]λ\[\e[0m\] "
|
||||
task ls
|
||||
if [ "$(ls -A ~/dwn)" ]; then echo "TODO: organize downloads."; fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs.gpg.enable = true;
|
||||
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
options = [ "--cmd cd" ];
|
||||
};
|
||||
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
# createDirectories = 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";
|
||||
# };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue