big big stuff is coming

This commit is contained in:
Elisiei Yehorov 2026-01-19 02:27:18 +01:00
parent 6d6f665d06
commit 90f831650f
Signed by: elisiei
GPG key ID: BA1D158DCE3DF089
27 changed files with 481 additions and 219 deletions

View file

@ -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

125
flake.lock generated
View file

@ -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",

View file

@ -31,8 +31,5 @@
home.homeDirectory = "/home/elisiei";
home.stateVersion = "25.05";
# workaround
nixpkgs.config.allowUnfreePredicate = _: true;
programs.home-manager.enable = true;
}

View file

@ -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 = '<ts-crystal-install-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 ;)")

View file

@ -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;
};
}

View file

@ -1,9 +0,0 @@
{
keymaps = [
{
key = "<leader>qq";
mode = [ "n" ];
action = "<cmd>qa<CR>";
}
];
}

View file

@ -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;
};
};
}

View file

@ -3,7 +3,7 @@
lsp.servers.roslyn_ls = {
enable = true;
settings = {
config = {
cmd = [
"${lib.getExe' pkgs.roslyn-ls "Microsoft.CodeAnalysis.LanguageServer"}"
"--logLevel"

View file

@ -14,7 +14,7 @@
"alpha"
];
};
theme = "kanagawa";
theme = "tokyonight";
};
sections = {
lualine_a = [

View file

@ -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 = "<leader>fe";
mode = [ "n" ];
action = ''
<cmd>lua require("neo-tree.command").execute({ toggle = true, dir = vim.fn.getcwd() })<CR>
<cmd>lua require("neo-tree.command").execute({
toggle = true,
dir = vim.fn.getcwd()
})<CR>
'';
options.desc = "Explorer NeoTree (cwd)";
}
@ -104,7 +115,10 @@
key = "<leader>ge";
mode = [ "n" ];
action = ''
<cmd>lua require("neo-tree.command").execute({ source = "git_status", toggle = true })<CR>
<cmd>lua require("neo-tree.command").execute({
source = "git_status",
toggle = true
})<CR>
'';
options.desc = "Git Explorer";
}
@ -112,9 +126,18 @@
key = "<leader>be";
mode = [ "n" ];
action = ''
<cmd>lua require("neo-tree.command").execute({ source = "buffers", toggle = true })<CR>
<cmd>lua require("neo-tree.command").execute({
source = "buffers",
toggle = true
})<CR>
'';
options.desc = "Buffer Explorer";
}
{
key = "C-h";
mode = [ "n" ];
action = "<cmd>Neotree source=filesystem focus<CR>";
options.desc = "switch focus";
}
];
}

View file

@ -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 = [

View file

@ -23,7 +23,7 @@
treesitter-textobjects = {
enable = true;
select = {
settings.select = {
enable = true;
lookahead = true;
};

View file

@ -14,11 +14,17 @@
};
};
# kanagawa
kanagawa = {
enable = true;
enable = false;
settings = {
transparent = true;
};
};
# oxocarbon
oxocarbon = {
enable = true;
};
};
}

View file

@ -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'

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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/";

View file

@ -2,7 +2,7 @@
programs.tofi = {
enable = true;
settings = {
background-color = "#000000";
background-color = "#000000cc";
border-width = 0;
font = "monospace";
height = "100%";

View file

@ -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";

View file

@ -9,6 +9,5 @@
zig
kdePackages.dolphin
gnome.gvfs
discord
];
}

View file

@ -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
];