From 7cdfb454eb65543b82014b55e08220a3c9b8b7d4 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 00:23:34 +0200 Subject: [PATCH 01/14] begin (possible) module rewrite --- hosts/default.nix | 6 ++--- hosts/nixdesk/default.nix | 1 + hosts/nixdesk/testing.nix | 11 ++++++++ modules/default.nix | 1 + modules/xun/default.nix | 5 ++++ modules/xun/gaming/default.nix | 47 ++++++++++++++++++++++++++++++++++ 6 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 hosts/nixdesk/testing.nix create mode 100644 modules/xun/default.nix create mode 100644 modules/xun/gaming/default.nix diff --git a/hosts/default.nix b/hosts/default.nix index 6ba373a..d2d31ae 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -74,9 +74,9 @@ in { #"services/ollama.nix" "desktop/x11/nosleep.nix" - "programs/gamemode.nix" - "programs/gamescope.nix" - "programs/steam.nix" + # "programs/gamemode.nix" # TEMP: TODO + # "programs/gamescope.nix" # TEMP: TODO + # "programs/steam.nix" # TEMP: TODO "programs/RE" ]) diff --git a/hosts/nixdesk/default.nix b/hosts/nixdesk/default.nix index ceddb8b..5ad966a 100644 --- a/hosts/nixdesk/default.nix +++ b/hosts/nixdesk/default.nix @@ -2,6 +2,7 @@ imports = [ ./hardware.nix ./hibernate-boot.nix + ./testing.nix ]; networking.hostName = "nixdesk"; diff --git a/hosts/nixdesk/testing.nix b/hosts/nixdesk/testing.nix new file mode 100644 index 0000000..c17c066 --- /dev/null +++ b/hosts/nixdesk/testing.nix @@ -0,0 +1,11 @@ +{self, ...}: { + imports = [ + self.nixosModules.xun + ]; + xun.gaming = { + enable = true; + steam.enable = true; + gamescope.enable = true; + gamemode.enable = true; + }; +} diff --git a/modules/default.nix b/modules/default.nix index d402610..cbed782 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,5 +1,6 @@ { flake.nixosModules = { #name = import ./name; + xun = import ./xun; }; } diff --git a/modules/xun/default.nix b/modules/xun/default.nix new file mode 100644 index 0000000..5fd7ee3 --- /dev/null +++ b/modules/xun/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./gaming + ]; +} diff --git a/modules/xun/gaming/default.nix b/modules/xun/gaming/default.nix new file mode 100644 index 0000000..3e81497 --- /dev/null +++ b/modules/xun/gaming/default.nix @@ -0,0 +1,47 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.xun.gaming; +in { + options.xun.gaming = { + enable = lib.mkEnableOption "gaming"; + steam.enable = lib.mkEnableOption "steam"; + gamemode.enable = lib.mkEnableOption "gamemode"; + gamescope.enable = lib.mkEnableOption "gamescope"; + }; + + config = lib.mkIf cfg.enable ({ + programs.gamescope = lib.mkIf cfg.gamescope.enable { + enable = true; + capSysNice = false; # doesnt work with steam & heroic + }; + programs.gamemode.enable = cfg.gamemode.enable; + } + // lib.mkIf cfg.steam.enable { + # TODO: protontricks & steamtinkerlaunch + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + ## Fixes gamescope (NOTE: no clue what this means) + extraPackages = with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }); +} From 0e39c76c8d418d2df23f546883eb5a14f16b96dd Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 11:11:41 +0000 Subject: [PATCH 02/14] tiny clean-up --- home/profiles/kidney/default.nix | 14 ++++++++------ home/profiles/nixdesk/default.nix | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/home/profiles/kidney/default.nix b/home/profiles/kidney/default.nix index 8477719..295ba63 100644 --- a/home/profiles/kidney/default.nix +++ b/home/profiles/kidney/default.nix @@ -8,12 +8,14 @@ ../../develop/small-misc.nix ]; - xun.small-nvim = { - enable = true; - colorscheme = { - name = "dayfox"; - package = "EdenEast/nightfox.nvim"; + xun = { + small-nvim = { + enable = true; + colorscheme = { + name = "dayfox"; + package = "EdenEast/nightfox.nvim"; + }; + wakatime.enable = false; }; - wakatime.enable = false; }; } diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index 8f3cb53..7ab27ce 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -58,12 +58,14 @@ ../../services/system/polkit-agent.nix ../../services/system/udiskie.nix # although i dont need this for usb memory, it is quite convenient for flashing qmk ]; - xun.small-nvim = { - enable = true; - colorscheme = { - name = "carbonfox"; - package = "EdenEast/nightfox.nvim"; + xun = { + small-nvim = { + enable = true; + colorscheme = { + name = "carbonfox"; + package = "EdenEast/nightfox.nvim"; + }; + wakatime.enable = true; }; - wakatime.enable = true; }; } From 3e0154df22b68b2125a655b0bc599cd717655544 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 11:12:20 +0000 Subject: [PATCH 03/14] add home-manager develop module --- flake.nix | 1 + home-modules/default.nix | 5 ++++ home-modules/xun/default.nix | 5 ++++ home-modules/xun/develop/default.nix | 42 ++++++++++++++++++++++++++++ home/profiles/kidney/default.nix | 12 ++++++-- home/profiles/nixdesk/default.nix | 1 + 6 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 home-modules/default.nix create mode 100644 home-modules/xun/default.nix create mode 100644 home-modules/xun/develop/default.nix diff --git a/flake.nix b/flake.nix index 9231c23..802fe99 100644 --- a/flake.nix +++ b/flake.nix @@ -8,6 +8,7 @@ ./home/profiles ./hosts ./modules + ./home-modules ]; flake = { }; diff --git a/home-modules/default.nix b/home-modules/default.nix new file mode 100644 index 0000000..8f78de4 --- /dev/null +++ b/home-modules/default.nix @@ -0,0 +1,5 @@ +{ + flake.homeManagerModules = { + xun = import ./xun; + }; +} diff --git a/home-modules/xun/default.nix b/home-modules/xun/default.nix new file mode 100644 index 0000000..67b3de9 --- /dev/null +++ b/home-modules/xun/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./develop + ]; +} diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix new file mode 100644 index 0000000..3e1db82 --- /dev/null +++ b/home-modules/xun/develop/default.nix @@ -0,0 +1,42 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.xun.develop; +in { + options.xun.develop = { + enable = lib.mkEnableOption "develop"; + nix.enable = lib.mkEnableOption "nix"; + tools.enable = lib.mkEnableOption "tools"; + docs.enable = lib.mkEnableOption "man caches"; + lsp.c.enable = lib.mkEnableOption "clangd"; + }; + + config = let + config = + if cfg.enable + then { + nix.enable = true; + tools.enable = true; + docs.enable = true; + lsp.c.enable = true; + } + else cfg; + in + lib.mkMerge [ + (lib.mkIf config.nix.enable { + home.packages = with pkgs; [nil alejandra]; + }) + (lib.mkIf config.tools.enable { + home.packages = with pkgs; [tokei]; + }) + (lib.mkIf config.lsp.c.enable { + home.packages = with pkgs; [clang-tools]; + }) + (lib.mkIf config.docs.enable { + programs.man.generateCaches = true; + }) + ]; +} diff --git a/home/profiles/kidney/default.nix b/home/profiles/kidney/default.nix index 295ba63..ffbf174 100644 --- a/home/profiles/kidney/default.nix +++ b/home/profiles/kidney/default.nix @@ -1,11 +1,16 @@ -{inputs, ...}: { +{ + inputs, + self, + ... +}: { imports = [ + self.homeManagerModules.xun inputs.small-nvim.homeManagerModules.small-nvim ../../terminal/shell/zsh.nix ../../terminal/programs ../../terminal/programs/lazygit.nix - ../../develop - ../../develop/small-misc.nix + # ../../develop + # ../../develop/small-misc.nix ]; xun = { @@ -17,5 +22,6 @@ }; wakatime.enable = false; }; + develop.enable = true; }; } diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index 7ab27ce..b2f6df0 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -67,5 +67,6 @@ }; wakatime.enable = true; }; + develop.enable = true; }; } From 6a9c9276bd27c53ff3b87bc8fa969b6f67961622 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 11:16:51 +0000 Subject: [PATCH 04/14] make enable in develop module overlay the regular config --- home-modules/xun/develop/default.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix index 3e1db82..8e5c065 100644 --- a/home-modules/xun/develop/default.nix +++ b/home-modules/xun/develop/default.nix @@ -17,12 +17,15 @@ in { config = let config = if cfg.enable - then { - nix.enable = true; - tools.enable = true; - docs.enable = true; - lsp.c.enable = true; - } + then + (cfg + // { + enable = true; + nix.enable = true; + tools.enable = true; + docs.enable = true; + lsp.c.enable = true; + }) else cfg; in lib.mkMerge [ From 193c64b77206b89e783c57b16eaa818a06e5cf5f Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 14:48:55 +0000 Subject: [PATCH 05/14] add gaming module --- home-modules/xun/default.nix | 1 + home-modules/xun/develop/default.nix | 11 +++++------ home-modules/xun/gaming/default.nix | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 home-modules/xun/gaming/default.nix diff --git a/home-modules/xun/default.nix b/home-modules/xun/default.nix index 67b3de9..be92790 100644 --- a/home-modules/xun/default.nix +++ b/home-modules/xun/default.nix @@ -1,5 +1,6 @@ { imports = [ ./develop + ./gaming ]; } diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix index 8e5c065..69e73bd 100644 --- a/home-modules/xun/develop/default.nix +++ b/home-modules/xun/develop/default.nix @@ -15,12 +15,11 @@ in { }; config = let - config = + conf = if cfg.enable then (cfg // { - enable = true; nix.enable = true; tools.enable = true; docs.enable = true; @@ -29,16 +28,16 @@ in { else cfg; in lib.mkMerge [ - (lib.mkIf config.nix.enable { + (lib.mkIf conf.nix.enable { home.packages = with pkgs; [nil alejandra]; }) - (lib.mkIf config.tools.enable { + (lib.mkIf conf.tools.enable { home.packages = with pkgs; [tokei]; }) - (lib.mkIf config.lsp.c.enable { + (lib.mkIf conf.lsp.c.enable { home.packages = with pkgs; [clang-tools]; }) - (lib.mkIf config.docs.enable { + (lib.mkIf conf.docs.enable { programs.man.generateCaches = true; }) ]; diff --git a/home-modules/xun/gaming/default.nix b/home-modules/xun/gaming/default.nix new file mode 100644 index 0000000..3b891a4 --- /dev/null +++ b/home-modules/xun/gaming/default.nix @@ -0,0 +1,21 @@ +{ + pkgs, + config, + lib, + self, + ... +}: let + cfg = config.xun.gaming; +in { + options.xun.gaming = { + krunker.enable = lib.mkEnableOption "krunker"; + roblox.sobercookie = lib.mkEnableOption ""; + }; + config = lib.mkMerge [ + (lib.mkIf cfg.krunker.enable { + home.packages = [ + self.packages.${pkgs.system}.krunker + ]; + }) + ]; +} From 114a5eae9dbafda05c522b5ee5fc765c5872c727 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 27 Aug 2024 23:03:39 +0200 Subject: [PATCH 06/14] add missing import of own hm-module on nixdesk --- home/profiles/nixdesk/default.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index b2f6df0..22f411d 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -1,5 +1,10 @@ -{inputs, ...}: { +{ + inputs, + self, + ... +}: { imports = [ + self.homeManagerModules.xun inputs.small-nvim.homeManagerModules.small-nvim ./kanshi.nix ./defaults.nix @@ -28,8 +33,8 @@ ../../programs/desktop/sway # development - ../../develop - ../../develop/small-misc.nix + #../../develop + #../../develop/small-misc.nix # programs ../../programs/misc/keepassxc.nix From 0eaf4dfd5a657b2dc69871b9161a0709aa59b5bd Mon Sep 17 00:00:00 2001 From: xunuwu Date: Wed, 28 Aug 2024 07:56:21 +0000 Subject: [PATCH 07/14] copy more hm stuff into modules --- home-modules/xun/default.nix | 2 + home-modules/xun/desktop/default.nix | 39 ++++++ home-modules/xun/develop/default.nix | 28 ++++ home-modules/xun/gaming/default.nix | 7 +- home-modules/xun/programs/default.nix | 5 + .../xun/programs/terminal/default.nix | 131 ++++++++++++++++++ home/profiles/default.nix | 2 +- home/profiles/kidney/default.nix | 16 ++- home/terminal/programs/xdg.nix | 1 + 9 files changed, 226 insertions(+), 5 deletions(-) create mode 100644 home-modules/xun/desktop/default.nix create mode 100644 home-modules/xun/programs/default.nix create mode 100644 home-modules/xun/programs/terminal/default.nix diff --git a/home-modules/xun/default.nix b/home-modules/xun/default.nix index be92790..c19e3c4 100644 --- a/home-modules/xun/default.nix +++ b/home-modules/xun/default.nix @@ -2,5 +2,7 @@ imports = [ ./develop ./gaming + ./programs + ./desktop ]; } diff --git a/home-modules/xun/desktop/default.nix b/home-modules/xun/desktop/default.nix new file mode 100644 index 0000000..4f118c5 --- /dev/null +++ b/home-modules/xun/desktop/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.xun.desktop; +in { + options.xun.desktop = { + xdg.enable = lib.mkEnableOption "xdg env vars"; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.xdg.enable { + xdg = let + home = config.home.homeDirectory; + in { + enable = true; + cacheHome = config.home.homeDirectory + "/.local/cache"; + + userDirs = { + enable = true; + desktop = home + "/desktop"; + documents = home + "/docs"; + download = home + "/down"; + music = home + "/music"; + pictures = home + "/pics"; + publicShare = home + "/share"; + videos = home + "/vids"; + extraConfig = { + XDG_SCREENSHOTS_DIR = config.xdg.userDirs.pictures + "/screenshots"; + }; + }; + }; + + home.packages = [pkgs.xdg-utils]; + }) + ]; +} diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix index 69e73bd..cff2f23 100644 --- a/home-modules/xun/develop/default.nix +++ b/home-modules/xun/develop/default.nix @@ -8,6 +8,7 @@ in { options.xun.develop = { enable = lib.mkEnableOption "develop"; + git.enable = lib.mkEnableOption "git"; nix.enable = lib.mkEnableOption "nix"; tools.enable = lib.mkEnableOption "tools"; docs.enable = lib.mkEnableOption "man caches"; @@ -20,6 +21,7 @@ in { then (cfg // { + git.enable = true; nix.enable = true; tools.enable = true; docs.enable = true; @@ -34,6 +36,32 @@ in { (lib.mkIf conf.tools.enable { home.packages = with pkgs; [tokei]; }) + (lib.mkIf conf.git.enable { + home.packages = with pkgs; [lazygit]; + programs.gh.enable = true; + programs.gh-dash.enable = true; + + programs.git = { + enable = true; + delta.enable = true; + lfs.enable = true; + + ignores = ["*~" ".direnv"]; + + signing = { + key = "${config.home.homeDirectory}/.ssh/id_ed25519"; + signByDefault = true; + }; + + extraConfig = { + gpg.format = "ssh"; + push.autoSetupRemote = true; + }; + + userEmail = "xunuwu@gmail.com"; + userName = "xunuwu"; + }; + }) (lib.mkIf conf.lsp.c.enable { home.packages = with pkgs; [clang-tools]; }) diff --git a/home-modules/xun/gaming/default.nix b/home-modules/xun/gaming/default.nix index 3b891a4..b96be1c 100644 --- a/home-modules/xun/gaming/default.nix +++ b/home-modules/xun/gaming/default.nix @@ -9,7 +9,7 @@ in { options.xun.gaming = { krunker.enable = lib.mkEnableOption "krunker"; - roblox.sobercookie = lib.mkEnableOption ""; + roblox.sobercookie.enable = lib.mkEnableOption "sobercookie"; }; config = lib.mkMerge [ (lib.mkIf cfg.krunker.enable { @@ -17,5 +17,10 @@ in { self.packages.${pkgs.system}.krunker ]; }) + (lib.mkIf cfg.roblox.sobercookie.enable { + home.packages = [ + self.packages.${pkgs.system}.sobercookie + ]; + }) ]; } diff --git a/home-modules/xun/programs/default.nix b/home-modules/xun/programs/default.nix new file mode 100644 index 0000000..19b2fbb --- /dev/null +++ b/home-modules/xun/programs/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./terminal + ]; +} diff --git a/home-modules/xun/programs/terminal/default.nix b/home-modules/xun/programs/terminal/default.nix new file mode 100644 index 0000000..f67c5f0 --- /dev/null +++ b/home-modules/xun/programs/terminal/default.nix @@ -0,0 +1,131 @@ +{ + config, + lib, + inputs, + ... +}: let + cfg = config.xun.programs.terminal; +in { + imports = [ + inputs.nix-index-database.hmModules.nix-index + ]; + + options.xun.programs.terminal = { + direnv.enable = lib.mkEnableOption "direnv"; + comma.enable = lib.mkEnableOption "comma"; + tmux.enable = lib.mkEnableOption "tmux"; + irssi.enable = lib.mkEnableOption "irssi"; + shell.zsh = { + enable = lib.mkEnableOption "zsh"; + }; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.shell.zsh.enable { + programs.zsh = { + enable = true; + autocd = true; + enableCompletion = true; + autosuggestion.enable = true; + dotDir = ".config/zsh"; + defaultKeymap = "emacs"; + + history = { + expireDuplicatesFirst = true; + path = "${config.xdg.dataHome}/zsh_history"; + }; + initExtra = '' + unsetopt beep + + ## KEYBINDS ## + bindkey "^[[1;5D" backward-word + bindkey "^[[1;5C" forward-word + + # improve ^w behaviour + WORDCHARS= + + # pretty completion menu + zstyle ':completion:*' menu select + + # shift-tab in completion menu + bindkey '^[[Z' reverse-menu-complete + + zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # Case insensitive completion + + + ## MISC ## + setopt extendedglob + + + # Show completion categories + zstyle ':completion:*:*:*:*:descriptions' format '%F{magenta}<-%d->%f' + + + ## PROMPT ## + autoload -Uz vcs_info + precmd_vcs_info() { vcs_info } + precmd_functions+=( precmd_vcs_info ) + zstyle ':vcs_info:git:*' formats ' %b ' + setopt prompt_subst + + PROMPT="%F{blue}[%F{magenta}%n%F{blue}@%F{magenta}%M%F{blue}] %~%f %F{green}\$vcs_info_msg_0_%f%(?..%F{red}| %? )%#%f " + ''; + }; + }) + (lib.mkIf cfg.direnv.enable { + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; + }) + (lib.mkIf cfg.comma.enable { + programs.nix-index-database.comma.enable = true; + programs.nix-index = { + enableBashIntegration = false; + enableFishIntegration = false; + enableZshIntegration = false; + }; + }) + (lib.mkIf cfg.tmux.enable { + programs.tmux = { + enable = true; + baseIndex = 1; + clock24 = true; + mouse = true; + escapeTime = 0; + extraConfig = '' + bind '"' split-window -c "#{pane_current_path}" + bind % split-window -h -c "#{pane_current_path}" + bind c new-window -c "#{pane_current_path}"; + + set -g status-style bg=default + setw -g window-status-current-style fg=#be95ff + set -g status-justify absolute-centre + set -g status-interval 5 + set -g status-right "#[fg=#25be6a]#(free -h | awk 'NR==2{print $3\"/\"$2}')" + set -ag status-right "#[fg=default] %a %d %b %H:%M" + ''; + }; + }) + (lib.mkIf cfg.irssi.enable { + # TODO: make more customizable maybe + programs.irssi = { + enable = true; + networks = { + liberachat = { + nick = "wheat"; + server = { + address = "irc.libera.chat"; + port = 6697; + autoConnect = true; + }; + channels = { + nixos.autoJoin = false; + }; + }; + }; + }; + }) + ]; +} diff --git a/home/profiles/default.nix b/home/profiles/default.nix index 7f293cc..afde34e 100644 --- a/home/profiles/default.nix +++ b/home/profiles/default.nix @@ -10,7 +10,7 @@ "xun@kidney" = [ ../. ./kidney - inputs.nix-index-database.hmModules.nix-index + # inputs.nix-index-database.hmModules.nix-index { programs.nix-index = { enableBashIntegration = false; diff --git a/home/profiles/kidney/default.nix b/home/profiles/kidney/default.nix index ffbf174..c1be9d4 100644 --- a/home/profiles/kidney/default.nix +++ b/home/profiles/kidney/default.nix @@ -6,9 +6,9 @@ imports = [ self.homeManagerModules.xun inputs.small-nvim.homeManagerModules.small-nvim - ../../terminal/shell/zsh.nix - ../../terminal/programs - ../../terminal/programs/lazygit.nix + # ../../terminal/shell/zsh.nix + # ../../terminal/programs + # ../../terminal/programs/lazygit.nix # ../../develop # ../../develop/small-misc.nix ]; @@ -23,5 +23,15 @@ wakatime.enable = false; }; develop.enable = true; + desktop = { + xdg.enable = true; + }; + programs.terminal = { + shell.zsh.enable = true; + direnv.enable = true; + comma.enable = true; + tmux.enable = true; + irssi.enable = true; + }; }; } diff --git a/home/terminal/programs/xdg.nix b/home/terminal/programs/xdg.nix index 90bce4a..d75c895 100644 --- a/home/terminal/programs/xdg.nix +++ b/home/terminal/programs/xdg.nix @@ -1,3 +1,4 @@ +# TODO: move this somewhere more reasonable { config, pkgs, From 9b1cdfb2e3d7867c4874732f7e031681c9a4d6db Mon Sep 17 00:00:00 2001 From: xunuwu Date: Thu, 29 Aug 2024 08:56:47 +0000 Subject: [PATCH 08/14] add flatpak support for kidney --- hosts/default.nix | 4 ++++ system/services/xdg-portals.nix | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 system/services/xdg-portals.nix diff --git a/hosts/default.nix b/hosts/default.nix index b696120..e8d42c5 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -47,6 +47,10 @@ in { "programs/tools.nix" "programs/zsh.nix" "programs/home-manager.nix" + "hardware/graphics.nix" + + "services/flatpak.nix" + "services/xdg-portals.nix" "nix" "nix/gc.nix" diff --git a/system/services/xdg-portals.nix b/system/services/xdg-portals.nix new file mode 100644 index 0000000..faff144 --- /dev/null +++ b/system/services/xdg-portals.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-gtk + ]; + config = { + common.default = ["gtk"]; + }; + }; +} From 02cefb91a45f56b986afc0808755f04abddfb40c Mon Sep 17 00:00:00 2001 From: xunuwu Date: Thu, 29 Aug 2024 08:57:06 +0000 Subject: [PATCH 09/14] split locale into seperate module & import it on kidney --- hosts/default.nix | 1 + system/core/default.nix | 11 +---------- system/core/locale.nix | 11 +++++++++++ 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 system/core/locale.nix diff --git a/hosts/default.nix b/hosts/default.nix index e8d42c5..87aa2f6 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -43,6 +43,7 @@ in { (modulePaths [ "core/tools.nix" "core/users.nix" + "core/locale.nix" "programs/tools.nix" "programs/zsh.nix" diff --git a/system/core/default.nix b/system/core/default.nix index f9dcb4a..ffa87ad 100644 --- a/system/core/default.nix +++ b/system/core/default.nix @@ -3,17 +3,8 @@ ./security.nix ./users.nix ./ssh.nix + ./locale.nix ../nix ../programs/zsh.nix ]; - - i18n = { - defaultLocale = "en_US.UTF-8"; - supportedLocales = [ - "en_US.UTF-8/UTF-8" - ]; - }; - services.xserver.xkb.layout = "eu"; - - time.timeZone = lib.mkDefault "Europe/Berlin"; } diff --git a/system/core/locale.nix b/system/core/locale.nix new file mode 100644 index 0000000..ec028eb --- /dev/null +++ b/system/core/locale.nix @@ -0,0 +1,11 @@ +{lib, ...}: { + i18n = { + defaultLocale = "en_US.UTF-8"; + supportedLocales = [ + "en_US.UTF-8/UTF-8" + ]; + }; + services.xserver.xkb.layout = "eu"; + + time.timeZone = lib.mkDefault "Europe/Berlin"; +} From 9c9fb1ce7220f632e4264ee6ca08bc44b2897240 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 3 Sep 2024 21:34:24 +0200 Subject: [PATCH 10/14] fix mispelling of bing search engine --- home/programs/browsers/firefox/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home/programs/browsers/firefox/default.nix b/home/programs/browsers/firefox/default.nix index 08c8263..9d6b688 100644 --- a/home/programs/browsers/firefox/default.nix +++ b/home/programs/browsers/firefox/default.nix @@ -139,7 +139,7 @@ "Google".metaData.alias = "@go"; "DuckDuckGo".metaData.alias = "@ddg"; "Wikipedia".metaData.alias = "@wiki"; - "Bind".metaData.hidden = true; + "Bing".metaData.hidden = true; }; }; userChrome = builtins.readFile ./userChrome.css; From 1f6108d409b54a1416ceaafc7f1758654906bcac Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 3 Sep 2024 21:34:39 +0200 Subject: [PATCH 11/14] add mpv video cutting script --- home/programs/media/mpv.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/programs/media/mpv.nix b/home/programs/media/mpv.nix index 158d93c..cc87057 100644 --- a/home/programs/media/mpv.nix +++ b/home/programs/media/mpv.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { programs.mpv = { enable = true; config = { @@ -29,5 +29,8 @@ user-agent = "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0"; }; }; + scripts = with pkgs.mpvScripts; [ + cutter + ]; }; } From 30aa6e3fc1b95362a0a3c5369c89e2d5ba969573 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 3 Sep 2024 21:35:06 +0200 Subject: [PATCH 12/14] fzf zsh history search --- home-modules/xun/programs/terminal/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/home-modules/xun/programs/terminal/default.nix b/home-modules/xun/programs/terminal/default.nix index f67c5f0..c858419 100644 --- a/home-modules/xun/programs/terminal/default.nix +++ b/home-modules/xun/programs/terminal/default.nix @@ -22,6 +22,7 @@ in { config = lib.mkMerge [ (lib.mkIf cfg.shell.zsh.enable { + programs.fzf.enable = true; programs.zsh = { enable = true; autocd = true; From 229d2677af13809bed07f186382ded1725b87135 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 3 Sep 2024 21:35:58 +0200 Subject: [PATCH 13/14] switch some nixdesk configuration to modules --- home/profiles/default.nix | 10 +--------- home/profiles/nixdesk/default.nix | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/home/profiles/default.nix b/home/profiles/default.nix index afde34e..885a835 100644 --- a/home/profiles/default.nix +++ b/home/profiles/default.nix @@ -23,17 +23,9 @@ "xun@nixdesk" = [ ../. ./nixdesk - inputs.nix-index-database.hmModules.nix-index inputs.sops-nix.homeManagerModules.sops inputs.nur.hmModules.nur - { - programs.nix-index = { - enableBashIntegration = false; - enableFishIntegration = false; - enableZshIntegration = false; - }; - home.stateVersion = "23.11"; - } + {home.stateVersion = "23.11";} ]; "xun@hopper" = [ ../. diff --git a/home/profiles/nixdesk/default.nix b/home/profiles/nixdesk/default.nix index 22f411d..e2ea65c 100644 --- a/home/profiles/nixdesk/default.nix +++ b/home/profiles/nixdesk/default.nix @@ -11,9 +11,9 @@ ../../secrets - ../../terminal + # ../../terminal ../../terminal/programs/zellij.nix - ../../terminal/programs/irssi.nix + # ../../terminal/programs/irssi.nix ../../terminal/programs/lazygit.nix ../../terminal/programs/beets.nix ../../editors/emacs.nix @@ -72,6 +72,20 @@ }; wakatime.enable = true; }; - develop.enable = true; + desktop.xdg.enable = true; + programs.terminal = { + shell.zsh.enable = true; + direnv.enable = true; + comma.enable = true; + tmux.enable = true; + irssi.enable = true; + }; + develop = { + enable = true; + docs.enable = true; + lsp = { + c.enable = true; + }; + }; }; } From 8aef77a3f6e011df3977691f823a4e4113ccf292 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Tue, 3 Sep 2024 21:36:27 +0200 Subject: [PATCH 14/14] improve develop hm-module --- home-modules/xun/develop/default.nix | 44 +++++++++++----------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix index cff2f23..8296dff 100644 --- a/home-modules/xun/develop/default.nix +++ b/home-modules/xun/develop/default.nix @@ -6,37 +6,26 @@ }: let cfg = config.xun.develop; in { - options.xun.develop = { - enable = lib.mkEnableOption "develop"; - git.enable = lib.mkEnableOption "git"; - nix.enable = lib.mkEnableOption "nix"; - tools.enable = lib.mkEnableOption "tools"; - docs.enable = lib.mkEnableOption "man caches"; - lsp.c.enable = lib.mkEnableOption "clangd"; + options.xun.develop = let + enableOption = name: default: lib.mkEnableOption name // {inherit default;}; + in { + enable = enableOption "develop" false; + git.enable = enableOption "git" true; + nix.enable = enableOption "nix" true; + tools.enable = enableOption "tools" true; + docs.enable = enableOption "man caches" false; + lsp.c.enable = enableOption "clangd" false; }; - config = let - conf = - if cfg.enable - then - (cfg - // { - git.enable = true; - nix.enable = true; - tools.enable = true; - docs.enable = true; - lsp.c.enable = true; - }) - else cfg; - in + config = lib.mkIf cfg.enable ( lib.mkMerge [ - (lib.mkIf conf.nix.enable { + (lib.mkIf cfg.nix.enable { home.packages = with pkgs; [nil alejandra]; }) - (lib.mkIf conf.tools.enable { + (lib.mkIf cfg.tools.enable { home.packages = with pkgs; [tokei]; }) - (lib.mkIf conf.git.enable { + (lib.mkIf cfg.git.enable { home.packages = with pkgs; [lazygit]; programs.gh.enable = true; programs.gh-dash.enable = true; @@ -62,11 +51,12 @@ in { userName = "xunuwu"; }; }) - (lib.mkIf conf.lsp.c.enable { + (lib.mkIf cfg.lsp.c.enable { home.packages = with pkgs; [clang-tools]; }) - (lib.mkIf conf.docs.enable { + (lib.mkIf cfg.docs.enable { programs.man.generateCaches = true; }) - ]; + ] + ); }