initial commit
This commit is contained in:
commit
8ea01dbfac
11 changed files with 659 additions and 0 deletions
4
users/_common/home.nix
Normal file
4
users/_common/home.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
home.stateVersion = "23.11";
|
||||
programs.home-manager.enable = true;
|
||||
}
|
82
users/josh/gnome_settings.nix
Normal file
82
users/josh/gnome_settings.nix
Normal file
|
@ -0,0 +1,82 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"vivaldi-stable.desktop"
|
||||
"org.wezfurlong.wezterm.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
];
|
||||
enabled-extensions = with pkgs.gnomeExtensions; [
|
||||
workspace-switch-wraparound.extensionUuid
|
||||
];
|
||||
};
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
enable-hot-corners = false;
|
||||
show-battery-percentage = true;
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
resize-with-right-button = true;
|
||||
button-layout = "maximize:appmenu,close";
|
||||
audible-bell = false;
|
||||
wrap-around = true;
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
# Disable the lock screen shortcut
|
||||
screensaver = [ "" ];
|
||||
};
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
minimize = [ "" ];
|
||||
|
||||
move-to-workspace-1 = [ "" ];
|
||||
move-to-workspace-2 = [ "" ];
|
||||
move-to-workspace-3 = [ "" ];
|
||||
move-to-workspace-4 = [ "" ];
|
||||
move-to-workspace-down = [ "" ];
|
||||
move-to-workspace-last = [ "" ];
|
||||
move-to-workspace-left = [ "" ];
|
||||
move-to-workspace-right = [ "" ];
|
||||
|
||||
switch-to-workspace-1 = [ "<Super>1" ];
|
||||
switch-to-workspace0 = [ "<Super>2" ];
|
||||
switch-to-workspace-3 = [ "<Super>3" ];
|
||||
switch-to-workspace-4 = [ "<Super>4" ];
|
||||
switch-to-workspace-down = [ "" ];
|
||||
switch-to-workspace-last = [ "" ];
|
||||
switch-to-workspace-left = [ "<Super>h" ];
|
||||
switch-to-workspace-right = [ "<Super>l" ];
|
||||
};
|
||||
"org/gnome/mutter" = {
|
||||
edge-tiling = true;
|
||||
workspaces-only-on-primary = true;
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/power" = {
|
||||
power-button-action = "nothing";
|
||||
sleep-inactive-ac-type = "nothing";
|
||||
sleep-inactive-battery-type = "nothing";
|
||||
idle-brightness = 15;
|
||||
power-saver-profile-on-low-battery = false;
|
||||
};
|
||||
"org/gnome/desktop/screensaver" = {
|
||||
lock-enabled = false;
|
||||
idle-activation-enabled = false;
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/color" = {
|
||||
night-light-enabled = false;
|
||||
night-light-schedule-automatic = false;
|
||||
};
|
||||
"org/gnome/shell/keybindings" = {
|
||||
shift-overview-down = [ "<Super>j" ];
|
||||
shift-overview-up = [ "<Super>k" ];
|
||||
switch-to-application-1 = [ "" ];
|
||||
switch-to-application-2 = [ "" ];
|
||||
switch-to-application-3 = [ "" ];
|
||||
switch-to-application-4 = [ "" ];
|
||||
switch-to-application-5 = [ "" ];
|
||||
switch-to-application-6 = [ "" ];
|
||||
switch-to-application-7 = [ "" ];
|
||||
switch-to-application-8 = [ "" ];
|
||||
switch-to-application-9 = [ "" ];
|
||||
toggle-quick-settings = [ "" ];
|
||||
};
|
||||
}
|
217
users/josh/home.nix
Normal file
217
users/josh/home.nix
Normal file
|
@ -0,0 +1,217 @@
|
|||
{ pkgs, lib, settings, ... } @ args:
|
||||
let
|
||||
# TODO update to be in this config normally
|
||||
# cursor fix? https://github.com/wez/wezterm/issues/1742#issuecomment-1075333507
|
||||
weztermConfig = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/RingOfStorms/setup/72635c6674540bfefa2325f69e6ee6de9a11a62b/home/dotfiles/wezterm.lua";
|
||||
sha256 = "sha256-kwbg9S9IHhAw6RTPvRjqGew5qz8a8VxjqonkgEKGtys=";
|
||||
};
|
||||
tmux = pkgs.tmuxPlugins;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(settings.usersDir + "/_common/home.nix")
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
firefox-esr
|
||||
wezterm
|
||||
vivaldi
|
||||
ollama
|
||||
|
||||
# Desktop Environment stuff
|
||||
wofi # app launcher TODO configure this somehow
|
||||
gnome.dconf-editor # use `dump dconf /` before and after and diff the files for easy editing of dconf below
|
||||
gnomeExtensions.workspace-switch-wraparound
|
||||
#gnome.gnome-tweaks
|
||||
#gnomeExtensions.forge # probably dont need on this on tiny laptop but may explore this instead of sway for my desktop
|
||||
];
|
||||
|
||||
home.file.".wezterm.lua".source = weztermConfig; # todo actual configure this in nix instead of pulling from existing one. Maybe lookup the more official home manager dotfile solutions instead of inline
|
||||
home.file.".psqlrc".text = ''
|
||||
\pset pager off
|
||||
'';
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableAutosuggestions = true;
|
||||
};
|
||||
# home manager doesn't give us an option to add tmux extra config at the top so we do it ourselves here.
|
||||
xdg.configFile."tmux/tmux.conf".text = lib.mkBefore ''
|
||||
# Reset everything then add what we want exactly
|
||||
unbind-key -a
|
||||
|
||||
# Window stuff
|
||||
bind -r H previous-window
|
||||
bind -r L next-window
|
||||
bind -r 1 select-window -t:1
|
||||
bind -r 2 select-window -t:2
|
||||
bind -r 3 select-window -t:3
|
||||
bind -r 4 select-window -t:4
|
||||
bind -r 5 select-window -t:5
|
||||
bind -r 6 select-window -t:6
|
||||
bind -r 7 select-window -t:7
|
||||
bind -r 8 select-window -t:8
|
||||
bind -r 9 select-window -t:9
|
||||
bind r command-prompt "rename-window %%"
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind \\ split-window -v -c "#{pane_current_path}"
|
||||
bind t new-window
|
||||
bind T command-prompt -p "window name:" "new-window; rename-window '%%'"
|
||||
bind m command-prompt -p "Swap with window index:" "swap-window -t '%%'"
|
||||
bind -r [ swap-window -t -1 \; previous-window
|
||||
bind -r ] swap-window -t +1 \; next-window
|
||||
|
||||
# Sessions
|
||||
bind C-s command-prompt -p "session name:" "new-session -s '%%'"
|
||||
bind C-r command-prompt "rename-session %%"
|
||||
bind -r C-L switch-client -n
|
||||
bind -r C-H switch-client -p
|
||||
|
||||
# Pane stuff
|
||||
bind -r h select-pane -L
|
||||
bind -r j select-pane -D
|
||||
bind -r k select-pane -U
|
||||
bind -r l select-pane -R
|
||||
bind -r , resize-pane -L 20
|
||||
bind -r . resize-pane -R 20
|
||||
bind -r - resize-pane -D 7
|
||||
bind -r = resize-pane -U 7
|
||||
bind q kill-pane
|
||||
bind w kill-window
|
||||
bind x swap-pane -D
|
||||
|
||||
# Tmux util
|
||||
bind p paste-buffer
|
||||
bind X source-file ~/.config/tmux/tmux.conf
|
||||
bind z resize-pane -Z
|
||||
bind : command-prompt
|
||||
bind ^Q detach
|
||||
|
||||
# ==========
|
||||
# My options
|
||||
set-option -g terminal-overrides ',xterm-256color:RGB'
|
||||
set -g detach-on-destroy off
|
||||
set -g renumber-windows on
|
||||
set -g status-position top
|
||||
'';
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
|
||||
# Revisit this later, permission denied to make anything in run as my user...
|
||||
secureSocket = false;
|
||||
|
||||
shortcut = "a";
|
||||
prefix = "C-a";
|
||||
baseIndex = 1;
|
||||
mouse = true;
|
||||
keyMode = "vi";
|
||||
newSession = true;
|
||||
shell = "${pkgs.zsh}/bin/zsh";
|
||||
terminal = "screen-256color";
|
||||
aggressiveResize = true;
|
||||
|
||||
plugins = [
|
||||
{
|
||||
plugin = tmux.sessionist;
|
||||
extraConfig = ''
|
||||
set -g @sessionist-join-pane "j"
|
||||
set -g @sessionist-goto "o"
|
||||
|
||||
set -g @default_key_bindings_new "UNSET"
|
||||
'';
|
||||
}
|
||||
tmux.yank
|
||||
tmux.tmux-thumbs
|
||||
{
|
||||
plugin = tmux.fzf-tmux-url;
|
||||
extraConfig = ''
|
||||
set -g @fzf-url-fzf-options '-p 60%,30% --prompt = " " - -border-label=" Open URL "'
|
||||
set -g @fzf-url-history-limit '2000'
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = tmux.catppuccin.overrideAttrs (_: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ringofstorms";
|
||||
repo = "tmux-catppuccin-coal";
|
||||
rev = "e6d7c658e2d11798912ca1ed4e3626e3e1fad3fc";
|
||||
sha256 = "sha256-M1XAeCz/lqgjZ7CnWCykJxZCDk+WVoawwHrR9SEO9ns=";
|
||||
};
|
||||
});
|
||||
extraConfig = ''
|
||||
set -g @catppuccin_flavour 'mocha'
|
||||
set -g @catppuccin_window_left_separator ""
|
||||
set -g @catppuccin_window_right_separator " "
|
||||
set -g @catppuccin_window_middle_separator " █"
|
||||
set -g @catppuccin_window_number_position "right"
|
||||
set -g @catppuccin_window_default_fill "number"
|
||||
set -g @catppuccin_window_default_text "#W"
|
||||
set -g @catppuccin_window_current_fill "number"
|
||||
set -g @catppuccin_window_current_text "#W#{?window_zoomed_flag,(),}"
|
||||
set -g @catppuccin_status_modules_right "directory application date_time"
|
||||
set -g @catppuccin_status_modules_left "session"
|
||||
set -g @catppuccin_status_left_separator " "
|
||||
set -g @catppuccin_status_right_separator " "
|
||||
set -g @catppuccin_status_right_separator_inverse "no"
|
||||
set -g @catppuccin_status_fill "icon"
|
||||
set -g @catppuccin_status_connect_separator "no"
|
||||
set -g @catppuccin_directory_text "#{b:pane_current_path}"
|
||||
set -g @catppuccin_date_time_text "%H:%M"
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
flags = [ "--disable-up-arrow" ];
|
||||
settings = {
|
||||
workspaces = true;
|
||||
exit-mode = "return-query";
|
||||
enter_accept = true;
|
||||
};
|
||||
};
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
add_newline = false;
|
||||
palette = "catppuccin_coal";
|
||||
palettes.catppuccin_coal = import "${settings.commonDir}/catppuccin_coal.nix";
|
||||
};
|
||||
};
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
options = [ "--cmd cd" ];
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = (import ./gnome_settings.nix args);
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
cursorTheme = {
|
||||
name = "Numix-Cursor";
|
||||
package = pkgs.numix-cursor-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables.GTK_THEME = "palenight";
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue