Compare commits

..

3 commits

Author SHA1 Message Date
janis 98388ba0b4
main & thunderbird 2026-07-28 19:18:30 +02:00
janis 4ff2ddecf5
reorder packages 2026-07-28 16:56:47 +02:00
janis f9cccfdd3c
ghostty 2026-07-28 16:56:36 +02:00
12 changed files with 320 additions and 142 deletions

View file

@ -34,28 +34,26 @@ in {
};
packages = with pkgs; [
# Add your global packages here
# see also: system/core.nix
# keygen
duralumin
duralumin-keygen
# terminal utilities
gh
yazi
ranger
neovim
bottom
git
wget
curl
tree
htop
ripgrep
killall
xdg-utils
file
gh
nix-index
imagemagick
# for running wayland apps over ssh
waypipe
blender
# my own screenshot utility
screenshot
];
};

View file

@ -1,10 +1,12 @@
{...}: {
imports = [
./alacritty.nix
./ghostty.nix
./common.nix
./desktop-apps.nix
./development
./emacs.nix
./mail.nix
./firefox.nix
./games
./git-ssh.nix

View file

@ -28,6 +28,8 @@
virt-manager
foliate
blender
# GUI File Manager
nemo-with-extensions
];

View file

@ -50,6 +50,9 @@ in {
hunspellDicts.de-de
hunspellDicts.da-dk
# English word lists for spell checking
scowl
# jinx from emacsPackages
emacsPackages.jinx

29
home/ghostty.nix Normal file
View file

@ -0,0 +1,29 @@
{lib, super-config, ...}:
let
# theme = import ../data/theme.nix {config = super-config; };
mkIfOrElse = cond: then_: else_: (lib.mkMerge [
(lib.mkIf cond then_)
(lib.mkIf (!cond) else_)
]);
in {
programs.ghostty = {
enable = true;
settings = {
font-family = "monospace";
font-size = 12;
title-report = true;
shell-integration = "zsh";
shell-integration-features = "no-cursor";
theme = "dark: Gruvbox Dark, light: Gruvbox Light";
window-theme = mkIfOrElse (super-config.darkMode == true) "dark" "light";
cursor-style = "block";
cursor-style-blink = false;
cursor-opacity = 0.8;
keybind = [
"ctrl+shift+enter=new_window"
];
};
};
}

65
home/mail.nix Normal file
View file

@ -0,0 +1,65 @@
{pkgs, ...}: {
programs.thunderbird = {
enable = true;
profiles.default = {
isDefault = true;
};
};
home.packages = with pkgs; [
rofi-rbw-wayland
pinentry-rofi
wl-clipboard
];
programs.rbw = {
enable = true;
settings = {
base_url = "https://vaultwarden.nirgendwo.xyz";
email = "janis@nirgendwo.xyz";
pinentry = pkgs.pinentry-rofi;
lock_timeout = 3600;
};
};
accounts.email.accounts = {
"Janis @ GMail" = {
address = "j4nisboehm@gmail.com";
realName = "Janis Böhm";
flavor = "gmail.com";
thunderbird = {
enable = true;
profiles = [ "default" ];
};
passwordCommand = [ "rbw" "get" "j4nisboehm @ Google" ];
};
"Janis @ Nirgendwo" = {
primary = true;
address = "janis@nirgendwo.xyz";
realName = "Janis Böhm";
userName = "janis";
imap = {
host = "mail.nirgendwo.xyz";
port = 993;
tls.enable = true;
};
smtp = {
host = "mail.nirgendwo.xyz";
port = 465;
tls.enable = true;
};
thunderbird = {
enable = true;
profiles = [ "default" ];
};
passwordCommand = [ "rbw" "get" "janis @ nirgendswo.com" ];
};
};
}

View file

@ -50,136 +50,145 @@ in {
"*".scale = "${lib.strings.floatToString super-config.desktop_scale}";
}// super-config.extraOutputConfig;
startup = [
{
always = true;
command = "${pkgs.gammastep}/bin/gammastep -l 54:10 -t 6500k:4500k";
}
# {
# always = true;
# command = "systemctl --user restart libinput-gestures.service";
# }
# {
# always = true;
# command = "systemctl --user start wpaperd.service";
# }
];
startup = [
{
command = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP";
}
{
command = "gesttings set org.gnome.desktop.interface color-scheme 'prefer-dark'";
}
{
command = "gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'";
}
{
always = true;
command = "${pkgs.gammastep}/bin/gammastep -l 54:10 -t 6500k:4500k";
}
# {
# always = true;
# command = "systemctl --user restart libinput-gestures.service";
# }
# {
# always = true;
# command = "systemctl --user start wpaperd.service";
# }
];
gaps = {
inner = 8;
};
gaps = {
inner = 8;
};
bars = [{
command = "${pkgs.waybar}/bin/waybar";
}];
bars = [{
command = "${pkgs.waybar}/bin/waybar";
}];
window = {
border = 3;
titlebar = false;
};
window = {
border = 3;
titlebar = false;
};
input = {
"type:pointer" = {
pointer_accel = "-1";
};
input = {
"type:pointer" = {
pointer_accel = "-1";
};
"type:keyboard" = {
xkb_layout = "gb,dk";
xkb_options =
"caps:escape,grp:menu_toggle,grp:rctrl_toggle";
repeat_delay = "250";
repeat_rate = "25";
};
"type:keyboard" = {
xkb_layout = "gb,dk";
xkb_options =
"caps:escape,grp:menu_toggle,grp:rctrl_toggle";
repeat_delay = "250";
repeat_rate = "25";
};
"type:touchpad" = {
natural_scroll = "enabled";
tap = "enabled";
tap_button_map = "lrm";
pointer_accel = "0";
};
};
"type:touchpad" = {
natural_scroll = "enabled";
tap = "enabled";
tap_button_map = "lrm";
pointer_accel = "0";
};
};
keybindings = with pkgs; {
"Print" = "exec screenshot";
"${mod}+Print" = "exec screenshot --area";
"${mod}+Shift+Print" = "exec screenshot --current-window";
keybindings = with pkgs; {
"Print" = "exec screenshot";
"${mod}+Print" = "exec screenshot --area";
"${mod}+Shift+Print" = "exec screenshot --current-window";
"XF86AudioRaiseVolume" = "exec ${alsa-utils}/bin/amixer set Master 5%+";
"XF86AudioLowerVolume" = "exec ${alsa-utils}/bin/amixer set Master 5%-";
"XF86AudioMute" = "exec ${wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
"XF86AudioMicMute" = "exec ${wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
"XF86AudioRaiseVolume" = "exec ${alsa-utils}/bin/amixer set Master 5%+";
"XF86AudioLowerVolume" = "exec ${alsa-utils}/bin/amixer set Master 5%-";
"XF86AudioMute" = "exec ${wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
"XF86AudioMicMute" = "exec ${wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
"XF86AudioPlay" = "mpc toggle";
"XF86AudioNext" = "mpc next";
"XF86AudioPrev" = "mpc prev";
"XF86AudioPlay" = "mpc toggle";
"XF86AudioNext" = "mpc next";
"XF86AudioPrev" = "mpc prev";
"XF86MonBrightnessUp" = "exec ${brightnessctl}/bin/brightnessctl set +5%";
"XF86MonBrightnessDown" = "exec ${brightnessctl}/bin/brightnessctl set 5%-";
"XF86MonBrightnessUp" = "exec ${brightnessctl}/bin/brightnessctl set +5%";
"XF86MonBrightnessDown" = "exec ${brightnessctl}/bin/brightnessctl set 5%-";
"${mod}+Shift+Return" = "exec ${alacritty}/bin/alacritty";
"${mod}+q" = "kill";
"${mod}+p" = "exec ${launcher}";
"${mod}+Shift+e" = "exec ${pkgs.emacs}/bin/emacsclient -c -a ''";
"${mod}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox";
"${mod}+Shift+c" = "reload";
"${mod}+Shift+q" = "exec ${pkgs.sway}/bin/swaymsg exit";
"${mod}+Shift+Return" = "exec ${alacritty}/bin/alacritty";
"${mod}+q" = "kill";
"${mod}+p" = "exec ${launcher}";
"${mod}+Shift+e" = "exec ${pkgs.emacs}/bin/emacsclient -c -a ''";
"${mod}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox";
"${mod}+Shift+c" = "reload";
"${mod}+Shift+q" = "exec ${pkgs.sway}/bin/swaymsg exit";
"${mod}+${left}" = "focus left";
"${mod}+${right}" = "focus right";
"${mod}+${up}" = "focus up";
"${mod}+${down}" = "focus down";
"${mod}+${left}" = "focus left";
"${mod}+${right}" = "focus right";
"${mod}+${up}" = "focus up";
"${mod}+${down}" = "focus down";
"${mod}+Shift+${left}" = "move left";
"${mod}+Shift+${right}" = "move right";
"${mod}+Shift+${up}" = "move up";
"${mod}+Shift+${down}" = "move down";
"${mod}+Shift+${left}" = "move left";
"${mod}+Shift+${right}" = "move right";
"${mod}+Shift+${up}" = "move up";
"${mod}+Shift+${down}" = "move down";
"${mod}+Ctrl+${left}" = "move workspace to output left";
"${mod}+Ctrl+${right}" = "move workspace to output right";
"${mod}+tab" = "workspace back_and_forth";
"${mod}+Ctrl+${left}" = "move workspace to output left";
"${mod}+Ctrl+${right}" = "move workspace to output right";
"${mod}+tab" = "workspace back_and_forth";
"${mod}+b" = "splith";
"${mod}+v" = "splitv";
"${mod}+b" = "splith";
"${mod}+v" = "splitv";
"${mod}+s" = "layout stacking";
"${mod}+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+s" = "layout stacking";
"${mod}+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+Shift+space" = "floating toggle";
"${mod}+space" = "focus mode_toggle";
"${mod}+Shift+f" = "fullscreen";
"${mod}+Shift+space" = "floating toggle";
"${mod}+space" = "focus mode_toggle";
"${mod}+Shift+f" = "fullscreen";
} // lib.attrsets.mergeAttrsList (map
(n: let workspace = toString n; in {
"${mod}+${workspace}" = "workspace ${workspace}";
"${mod}+Shift+${workspace}" = "move container to workspace ${workspace}";
})
[1 2 3 4 5 6 7 8 9 0]
);
} // lib.attrsets.mergeAttrsList (map
(n: let workspace = toString n; in {
"${mod}+${workspace}" = "workspace ${workspace}";
"${mod}+Shift+${workspace}" = "move container to workspace ${workspace}";
})
[1 2 3 4 5 6 7 8 9 0]
);
colors = {
focused = {
background = "#A7C080";
text = "#272E33";
indicator = "#A7C080";
border = "#A7C080";
childBorder = "#A7C080";
};
unfocused = {
background = "#9DA9A0";
text = "#272E33";
indicator = "#9DA9A0";
border = "#9DA9A0";
childBorder = "#9DA9A0";
};
urgent = {
background = "#E67E80";
text = "#272E33";
indicator = "#E67E80";
border = "#E67E80";
childBorder = "#E67E80";
};
};
colors = {
focused = {
background = "#A7C080";
text = "#272E33";
indicator = "#A7C080";
border = "#A7C080";
childBorder = "#A7C080";
};
unfocused = {
background = "#9DA9A0";
text = "#272E33";
indicator = "#9DA9A0";
border = "#9DA9A0";
childBorder = "#9DA9A0";
};
urgent = {
background = "#E67E80";
text = "#272E33";
indicator = "#E67E80";
border = "#E67E80";
childBorder = "#E67E80";
};
};
};
};
};

View file

@ -24,14 +24,20 @@
# GTK Setup
gtk = {
enable = true;
# theme = {
# name = "catppuccin-mocha-standard-blue-dark";
# package = pkgs.catppuccin-gtk.override {
# accents = [ "blue" ];
# size = "standard";
# variant = "mocha";
# };
# };
theme = {
name = "catppuccin-mocha-standard-blue-dark";
package = pkgs.catppuccin-gtk.override {
accents = [ "blue" ];
size = "standard";
variant = "mocha";
};
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
@ -39,14 +45,19 @@
accent = "blue";
};
};
cursorTheme = {
name = "catppuccin-mocha-lavender-cursors";
package = pkgs.catppuccin-cursors.mochaLavender;
# cursorTheme = {
# name = "catppuccin-mocha-lavender-cursors";
# package = pkgs.catppuccin-cursors.mochaLavender;
# };
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = lib.mkIf (super-config.darkMode == true) 1;
};
gtk3 = {
extraConfig.gtk-application-prefer-dark-theme = super-config.darkMode == true;
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = lib.mkIf (super-config.darkMode == true) 1;
};
};
dconf.settings = {
"org/gtk/settings/file-chooser" = {
sort-directories-first = true;
@ -54,7 +65,7 @@
# GTK4 Setup
"org/gnome/desktop/interface" = {
gtk-theme = "catppuccin-mocha-standard-blue-dark";
# gtk-theme = "catppuccin-mocha-standard-blue-dark";
color-scheme = lib.mkIf (super-config.darkMode == true) "prefer-dark";
};
};
@ -88,13 +99,11 @@
qt = {
enable = true;
platformTheme.name = "qtct";
style = {
name = "kvantum";
};
platformTheme.name = "gtk";
style.name = "adwaita-dark";
};
systemd.user.sessionVariables = {
QT_STYLE_OVERRIDE = "kvantum";
QT_STYLE_OVERRIDE = "adwaita-dark";
};
}

View file

@ -3,6 +3,12 @@ let
aliases = import ../data/zsh-aliases.nix {};
in {
home.packages = with pkgs; [ pure-prompt ];
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
enableCompletion = true;

View file

@ -4,10 +4,50 @@
zsh
wget
curl
rsync
git
vim
jq
bat
ripgrep
ripgrep-all
zoxide
file
fd
tree
xdg-utils
# nixos util
nh
# compression
unzip
zip
zstd
# stats and monitoring
fastfetch
pciutils
usbutils
lsof
lm_sensors
# network tools
nmap
tcpdump
doggo
inetutils
iproute2
whois
# documentation
man-pages
man-db
# system monitoring
htop
bottom
killall
linux-firmware
linuxHeaders

View file

@ -2,6 +2,7 @@
imports = [
./boot.nix
./core.nix
./xdg.nix
./fonts.nix
./hardware.nix
./networking.nix

14
system/xdg.nix Normal file
View file

@ -0,0 +1,14 @@
{pkgs, ...}: {
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
xdg-desktop-portal-xapp
];
config.common.default = "*";
};
}