modularise, combine
This commit is contained in:
270
users/andromeda/home.nix
Normal file
270
users/andromeda/home.nix
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
machine,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
background-path = ".config/sway/background.png";
|
||||
sway_config = builtins.toFile "sway_config" ''
|
||||
set $mod Mod4
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
set $term alacritty
|
||||
set $menu wmenu-run
|
||||
set $screenshot grim -g "$(slurp)"
|
||||
floating_modifier $mod normal
|
||||
|
||||
workspace_layout stacking
|
||||
output * bg ${config.home.homeDirectory}/${background-path} fill
|
||||
|
||||
# launch programs
|
||||
bindsym $mod+Shift+Return exec $term
|
||||
bindsym $mod+Shift+d exec $menu
|
||||
bindsym $mod+Shift+a exec anki
|
||||
bindsym $mod+Shift+q exec librewolf
|
||||
bindsym $mod+Shift+s exec $screenshot
|
||||
|
||||
bindsym $mod+Shift+c kill
|
||||
|
||||
bindsym $mod+Shift+r reload
|
||||
|
||||
bindsym $mod+Shift+Alt+q exit
|
||||
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 0
|
||||
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 0
|
||||
|
||||
bindsym $mod+f fullscreen
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
bindsym --locked XF86AudioMicMute exec pact set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonbrightnessUp exec brightnessctl set 5%+
|
||||
|
||||
default_border none
|
||||
font pango:monospace 0.001
|
||||
titlebar_border_thickness 0
|
||||
titlebar_padding 0
|
||||
'';
|
||||
in {
|
||||
imports = [./stylix.nix];
|
||||
xdg.configFile."shell".source = lib.getExe pkgs.brush;
|
||||
xdg.configFile."sway/config".source = lib.mkForce sway_config;
|
||||
# xdg.configFile.${background-path}.source = ./nix-wallpaper-gear.png;
|
||||
wayland.windowManager.sway.enable = true;
|
||||
home = {
|
||||
username = "andromeda";
|
||||
homeDirectory = "/home/${config.home.username}";
|
||||
stateVersion = "26.05";
|
||||
packages = [
|
||||
pkgs.acpi
|
||||
pkgs.alacritty
|
||||
pkgs.anki
|
||||
pkgs.brightnessctl
|
||||
pkgs.brush
|
||||
pkgs.dust
|
||||
pkgs.fluffychat
|
||||
pkgs.fzf
|
||||
pkgs.glow
|
||||
pkgs.grim
|
||||
pkgs.jmtpfs
|
||||
pkgs.nix-output-monitor
|
||||
pkgs.ranger
|
||||
pkgs.rip2
|
||||
pkgs.ripgrep
|
||||
pkgs.slurp
|
||||
pkgs.tree
|
||||
pkgs.zoxide
|
||||
];
|
||||
file.${background-path}.source = ./nix-wallpaper-gear.png;
|
||||
};
|
||||
programs = {
|
||||
alacritty.enable = true;
|
||||
bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
neofetch = "fastfetch";
|
||||
ls = lib.mkForce "lsd";
|
||||
ll = lib.mkForce "lsd -l";
|
||||
l = "lsd -la";
|
||||
cd = "z";
|
||||
gg = "git log --oneline --abbrev-commit --all --graph --decorate --color";
|
||||
md = "glow";
|
||||
};
|
||||
bashrcExtra = ''
|
||||
PS1="\u@\h:\w$"
|
||||
eval "$(zoxide init bash)"
|
||||
'';
|
||||
};
|
||||
btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme_background = false;
|
||||
vim_keys = true;
|
||||
rounded_corners = false;
|
||||
graph_symbol = "braille";
|
||||
update_ms = 150;
|
||||
proc_sorting = "cpu lazy";
|
||||
proc_gradient = false;
|
||||
proc_left = true;
|
||||
cpu_single_graph = true;
|
||||
cpu_bottom = true;
|
||||
clock_format = "/user@/host:/uptime@%H:%M";
|
||||
background_update = true;
|
||||
mem_graphs = false;
|
||||
mem_below_net = true;
|
||||
show_swap = false;
|
||||
only_physical = true;
|
||||
show_io_stat = true;
|
||||
io_mode = false;
|
||||
io_graph_combined = false;
|
||||
};
|
||||
};
|
||||
fastfetch.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = config.home.username;
|
||||
email = "${config.home.username}@${machine.hostname}";
|
||||
};
|
||||
init.defaultBranch = "master";
|
||||
http.postBuffer = 524288000;
|
||||
};
|
||||
};
|
||||
gh.enable = true;
|
||||
home-manager.enable = true;
|
||||
librewolf = {
|
||||
enable = true;
|
||||
package = pkgs.librewolf.override {
|
||||
cfg.enableTridactylNative = true;
|
||||
};
|
||||
profiles.${config.home.username}.extensions.packages = [
|
||||
pkgs.nur.repos.rycee.firefox-addons.tridactyl
|
||||
];
|
||||
};
|
||||
lsd.enable = true;
|
||||
nvf = {
|
||||
enable = true;
|
||||
settings.vim = {
|
||||
autocomplete.nvim-cmp.enable = false;
|
||||
formatter.conform-nvim = {
|
||||
enable = true;
|
||||
setupOpts.format_on_save = {
|
||||
lsp_format = "fallback";
|
||||
timeout_ms = 5000;
|
||||
};
|
||||
};
|
||||
lsp.otter-nvim.enable = true;
|
||||
git.enable = true;
|
||||
keymaps = [
|
||||
{
|
||||
key = "<Down>";
|
||||
mode = ["i" "n" "v" "c"];
|
||||
action = "<NOP>";
|
||||
}
|
||||
{
|
||||
key = "<Up>";
|
||||
mode = ["i" "n" "v" "c"];
|
||||
action = "<NOP>";
|
||||
}
|
||||
{
|
||||
key = "<Left>";
|
||||
mode = ["i" "n" "v" "c"];
|
||||
action = "<NOP>";
|
||||
}
|
||||
{
|
||||
key = "<Right>";
|
||||
mode = ["i" "n" "v" "c"];
|
||||
action = "<NOP>";
|
||||
}
|
||||
{
|
||||
key = "jj";
|
||||
mode = ["i"];
|
||||
action = "<Esc>";
|
||||
}
|
||||
{
|
||||
key = "kk";
|
||||
mode = ["i"];
|
||||
action = "<Esc>";
|
||||
}
|
||||
{
|
||||
key = "jk";
|
||||
mode = ["i"];
|
||||
action = "<Esc>";
|
||||
}
|
||||
{
|
||||
key = "kj";
|
||||
mode = ["i"];
|
||||
action = "<Esc>";
|
||||
}
|
||||
{
|
||||
key = "<Esc>";
|
||||
mode = ["i"];
|
||||
action = "<Nop>";
|
||||
}
|
||||
];
|
||||
languages = {
|
||||
nix = {
|
||||
enable = true;
|
||||
format.enable = true;
|
||||
lsp.enable = true;
|
||||
};
|
||||
haskell = {
|
||||
enable = true;
|
||||
lsp.enable = true;
|
||||
};
|
||||
};
|
||||
lineNumberMode = "relative";
|
||||
options = {
|
||||
tabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
smarttab = true;
|
||||
foldmethod = "indent";
|
||||
number = true;
|
||||
colorcolumn = "80";
|
||||
};
|
||||
statusline.lualine.enable = true;
|
||||
syntaxHighlighting = true;
|
||||
};
|
||||
};
|
||||
ssh.enable = true;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user