From 90f831650f827a68d69bc43d9c001f1d93f4d46d Mon Sep 17 00:00:00 2001 From: Elisiei Yehorov Date: Mon, 19 Jan 2026 02:27:18 +0100 Subject: [PATCH] big big stuff is coming --- Makefile | 2 +- flake.lock | 125 +++----------- home/home.nix | 3 - home/modules/ide/nvim/config.lua | 24 +++ home/modules/ide/nvim/default.nix | 10 +- home/modules/ide/nvim/keymaps.nix | 9 - home/modules/ide/nvim/lsp/langs/web.nix | 6 +- home/modules/ide/nvim/lsp/roslyn.nix | 2 +- home/modules/ide/nvim/plugins/lualine.nix | 2 +- home/modules/ide/nvim/plugins/neo-tree.nix | 57 +++++-- home/modules/ide/nvim/plugins/toggleterm.nix | 4 +- home/modules/ide/nvim/plugins/treesitter.nix | 2 +- home/modules/ide/nvim/themes.nix | 8 +- home/modules/shell/fish/aliases/git.fish | 159 ++++++++++++++++++ home/modules/shell/fish/config.fish | 7 +- home/modules/shell/fish/default.nix | 1 + home/modules/shell/fish/themes/bw.fish | 32 ++++ .../shell/fish/themes/tokyonight_night.fish | 37 ++++ home/modules/terminal/foot/default.nix | 2 +- home/modules/terminal/foot/themes/bw.ini | 24 +++ .../terminal/foot/themes/oxocarbon.ini | 44 +++++ .../terminal/foot/themes/tokyonight.ini | 5 + home/modules/user/git/default.nix | 13 +- home/modules/user/tofi/default.nix | 2 +- home/modules/wm/sway/default.nix | 114 ++++++------- home/packages.nix | 1 - nixos/modules/programs.nix | 5 +- 27 files changed, 481 insertions(+), 219 deletions(-) create mode 100644 home/modules/ide/nvim/config.lua delete mode 100644 home/modules/ide/nvim/keymaps.nix create mode 100644 home/modules/shell/fish/aliases/git.fish create mode 100644 home/modules/shell/fish/themes/bw.fish create mode 100644 home/modules/shell/fish/themes/tokyonight_night.fish create mode 100644 home/modules/terminal/foot/themes/bw.ini create mode 100644 home/modules/terminal/foot/themes/oxocarbon.ini diff --git a/Makefile b/Makefile index 48f10ba..4cf618e 100644 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ debug: copy-config # 🌐 Update all flake inputs to their latest versions. # Usage: make up up: - nix flake update /etc/nixos + sudo nix flake update --flake /etc/nixos # 🔍 Update a specific flake input (e.g., `make upp i=home-manager`) # Usage: make upp i=home-manager diff --git a/flake.lock b/flake.lock index 4ac96b8..bdd7206 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ ] }, "locked": { - "lastModified": 1754487366, - "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "lastModified": 1765835352, + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", "type": "github" }, "original": { @@ -21,24 +21,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -46,11 +28,11 @@ ] }, "locked": { - "lastModified": 1754950654, - "narHash": "sha256-30f9MF+zIKLodQRuSLyY4OSDZSOy5O+/FslgPt/prbc=", + "lastModified": 1766949189, + "narHash": "sha256-t4lRzHDaAvSNIPcZO4NrjnfeYv+Yvr2BUWkUnoCbuzs=", "owner": "nix-community", "repo": "home-manager", - "rev": "d19f3213e51469321835a9188adfa20391ff9371", + "rev": "398bc87bc89fc05a3c3731884b16e819c52e2b00", "type": "github" }, "original": { @@ -59,41 +41,13 @@ "type": "github" } }, - "ixx": { - "inputs": { - "flake-utils": [ - "nixvim", - "nuschtosSearch", - "flake-utils" - ], - "nixpkgs": [ - "nixvim", - "nuschtosSearch", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1748294338, - "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.0.8", - "repo": "ixx", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1754882787, - "narHash": "sha256-Y2nY1s+ZS3vkVS72SsEa/zJe+j9JuwLbev4grzcHTA8=", + "lastModified": 1766902047, + "narHash": "sha256-5hlaevYkLMeR2+6WThInVkWl0F35ioE4027kXVsglEE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "59ca61e5a844a0c35cdc272bc671c5d9b6840741", + "rev": "652f1b042e5fa87705fb952aad193cefc18446f5", "type": "github" }, "original": { @@ -105,11 +59,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "type": "github" }, "original": { @@ -125,15 +79,14 @@ "nixpkgs": [ "nixpkgs" ], - "nuschtosSearch": "nuschtosSearch", - "systems": "systems_2" + "systems": "systems" }, "locked": { - "lastModified": 1754921951, - "narHash": "sha256-KY+/livAp6l3fI8SdNa+CLN/AA4Z038yL/pQL2PaW7g=", + "lastModified": 1766941632, + "narHash": "sha256-QB8XEoY5D2iRYntcKzJ5wlvgpqqQSe0P0h5CvBO/rUk=", "owner": "nix-community", "repo": "nixvim", - "rev": "7b53322d75a1c66f84fb145e4b5f0f411d9edc6b", + "rev": "ff75a5d3cc674391814c4703464ea1a3db204078", "type": "github" }, "original": { @@ -142,29 +95,6 @@ "type": "github" } }, - "nuschtosSearch": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1754301638, - "narHash": "sha256-aRgzcPDd2axHFOuMlPLuzmDptUM2JU8mUL3jfgbBeyc=", - "owner": "NuschtOS", - "repo": "search", - "rev": "a60091045273484c040a91f5c229ba298f8ecc27", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", @@ -176,14 +106,14 @@ "spicetify-nix": { "inputs": { "nixpkgs": "nixpkgs_2", - "systems": "systems_3" + "systems": "systems_2" }, "locked": { - "lastModified": 1754801101, - "narHash": "sha256-oxWjZ/SfhCvHFNePZcUu+LcE5j4xxuIt/yaoaSvMZk0=", + "lastModified": 1766897356, + "narHash": "sha256-oKp9luuuXuMoUwpGUKUdt0G7lZGovcyOEI3guG0rNCw=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "fcbfc21572518c68317df992929b28df9a1d8468", + "rev": "6b49c4094e93629af2fcf789e0897450f57e2551", "type": "github" }, "original": { @@ -221,21 +151,6 @@ "repo": "default", "type": "github" } - }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/home/home.nix b/home/home.nix index 5cf39bf..7e19551 100644 --- a/home/home.nix +++ b/home/home.nix @@ -31,8 +31,5 @@ home.homeDirectory = "/home/elisiei"; home.stateVersion = "25.05"; - # workaround - nixpkgs.config.allowUnfreePredicate = _: true; - programs.home-manager.enable = true; } diff --git a/home/modules/ide/nvim/config.lua b/home/modules/ide/nvim/config.lua new file mode 100644 index 0000000..4ae14d4 --- /dev/null +++ b/home/modules/ide/nvim/config.lua @@ -0,0 +1,24 @@ +vim.diagnostic.config({ virtual_lines = true }) +vim.diagnostic.config({ virtual_text = true }) +vim.o.undofile = true +vim.o.undodir = vim.fn.expand("~/.local/state/nvim/undo") +vim.diagnostic.config({ signs = false }) + +vim.api.nvim_create_autocmd("User", { + pattern = 'TSUpdate', + callback = function() + require('nvim-treesitter.parsers').crystal = { + install_info = { + url = 'https://github.com/crystal-lang-tools/tree-sitter-crystal', + -- path = '', -- if you want to use a local version instead + generate = false, + generate_from_json = false, + queries = 'queries/nvim' + }, + } + end, +}) + +vim.treesitter.language.register("crystal", { "cr" }) + +print("loaded extra config.lua file ;)") diff --git a/home/modules/ide/nvim/default.nix b/home/modules/ide/nvim/default.nix index 4f461ff..c48998e 100644 --- a/home/modules/ide/nvim/default.nix +++ b/home/modules/ide/nvim/default.nix @@ -31,7 +31,7 @@ ./lsp/roslyn.nix # keymaps - ./keymaps.nix + # ./keymaps.nix # themes ./themes.nix @@ -72,12 +72,6 @@ shellcheck ]; - extraConfigLua = '' - vim.diagnostic.config({ virtual_lines = true }) - vim.diagnostic.config({ virtual_text = true }) - vim.o.undofile = true - vim.o.undodir = vim.fn.expand("~/.local/state/nvim/undo") - vim.diagnostic.config({ signs = false }) - ''; + extraConfigLua = builtins.readFile ./config.lua; }; } diff --git a/home/modules/ide/nvim/keymaps.nix b/home/modules/ide/nvim/keymaps.nix deleted file mode 100644 index e3ad111..0000000 --- a/home/modules/ide/nvim/keymaps.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - keymaps = [ - { - key = "qq"; - mode = [ "n" ]; - action = "qa"; - } - ]; -} diff --git a/home/modules/ide/nvim/lsp/langs/web.nix b/home/modules/ide/nvim/lsp/langs/web.nix index f0d801e..53acdf2 100644 --- a/home/modules/ide/nvim/lsp/langs/web.nix +++ b/home/modules/ide/nvim/lsp/langs/web.nix @@ -1,12 +1,12 @@ { plugins = { - ts-autotag.enable = false; - ts-comments.enable = false; + ts-autotag.enable = true; + ts-comments.enable = true; lsp.servers = { html.enable = true; cssls.enable = true; svelte.enable = false; - ts_ls.enable = false; + ts_ls.enable = true; }; }; } diff --git a/home/modules/ide/nvim/lsp/roslyn.nix b/home/modules/ide/nvim/lsp/roslyn.nix index f24888a..d64dbf5 100644 --- a/home/modules/ide/nvim/lsp/roslyn.nix +++ b/home/modules/ide/nvim/lsp/roslyn.nix @@ -3,7 +3,7 @@ lsp.servers.roslyn_ls = { enable = true; - settings = { + config = { cmd = [ "${lib.getExe' pkgs.roslyn-ls "Microsoft.CodeAnalysis.LanguageServer"}" "--logLevel" diff --git a/home/modules/ide/nvim/plugins/lualine.nix b/home/modules/ide/nvim/plugins/lualine.nix index 082aeea..c5c7b43 100644 --- a/home/modules/ide/nvim/plugins/lualine.nix +++ b/home/modules/ide/nvim/plugins/lualine.nix @@ -14,7 +14,7 @@ "alpha" ]; }; - theme = "kanagawa"; + theme = "tokyonight"; }; sections = { lualine_a = [ diff --git a/home/modules/ide/nvim/plugins/neo-tree.nix b/home/modules/ide/nvim/plugins/neo-tree.nix index ca3c5b3..260d70b 100644 --- a/home/modules/ide/nvim/plugins/neo-tree.nix +++ b/home/modules/ide/nvim/plugins/neo-tree.nix @@ -2,18 +2,19 @@ plugins.neo-tree = { enable = true; - sources = [ - "filesystem" - "buffers" - "git_status" - ]; - enableDiagnostics = true; - enableGitStatus = true; - enableModifiedMarkers = true; - enableRefreshOnWrite = true; - openFilesInLastWindow = true; + settings = { + sources = [ + "filesystem" + "buffers" + "git_status" + ]; + + enable_diagnostics = true; + enable_git_status = true; + enable_modified_markers = true; + enable_refresh_on_write = true; + open_files_in_last_window = true; - extraOptions = { open_files_do_not_replace_types = [ "terminal" "Trouble" @@ -63,14 +64,21 @@ expander_expanded = ""; expander_highlight = "NeoTreeExpander"; }; + git_status.symbols = { - unstaged = "󰄱"; - staged = "󰱒"; + unstaged = ""; + staged = ""; + }; + + icon = { + folder_closed = ""; + folder_open = ""; + folder_empty = ""; }; }; }; - eventHandlers = { + event_handlers = { file_moved = '' function(data) require("snacks.rename").on_rename_file(data.source, data.destination) @@ -89,7 +97,10 @@ key = "fe"; mode = [ "n" ]; action = '' - lua require("neo-tree.command").execute({ toggle = true, dir = vim.fn.getcwd() }) + lua require("neo-tree.command").execute({ + toggle = true, + dir = vim.fn.getcwd() + }) ''; options.desc = "Explorer NeoTree (cwd)"; } @@ -104,7 +115,10 @@ key = "ge"; mode = [ "n" ]; action = '' - lua require("neo-tree.command").execute({ source = "git_status", toggle = true }) + lua require("neo-tree.command").execute({ + source = "git_status", + toggle = true + }) ''; options.desc = "Git Explorer"; } @@ -112,9 +126,18 @@ key = "be"; mode = [ "n" ]; action = '' - lua require("neo-tree.command").execute({ source = "buffers", toggle = true }) + lua require("neo-tree.command").execute({ + source = "buffers", + toggle = true + }) ''; options.desc = "Buffer Explorer"; } + { + key = "C-h"; + mode = [ "n" ]; + action = "Neotree source=filesystem focus"; + options.desc = "switch focus"; + } ]; } diff --git a/home/modules/ide/nvim/plugins/toggleterm.nix b/home/modules/ide/nvim/plugins/toggleterm.nix index 921a8ad..77762e2 100644 --- a/home/modules/ide/nvim/plugins/toggleterm.nix +++ b/home/modules/ide/nvim/plugins/toggleterm.nix @@ -2,7 +2,7 @@ plugins.toggleterm = { enable = true; settings = { - direction = "vertical"; + direction = "float"; float_opts = { border = "curved"; height = 30; @@ -13,7 +13,7 @@ auto_scroll = true; close_on_exit = true; insert_mappings = true; - shell = "nu"; + shell = "fish"; }; }; keymaps = [ diff --git a/home/modules/ide/nvim/plugins/treesitter.nix b/home/modules/ide/nvim/plugins/treesitter.nix index 75f4411..c3ed052 100644 --- a/home/modules/ide/nvim/plugins/treesitter.nix +++ b/home/modules/ide/nvim/plugins/treesitter.nix @@ -23,7 +23,7 @@ treesitter-textobjects = { enable = true; - select = { + settings.select = { enable = true; lookahead = true; }; diff --git a/home/modules/ide/nvim/themes.nix b/home/modules/ide/nvim/themes.nix index 9af8be5..74413ef 100644 --- a/home/modules/ide/nvim/themes.nix +++ b/home/modules/ide/nvim/themes.nix @@ -14,11 +14,17 @@ }; }; + # kanagawa kanagawa = { - enable = true; + enable = false; settings = { transparent = true; }; }; + + # oxocarbon + oxocarbon = { + enable = true; + }; }; } diff --git a/home/modules/shell/fish/aliases/git.fish b/home/modules/shell/fish/aliases/git.fish new file mode 100644 index 0000000..9b0ec85 --- /dev/null +++ b/home/modules/shell/fish/aliases/git.fish @@ -0,0 +1,159 @@ +# migrating from https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh + +# Aliases +alias g='git' +#compdef g=git +alias gst='git status' +#compdef _git gst=git-status +alias gd='git diff' +#compdef _git gd=git-diff +alias gdc='git diff --cached' +#compdef _git gdc=git-diff +alias gl='git pull' +#compdef _git gl=git-pull +alias gup='git pull --rebase' +#compdef _git gup=git-fetch +alias gp='git push' +#compdef _git gp=git-push +alias gd='git diff' + +function gdv + git diff -w $argv | view - +end + +#compdef _git gdv=git-diff +alias gc='git commit -v' +#compdef _git gc=git-commit +alias gc!='git commit -v --amend' +#compdef _git gc!=git-commit +alias gca='git commit -v -a' +#compdef _git gc=git-commit +alias gca!='git commit -v -a --amend' +#compdef _git gca!=git-commit +alias gcmsg='git commit -m' +#compdef _git gcmsg=git-commit +alias gco='git checkout' +#compdef _git gco=git-checkout +alias gcm='git checkout master' +alias gr='git remote' +#compdef _git gr=git-remote +alias grv='git remote -v' +#compdef _git grv=git-remote +alias grmv='git remote rename' +#compdef _git grmv=git-remote +alias grrm='git remote remove' +#compdef _git grrm=git-remote +alias grset='git remote set-url' +#compdef _git grset=git-remote +alias grup='git remote update' +#compdef _git grset=git-remote +alias grbi='git rebase -i' +#compdef _git grbi=git-rebase +alias grbc='git rebase --continue' +#compdef _git grbc=git-rebase +alias grba='git rebase --abort' +#compdef _git grba=git-rebase +alias gb='git branch' +#compdef _git gb=git-branch +alias gba='git branch -a' +#compdef _git gba=git-branch +alias gcount='git shortlog -sn' +#compdef gcount=git +alias gcl='git config --list' +alias gcp='git cherry-pick' +#compdef _git gcp=git-cherry-pick +alias glg='git log --stat --max-count=10' +#compdef _git glg=git-log +alias glgg='git log --graph --max-count=10' +#compdef _git glgg=git-log +alias glgga='git log --graph --decorate --all' +#compdef _git glgga=git-log +alias glo='git log --oneline' +#compdef _git glo=git-log +alias gss='git status -s' +#compdef _git gss=git-status +alias ga='git add' +#compdef _git ga=git-add +alias gm='git merge' +#compdef _git gm=git-merge +alias grh='git reset HEAD' +alias grhh='git reset HEAD --hard' +alias gclean='git reset --hard; and git clean -dfx' +alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' + +#remove the gf alias +#alias gf='git ls-files | grep' + +alias gpoat='git push origin --all; and git push origin --tags' +alias gmt='git mergetool --no-prompt' +#compdef _git gm=git-mergetool + +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias gk='gitk --all --branches' + +alias gsts='git stash show --text' +alias gsta='git stash' +alias gstp='git stash pop' +alias gstd='git stash drop' + +# Will cd into the top of the current repository +# or submodule. +alias grt='cd (git rev-parse --show-toplevel; or echo ".")' + +# Git and svn mix +alias git-svn-dcommit-push='git svn dcommit; and git push github master:svntrunk' +#compdef git-svn-dcommit-push=git + +alias gsr='git svn rebase' +alias gsd='git svn dcommit' +# +# Will return the current branch name +# Usage example: git pull origin $(current_branch) +# +function current_branch + set ref (git symbolic-ref HEAD 2> /dev/null); or \ + set ref (git rev-parse --short HEAD 2> /dev/null); or return + echo ref | sed s-refs/heads-- +end + +function current_repository + set ref (git symbolic-ref HEAD 2> /dev/null); or \ + set ref (git rev-parse --short HEAD 2> /dev/null); or return + echo (git remote -v | cut -d':' -f 2) +end + +# these aliases take advantage of the previous function +alias ggpull='git pull origin (current_branch)' +#compdef ggpull=git +alias ggpur='git pull --rebase origin (current_branch)' +#compdef ggpur=git +alias ggpush='git push origin (current_branch)' +#compdef ggpush=git +alias ggpnp='git pull origin (current_branch); and git push origin (current_branch)' +#compdef ggpnp=git + +# Pretty log messages +function _git_log_prettily + if ! [ -z $1 ]; then + git log --pretty=$1 + end +end + +alias glp="_git_log_prettily" +#compdef _git glp=git-log + +# Work In Progress (wip) +# These features allow to pause a branch development and switch to another one (wip) +# When you want to go back to work, just unwip it +# +# This function return a warning if the current branch is a wip +function work_in_progress + if git log -n 1 | grep -q -c wip; then + echo "WIP!!" + end +end + +# these alias commit and uncomit wip branches +alias gwip='git add -A; git ls-files --deleted -z | xargs -0 git rm; git commit -m "wip"' +alias gunwip='git log -n 1 | grep -q -c wip; and git reset HEAD~1' diff --git a/home/modules/shell/fish/config.fish b/home/modules/shell/fish/config.fish index 99e4802..6b1e8c4 100644 --- a/home/modules/shell/fish/config.fish +++ b/home/modules/shell/fish/config.fish @@ -5,4 +5,9 @@ fish_config prompt choose informative_vcs direnv hook fish | source # set theme -source ~/.config/fish/themes/kanagawa.fish +source ~/.config/fish/themes/bw.fish + +# set aliases +source ~/.config/fish/aliases/git.fish + +~/bin/gotcha diff --git a/home/modules/shell/fish/default.nix b/home/modules/shell/fish/default.nix index d59b2d9..fb3b791 100644 --- a/home/modules/shell/fish/default.nix +++ b/home/modules/shell/fish/default.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { home.file.".config/fish/themes".source = ./themes; + home.file.".config/fish/aliases".source = ./aliases; programs.fish = { enable = true; package = pkgs.fishMinimal; diff --git a/home/modules/shell/fish/themes/bw.fish b/home/modules/shell/fish/themes/bw.fish new file mode 100644 index 0000000..0bcc5ff --- /dev/null +++ b/home/modules/shell/fish/themes/bw.fish @@ -0,0 +1,32 @@ +#!/usr/bin/fish + +set -l fg ffffff # primary foreground +set -l fg_dim bbbbbb # dim text +set -l fg_faint 888888 # comments / autosuggestions +set -l fg_dark 666666 # secondary elements +set -l bg_sel 333333 # selection background +set -l bg_match 2a2a2a # search match background +set -l error ffffff # errors + +set -g fish_color_normal $fg +set -g fish_color_command $fg --bold +set -g fish_color_keyword $fg --bold +set -g fish_color_quote $fg_dim +set -g fish_color_redirection $fg +set -g fish_color_end $fg +set -g fish_color_option $fg_dim +set -g fish_color_error $error --reverse +set -g fish_color_param $fg +set -g fish_color_comment $fg_faint +set -g fish_color_selection --background=$bg_sel +set -g fish_color_search_match --background=$bg_match +set -g fish_color_operator $fg +set -g fish_color_escape $fg_dim +set -g fish_color_autosuggestion $fg_faint + +set -g fish_pager_color_progress $fg_faint +set -g fish_pager_color_prefix $fg --bold +set -g fish_pager_color_completion $fg +set -g fish_pager_color_description $fg_faint +set -g fish_pager_color_selected_background --background=$bg_sel + diff --git a/home/modules/shell/fish/themes/tokyonight_night.fish b/home/modules/shell/fish/themes/tokyonight_night.fish new file mode 100644 index 0000000..e9f7038 --- /dev/null +++ b/home/modules/shell/fish/themes/tokyonight_night.fish @@ -0,0 +1,37 @@ +#!/usr/bin/fish + +# tokyonight color palette +set -l foreground c0caf5 +set -l selection 283457 +set -l comment 565f89 +set -l red f7768e +set -l orange ff9e64 +set -l yellow e0af68 +set -l green 9ece6a +set -l purple 9d7cd8 +set -l cyan 7dcfff +set -l pink bb9af7 + +# syntax highlighting colors +set -g fish_color_normal $foreground +set -g fish_color_command $cyan +set -g fish_color_keyword $pink +set -g fish_color_quote $yellow +set -g fish_color_redirection $foreground +set -g fish_color_end $orange +set -g fish_color_option $pink +set -g fish_color_error $red +set -g fish_color_param $purple +set -g fish_color_comment $comment +set -g fish_color_selection --background=$selection +set -g fish_color_search_match --background=$selection +set -g fish_color_operator $green +set -g fish_color_escape $pink +set -g fish_color_autosuggestion $comment + +# completion pager colors +set -g fish_pager_color_progress $comment +set -g fish_pager_color_prefix $cyan +set -g fish_pager_color_completion $foreground +set -g fish_pager_color_description $comment +set -g fish_pager_color_selected_background --background=$selection diff --git a/home/modules/terminal/foot/default.nix b/home/modules/terminal/foot/default.nix index d7fcfd9..199ceba 100644 --- a/home/modules/terminal/foot/default.nix +++ b/home/modules/terminal/foot/default.nix @@ -8,7 +8,7 @@ shell = "fish"; pad = "0x0center"; font = "Maple Mono NF:size=12"; - include = "${config.xdg.configHome}/foot/themes/kanagawa.ini"; + include = "${config.xdg.configHome}/foot/themes/bw.ini"; }; scrollback = { lines = 100000; diff --git a/home/modules/terminal/foot/themes/bw.ini b/home/modules/terminal/foot/themes/bw.ini new file mode 100644 index 0000000..51cad28 --- /dev/null +++ b/home/modules/terminal/foot/themes/bw.ini @@ -0,0 +1,24 @@ +[colors] +# alpha=1.0 +background=000000 +foreground=ffffff + +## Normal/regular colors (color palette 0-7) +regular0=000000 # black +regular1=5a5a5a # dark gray +regular2=6a6a6a # dark gray +regular3=7a7a7a # gray +regular4=8a8a8a # gray +regular5=9a9a9a # light gray +regular6=aaaaaa # light gray +regular7=ffffff # white + +## Bright colors (color palette 8-15) +bright0=3a3a3a # bright black +bright1=6a6a6a # bright gray +bright2=7a7a7a +bright3=8a8a8a +bright4=9a9a9a +bright5=bababa +bright6=dadada +bright7=ffffff # bright white diff --git a/home/modules/terminal/foot/themes/oxocarbon.ini b/home/modules/terminal/foot/themes/oxocarbon.ini new file mode 100644 index 0000000..4dd39ef --- /dev/null +++ b/home/modules/terminal/foot/themes/oxocarbon.ini @@ -0,0 +1,44 @@ +# oxocarbon-foot +# oxocarbon foot template by Boyd Kelly +# include in foot.ini like so: +# include=~/.config/foot/colours.ini +# must be included under [main], or untitled section at beginning of file + +#dark reference +#base00: "#161616" +#base01: "#262626" +#base02: "#393939" +#base03: "#525252" +#base04: "#dde1e6" +#base05: "#f2f4f8" +#base06: "#ffffff" +#base07: "#08bdba" +#base08: "#3ddbd9" +#base09: "#78a9ff" +#base0A: "#ee5396" +#base0B: "#33b1ff" +#base0C: "#ff7eb6" +#base0D: "#42be65" +#base0E: "#be95ff" +#base0F: "#82cfff" + +[colors] +foreground=ffffff #base06 white +background=161616 #base01 black + +regular0=262626 # black +regular1=ff7eb6 # magenta +regular2=42be65 # green +regular3=ffe97b # yellow +regular4=33b1ff # blue +regular5=ee5396 # red +regular6=3ddbd9 # cyan +regular7=dde1e6 # white +bright0=393939 # black +bright1=ff7eb6 # magenta +bright2=42be65 # green +bright3=ffe97b # yellow +bright4=33b1ff # blue +bright5=ee5396 # red +bright6=3ddbd9 # cyan +bright7=ffffff # white diff --git a/home/modules/terminal/foot/themes/tokyonight.ini b/home/modules/terminal/foot/themes/tokyonight.ini index bf4a148..81a13f0 100644 --- a/home/modules/terminal/foot/themes/tokyonight.ini +++ b/home/modules/terminal/foot/themes/tokyonight.ini @@ -1,7 +1,10 @@ [colors] foreground=c0caf5 background=1a1b26 +selection-foreground=c0caf5 +selection-background=283457 urls=73daca +cursor=c0caf5 283457 regular0=15161e regular1=f7768e @@ -23,3 +26,5 @@ bright7=c0caf5 16=ff9e64 17=db4b4b + +# night variant. diff --git a/home/modules/user/git/default.nix b/home/modules/user/git/default.nix index c8e01ae..28021ec 100644 --- a/home/modules/user/git/default.nix +++ b/home/modules/user/git/default.nix @@ -2,18 +2,23 @@ programs.git = { enable = true; - userName = "Elisiei Yehorov"; - userEmail = "yehorovye@disroot.org"; - signing = { key = "BA1D158DCE3DF089"; signByDefault = true; }; - extraConfig = { + settings = { + user = { + name = "Elisiei Yehorov"; + email = "yehorovye@disroot.org"; + }; + tag.gpgSign = true; credential.helper = "store"; push.default = "current"; + init.defaultBranch = "main"; + pull.rebase = true; + fetch.prune = true; # @elisiei url."git@github.com-elisiei:".insteadOf = "https://github.com/elisiei/"; diff --git a/home/modules/user/tofi/default.nix b/home/modules/user/tofi/default.nix index 9744b27..1b6efb0 100644 --- a/home/modules/user/tofi/default.nix +++ b/home/modules/user/tofi/default.nix @@ -2,7 +2,7 @@ programs.tofi = { enable = true; settings = { - background-color = "#000000"; + background-color = "#000000cc"; border-width = 0; font = "monospace"; height = "100%"; diff --git a/home/modules/wm/sway/default.nix b/home/modules/wm/sway/default.nix index 5ecb4d1..19d6f22 100644 --- a/home/modules/wm/sway/default.nix +++ b/home/modules/wm/sway/default.nix @@ -4,16 +4,17 @@ lib, ... }: + let wallpaperScript = pkgs.writeShellScriptBin "random-wallpaper" '' - WALP=$(find "$HOME/wallpapers" -type f \( -iname "*.jpg" -o -iname "*.png" \) | shuf -n 1) - [ -n "$WALP" ] && ${pkgs.swaybg}/bin/swaybg -i "$WALP" --mode fill & + pkill -x wbg 2>/dev/null || true + + walp=$(find "$HOME/wallpapers" -type f \( -iname "*.jpg" -o -iname "*.png" \) | shuf -n 1) + [ -n "$walp" ] && ${pkgs.wbg}/bin/wbg "$walp" & ''; in { - home.packages = [ - wallpaperScript - ]; + home.packages = [ wallpaperScript ]; wayland.windowManager.sway = { enable = true; @@ -24,46 +25,36 @@ in terminal = "foot"; menu = "exec $(tofi-drun)"; - # monitor configuration - output = { - "*" = { - resolution = "1920x1080"; - scale = "1"; - }; + # outputs + output."*" = { + resolution = "1920x1080"; + scale = "1"; }; - # startup commands + # startup startup = [ { command = "${wallpaperScript}/bin/random-wallpaper"; } ]; - # input configuration - input = { - "type:keyboard" = { - xkb_layout = "es,ru"; - xkb_options = "grp:alt_space_toggle"; - xkb_numlock = "enabled"; - }; + # input + input."type:keyboard" = { + xkb_layout = "es,ru"; + xkb_options = "grp:alt_space_toggle"; + xkb_numlock = "enabled"; }; - # window appearance + # gaps gaps = { - inner = 0; - outer = 0; + inner = 3; + outer = 3; }; - window = { - border = 0; - }; + # borders + window.border = 1; + floating.border = 1; - floating = { - border = 0; - }; - - # focus settings - focus = { - followMouse = true; - }; + # focus + focus.followMouse = true; # keybindings keybindings = lib.mkOptionDefault { @@ -71,25 +62,25 @@ in "${modifier}+Shift+Print" = "exec ~/bin/grimblast copy screen"; "${modifier}+Print" = "exec ~/bin/grimblast copy area"; - # application launchers + # launchers "${modifier}+space" = "exec ${menu}"; "${modifier}+w" = "exec ${wallpaperScript}/bin/random-wallpaper"; - "${modifier}+s" = "sticky toggle"; "${modifier}+t" = "exec ${terminal}"; "${modifier}+z" = "exec librewolf"; - # Window management + # window "${modifier}+q" = "kill"; - "${modifier}+Shift+m" = "exit"; "${modifier}+v" = "floating toggle"; + "${modifier}+s" = "sticky toggle"; + "${modifier}+Shift+m" = "exit"; - # focus movement + # focus move "${modifier}+Left" = "focus left"; "${modifier}+Right" = "focus right"; "${modifier}+Up" = "focus up"; "${modifier}+Down" = "focus down"; - # workspace switching + # workspaces "${modifier}+1" = "workspace number 1"; "${modifier}+2" = "workspace number 2"; "${modifier}+3" = "workspace number 3"; @@ -114,35 +105,44 @@ in "${modifier}+Shift+0" = "move container to workspace number 10"; }; - # mouse bindings for moving/resizing windows - modes = { - resize = { - Left = "resize shrink width 10 px"; - Right = "resize grow width 10 px"; - Up = "resize shrink height 10 px"; - Down = "resize grow height 10 px"; - Escape = "mode default"; - Return = "mode default"; - }; + # resize mode + modes.resize = { + Left = "resize shrink width 10 px"; + Right = "resize grow width 10 px"; + Up = "resize shrink height 10 px"; + Down = "resize grow height 10 px"; + Escape = "mode default"; + Return = "mode default"; }; bars = [ ]; }; extraConfig = '' - # window borders - default_border pixel 0 - default_floating_border pixel 0 + set $opacity 0.97 + for_window [class=".*"] opacity $opacity + for_window [app_id=".*"] opacity $opacity - # mouse bindings - floating_modifier ${config.wayland.windowManager.sway.config.modifier} normal + # borders + default_border pixel 1 + default_floating_border pixel 1 - # cursor theme - seat seat0 xcursor_theme macOS 24 + # colors + client.focused #3a3a3a #000000 #ffffff #3a3a3a #3a3a3a + client.focused_inactive #2a2a2a #000000 #bbbbbb #2a2a2a #2a2a2a + client.unfocused #1e1e1e #000000 #888888 #1e1e1e #1e1e1e + client.urgent #5a5a5a #000000 #ffffff #5a5a5a #5a5a5a + client.placeholder #1e1e1e #000000 #888888 #1e1e1e #1e1e1e + + # mouse + floating_modifier ${config.wayland.windowManager.sway.config.modifier} normal + + # cursor + seat seat0 xcursor_theme macOS 24 ''; }; - # environment variables + # env home.sessionVariables = { XCURSOR_THEME = "macOS"; XCURSOR_SIZE = "24"; diff --git a/home/packages.nix b/home/packages.nix index fb6dbe9..08f4986 100644 --- a/home/packages.nix +++ b/home/packages.nix @@ -9,6 +9,5 @@ zig kdePackages.dolphin gnome.gvfs - discord ]; } diff --git a/nixos/modules/programs.nix b/nixos/modules/programs.nix index 02d9647..58baf42 100644 --- a/nixos/modules/programs.nix +++ b/nixos/modules/programs.nix @@ -1,7 +1,7 @@ { pkgs, inputs, ... }: let - spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; in { environment.sessionVariables = { @@ -19,6 +19,7 @@ in environment.systemPackages = with pkgs; [ # essential curl + pavucontrol # useful wl-clipboard @@ -40,7 +41,7 @@ in librewolf # wayland - swaybg + wbg apple-cursor ];