add ori home config
This commit is contained in:
parent
5d7e4b16b1
commit
e57625aa92
3 changed files with 317 additions and 32 deletions
24
flake.nix
24
flake.nix
|
|
@ -17,33 +17,24 @@
|
||||||
|
|
||||||
outputs = { self, home-manager, nixpkgs, flake-utils, nixvim, t }:
|
outputs = { self, home-manager, nixpkgs, flake-utils, nixvim, t }:
|
||||||
let
|
let
|
||||||
homeManagerModules = [
|
homeManagerModules = [ nixvim.homeManagerModules.nixvim ];
|
||||||
nixvim.homeManagerModules.nixvim
|
|
||||||
];
|
|
||||||
|
|
||||||
pkgsForSystem = system:
|
pkgsForSystem = system:
|
||||||
import nixpkgs {
|
import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [
|
overlays = [
|
||||||
(final: prev: {
|
(final: prev: { custom = { t = t.packages.${system}.default; }; })
|
||||||
custom = {
|
|
||||||
t = t.packages.${system}.default;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
mkHomeConfiguration = root: args:
|
mkHomeConfiguration = root: args:
|
||||||
home-manager.lib.homeManagerConfiguration ({
|
home-manager.lib.homeManagerConfiguration ({
|
||||||
modules = [ root ] ++ homeManagerModules
|
modules = [ root ] ++ homeManagerModules ++ (args.modules or [ ]);
|
||||||
++ (args.modules or [ ]);
|
|
||||||
pkgs = pkgsForSystem (args.system or "x86_64-linux");
|
pkgs = pkgsForSystem (args.system or "x86_64-linux");
|
||||||
} // {
|
} // {
|
||||||
inherit (args) extraSpecialArgs;
|
inherit (args) extraSpecialArgs;
|
||||||
});
|
});
|
||||||
in
|
in flake-utils.lib.eachDefaultSystem (system: rec {
|
||||||
flake-utils.lib.eachDefaultSystem
|
|
||||||
(system: rec {
|
|
||||||
formatter = legacyPackages.nixfmt;
|
formatter = legacyPackages.nixfmt;
|
||||||
legacyPackages = pkgsForSystem system;
|
legacyPackages = pkgsForSystem system;
|
||||||
pkgs = legacyPackages;
|
pkgs = legacyPackages;
|
||||||
|
|
@ -66,7 +57,12 @@
|
||||||
}) // {
|
}) // {
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
kili = mkHomeConfiguration (import ./hosts/kili/home.nix) { extraSpecialArgs = { }; };
|
kili = mkHomeConfiguration (import ./hosts/kili/home.nix) {
|
||||||
|
extraSpecialArgs = { };
|
||||||
|
};
|
||||||
|
ori = mkHomeConfiguration (import ./hosts/ori/home.nix) {
|
||||||
|
extraSpecialArgs = { };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit home-manager;
|
inherit home-manager;
|
||||||
|
|
|
||||||
47
hosts/ori/home.nix
Normal file
47
hosts/ori/home.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{ ... }: {
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
home.username = "jonathan";
|
||||||
|
home.homeDirectory = "/home/jonathan";
|
||||||
|
imports = [ ./gnome.nix ];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
element-desktop
|
||||||
|
atuin
|
||||||
|
discord-canary
|
||||||
|
comma
|
||||||
|
(python3.withPackages (pip: with pip; [ numpy matplotlib ]))
|
||||||
|
spotify
|
||||||
|
firefox
|
||||||
|
syncthing
|
||||||
|
nixfmt
|
||||||
|
xdg-utils
|
||||||
|
# to copy from the command line (my zsh config has an alias `clip` to pipe things to the clipboard)
|
||||||
|
wl-clipboard-rs
|
||||||
|
prismlauncher
|
||||||
|
graphviz-nox
|
||||||
|
|
||||||
|
jetbrains.rust-rover
|
||||||
|
|
||||||
|
libreoffice
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.firefox = { enable = true; };
|
||||||
|
|
||||||
|
services.syncthing = { enable = true; };
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
pull.rebase = false;
|
||||||
|
# merge.tool = "meld";
|
||||||
|
# mergetool.meld.cmd = ''
|
||||||
|
# ${pkgs.meld}/bin/meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
|
||||||
|
# '';
|
||||||
|
push = { autoSetupRemote = true; };
|
||||||
|
};
|
||||||
|
aliases = { amend = "commit --amend"; };
|
||||||
|
userName = "Jonathan Dönszelmann";
|
||||||
|
userEmail = "jonathan@donsz.nl";
|
||||||
|
};
|
||||||
|
}
|
||||||
242
programs/gnome/default.nix
Normal file
242
programs/gnome/default.nix
Normal file
|
|
@ -0,0 +1,242 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
unbound = [ "@as []" ];
|
||||||
|
custom-keys = [
|
||||||
|
{
|
||||||
|
binding = "<Shift><Super>Return";
|
||||||
|
command = "gnome-terminal";
|
||||||
|
name = "Launch terminal";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
binding = "<Super>z";
|
||||||
|
command = "gnome-system-monitor";
|
||||||
|
name = "launch system monitor";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
binding = "<Super>Return";
|
||||||
|
command = "gnome-terminal";
|
||||||
|
name = "focus-terminal";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
binding = "F12";
|
||||||
|
command = "gnome-terminal -- ${((import ../zsh/scripts.nix) pkgs).calc}";
|
||||||
|
name = "calculator";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
# pinned app bar
|
||||||
|
favorite-apps = [
|
||||||
|
"firefox.desktop"
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"org.gnome.Settings.desktop"
|
||||||
|
"org.gnome.Terminal.desktop"
|
||||||
|
"jetbrains-clion-ec2b1366-55e3-4ecc-8780-ab6c7542eb56.desktop"
|
||||||
|
"discord-canary.desktop"
|
||||||
|
"io.element.Element.desktop"
|
||||||
|
"mattermost-desktop.desktop"
|
||||||
|
"org.mozilla.Thunderbird.desktop"
|
||||||
|
"spotify.desktop"
|
||||||
|
];
|
||||||
|
disable-user-extensions = false;
|
||||||
|
enabled-extensions = [
|
||||||
|
"horizontal-workspaces@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
"org.gnome-shell.desktop-icons"
|
||||||
|
"auto-move-windows@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/background" = rec {
|
||||||
|
# picture-uri ="file:///${home.homeDirectory}/Pictures/backgrounds/2023-09-01-14-56-45-Road-saturated.png";
|
||||||
|
# picture-uri-dark = picture-uri;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
per-window = false;
|
||||||
|
show-all-sources = false;
|
||||||
|
sources = [ "('xkb', 'us')" ];
|
||||||
|
xkb-options =
|
||||||
|
[ "lv3:switch" "caps:escape" "eurosign:4" "compose:ralt" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
clock-show-seconds = true;
|
||||||
|
clock-show-weekday = true;
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
cursor-theme = "Adwaita";
|
||||||
|
enable-animations = true;
|
||||||
|
enable-hot-corners = true;
|
||||||
|
font-name = "Noto Sans, 10";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/mouse" = {
|
||||||
|
accel-profile = "adaptive";
|
||||||
|
natural-scroll = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/touchpad" = {
|
||||||
|
click-method = "fingers";
|
||||||
|
disable-while-typing = false;
|
||||||
|
edge-scrolling-enabled = false;
|
||||||
|
natural-scroll = false;
|
||||||
|
send-events = "enabled";
|
||||||
|
speed = 0.536764705882353;
|
||||||
|
tap-to-click = true;
|
||||||
|
two-finger-scrolling-enabled = true;
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/sound" = {
|
||||||
|
allow-volume-above-100-percent = true;
|
||||||
|
event-sounds = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
begin-move = unbound;
|
||||||
|
begin-resize = unbound;
|
||||||
|
close = [ "<Super>q" ];
|
||||||
|
lower = unbound;
|
||||||
|
maximize = unbound;
|
||||||
|
minimize = [ "<Super>w" ];
|
||||||
|
move-to-monitor-down = [ "<Super>Down" ];
|
||||||
|
move-to-monitor-left = [ "<Super>Left" ];
|
||||||
|
move-to-monitor-right = [ "<Super>Right" ];
|
||||||
|
move-to-monitor-up = [ "<Super>Up" ];
|
||||||
|
move-to-workspace-1 = [ "<Shift><Super>exclam" ];
|
||||||
|
move-to-workspace-2 = [ "<Shift><Super>at" ];
|
||||||
|
move-to-workspace-3 = [ "<Shift><Super>numbersign" ];
|
||||||
|
move-to-workspace-4 = [ "<Shift><Super>dollar" ];
|
||||||
|
move-to-workspace-5 = [ "<Shift><Super>percent" ];
|
||||||
|
move-to-workspace-6 = [ "<Shift><Super>asciicircum" ];
|
||||||
|
panel-main-menu = [ "" ];
|
||||||
|
raise-or-lower = [ "<Super>s" ];
|
||||||
|
switch-applications = [ "<Super>Tab" ];
|
||||||
|
switch-applications-backward = [ "<Shift><Super>Tab" ];
|
||||||
|
switch-input-source = unbound;
|
||||||
|
switch-input-source-backward = unbound;
|
||||||
|
switch-to-workspace-1 = [ "<Super>1" ];
|
||||||
|
switch-to-workspace-2 = [ "<Super>2" ];
|
||||||
|
switch-to-workspace-3 = [ "<Super>3" ];
|
||||||
|
switch-to-workspace-4 = [ "<Super>4" ];
|
||||||
|
switch-to-workspace-5 = [ "<Super>5" ];
|
||||||
|
switch-to-workspace-6 = [ "<Super>6" ];
|
||||||
|
switch-to-workspace-down = [ "<Super>j" ];
|
||||||
|
switch-to-workspace-last = [ "<Super>0" ];
|
||||||
|
switch-to-workspace-up = [ "<Super>k" ];
|
||||||
|
switch-windows = unbound;
|
||||||
|
switch-windows-backward = unbound;
|
||||||
|
toggle-fullscreen = [ "<Super>f" ];
|
||||||
|
toggle-maximized = [ "<Super>d" ];
|
||||||
|
unmaximize = unbound;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
auto-raise = false;
|
||||||
|
button-layout = ":,maximize,minimize,close";
|
||||||
|
focus-mode = "click";
|
||||||
|
mouse-button-modifier = "<Super>";
|
||||||
|
num-workspaces = 6;
|
||||||
|
resize-with-right-button = false;
|
||||||
|
visual-bell = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
center-new-windows = true;
|
||||||
|
dynamic-workspaces = false;
|
||||||
|
edge-tiling = true;
|
||||||
|
experimental-features = [ "scale-monitor-framebuffer" ];
|
||||||
|
overlay-key = "Super_L";
|
||||||
|
workspaces-only-on-primary = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter/keybindings" = {
|
||||||
|
switch-monitor = [ "<Super>o" ];
|
||||||
|
toggle-tiled-left = [ "<Super>bracketleft" ];
|
||||||
|
toggle-tiled-right = [ "<Super>bracketright" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
area-screenshot = unbound;
|
||||||
|
area-screenshot-clip = [ "<Shift><Super>s" ];
|
||||||
|
custom-keybindings = with builtins;
|
||||||
|
(map (i:
|
||||||
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${
|
||||||
|
toString (i - 1)
|
||||||
|
}/") (genList (x: x + 1) (length custom-keys)));
|
||||||
|
email = [ "Display" ];
|
||||||
|
home = [ "<Super>e" ];
|
||||||
|
mic-mute = [ "AudioMicMute" ];
|
||||||
|
next = [ "<Super>period" ];
|
||||||
|
on-screen-keyboard = unbound;
|
||||||
|
pause = unbound;
|
||||||
|
play = [ "<Super>slash" ];
|
||||||
|
previous = [ "<Super>comma" ];
|
||||||
|
screensaver = [ "<Super>l" ];
|
||||||
|
screenshot = unbound;
|
||||||
|
screenshot-clip = unbound;
|
||||||
|
stop = unbound;
|
||||||
|
volume-down = [ "AudioLowerVolume" ];
|
||||||
|
volume-mute = [ "AudioMute" ];
|
||||||
|
volume-up = [ "AudioRaiseVolume" ];
|
||||||
|
window-screenshot = unbound;
|
||||||
|
window-screenshot-clip = unbound;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
ambient-enabled = false;
|
||||||
|
idle-dim = false;
|
||||||
|
power-button-action = "nothing";
|
||||||
|
power-saver-profile-on-low-battery = true;
|
||||||
|
sleep-inactive-ac-timeout = 7200;
|
||||||
|
sleep-inactive-ac-type = "nothing";
|
||||||
|
sleep-inactive-battery-timeout = 7200;
|
||||||
|
sleep-inactive-battery-type = "suspend";
|
||||||
|
};
|
||||||
|
"org/gnome/shell/extensions/auto-move-windows" = {
|
||||||
|
application-list = [
|
||||||
|
"firefox.desktop:1"
|
||||||
|
"discord.desktop:3"
|
||||||
|
"jetbrains-clion.desktop:2"
|
||||||
|
"jetbrains-goland.desktop:2"
|
||||||
|
"jetbrains-pycharm.desktop:2"
|
||||||
|
"jetbrains-idea.desktop:2"
|
||||||
|
"spotify.desktop:5"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
open-application-menu = [ "Menu" ];
|
||||||
|
show-screenshot-ui = [ "<Shift><Super>s" ];
|
||||||
|
switch-to-application-1 = unbound;
|
||||||
|
switch-to-application-2 = unbound;
|
||||||
|
switch-to-application-3 = unbound;
|
||||||
|
switch-to-application-4 = unbound;
|
||||||
|
switch-to-application-5 = unbound;
|
||||||
|
switch-to-application-6 = unbound;
|
||||||
|
switch-to-application-7 = unbound;
|
||||||
|
switch-to-application-8 = unbound;
|
||||||
|
switch-to-application-9 = unbound;
|
||||||
|
toggle-message-tray = unbound;
|
||||||
|
toggle-overview = [ "<Super>p" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/terminal/legacy" = {
|
||||||
|
menu-accelerator-enabled = false;
|
||||||
|
mnemonics-enabled = true;
|
||||||
|
new-terminal-mode = "window";
|
||||||
|
shortcuts-enabled = true;
|
||||||
|
theme-variant = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/terminal/legacy/keybindings" = { zoom-in = "<Primary>equal"; };
|
||||||
|
} // (with builtins;
|
||||||
|
foldl' (a: b: a // b) { } (map (i: {
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom${
|
||||||
|
toString (i - 1)
|
||||||
|
}" = elemAt custom-keys (i - 1);
|
||||||
|
}) (genList (x: x + 1) (length custom-keys))));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue