refactor some things, might have broken everything
This commit is contained in:
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 797 KiB After Width: | Height: | Size: 797 KiB |
11
homeConfigs/global/alacritty.nix
Normal file
11
homeConfigs/global/alacritty.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ ... }:
|
||||
{
|
||||
catppuccin.alacritty.enable = true;
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
env.XTERM = "xterm-256color";
|
||||
font.size = 9;
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -2,7 +2,8 @@
|
||||
{
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
autoEnable = false;
|
||||
|
||||
flavor = "mocha";
|
||||
|
||||
dunst.enable = true;
|
||||
@ -29,7 +30,7 @@
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/wallpaper.png".source = lib.mkDefault ../utils/wallpaper.png;
|
||||
".config/lock_screen.jpg".source = lib.mkDefault ../utils/lock_screen.jpg;
|
||||
".config/wallpaper.png".source = lib.mkDefault ../assets/wallpaper.png;
|
||||
".config/lock_screen.jpg".source = lib.mkDefault ../assets/lock_screen.jpg;
|
||||
};
|
||||
}
|
||||
|
||||
13
homeConfigs/global/firefox.nix
Normal file
13
homeConfigs/global/firefox.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
catppuccin.firefox.enable = true;
|
||||
programs.firefox.configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
|
||||
[vimium ublock-origin];
|
||||
extensions.force = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
11
homeConfigs/global/game.nix
Normal file
11
homeConfigs/global/game.nix
Normal file
@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
lutris
|
||||
mangohud
|
||||
moonlight-qt
|
||||
prismlauncher
|
||||
|
||||
r2modman
|
||||
];
|
||||
}
|
||||
25
homeConfigs/global/git.nix
Normal file
25
homeConfigs/global/git.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
signing.format = "openpgp";
|
||||
settings = {
|
||||
user.email = "tomoron@student.42angouleme.fr";
|
||||
user.name = "tomoron";
|
||||
init.defaultBranch="master";
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
rerere.enabled = true;
|
||||
help.autocorrect = 1;
|
||||
|
||||
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
|
||||
commit.gpgsign = true;
|
||||
|
||||
alias = {
|
||||
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
|
||||
back = "reset HEAD~";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
6
homeConfigs/global/minimal/other.nix
Normal file
6
homeConfigs/global/minimal/other.nix
Normal file
@ -0,0 +1,6 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
catppuccin.enable = lib.mkDefault false;
|
||||
catppuccin.autoEnable = lib.mkDefault false;
|
||||
}
|
||||
30
homeConfigs/global/minimal/packages.nix
Normal file
30
homeConfigs/global/minimal/packages.nix
Normal file
@ -0,0 +1,30 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# packages.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||
# Updated: 2026/06/14 19:11:25 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ pkgs, ...}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
lrzip
|
||||
git
|
||||
lm_sensors
|
||||
wget
|
||||
curl
|
||||
man-pages
|
||||
ffmpeg-full
|
||||
nix-index
|
||||
sops
|
||||
screen
|
||||
btop
|
||||
htop
|
||||
];
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
{ homeDir, ... }:
|
||||
|
||||
{
|
||||
home.shell.enableBashIntegration = true;
|
||||
home.shellAliases = {
|
||||
@ -6,7 +7,6 @@
|
||||
grep = "grep --color=auto";
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
hl = "Hyprland";
|
||||
clr = "clear";
|
||||
noidle = "systemctl --user stop hypridle";
|
||||
};
|
||||
@ -24,4 +24,17 @@
|
||||
historyIgnore = [ "ls" "cd" "exit" ];
|
||||
shellOptions = [ "cdspell" "autocd"];
|
||||
};
|
||||
|
||||
programs.bash.bashrcExtra = ''
|
||||
cd() {
|
||||
builtin cd "$@"
|
||||
echo -n "$PWD" > ~/.last_directory
|
||||
}
|
||||
|
||||
|
||||
if [ -f ~/.last_directory ] && [ -n "$PS1" ];then
|
||||
echo "going to $(cat ~/.last_directory)"
|
||||
builtin cd "$(cat ~/.last_directory)"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
213
homeConfigs/global/minimal/vim.nix
Normal file
213
homeConfigs/global/minimal/vim.nix
Normal file
@ -0,0 +1,213 @@
|
||||
# **************************************************************************** #
|
||||
# #
|
||||
# ::: :::::::: #
|
||||
# vim.nix :+: :+: :+: #
|
||||
# +:+ +:+ +:+ #
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2026/06/14 19:22:40 by tomoron #+# #+# #
|
||||
# Updated: 2026/06/14 19:32:07 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{pkgs, ...}:
|
||||
|
||||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
withPython3 = false;
|
||||
withRuby = false;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
ripgrep
|
||||
];
|
||||
|
||||
programs.neovim.initLua= ''
|
||||
local cmp = require'cmp'
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end,
|
||||
},
|
||||
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
}),
|
||||
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
|
||||
local _99 = require("99")
|
||||
|
||||
local cwd = vim.uv.cwd()
|
||||
local basename = vim.fs.basename(cwd)
|
||||
_99.setup({
|
||||
provider = _99.Providers.OpenCodeProvider,
|
||||
model = "ollama/gemma4:26b",
|
||||
logger = {
|
||||
level = _99.DEBUG,
|
||||
path = "/home/tom/99logs/" .. basename .. ".99.debug",
|
||||
print_on_error = true,
|
||||
},
|
||||
tmp_dir = "./tmp",
|
||||
|
||||
--- Completions: #rules and @files in the prompt buffer
|
||||
completion = {
|
||||
--- Configure @file completion (all fields optional, sensible defaults)
|
||||
files = {
|
||||
-- enabled = true,
|
||||
-- max_file_size = 102400, -- bytes, skip files larger than this
|
||||
-- max_files = 5000, -- cap on total discovered files
|
||||
-- exclude = { ".env", ".env.*", "node_modules", ".git", ... },
|
||||
},
|
||||
--- File Discovery:
|
||||
|
||||
source = "cmp", -- "native" (default), "cmp", or "blink"
|
||||
},
|
||||
|
||||
md_files = {
|
||||
-- "AGENT.md",
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("v", "<leader>9v", function()
|
||||
_99.visual()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9x", function()
|
||||
_99.stop_all_requests()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9s", function()
|
||||
_99.search()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9m", function()
|
||||
require("99.extensions.telescope").select_model()
|
||||
end)
|
||||
'';
|
||||
|
||||
programs.neovim.extraConfig = ''
|
||||
set number
|
||||
set ai
|
||||
autocmd BufWinLeave *.* mkview
|
||||
autocmd BufWinEnter *.* silent! loadview
|
||||
set tabstop=4
|
||||
set scrolloff=10
|
||||
set smartindent
|
||||
set shiftwidth=4
|
||||
map <silent> <C-N> :bnext<CR>
|
||||
map <silent> <C-P> :bprevious<CR>
|
||||
nmap <silent> <c-k> :wincmd k<CR>
|
||||
nmap <silent> <c-j> :wincmd j<CR>
|
||||
nmap <silent> <c-h> :wincmd h<CR>
|
||||
nmap <silent> <c-l> :wincmd l<CR>
|
||||
set hidden
|
||||
set path +=**
|
||||
set wildmenu
|
||||
set wildignore+=**/node_modules/**
|
||||
|
||||
let mapleader=";"
|
||||
|
||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
\| PlugInstall --sync
|
||||
\| endif
|
||||
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
Plug 'bling/vim-bufferline'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
Plug 'andweeb/presence.nvim'
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'bluz71/vim-nightfly-colors'
|
||||
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
|
||||
Plug 'tikhomirov/vim-glsl'
|
||||
Plug 'lambdalisue/nerdfont.vim'
|
||||
Plug 'lambdalisue/glyph-palette.vim'
|
||||
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
|
||||
Plug 'lambdalisue/fern-git-status.vim'
|
||||
Plug 'lambdalisue/fern.vim'
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
Plug 'ThePrimeagen/99'
|
||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||
Plug 'hrsh7th/cmp-buffer'
|
||||
Plug 'hrsh7th/cmp-path'
|
||||
Plug 'hrsh7th/cmp-cmdline'
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
|
||||
Plug 'hrsh7th/cmp-vsnip'
|
||||
Plug 'hrsh7th/vim-vsnip'
|
||||
call plug#end()
|
||||
|
||||
colorscheme catppuccin-mocha
|
||||
|
||||
set signcolumn=auto
|
||||
|
||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
||||
nnoremap <leader>fi <cmd>Fern %:h<cr>
|
||||
|
||||
let g:user42 = 'tomoron'
|
||||
let g:mail42 = 'tomoron@student.42angouleme.fr'
|
||||
let g:fern#renderer = "nerdfont"
|
||||
'';
|
||||
|
||||
home.file = {
|
||||
#install plug.vim
|
||||
".local/share/nvim/site/autoload/plug.vim".source = "${fetchGit {
|
||||
url = "https://github.com/junegunn/vim-plug";
|
||||
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
|
||||
ref = "master";
|
||||
}}/plug.vim";
|
||||
|
||||
#install stdheader 42
|
||||
".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
|
||||
url = "https://github.com/42Paris/42header";
|
||||
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
|
||||
ref = "master";
|
||||
}}/plugin/stdheader.vim";
|
||||
|
||||
};
|
||||
}
|
||||
@ -6,36 +6,28 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2025/02/09 22:01:56 by tomoron #+# #+# #
|
||||
# Updated: 2026/06/11 16:36:57 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/15 01:56:12 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
{ pkgs, inputs, ...}:
|
||||
{ pkgs, ...}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
lrzip
|
||||
pigz
|
||||
htop
|
||||
gnumake
|
||||
git
|
||||
fastfetch
|
||||
clang
|
||||
ninja
|
||||
gdb
|
||||
valgrind
|
||||
wget
|
||||
cmake
|
||||
man-pages
|
||||
stress
|
||||
ffmpeg-full
|
||||
ripgrep
|
||||
|
||||
activate-linux
|
||||
unison
|
||||
brightnessctl
|
||||
playerctl
|
||||
vlc
|
||||
nix-index
|
||||
yubikey-manager
|
||||
bibata-cursors
|
||||
libcaca
|
||||
@ -43,9 +35,13 @@
|
||||
nerd-fonts.iosevka
|
||||
compiledb
|
||||
yubikey-personalization
|
||||
sops
|
||||
libreoffice
|
||||
doxygen
|
||||
qimgv
|
||||
acpi
|
||||
|
||||
discord
|
||||
google-chrome
|
||||
localsend
|
||||
];
|
||||
}
|
||||
@ -5,7 +5,7 @@
|
||||
theme = "rounded-nord-dark";
|
||||
};
|
||||
|
||||
home.file.".local/share/rofi/themes".source = "${builtins.fetchGit {
|
||||
home.file.".local/share/rofi/themes".source = "${fetchGit {
|
||||
url = "https://github.com/newmanls/rofi-themes-collection";
|
||||
rev = "c8239a45edced3502894e1716a8b661fdea8f1c9";
|
||||
ref = "master";
|
||||
|
||||
58
homeConfigs/global/vim.nix
Normal file
58
homeConfigs/global/vim.nix
Normal file
@ -0,0 +1,58 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
clang-tools
|
||||
nixd
|
||||
nodejs_24
|
||||
glsl_analyzer
|
||||
opencode
|
||||
(pkgs.python3.withPackages (ps: with ps; [
|
||||
python-lsp-server
|
||||
pylsp-mypy
|
||||
python-lsp-ruff
|
||||
pycodestyle
|
||||
]))
|
||||
];
|
||||
|
||||
programs.neovim.initLua= ''
|
||||
vim.lsp.enable('clangd')
|
||||
vim.lsp.config('clangd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('nixd')
|
||||
vim.lsp.config('nixd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('glsl_analyzer')
|
||||
vim.lsp.config('glsl_analyzer', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('pylsp')
|
||||
vim.lsp.config('pylsp', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('rust_analyzer')
|
||||
vim.lsp.config('rust_analyzer', {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
cargo = {
|
||||
features = "all"
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_lines = {
|
||||
current_line = true
|
||||
}
|
||||
})
|
||||
'';
|
||||
|
||||
}
|
||||
27
homeConfigs/global/wayland/hypridle.nix
Normal file
27
homeConfigs/global/wayland/hypridle.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
home.shellAliases.noidle = "systemctl --user stop hypridle";
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general.lock_cmd = "hyprlock";
|
||||
general.before_sleep_cmd = "loginctl lock-session";
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "brightnessctl -s set 0";
|
||||
on-resume = "brightnessctl -r";
|
||||
}
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 1800;
|
||||
on-timeout = "systemctl suspend";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
180
homeConfigs/global/wayland/hyprland.nix
Normal file
180
homeConfigs/global/wayland/hyprland.nix
Normal file
@ -0,0 +1,180 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
|
||||
|
||||
programs.hyprshot.enable = true;
|
||||
catppuccin.hyprland.enable = false;
|
||||
|
||||
home.shellAliases.hl = "Hyprland";
|
||||
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.configType = "hyprlang";
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
" , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||
" SHIFT, Print, exec, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||
"$mainMod, Return, exec, alacritty"
|
||||
"CTRL_ALT, Q, killactive,"
|
||||
"CTRL_ALT_SHIFT, Q, forcekillactive,"
|
||||
"SUPER_ALT, Q, exit,"
|
||||
"$mainMod, S, togglefloating,"
|
||||
"$mainMod, I, pin,"
|
||||
"$mainMod, D, exec, rofi -show drun -show-icons"
|
||||
"$mainMod SHIFT, D, exec, rofi -show run -show-icons"
|
||||
"$mainMod, M, fullscreen, 1"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
|
||||
# Move focus
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
|
||||
#swap windows
|
||||
"$mainMod SHIFT, h, swapwindow, l"
|
||||
"$mainMod SHIFT, l, swapwindow, r"
|
||||
"$mainMod SHIFT, k, swapwindow, u"
|
||||
"$mainMod SHIFT, j, swapwindow, d"
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
];
|
||||
|
||||
bindm = [ #bind mouse
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel = [ #repeat and locked
|
||||
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
" ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
" ,XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||
" ,XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||
" ,XF86KbdBrightnessUp, exec, asusctl -n"
|
||||
" ,XF86KbdBrightnessDown, exec, asusctl -p"
|
||||
];
|
||||
|
||||
bindl = [ #repeat
|
||||
" , XF86AudioNext, exec, playerctl next"
|
||||
" , XF86AudioPrev, exec, playerctl previous"
|
||||
" , XF86AudioPause, exec, playerctl play-pause"
|
||||
" , XF86AudioPlay, exec, playerctl play-pause"
|
||||
"$mainMod, n, exec, playerctl next"
|
||||
"$mainMod, p, exec, playerctl previous"
|
||||
"$mainMod, o, exec, playerctl play-pause"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
#ignore maximize requests
|
||||
"suppressevent maximize, class:.*"
|
||||
#fix dragging issues with xwayland
|
||||
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "fr";
|
||||
kb_variant = "us";
|
||||
follow_mouse = 2;
|
||||
kb_options = "caps:none";
|
||||
touchpad.natural_scroll = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 1;
|
||||
disable_hyprland_logo = true;
|
||||
mouse_move_focuses_monitor = false;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"easeInOut, 0.77, 0, 0.175, 1"
|
||||
"easeOut, 0.24, 0.66, 0.04, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, 2, easeInOut"
|
||||
"windowsIn, 1, 2, easeInOut, slide"
|
||||
"windowsOut, 1, 2, easeInOut, slide"
|
||||
"fade, 1, 2, easeInOut"
|
||||
"workspaces, 1, 2, easeOut"
|
||||
];
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 5;
|
||||
border_size = 1;
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
layerrule = {
|
||||
name = "no_anim_for_selection";
|
||||
no_anim = "on";
|
||||
"match:namespace" = "selection";
|
||||
};
|
||||
|
||||
cursor.no_warps = true;
|
||||
|
||||
env = [
|
||||
"HYPRCURSOR_SIZE,17"
|
||||
"HYPRCURSOR_THEME,bibata-modern-classic"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"swaybg -i ~/.config/wallpaper.png&"
|
||||
"(sleep 2;activate-linux)&"
|
||||
"waybar&"
|
||||
"alacritty&"
|
||||
];
|
||||
};
|
||||
}
|
||||
32
homeConfigs/global/wayland/hyprlock.nix
Normal file
32
homeConfigs/global/wayland/hyprlock.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.hyprlock.enable = true;
|
||||
|
||||
catppuccin.hyprlock.enable = false;
|
||||
|
||||
programs.hyprlock.settings = {
|
||||
general = {
|
||||
no_fade_out = true;
|
||||
ignore_empty_input = false;
|
||||
};
|
||||
|
||||
background = {
|
||||
monitor = "";
|
||||
path = "~/.config/lock_screen.jpg";
|
||||
};
|
||||
|
||||
input-field = {
|
||||
monitor = "";
|
||||
size = "300, 50";
|
||||
dot_size = "0.2";
|
||||
dots_fade_time = 100;
|
||||
inner_color = "rgb(139,89,100)";
|
||||
outer_color = "rgb(139,89,100)";
|
||||
outline_thickness = 1;
|
||||
|
||||
fail_transition = "300";
|
||||
fail_text = "learn to write, idiot";
|
||||
};
|
||||
};
|
||||
}
|
||||
10
homeConfigs/global/wayland/packages.nix
Normal file
10
homeConfigs/global/wayland/packages.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swaybg
|
||||
];
|
||||
}
|
||||
161
homeConfigs/global/wayland/waybar.nix
Normal file
161
homeConfigs/global/wayland/waybar.nix
Normal file
@ -0,0 +1,161 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
programs.waybar.enable = true;
|
||||
programs.waybar.style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Iosevka Nerd Font";
|
||||
font-size: 15px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#window {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background: transparent;
|
||||
color: white;
|
||||
border-top: 2px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #c9545d;
|
||||
border-top: 2px solid #c9545d;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color : #88ff88;
|
||||
background-color : rgba(220,255, 220, 0.3)
|
||||
}
|
||||
|
||||
#mode {
|
||||
background: #64727D;
|
||||
border-bottom: 3px solid white;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #f53c3c;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: #ff2222;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #ff2222;
|
||||
}
|
||||
#cpu.high {
|
||||
color: #ff2222;
|
||||
}
|
||||
#disk.high {
|
||||
color: #ff2222;
|
||||
}
|
||||
'';
|
||||
|
||||
programs.waybar.settings.mainBar = {
|
||||
layer = "top";
|
||||
position ="top";
|
||||
height = 24;
|
||||
margin-left = 5;
|
||||
margin-right = 5;
|
||||
modules-left = ["hyprland/workspaces" "custom/music"];
|
||||
modules-center = ["hyprland/window"];
|
||||
modules-right = ["disk" "pulseaudio" "network" "custom/pipe" "cpu" "custom/pipe" "temperature" "custom/pipe" "memory" "battery" "clock"];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = false;
|
||||
format = "{id}";
|
||||
};
|
||||
|
||||
clock = {
|
||||
interval = 1;
|
||||
format-alt = " {:%Y-%m-%d}";
|
||||
format = " {:%H:%M:%S}";
|
||||
};
|
||||
|
||||
cpu = {
|
||||
format = " {usage}% ";
|
||||
states.high = 80;
|
||||
interval = 5;
|
||||
};
|
||||
|
||||
memory = {
|
||||
format = " {}% |";
|
||||
interval = 5;
|
||||
};
|
||||
|
||||
battery = {
|
||||
bat = "BAT0";
|
||||
full-at = 79;
|
||||
states = {
|
||||
good = 20;
|
||||
critical = 15;
|
||||
};
|
||||
format-time = " {H}:{m}";
|
||||
format-discharging = " {icon} {capacity}%{time} |";
|
||||
format-charging = " {capacity}%{time} |";
|
||||
format-plugged = "";
|
||||
format-icons = [" " " " " " " " " "];
|
||||
interval = 10;
|
||||
};
|
||||
|
||||
network = {
|
||||
format-wifi = " {icon} {essid} ";
|
||||
format-ethernet = " {ifname}: {ipaddr}/{cidr} ";
|
||||
format-disconnected = " ⚠ Disconnected ";
|
||||
format-icons =[" " " " " " " "];
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = " {icon}{volume}% |";
|
||||
format-bluetooth = " {icon} {volume}% |";
|
||||
format-muted = "";
|
||||
format-icons = {
|
||||
headphones = " ";
|
||||
handsfree = " ";
|
||||
headset = " ";
|
||||
phone = " ";
|
||||
portable = " ";
|
||||
car = " ";
|
||||
default = [" " " " " "];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
|
||||
temperature = {
|
||||
thermal-zone = 0;
|
||||
critical-threshold = 80;
|
||||
interval = 5;
|
||||
format =" {icon} {temperatureC}°C ";
|
||||
format-icons = ["" "" "" "" ""];
|
||||
};
|
||||
|
||||
disk = {
|
||||
format =" {percentage_used}% |";
|
||||
states.high = "5";
|
||||
};
|
||||
|
||||
"custom/pipe" = {
|
||||
format = "|";
|
||||
};
|
||||
|
||||
"custom/music" = {
|
||||
exec-if = "playerctl metadata 2>&1 >/dev/null";
|
||||
exec = "playerctl metadata --format ' {{ artist }} - {{title}}'";
|
||||
interval = 1;
|
||||
interval-if = 5;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
# By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ #
|
||||
# +#+#+#+#+#+ +#+ #
|
||||
# Created: 2024/10/17 18:15:38 by tomoron #+# #+# #
|
||||
# Updated: 2026/05/18 13:22:43 by tomoron ### ########.fr #
|
||||
# Updated: 2026/06/15 01:53:27 by tomoron ### ########.fr #
|
||||
# #
|
||||
# **************************************************************************** #
|
||||
|
||||
@ -16,15 +16,14 @@ username ? "tom",
|
||||
homeDir ? "/home/tom",
|
||||
isOs ? false,
|
||||
configSops ? true,
|
||||
minimal,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = lib.concatLists [
|
||||
[ ./packages.nix ]
|
||||
(lib.fileset.toList ./modules)
|
||||
(lib.fileset.toList ./global)
|
||||
];
|
||||
imports = (lib.fileset.toList ./modules)
|
||||
++ (lib.lists.optionals minimal (lib.fileset.toList ./global/minimal))
|
||||
++ (lib.lists.optionals (!minimal) (lib.fileset.toList ./global));
|
||||
|
||||
home.username = lib.mkIf (!isOs) "${username}";
|
||||
home.homeDirectory = lib.mkIf (!isOs) "${homeDir}";
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
mods.game.enable = false;
|
||||
mods.hyprland.enable = false;
|
||||
mods.x11.enable = true;
|
||||
programs.firefox.enable = false;
|
||||
|
||||
services.picom = {
|
||||
backend = "xrender";
|
||||
settings = {
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
mods.x11.enable = true;
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor = [
|
||||
"DP-2, 1920x1080@60Hz, -1920x0, auto"
|
||||
@ -23,6 +22,4 @@
|
||||
cursor.no_hardware_cursors = true;
|
||||
misc.vrr = 1;
|
||||
};
|
||||
|
||||
mods.hyprland.autoSuspend = false;
|
||||
}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
mods.nonChromium.enable = false;
|
||||
}
|
||||
|
||||
@ -27,13 +27,7 @@
|
||||
", XF86Launch1, exec, hyprlock"
|
||||
", XF86Launch4, exec, pkill activate-linux"
|
||||
];
|
||||
bindl = [
|
||||
# ",switch:off:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, 1920x1080@120, 0x0, 1\""
|
||||
# ",switch:on:Lid Switch,exec,hyprctl keyword monitor \"eDP-1, disable\""
|
||||
|
||||
];
|
||||
monitor= [
|
||||
# "eDP-1, modeline 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync, 0x0, 1"
|
||||
"eDP-1, 1920x1080@120, 0x0, 1"
|
||||
"HDMI-A-1, 1920x1080@60, auto, auto"
|
||||
];
|
||||
@ -43,8 +37,6 @@
|
||||
home.packages = with pkgs; [
|
||||
blender
|
||||
wireshark
|
||||
localsend
|
||||
impala
|
||||
];
|
||||
|
||||
services.mpris-proxy.enable = true;
|
||||
|
||||
@ -1,12 +1,4 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
mods.bash.goback = false;
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor= [
|
||||
"virt-1, 1920x1080@60, 0x0, 1.0"
|
||||
];
|
||||
|
||||
env = ["WLR_BACKENDS,headless"];
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
options.mods.alacritty.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "install and config alacritty";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.alacritty.enable {
|
||||
catppuccin.alacritty.enable = true;
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# window.opacity = 0.95;
|
||||
env.XTERM = "xterm-256color";
|
||||
font.size = 9;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
{ lib, config, ...}:
|
||||
|
||||
{
|
||||
options.mods.bash.goback = lib.mkOption{
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "go back to last cd when starting bash";
|
||||
};
|
||||
|
||||
config.programs.bash.bashrcExtra = lib.mkIf config.mods.bash.goback ''
|
||||
cd() {
|
||||
builtin cd "$@"
|
||||
echo -n "$PWD" > ~/.last_directory
|
||||
}
|
||||
[ -z "\$${PS1:-}" ] && return
|
||||
|
||||
if [ -f ~/.last_directory ];then
|
||||
echo -n going to
|
||||
cat ~/.last_directory
|
||||
echo
|
||||
builtin cd "$(cat ~/.last_directory)"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
{ config, lib, inputs, ... }:
|
||||
|
||||
{
|
||||
options.mods.firefox.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "install and configure firefox";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.firefox.enable {
|
||||
catppuccin.firefox.enable = true;
|
||||
programs.firefox.configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||
programs.firefox = {
|
||||
enable = lib.mkDefault true;
|
||||
profiles.default = {
|
||||
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux";
|
||||
[vimium ublock-origin];
|
||||
extensions.force = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.game.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "install packages for games (except steam , it's installed systemwide)";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.game.enable {
|
||||
home.packages = with pkgs;[
|
||||
lutris
|
||||
mangohud
|
||||
moonlight-qt
|
||||
prismlauncher
|
||||
|
||||
r2modman
|
||||
];
|
||||
};
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
options.mods.git.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "git configuration";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.git.enable {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
signing.format = "openpgp";
|
||||
settings = {
|
||||
user.email = "tomoron@student.42angouleme.fr";
|
||||
user.name = "tomoron";
|
||||
init.defaultBranch="master";
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
rerere.enabled = true;
|
||||
help.autocorrect = 1;
|
||||
|
||||
user.signingkey = "251B4BD73683A8DF13D760A868BFAFE31DF313AD";
|
||||
commit.gpgsign = true;
|
||||
|
||||
alias = {
|
||||
fuck = "!f() { git reset --hard \"@{upstream}\" && git restore . && git clean -f .; };f";
|
||||
back = "reset HEAD~";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.nonChromium.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "all chromium/electron based application can't be built by act-runner, so they can't be in the iso";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.nonChromium.enable {
|
||||
home.packages = with pkgs;[
|
||||
discord
|
||||
google-chrome
|
||||
];
|
||||
};
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
{ lib, config, ... }:
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
defPathLst = ["desktop" "42_desktop" "Downloads"];
|
||||
@ -41,15 +41,18 @@ in
|
||||
description = "hostname used by unison";
|
||||
};
|
||||
};
|
||||
|
||||
config.home.file.".unison/default.prf" = lib.mkIf config.mods.sync.enable {
|
||||
text = (lib.strings.concatStrings [''
|
||||
auto=true
|
||||
root=${config.mods.sync.homeFolder}
|
||||
root=ssh://tom@d.tmoron.fr:1880/${config.mods.sync.destFolder}
|
||||
''
|
||||
(lib.strings.concatMapStrings (x: "\npath=" + x) (( if config.mods.sync.defaultSynced then defPathLst else [] ) ++ config.mods.sync.syncedAdditions ))
|
||||
(if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "")
|
||||
]);
|
||||
config = lib.mkIf config.mods.sync.enable {
|
||||
|
||||
home.packages = with pkgs;[ unison ];
|
||||
home.file.".unison/default.prf" = {
|
||||
text = (lib.strings.concatStrings [''
|
||||
auto=true
|
||||
root=${config.mods.sync.homeFolder}
|
||||
root=ssh://tom@d.tmoron.fr:1880/${config.mods.sync.destFolder}
|
||||
''
|
||||
(lib.strings.concatMapStrings (x: "\npath=" + x) (( if config.mods.sync.defaultSynced then defPathLst else [] ) ++ config.mods.sync.syncedAdditions ))
|
||||
(if !(isNull config.mods.sync.customHostName) then "\nclientHostName=${config.mods.sync.customHostName}" else "")
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -1,275 +0,0 @@
|
||||
{config, lib, pkgs, ...}:
|
||||
|
||||
{
|
||||
options.mods.vim.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "install and configure vim";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.vim.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
withPython3 = false;
|
||||
withRuby = false;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
clang-tools
|
||||
nixd
|
||||
nodejs_24
|
||||
glsl_analyzer
|
||||
opencode
|
||||
(pkgs.python3.withPackages (ps: with ps; [
|
||||
python-lsp-server
|
||||
pylsp-mypy
|
||||
python-lsp-ruff
|
||||
pycodestyle
|
||||
]))
|
||||
];
|
||||
|
||||
# programs.neovim.extraLuaConfig = ''
|
||||
# vim.lsp.config('pylsp', {})
|
||||
# '';
|
||||
|
||||
|
||||
programs.neovim.initLua= ''
|
||||
local cmp = require'cmp'
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
|
||||
end,
|
||||
},
|
||||
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
}),
|
||||
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'vsnip' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
|
||||
-- Set configuration for specific filetype.
|
||||
--[[ cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'git' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
require("cmp_git").setup() ]]--
|
||||
|
||||
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
|
||||
vim.lsp.enable('clangd')
|
||||
vim.lsp.config('clangd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('nixd')
|
||||
vim.lsp.config('nixd', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('glsl_analyzer')
|
||||
vim.lsp.config('glsl_analyzer', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('pylsp')
|
||||
vim.lsp.config('pylsp', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.enable('rust_analyzer')
|
||||
vim.lsp.config('rust_analyzer', {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
cargo = {
|
||||
features = "all"
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_lines = {
|
||||
current_line = true
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
local _99 = require("99")
|
||||
|
||||
local cwd = vim.uv.cwd()
|
||||
local basename = vim.fs.basename(cwd)
|
||||
_99.setup({
|
||||
provider = _99.Providers.OpenCodeProvider,
|
||||
model = "ollama/gemma4:26b",
|
||||
logger = {
|
||||
level = _99.DEBUG,
|
||||
path = "/home/tom/99logs/" .. basename .. ".99.debug",
|
||||
print_on_error = true,
|
||||
},
|
||||
tmp_dir = "./tmp",
|
||||
|
||||
--- Completions: #rules and @files in the prompt buffer
|
||||
completion = {
|
||||
--- Configure @file completion (all fields optional, sensible defaults)
|
||||
files = {
|
||||
-- enabled = true,
|
||||
-- max_file_size = 102400, -- bytes, skip files larger than this
|
||||
-- max_files = 5000, -- cap on total discovered files
|
||||
-- exclude = { ".env", ".env.*", "node_modules", ".git", ... },
|
||||
},
|
||||
--- File Discovery:
|
||||
|
||||
source = "cmp", -- "native" (default), "cmp", or "blink"
|
||||
},
|
||||
|
||||
md_files = {
|
||||
-- "AGENT.md",
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("v", "<leader>9v", function()
|
||||
_99.visual()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9x", function()
|
||||
_99.stop_all_requests()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9s", function()
|
||||
_99.search()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>9m", function()
|
||||
require("99.extensions.telescope").select_model()
|
||||
end)
|
||||
'';
|
||||
|
||||
programs.neovim.extraConfig = ''
|
||||
set number
|
||||
set ai
|
||||
autocmd BufWinLeave *.* mkview
|
||||
autocmd BufWinEnter *.* silent! loadview
|
||||
set tabstop=4
|
||||
set scrolloff=10
|
||||
set smartindent
|
||||
set shiftwidth=4
|
||||
map <silent> <C-N> :bnext<CR>
|
||||
map <silent> <C-P> :bprevious<CR>
|
||||
nmap <silent> <c-k> :wincmd k<CR>
|
||||
nmap <silent> <c-j> :wincmd j<CR>
|
||||
nmap <silent> <c-h> :wincmd h<CR>
|
||||
nmap <silent> <c-l> :wincmd l<CR>
|
||||
set hidden
|
||||
set path +=**
|
||||
set wildmenu
|
||||
set wildignore+=**/node_modules/**
|
||||
|
||||
let mapleader=";"
|
||||
|
||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
\| PlugInstall --sync
|
||||
\| endif
|
||||
|
||||
call plug#begin('~/.config/nvim/plugged')
|
||||
Plug 'bling/vim-bufferline'
|
||||
Plug 'nvim-lua/plenary.nvim'
|
||||
Plug 'nvim-telescope/telescope.nvim'
|
||||
Plug 'andweeb/presence.nvim'
|
||||
Plug 'neovim/nvim-lspconfig'
|
||||
Plug 'bluz71/vim-nightfly-colors'
|
||||
Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
|
||||
Plug 'tikhomirov/vim-glsl'
|
||||
Plug 'lambdalisue/nerdfont.vim'
|
||||
Plug 'lambdalisue/glyph-palette.vim'
|
||||
Plug 'lambdalisue/fern-renderer-nerdfont.vim'
|
||||
Plug 'lambdalisue/fern-git-status.vim'
|
||||
Plug 'lambdalisue/fern.vim'
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
Plug 'ThePrimeagen/99'
|
||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||
Plug 'hrsh7th/cmp-buffer'
|
||||
Plug 'hrsh7th/cmp-path'
|
||||
Plug 'hrsh7th/cmp-cmdline'
|
||||
Plug 'hrsh7th/nvim-cmp'
|
||||
|
||||
Plug 'hrsh7th/cmp-vsnip'
|
||||
Plug 'hrsh7th/vim-vsnip'
|
||||
call plug#end()
|
||||
|
||||
colorscheme catppuccin-mocha
|
||||
|
||||
set signcolumn=auto
|
||||
|
||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
||||
nnoremap <leader>fi <cmd>Fern %:h<cr>
|
||||
|
||||
let g:user42 = 'tomoron'
|
||||
let g:mail42 = 'tomoron@student.42angouleme.fr'
|
||||
let g:fern#renderer = "nerdfont"
|
||||
|
||||
'';
|
||||
|
||||
home.file = {
|
||||
#install plug.vim
|
||||
".local/share/nvim/site/autoload/plug.vim".source = "${fetchGit {
|
||||
url = "https://github.com/junegunn/vim-plug";
|
||||
rev = "d80f495fabff8446972b8695ba251ca636a047b0";
|
||||
ref = "master";
|
||||
}}/plug.vim";
|
||||
|
||||
#install stdheader 42
|
||||
".config/nvim/plugin/stdheader.vim".source = "${fetchGit {
|
||||
url = "https://github.com/42Paris/42header";
|
||||
rev = "e6e6b191871545e0d43f1aad817070bc806b8fa7";
|
||||
ref = "master";
|
||||
}}/plugin/stdheader.vim";
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,33 +0,0 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
options.mods.hyprland.autoSuspend = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "enable hypridle suspend after 10min";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general.lock_cmd = "hyprlock";
|
||||
general.before_sleep_cmd = "loginctl lock-session";
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "brightnessctl -s set 0";
|
||||
on-resume = "brightnessctl -r";
|
||||
}
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
] ++ lib.lists.optional config.mods.hyprland.autoSuspend {
|
||||
timeout = 600;
|
||||
on-timeout = "systemctl suspend";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,194 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.mods.hyprland.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "install and configure hyprland and others";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
wayland.windowManager.hyprland.systemd.variables = [ "--all" ];
|
||||
|
||||
programs.hyprshot.enable = true;
|
||||
catppuccin.hyprland.enable = false;
|
||||
|
||||
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.configType = "hyprlang";
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
" , Print, exec, hyprshot -m region -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||
" SHIFT, Print, exec, hyprshot -m output -m active -o ~/screenshots -f $(date +%Y-%m-%d_%H-%M-%S).png"
|
||||
"$mainMod, Return, exec, alacritty"
|
||||
"CTRL_ALT, Q, killactive,"
|
||||
"CTRL_ALT_SHIFT, Q, forcekillactive,"
|
||||
"SUPER_ALT, Q, exit,"
|
||||
"$mainMod, S, togglefloating,"
|
||||
"$mainMod, I, pin,"
|
||||
"$mainMod, D, exec, rofi -show drun -show-icons"
|
||||
"$mainMod SHIFT, D, exec, rofi -show run -show-icons"
|
||||
"$mainMod, M, fullscreen, 1"
|
||||
"$mainMod, F, fullscreen, 0"
|
||||
|
||||
# Move focus
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
|
||||
#swap windows
|
||||
"$mainMod SHIFT, h, swapwindow, l"
|
||||
"$mainMod SHIFT, l, swapwindow, r"
|
||||
"$mainMod SHIFT, k, swapwindow, u"
|
||||
"$mainMod SHIFT, j, swapwindow, d"
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
];
|
||||
|
||||
bindm = [ #bind mouse
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel = [ #repeat and locked
|
||||
" ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
" ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
" ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
" ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
" ,XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||
" ,XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||
" ,XF86KbdBrightnessUp, exec, asusctl -n"
|
||||
" ,XF86KbdBrightnessDown, exec, asusctl -p"
|
||||
];
|
||||
|
||||
bindl = [ #repeat
|
||||
" , XF86AudioNext, exec, playerctl next"
|
||||
" , XF86AudioPrev, exec, playerctl previous"
|
||||
" , XF86AudioPause, exec, playerctl play-pause"
|
||||
" , XF86AudioPlay, exec, playerctl play-pause"
|
||||
"$mainMod, n, exec, playerctl next"
|
||||
"$mainMod, p, exec, playerctl previous"
|
||||
"$mainMod, o, exec, playerctl play-pause"
|
||||
];
|
||||
|
||||
# windowrulev2 = [
|
||||
# #ignore maximize requests
|
||||
# "suppressevent maximize, class:.*"
|
||||
# #fix dragging issues with xwayland
|
||||
# "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
|
||||
# ];
|
||||
|
||||
input = {
|
||||
kb_layout = "fr";
|
||||
kb_variant = "us";
|
||||
follow_mouse = 2;
|
||||
kb_options = "caps:none";
|
||||
touchpad.natural_scroll = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 1;
|
||||
disable_hyprland_logo = true;
|
||||
mouse_move_focuses_monitor = false;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"easeInOut, 0.77, 0, 0.175, 1"
|
||||
"easeOut, 0.24, 0.66, 0.04, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, 2, easeInOut"
|
||||
"windowsIn, 1, 2, easeInOut, slide"
|
||||
"windowsOut, 1, 2, easeInOut, slide"
|
||||
"fade, 1, 2, easeInOut"
|
||||
"workspaces, 1, 2, easeOut"
|
||||
];
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
#blur = {
|
||||
# enabled = true;
|
||||
# size = 3;
|
||||
# passes = 1;
|
||||
# vibrancy = 0.1696;
|
||||
#};
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 5;
|
||||
border_size = 1;
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
layerrule = {
|
||||
name = "no_anim_for_selection";
|
||||
no_anim = "on";
|
||||
"match:namespace" = "selection";
|
||||
};
|
||||
|
||||
cursor.no_warps = true;
|
||||
|
||||
env = [
|
||||
"HYPRCURSOR_SIZE,17"
|
||||
"HYPRCURSOR_THEME,bibata-modern-classic"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"swaybg -i ~/.config/wallpaper.png&"
|
||||
"(sleep 2;activate-linux)&"
|
||||
"waybar&"
|
||||
"alacritty&"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
programs.hyprlock.enable = true;
|
||||
programs.hyprlock.settings = {
|
||||
general = {
|
||||
no_fade_out = true;
|
||||
ignore_empty_input = false;
|
||||
};
|
||||
|
||||
background = {
|
||||
monitor = "";
|
||||
path = "~/.config/pc.jpg";
|
||||
# blur_passes = 1;
|
||||
};
|
||||
|
||||
input-field = {
|
||||
monitor = "";
|
||||
size = "300, 50";
|
||||
dot_size = "0.2";
|
||||
dots_fade_time = 100;
|
||||
inner_color = "rgb(139,89,100)";
|
||||
outer_color = "rgb(139,89,100)";
|
||||
outline_thickness = 1;
|
||||
|
||||
fail_transition = "300";
|
||||
fail_text = "learn to write, idiot";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -1,12 +0,0 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
{
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
home.packages = with pkgs; [
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swaybg
|
||||
];
|
||||
};
|
||||
}
|
||||
@ -1,163 +0,0 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
config = lib.mkIf config.mods.hyprland.enable {
|
||||
programs.waybar.enable = true;
|
||||
programs.waybar.style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Iosevka Nerd Font";
|
||||
font-size: 15px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#window {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background: transparent;
|
||||
color: white;
|
||||
border-top: 2px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #c9545d;
|
||||
border-top: 2px solid #c9545d;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color : #88ff88;
|
||||
background-color : rgba(220,255, 220, 0.3)
|
||||
}
|
||||
|
||||
#mode {
|
||||
background: #64727D;
|
||||
border-bottom: 3px solid white;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #f53c3c;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: #ff2222;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #ff2222;
|
||||
}
|
||||
#cpu.high {
|
||||
color: #ff2222;
|
||||
}
|
||||
#disk.high {
|
||||
color: #ff2222;
|
||||
}
|
||||
'';
|
||||
|
||||
programs.waybar.settings.mainBar = {
|
||||
layer = "top";
|
||||
position ="top";
|
||||
height = 24;
|
||||
margin-left = 5;
|
||||
margin-right = 5;
|
||||
modules-left = ["hyprland/workspaces" "custom/music"];
|
||||
modules-center = ["hyprland/window"];
|
||||
modules-right = ["disk" "pulseaudio" "network" "custom/pipe" "cpu" "custom/pipe" "temperature" "custom/pipe" "memory" "battery" "clock"];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = false;
|
||||
format = "{id}";
|
||||
};
|
||||
|
||||
clock = {
|
||||
interval = 1;
|
||||
format-alt = " {:%Y-%m-%d}";
|
||||
format = " {:%H:%M:%S}";
|
||||
};
|
||||
|
||||
cpu = {
|
||||
format = " {usage}% ";
|
||||
states.high = 80;
|
||||
interval = 5;
|
||||
};
|
||||
|
||||
memory = {
|
||||
format = " {}% |";
|
||||
interval = 5;
|
||||
};
|
||||
|
||||
battery = {
|
||||
bat = "BAT0";
|
||||
full-at = 79;
|
||||
states = {
|
||||
good = 20;
|
||||
critical = 15;
|
||||
};
|
||||
format-time = " {H}:{m}";
|
||||
format-discharging = " {icon} {capacity}%{time} |";
|
||||
format-charging = " {capacity}%{time} |";
|
||||
format-plugged = "";
|
||||
format-icons = [" " " " " " " " " "];
|
||||
interval = 10;
|
||||
};
|
||||
|
||||
network = {
|
||||
format-wifi = " {icon} {essid} ";
|
||||
format-ethernet = " {ifname}: {ipaddr}/{cidr} ";
|
||||
format-disconnected = " ⚠ Disconnected ";
|
||||
format-icons =[" " " " " " " "];
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = " {icon}{volume}% |";
|
||||
format-bluetooth = " {icon} {volume}% |";
|
||||
format-muted = "";
|
||||
format-icons = {
|
||||
headphones = " ";
|
||||
handsfree = " ";
|
||||
headset = " ";
|
||||
phone = " ";
|
||||
portable = " ";
|
||||
car = " ";
|
||||
default = [" " " " " "];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
|
||||
temperature = {
|
||||
thermal-zone = 0;
|
||||
critical-threshold = 80;
|
||||
interval = 5;
|
||||
format =" {icon} {temperatureC}°C ";
|
||||
format-icons = ["" "" "" "" ""];
|
||||
};
|
||||
|
||||
disk = {
|
||||
format =" {percentage_used}% |";
|
||||
states.high = "5";
|
||||
};
|
||||
|
||||
"custom/pipe" = {
|
||||
format = "|";
|
||||
};
|
||||
|
||||
"custom/music" = {
|
||||
exec-if = "playerctl metadata 2>&1 >/dev/null";
|
||||
exec = "playerctl metadata --format ' {{ artist }} - {{title}}'";
|
||||
interval = 1;
|
||||
interval-if = 5;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user