1
Fork 0

More shells, and beautiful wlogout theming

This commit is contained in:
Matei Adriel 2023-08-14 14:49:55 +03:00
parent 7b4a8b2fa4
commit 16752e40d5
No known key found for this signature in database
28 changed files with 434 additions and 119 deletions

View file

@ -1,45 +1,79 @@
{ inputs, ... }:
let
themes = {
# {{{ Catppuccin variants
catppuccin-mocha = {
image = ./wallpapers/auto/catppuccin-mocha-rain-world.png;
base16Scheme = "${inputs.catppuccin-base16}/base16/mocha.yaml";
polarity = "dark";
stylix = {
image = ./wallpapers/auto/catppuccin-mocha-rain-world.png;
base16Scheme = "${inputs.catppuccin-base16}/base16/mocha.yaml";
polarity = "dark";
};
satellite = {
transparency.value = 1.0;
};
};
catppuccin-latte = {
# image = ./wallpapers/eye.png;
image = ./wallpapers/watercag.png;
base16Scheme = "${inputs.catppuccin-base16}/base16/latte.yaml";
polarity = "light";
stylix = {
# image = ./wallpapers/eye.png;
image = ./wallpapers/watercag.png;
base16Scheme = "${inputs.catppuccin-base16}/base16/latte.yaml";
polarity = "light";
};
satellite = {
transparency.value = 0.6;
};
};
# }}}
# {{{ Rosepine variants
rosepine-dawn = {
image = ./wallpapers/rosepine_light_field.png;
base16Scheme = "${inputs.rosepine-base16}/rose-pine-dawn.yaml";
polarity = "light";
stylix = {
image = ./wallpapers/rosepine_light_field.png;
base16Scheme = "${inputs.rosepine-base16}/rose-pine-dawn.yaml";
polarity = "light";
};
satellite = {
transparency.value = 1.0;
};
};
# }}}
# {{{ Experiment: AI generated themes
gpt = {
monopurple-light = {
image = ./wallpapers/auto/catppuccin-latte-city.png;
base16Scheme = ./gpt-themes/monopurple-light.yaml;
polarity = "light";
stylix = {
image = ./wallpapers/auto/catppuccin-latte-city.png;
base16Scheme = ./gpt-themes/monopurple-light.yaml;
polarity = "light";
};
satellite = {
transparency.value = 1.0;
};
};
purplepink-light = {
image = ./wallpapers/auto/catppuccin-latte-city.png;
base16Scheme = ./gpt-themes/purplepink-light.yaml;
polarity = "light";
stylix = {
image = ./wallpapers/auto/catppuccin-latte-city.png;
base16Scheme = ./gpt-themes/purplepink-light.yaml;
polarity = "light";
};
satellite = {
transparency.value = 1.0;
};
};
};
# }}}
};
# Select your current theme here!
currentTheme = themes.catppuccin-latte;
in
{
# Select your current theme here!
imports = [
{ stylix = themes.catppuccin-latte; }
];
# We apply the current theme here.
# The rest is handled by the respective modules!
imports = [{
stylix = currentTheme.stylix;
satellite.theming = currentTheme.satellite;
}];
# Requires me to manually turn targets on!
stylix.autoEnable = false;

View file

@ -1,5 +1,6 @@
args: {
visonum = import ./visonum.nix args;
haskell = import ./haskell.nix args;
purescript = import ./purescript.nix args;
rwtw = import ./rwtw.nix args;
typst = import ./typst.nix args;
}

6
devshells/haskell.nix Normal file
View file

@ -0,0 +1,6 @@
# shell containing the tools i most commonly use for haskell work!
{ pkgs, ... }:
pkgs.mkShell {
nativebuildinputs = with pkgs; [ ghc hpack stack cabal-install ];
}

6
devshells/purescript.nix Normal file
View file

@ -0,0 +1,6 @@
# shell containing the tools i most commonly use for purescript work!
{ pkgs, upkgs, ... }:
pkgs.mkShell {
# reason: purescript 0.15.10
nativebuildinputs = with pkgs; [ upkgs.purescript spago typescript nodejs ];
}

View file

@ -1,7 +1,10 @@
# Shell for running the rain world tech wiki locally
{ pkgs, inputs, ... }:
{ pkgs, ... }:
let
# Python packages the zola obsidian project expects.
pythonDeps = ps: with ps; [ python-slugify rtoml ];
# Plugins used by the zola obsidian project
zolaObsidianPython = pkgs.python3.withPackages pythonDeps;
in
pkgs.mkShell {

View file

@ -1,8 +1,8 @@
# Shell for using a pinned version of typst
{ pkgs, upkgs, inputs, ... }:
{ pkgs, upkgs, ... }:
pkgs.mkShell {
nativeBuildInputs = [
# REASON: not on nixpkgs-stable
# REASON: version 0.7.0
upkgs.typst
];
}

View file

@ -1,7 +0,0 @@
# Shell containing the tools I most commonly use for work
{ pkgs, upkgs, ... }:
pkgs.mkShell {
system =
# REASON: purescript 0.15.7 and it's associated spago
nativeBuildInputs = [ upkgs.purescript upkgs.spago pkgs.typescript pkgs.nodejs ];
}

View file

@ -1,79 +1,77 @@
{
"LuaSnip": { "branch": "master", "commit": "51ebb4b6637290e1b8e0fb0d6f38b605d3c24940" },
"LuaSnip": { "branch": "master", "commit": "99a94cc35ec99bf06263d0346128e908a204575c" },
"abbreinder.nvim": { "branch": "main", "commit": "5b2b5ff08a9ada42238d733aeebc6d3d96314d77" },
"abbremand.nvim": { "branch": "main", "commit": "d633341f632b0b2666dfc6dfe6b9842ba1610a1d" },
"catppuccin": { "branch": "main", "commit": "490078b1593c6609e6a50ad5001e7902ea601824" },
"clipboard-image.nvim": { "branch": "main", "commit": "af8fdaad7e6fed0741e18dbf2f57bdc7494adaee" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-cmdline": { "branch": "main", "commit": "5af1bb7d722ef8a96658f01d6eb219c4cf746b32" },
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" },
"cmp-emoji": { "branch": "main", "commit": "19075c36d5820253d32e2478b6aaf3734aeaafa0" },
"cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"crates.nvim": { "branch": "main", "commit": "3648f8787656d7572740560331553abdaa8cb982" },
"dashboard-nvim": { "branch": "master", "commit": "0af0ad181db271ef8d5a332f4cfcec9118340497" },
"crates.nvim": { "branch": "main", "commit": "d5caf28aba49e81ac4099426231f3cf3c151013a" },
"dashboard-nvim": { "branch": "master", "commit": "c17d3210b3dec8798b4fc82a11c542989251f85d" },
"dhall-vim": { "branch": "master", "commit": "68500ef46ff3706f46c99db3be7a0c8abcf6a3ae" },
"dressing.nvim": { "branch": "master", "commit": "f19cbd56f7f8cad212c58a7285d09c5d9c273896" },
"dressing.nvim": { "branch": "master", "commit": "6bde51adabba06f7fd4a469885a85f36d78a5f52" },
"fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" },
"firenvim": { "branch": "master", "commit": "e2d5a0f97d1f41e03c8d2a3c71ee60b1a4a6bb83" },
"github-actions-yaml.vim": { "branch": "master", "commit": "f2f16243447cea174daa6b4a9ffd3ff9213814ef" },
"gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" },
"glow.nvim": { "branch": "main", "commit": "bbd0473d72a45094495ee5600b5577823543eefe" },
"glow.nvim": { "branch": "main", "commit": "8942dfb05794f436af4fbc90a34393f1fd36f361" },
"harpoon": { "branch": "master", "commit": "21f4c47c6803d64ddb934a5b314dcb1b8e7365dc" },
"hydra.nvim": { "branch": "master", "commit": "3ced42c0b6a6c85583ff0f221635a7f4c1ab0dd0" },
"hyprland-vim-syntax": { "branch": "main", "commit": "254df6b476db5784bc6bfe3f612129b73dfc43b5" },
"hyprland-vim-syntax": { "branch": "main", "commit": "8488a24b50882da969979103b4d668c70e7995b9" },
"idris2-nvim": { "branch": "main", "commit": "3a2b4d2b5ffeab9e47298456c59c31b4e1ddebc9" },
"inc-rename.nvim": { "branch": "main", "commit": "fb1b7468f27d874feb209eac46be5205e20b7fd3" },
"iron.nvim": { "branch": "master", "commit": "792dd11752c4699ea52c737b5e932d6f21b25834" },
"inc-rename.nvim": { "branch": "main", "commit": "ed0f6f2b917cac4eb3259f907da0a481b27a3b7e" },
"iron.nvim": { "branch": "master", "commit": "7f876ee3e1f4ea1e5284b1b697cdad5b256e8046" },
"jupytext.vim": { "branch": "master", "commit": "32c1e37b2edf63a7e38d0deb92cc3f1462cc4dcd" },
"kmonad-vim": { "branch": "master", "commit": "37978445197ab00edeb5b731e9ca90c2b141723f" },
"knap": { "branch": "main", "commit": "8c083d333b8a82421a521539eb1c450b06c90eb6" },
"knap": { "branch": "main", "commit": "503010f541696e99ed5c62f658620e546cebf8b0" },
"kotlin-vim": { "branch": "master", "commit": "53fe045906df8eeb07cb77b078fc93acda6c90b8" },
"lazy.nvim": { "branch": "main", "commit": "e6bf3a0d9c4899dcf832270f79bb1cee8fbc506e" },
"lean.nvim": { "branch": "main", "commit": "ea68b6abc252e65f88a08305a3d6e1578a27b720" },
"leap": { "branch": "main", "commit": "be918a8e6aa00a6cfa7270d4bfcc11b2f80d6902" },
"live-command.nvim": { "branch": "main", "commit": "bc7e094e7ff52caf682c1430ff3a43ff55f6a58b" },
"lazy.nvim": { "branch": "main", "commit": "dac844ed617dda4f9ec85eb88e9629ad2add5e05" },
"lean.nvim": { "branch": "main", "commit": "67580fab5bed73920fa3fdd712fc8e805c389c3d" },
"leap": { "branch": "main", "commit": "5efe985cf68fac3b6a6dfe7a75fbfaca8db2af9c" },
"lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" },
"lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" },
"magma-nvim": { "branch": "main", "commit": "395b48e2e202d82fca76c15d2dcd8785c125d686" },
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
"magma-nvim": { "branch": "main", "commit": "ff3deba8a879806a51c005e50782130246143d06" },
"mind.nvim": { "branch": "master", "commit": "002137dd7cf97865ebd01b6a260209d2daf2da66" },
"neoconf.nvim": { "branch": "main", "commit": "ee205ffd079f96d32c837dcf29af259e0dde8557" },
"neodev.nvim": { "branch": "main", "commit": "358f11c585fdccfcb5e8eae720c423fbed6d92de" },
"neogit": { "branch": "master", "commit": "80be328067b370744c39323674a2ebaf515dea14" },
"neorg": { "branch": "main", "commit": "e0fcf254fbdb95fa0918692aee1c93b938e883f8" },
"neorg-telescope": { "branch": "main", "commit": "d24f445c912451ddbf17cbe8da36561b51b10d39" },
"nui.nvim": { "branch": "main", "commit": "2b2732528e4a79eb8542568bd51d25f710395bd6" },
"null-ls.nvim": { "branch": "main", "commit": "c89333e034a8daba654ebfcf9a4ec9f87765f01e" },
"nvim-autopairs": { "branch": "master", "commit": "59df87a84c80a357ca8d8fe86e451b93ac476ccc" },
"nvim-cmp": { "branch": "main", "commit": "fc0f694af1a742ada77e5b1c91ff405c746f4a26" },
"neoconf.nvim": { "branch": "main", "commit": "08f146d53e075055500dca35e93281faff95716b" },
"neodev.nvim": { "branch": "main", "commit": "9a5c0f0de5c15fba52d4fb83d425d3f4fa7abfa1" },
"neogit": { "branch": "master", "commit": "e4c428239928425829cb5247e430f26d25d5788e" },
"neorg": { "branch": "main", "commit": "66e5a4e4ed7645590ac8388abdedb8f840b88f0d" },
"neorg-telescope": { "branch": "main", "commit": "1310d4aaefd8149c9839bbe1d5610e94389e2f0e" },
"nui.nvim": { "branch": "main", "commit": "9e3916e784660f55f47daa6f26053ad044db5d6a" },
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
"nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" },
"nvim-cmp": { "branch": "main", "commit": "51f1e11a89ec701221877532ee1a23557d291dd5" },
"nvim-comment": { "branch": "main", "commit": "e9ac16ab056695cad6461173693069ec070d2b23" },
"nvim-lspconfig": { "branch": "master", "commit": "fefba589c56a5568a089299e36a4c8242502faaa" },
"nvim-tree.lua": { "branch": "master", "commit": "e2a4c9d09d205ebe5f071264f43f73a0077c43a3" },
"nvim-treesitter": { "branch": "master", "commit": "62146fe415193879290c523b54cb5072e1f5dbbc" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "95b76b95eff25e1e64f363938cd853852355d70a" },
"nvim-web-devicons": { "branch": "master", "commit": "2a125024a137677930efcfdf720f205504c97268" },
"nvim_context_vt": { "branch": "master", "commit": "dcfd29699e614035dd6ab863039e1c1811cace91" },
"nvim-lspconfig": { "branch": "master", "commit": "a981d4447b92c54a4d464eb1a76b799bc3f9a771" },
"nvim-tree.lua": { "branch": "master", "commit": "0a54dcb76b02f3a4e2da370c7a3f6f2b7b43ef01" },
"nvim-treesitter": { "branch": "master", "commit": "bc52938ddde0ff6b3d51ff215d2c66f2e39b7099" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "9e519b6146512c8e2e702faf8ac48420f4f5deec" },
"nvim-web-devicons": { "branch": "master", "commit": "ab899311f8ae00a47eae8e0879506cead8eb1561" },
"nvim_context_vt": { "branch": "master", "commit": "f44f46ecad6e6983fd04dac84c5a5c03815d3427" },
"paperplanes.nvim": { "branch": "master", "commit": "d704b2e1e594b32d454cc7e0c5f2cf9b391e3cc1" },
"plenary.nvim": { "branch": "master", "commit": "499e0743cf5e8075cd32af68baa3946a1c76adf1" },
"plenary.nvim": { "branch": "master", "commit": "267282a9ce242bbb0c5dc31445b6d353bed978bb" },
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
"purescript-vim": { "branch": "main", "commit": "82348352e6568fcc0385bd7c99a8ead3a479feea" },
"rasi.vim": { "branch": "main", "commit": "eac9969cf935cd4380987dc99bfa10d69d3f34a6" },
"rose-pine": { "branch": "main", "commit": "15aac8c529bb38ac39fdb22f7be7f37c0e39dd0c" },
"rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" },
"rust-tools.nvim": { "branch": "master", "commit": "0cc8adab23117783a0292a0c8a2fbed1005dc645" },
"scrap.nvim": { "branch": "main", "commit": "16db44ae9403ec9c4b140394f294475d1af80a18" },
"smart-splits.nvim": { "branch": "master", "commit": "e9a8f08b9db566ebc2b942b4776567f981b2986c" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "6cf29d5139601993343c4e70ee2d1f67959d9cc5" },
"smart-splits.nvim": { "branch": "master", "commit": "7aad6019dee974a01333523a5b8e122b7e7da454" },
"telescope-file-browser.nvim": { "branch": "master", "commit": "ad7b637c72549713b9aaed7c4f9c79c62bcbdff0" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" },
"telescope.nvim": { "branch": "master", "commit": "e960efa60e97df58e089b00270f09d60f27202c8" },
"typst.vim": { "branch": "main", "commit": "6750b01970045affed30efe063d7e21b399f1efc" },
"undotree": { "branch": "master", "commit": "485f01efde4e22cb1ce547b9e8c9238f36566f21" },
"typst.vim": { "branch": "main", "commit": "6a99324a138c2da69589a8ab2e49375774e43d77" },
"undotree": { "branch": "master", "commit": "0e11ba7325efbbb3f3bebe06213afa3e7ec75131" },
"venn.nvim": { "branch": "main", "commit": "c114563960b8fb1197695d42798d1f3e7190b798" },
"vim-abolish": { "branch": "master", "commit": "cb3dcb220262777082f63972298d57ef9e9455ec" },
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-teal": { "branch": "master", "commit": "d2aa107b257879e774680792a2aebaf9cd5742e0" },
"vim-tmux-navigator": { "branch": "master", "commit": "cdd66d6a37d991bba7997d593586fc51a5b37aa8" },
"vim-wakatime": { "branch": "master", "commit": "02be9238319937e04afea73fd0fc7da5413ee041" },
"vim-wakatime": { "branch": "master", "commit": "018fa9a80c27ccf2a8967b9e27890372e5c2fb4f" },
"vimux": { "branch": "master", "commit": "616fcb4799674a7a809b14ca2dc155bb6ba25788" },
"which-key.nvim": { "branch": "main", "commit": "e271c28118998c93a14d189af3395812a1aa646c" },
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" },
"yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" }
}

View file

@ -41,7 +41,12 @@ function M.nmap(from, to, desc, silent, isLocal)
isLocal = false
end
vim.keymap.set("n", from, to, { desc = desc, silent = silent, buffer = isLocal })
vim.keymap.set(
"n",
from,
to,
{ desc = desc, silent = silent, buffer = isLocal }
)
end
-- }}}
@ -100,6 +105,16 @@ function M.setup()
})
-- }}}
-- {{{ Winblend
vim.api.nvim_create_autocmd("FileType", {
pattern = { "Telescope*" },
group = vim.api.nvim_create_augroup("WinblendSettings", {}),
callback = function()
vim.opt.winblend = 0
end,
})
-- }}}
return M
end

View file

@ -2,10 +2,11 @@ local M = {}
function M.setup()
local default_length = 0.04
vim.g.neovide_floating_blur_amount_x = 3.0
vim.g.neovide_floating_blur_amount_y = 3.0
vim.g.neovide_transparency = 1.0
vim.g.pumblend = 30
vim.g.neovide_floating_blur_amount_x = 10.0
vim.g.neovide_floating_blur_amount_y = 10.0
vim.g.neovide_transparency = 0.6
-- vim.g.transparency = 0.6
vim.g.pumblend = 100
vim.g.neovide_cursor_animation_length = default_length
vim.g.neovide_cursor_animate_in_insert_mode = false
end

View file

@ -34,12 +34,13 @@ function M.config()
local options = {
window = {
completion = {
documentation = cmp.config.window.bordered(),
completion = cmp.config.window.bordered({
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
col_offset = -3,
side_padding = 0,
completeopt = "menu,menuone,noinsert",
},
}),
},
formatting = {
fields = { "kind", "abbr", "menu" },
@ -116,6 +117,7 @@ function M.config()
{ name = "cmdline" },
}),
})
end
return M

View file

@ -140,6 +140,7 @@ return {
{
-- show progress for lsp stuff
"j-hui/fidget.nvim",
tag = "legacy",
event = "BufReadPre",
cond = env.vscode.not_active(),
config = true,

View file

@ -210,10 +210,10 @@ end
function lspconfig.config()
diagnostics_icons()
-- -- {{{ Change on-hover borders
-- vim.lsp.handlers["textDocument/hover"] =
-- vim.lsp.with(vim.lsp.handlers.hover, { border = "single" })
-- vim.lsp.handlers["textDocument/signatureHelp"] =
-- vim.lsp.with(vim.lsp.handlers.signature_help, { border = "single" })
vim.lsp.handlers["textDocument/hover"] =
vim.lsp.with(vim.lsp.handlers.hover, { border = "single" })
vim.lsp.handlers["textDocument/signatureHelp"] =
vim.lsp.with(vim.lsp.handlers.signature_help, { border = "single" })
-- -- }}}
local capabilities = M.capabilities()

View file

@ -13,7 +13,7 @@ function M.config()
catppuccin.setup({
transparent_background = true,
integrations = { nvimtree = true },
integrations = { nvimtree = true, telescope = true },
})
vim.cmd([[highlight NotifyINFOIcon guifg=#d6b20f]])

View file

@ -237,9 +237,9 @@
# Taken from [the deploy-rs docs](https://github.com/serokell/deploy-rs).
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib;
# }}}
# {{{ Apps
apps.x86_64-linux = (inputs.nixinate.nixinate.x86_64-linux self);
# }}}
# # {{{ Apps
# apps.x86_64-linux = (inputs.nixinate.nixinate.x86_64-linux self);
# # }}}
};
# {{{ Caching and whatnot

View file

@ -11,10 +11,7 @@ in
};
home.packages = [ pkgs.discocss ];
xdg.configFile."discocss/custom.css".source =
themeMap.${config.lib.stylix.scheme.scheme}
or themeMap.default.${config.stylix.polarity};
xdg.configFile."discocss/custom.css".source = config.satellite.theming.get themeMap;
satellite.persistence.at.state.apps.Discord.directories = [
"${config.xdg.configHome}/discord" # Why tf does discord store it's state here 💀

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, ... }:
let
base16-eww = config.lib.stylix.colors {
template = builtins.readFile ./template.yuck;
@ -7,12 +7,15 @@ let
widgets = config.satellite.dev.path "home/features/desktop/eww/widgets";
in
{
home.packages = [ pkgs.eww ];
xdg.configFile."eww/eww.yuck".text = ''
# Color scheme
(include ${base16-eww})
programs.eww-hyprland = {
enable = true;
autoReload = true;
extraConfig = ''
; Color scheme
(include "${base16-eww}")
# My widgets
(include ${widgets}/dashboard)
'';
; My widgets
(include "${widgets}/bar.yuck")
'';
};
}

View file

@ -0,0 +1,84 @@
(defwindow bar
:monitor 0
:stacking "fg"
:focusable false
:exclusive true
:geometry (geometry
:width "80px"
:height "96%"
:x "20px"
:anchor "center left")
(bar-layout))
(defwidget bar-layout []
(centerbox
:orientation "v"
:style "background:transparent"
(bar-start)
(bar-center)
(bar-end)))
(defwidget bar-start []
(box
:orientation "v"
:valign "start"
(workspaces)))
(defwidget bar-center []
(box
:orientation "v"
:valign "fill"
:space-evenly false
:style "background:blue"
(time)
(date)))
(defwidget bar-end []
(box
:orientation "v"
:valign "end"
:style "background:red"
:height 400
:spacing 20
(volume)
(battery)
(cpu-usage)))
(defwidget workspaces []
(box
:class "workspaces"
:orientation "v"
:space-evenly true
:spacing 10
(button 1)
(button 2)
(button 3)
(button 4)
(button 5)
(button 6)))
(defwidget date []
(label :text "today"))
(defwidget time []
(label :text "time"))
(defwidget volume []
(circular-progress
:orientation "v"
:value 60
:thickness 5))
(defwidget battery []
(circular-progress
:orientation "v"
:value 60
:thickness 5))
(defwidget cpu-usage []
(circular-progress
:orientation "v"
:value 60
:thickness 5))

View file

@ -1,12 +0,0 @@
(defwindow dashboard
:stacking "bg"
; :windowtype "normal"
:wm-ignore false
:reserve (struts :distance "40px" :side "left")
:geometry (geometry
:width "40px"
:height "100%")
(dashboard_layout))
(defwidget dashboard_layout []
(label :text "A"))

View file

@ -16,8 +16,7 @@ in
programs.spicetify = {
enable = true;
theme = themeMap.${config.lib.stylix.scheme.scheme}
or themeMap.default.${config.stylix.polarity};
theme = config.satellite.theming.get themeMap;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplayMod

View file

@ -1,12 +1,13 @@
# Common wayland stuff
{ lib, pkgs, upkgs, inputs, ... }: {
{ lib, pkgs, upkgs, ... }: {
imports = [
./wofi.nix
./dunst.nix
./wlsunset.nix
./wlogout.nix
../desktop/wezterm # Default hyprland terminal
../desktop/batsignal.nix
../desktop/eww
];
# Makes some stuff run on wayland (?)

View file

@ -21,9 +21,13 @@ decoration {
contrast = 1
brightness = 1.2
noise = 0.05
xray = true
}
}
# Blur eww widgets
blurls=gtk-layer-shell
input {
kb_layout = us
@ -49,6 +53,7 @@ misc {
# Execute apps at launch
exec-once = wezterm & firefox & discocss & spotify & obsidian
# {{{ Window rules
# {{{ Automatically move stuff to workspaces
windowrulev2 = workspace 2 silent, title:^(.*Firefox.*)$

View file

@ -0,0 +1,45 @@
{ config
, pkgs
, ...
}:
let bgImageSection = name: ''
#${name} {
background-image: image(url("${pkgs.wlogout}/share/wlogout/icons/${name}.png"));
}
'';
in
{
xdg.configFile."wlogout/style.css".text = ''
* {
background-image: none;
font-family: ${config.stylix.fonts.sansSerif.name};
}
window {
background-color: rgba(${config.satellite.theming.colors.rgba "base00"});
}
button {
color: rgb(${config.satellite.theming.colors.rgb "base05"});
background: rgba(${config.satellite.theming.colors.rgb "base01"}, 0.2);
border-radius: 8px;
box-shadow: .5px .5px 1.5px 1.5px rgba(0, 0, 0, .5);
margin: 1rem;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:focus, button:active, button:hover {
background-color: rgba(${config.satellite.theming.colors.rgb "base02"}, 0.5);
outline-style: none;
}
${bgImageSection "lock"}
${bgImageSection "logout"}
${bgImageSection "suspend"}
${bgImageSection "hibernate"}
${bgImageSection "shutdown"}
${bgImageSection "reboot"}
'';
}

View file

@ -1,6 +1,5 @@
{ pkgs, ... }: {
imports = [
../desktop/eww
../desktop/batsignal.nix
./rofi
./polybar

View file

@ -3,4 +3,5 @@
{
# example = import ./example.nix;
lua-colorscheme = import ./lua-colorscheme.nix;
theming = import ./theming.nix;
}

View file

@ -0,0 +1,61 @@
# Additional theming primitives not provided by stylix
{ lib, config, ... }:
let cfg = config.satellite.theming;
in
{
options.satellite.theming = {
transparency = {
enable = lib.mkEnableOption "transparency for desktop apps";
value = lib.mkOption {
description = "How transparent windows should be by default";
example = 0.6;
type = lib.types.float;
};
};
get = lib.mkOption {
# No generics:(
# The type of this is essentially (written in pseudocode):
#
# Record<String, T>
# & { default?: T
# | {light?: T, dark?: T } }
# -> Option<T>
type = lib.types.functionTo lib.types.anything;
description = "Index a theme map by the current theme";
};
colors = {
rgb = lib.mkOption {
type = lib.types.functionTo lib.types.str;
description = "Returns comma separated rgb values for a color. To be used in css files:)";
};
rgba = lib.mkOption {
type = lib.types.functionTo lib.types.str;
description = ''
Returns comma separated rgba values for a color.
The transparency is taken from `options.satellite.theming.transparency`.
'';
};
};
};
config.satellite.theming = {
transparency.enable = cfg.transparency.value < 1.0;
get = themeMap:
themeMap.${config.lib.stylix.scheme.scheme}
or themeMap.default.${config.stylix.polarity or "dark"}
or themeMap.default
or (throw "Theme ${config.lib.stylix.scheme.scheme} not found in theme map!");
colors.rgb = color: builtins.concatStringsSep "," [
config.lib.stylix.scheme."${color}-rgb-r"
config.lib.stylix.scheme."${color}-rgb-g"
config.lib.stylix.scheme."${color}-rgb-b"
];
colors.rgba = color: "${cfg.colors.rgb color},${toString cfg.transparency.value}";
};
}

View file

@ -8,6 +8,7 @@
monitors = import ./monitors.nix;
satellite-dev = import ./satellite-dev.nix;
satellite-persistence = import ./persistence.nix;
eww-hyprland = import ./eww-hyprland.nix;
# Should upstream
discord = import ./discord.nix;

View file

@ -0,0 +1,71 @@
{ config
, pkgs
, lib
, ...
}:
let
reload_script = pkgs.writeShellScript "reload_eww" ''
systemctl --user restart eww.service
'';
cfg = config.programs.eww-hyprland;
in
{
options.programs.eww-hyprland = {
enable = lib.mkEnableOption "eww Hyprland config";
package = lib.mkOption {
type = lib.types.nullOr lib.types.package;
default = pkgs.eww-wayland;
defaultText = lib.literalExpression "pkgs.eww-wayland";
description = "Eww package to use.";
};
autoReload = lib.mkOption {
type = lib.types.bool;
default = false;
defaultText = lib.literalExpression "false";
description = "Whether to restart the eww daemon and windows on change.";
};
dependencies = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [ ];
defaultText = lib.literalExpression "[]";
description = "Extra packages eww should have access to.";
};
extraConfig = lib.mkOption {
type = lib.types.lines;
default = null;
description = "Extra configuration for eww.";
};
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
# remove nix files
xdg.configFile."eww/eww.yuck" = {
text = cfg.extraConfig or "";
onChange =
if cfg.autoReload
then reload_script.outPath
else "";
};
systemd.user.services.eww = {
Unit = {
Description = "Eww Daemon";
PartOf = [ "graphical-session.target" ];
};
Service = {
Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath cfg.dependencies}";
ExecStart = "${cfg.package}/bin/eww daemon --no-daemonize";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
}