270 lines
7.2 KiB
Nix
270 lines
7.2 KiB
Nix
{
|
|
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;
|
|
wayland.windowManager.sway.enable = true;
|
|
home = {
|
|
username = "andromeda";
|
|
homeDirectory = "/home/${config.home.username}";
|
|
stateVersion = "26.05";
|
|
packages = [
|
|
pkgs.acpi
|
|
pkgs.agenix
|
|
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 = config.stylix.image;
|
|
};
|
|
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";
|
|
};
|
|
};
|
|
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;
|
|
};
|
|
}
|