Initial commit

This commit is contained in:
Asdam9
2026-04-14 22:48:18 +02:00
parent dea140ace7
commit 827124afdb
35 changed files with 3999 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.alacritty = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.myAlacritty
];
};
perSystem = { pkgs, ... }: let
environment.systemPackages = [
pkgs.zsh
];
in {
packages.myAlacritty = inputs.wrapper-modules.wrappers.alacritty.wrap {
inherit pkgs;
settings = (builtins.fromTOML
''
[terminal.shell]
args = ['--login']
program = "zsh"
[cursor]
style = "Block"
[font]
size = 12
[font.normal]
family = "BitstromWeraNerdFont"
[window]
startup_mode = "Windowed"
dynamic_padding = true
opacity = 0.9
[window.padding]
x = 0
y = 0
[colors.normal]
black = '0x090618'
red = '0xc34043'
green = '0x76946a'
yellow = '0xc0a36e'
blue = '0x7e9cd8'
magenta = '0x957fb8'
cyan = '0x6a9589'
white = '0xc8c093'
[colors.primary]
background = '0x1f1f28'
foreground = '0xdcd7ba'
[colors.cursor]
cursor = '0x2d4f67'
text = '0xc8c093'
[[colors.indexed_colors]]
index = 16
color = '0xffa066'
[[colors.indexed_colors]]
index = 17
color = '0xff5d62'
[keyboard]
bindings = [
{key="j", mods="Alt", action="ScrollHalfPageDown"},
{key="k", mods="Alt", action="ScrollHalfPageUp"},
]
[terminal]
'' );
};
};
}

View File

@@ -0,0 +1,57 @@
[terminal.shell]
args = ['--login']
program = "/usr/bin/zsh"
[cursor]
style = "Block"
[font]
size = 12
[font.normal]
family = "BitstromWeraNerdFontMono"
[window]
startup_mode = "Windowed"
dynamic_padding = true
opacity = 0.9
[window.padding]
x = 0
y = 0
[colors.normal]
black = '0x090618'
red = '0xc34043'
green = '0x76946a'
yellow = '0xc0a36e'
blue = '0x7e9cd8'
magenta = '0x957fb8'
cyan = '0x6a9589'
white = '0xc8c093'
[colors.primary]
background = '0x1f1f28'
foreground = '0xdcd7ba'
[colors.cursor]
cursor = '0x2d4f67'
text = '0xc8c093'
[[colors.indexed_colors]]
index = 16
color = '0xffa066'
[[colors.indexed_colors]]
index = 17
color = '0xff5d62'
[keyboard]
bindings = [
{key="j", mods="Alt", action="ScrollHalfPageDown"},
{key="k", mods="Alt", action="ScrollHalfPageUp"},
]
[terminal]

View File

@@ -0,0 +1,22 @@
{
flake.nixosModules.chromium = {pkgs, ...}: {
environment.systemPackages = [
#pkgs.chromium
pkgs.ungoogled-chromium
#pkgs.iridium
#pkgs.vivaldi
];
programs.chromium = {
enable = true;
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
extensions = [
"ddkjiahejlhfcafbddmgiahcphecmpfh"
"ojigagjjcmnbplgdkggkkleckaohppok"
"jfedfbgedapdagkghmgibemcoggfppbb"
"jfedfbgedapdagkghmgibemcoggfppbb"
];
};
};
}

View File

@@ -0,0 +1,13 @@
{
flake.nixosModules.discord = {pkgs, ...}: {
environment.systemPackages = [
pkgs.vesktop
];
/* persistance.cache.directories = [
".config/vesktop"
];*/
};
}

View File

@@ -0,0 +1,66 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.firefox = { pkgs, ... }: {
environment.systemPackages = [
];
programs.firefox = {
enable = true;
#package = pkgs.waterfox;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always";
DisplayMenuBar = "default-off";
SearchBar = "unified";
ExtensionSettings = {
"*".installation_mode = "blocked";
"jid1-NIfFY2CA8fy1tg@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/adblock-for-firefox/addon-10996236-latest.xpi";
installation_mode = "force_installed";
};
"jid1-q4sG8pYhq8KGHs@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/adblock-for-youtube/addon-11285580-latest.xpi";
installation_mode = "force_installed";
};
"xifangczy@gmail.com" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/cat-catch/addon-13478803-latest.xpi";
installation_mode = "force_installed";
};
};
Preferences = {
"widget.use-xdg-desktop-portal" = { Value = true; };
"widget.use-xdg-desktop-portal.file-picker" = { Value = 1; };
"browser.contentblocking.category" = { Value = "strict"; status = "locked"; };
"extensions.pocket.enabled" = { Value = false; status = "locked"; };
"extensions.screenshots.disabled" = { Value = true; status = "locked"; };
"browser.topsites.contile.enabled" = { Value = false; status = "locked"; };
"browser.formfill.enable" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.feeds.section.topstories" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.feeds.section.snippets" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includePocket" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.showSponsored" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.system.showSponsored" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.showSponsoredTopSites" = { Value = false; status = "locked"; };
};
};
};
};
}

22
modules/features/git.nix Normal file
View File

@@ -0,0 +1,22 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.git = { pkgs, ... }: {
imports = [
self.nixosModules.gnupg
];
programs.git = {
enable = true;
config.user = {
name = "Asdam9";
};
};
};
flake.nixosModules.gnupg = { pkgs, ... }: {
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-rofi;
};
};
}

21
modules/features/hjem.nix Normal file
View File

@@ -0,0 +1,21 @@
{inputs, ...}: {
flake.nixosModules.hjem = {config, ...}: let
user = config.preferences.user.name;
in {
imports = [
inputs.hjem.nixosModules.default
];
config = {
hjem = {
users."${user}" = {
enable = true;
directory = "/home/${user}";
user = "${user}";
};
clobberByDefault = true;
};
};
};
}

View File

@@ -0,0 +1,7 @@
{ pkgs, inputs, ... }: {
flake.nixosModules.keepmenu = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
keepmenu
];
};
}

79
modules/features/lf.nix Normal file
View File

@@ -0,0 +1,79 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.lf = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.mylf
];
};
perSystem = { pkgs, ... }: let
conf =
pkgs.writeText "config"
''
set reverse true
set preview true
set hidden true
#set drawbox true
#set icons true
set ignorecase true
cmd stripspace %stripscpase "$f"
map "\""
map o
map d
map e
map f
map . set hidden!
map D delete
map p paste
map dd cut
map y copy
map ` mark-load
map \' mark-load
map <enter> open
map a rename
map r reload
map C clear
map U unselect
map do drag-out
map g~ cd
map gh cd
map g/ /
map gd cd ~/Downloads
map gt cd /tmp
map gv cd ~/Videos
map go cd ~/Documents
map gc cd ~/.config
map gn cd ~/Documents/MyNixOs
map gp cd ~/Documents/Projects
map gs cd ~/.local/share
map gm cd /run/media
map gH cd /persist/users/$HOME
map eE $ $EDITOR "$f"
map ee $ ${lib.getExe pkgs.direnv} exec . $EDITOR "$f"
map e. $ ${lib.getExe pkgs.direnv} exec . $EDITOR .
# map V $ ${lib.getExe pkgs.bat} --paging-always --theme=gruvbox "$f"
map do $ ${lib.getExe pkgs.ripdrag} -a -x "$fx"
map <C-d> 5j
map <C-u> 5k
setlocal ~/Documents/Projects sortby time
setlocal ~/Documents/Projects/* sortby time
setlocal ~/Downloads/ sortby time
'';
in {
packages.mylf = inputs.wrappers.lib.wrapPackage {
inherit pkgs;
package = pkgs.lf;
flags = {
"-config" = "${conf}";
};
};
};
}

View File

@@ -0,0 +1,2 @@
require("navi")
require('lz.n').load('plugins')

View File

@@ -0,0 +1,10 @@
function ColorMyPencils(color)
require('kanagawa').setup({
transparent = true,
})
color = color or "kanagawa"
vim.cmd.colorscheme(color)
end
ColorMyPencils()

View File

@@ -0,0 +1,7 @@
require("navi.remap")
require("navi.set")
require("navi.colors")
--require("navi.lazy")

View File

@@ -0,0 +1,62 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
return require('lazy').setup({
{
'nvim-telescope/telescope.nvim', tag = '0.1.8',
-- or , branch = '0.1.x',
dependencies = { {'nvim-lua/plenary.nvim'} }
},
"rebelot/kanagawa.nvim",
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate'
},
'nvim-treesitter/playground',
'theprimeagen/harpoon',
'mbbill/undotree',
'tpope/vim-fugitive',
--'github/copilot.vim',
--'vimwiki/vimwiki',
{
"supermaven-inc/supermaven-nvim",
config = function()
require("supermaven-nvim").setup({})
end,
},
{
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
dependencies = {
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
{'L3MON4D3/LuaSnip'},
}
},
{
'serenevoid/kiwi.nvim',
dependencies = { {'nvim-lua/plenary.nvim'} }
},
})

View File

@@ -0,0 +1,27 @@
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
vim.keymap.set("n", "<F5>", ":w! | !compiler %<CR>")
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
--vim.keymap.set("x", "<leader>p", "\"_dP")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
vim.keymap.set("n", "Q", "<nop>")
vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>")

View File

@@ -0,0 +1,33 @@
vim.opt.nu = true
vim.opt.relativenumber = true
vim.cmd("autocmd BufEnter * setlocal formatoptions-=cro") -- No good way of doing this with lua
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.smartcase = true
vim.opt.ignorecase = true
vim.opt.wrap = false
vim.opt.updatetime = 300
vim.opt.termguicolors = true
vim.opt.mouse = "a"
vim.opt.cursorline = true
vim.opt.pumheight = 16
vim.opt.winborder = "single"
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.scroll = 6
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.opt.colorcolumn = "80"
vim.g.mapleader = " "

View File

@@ -0,0 +1,6 @@
return {
"vim-fugitive",
after = function()
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
end
}

View File

@@ -0,0 +1,7 @@
return {
"undotree",
after = function ()
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.g.undotree_UndoDir = ".local/share/nvim/"
end
}

View File

@@ -0,0 +1,111 @@
{ inputs, self, ... }: {
flake.nixosModules.neovim = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
programs.neovim.defaultEditor = true;
environment.systemPackages = [
selfpkgs.neovim
];
};
flake.modules.neovim.main = { config, wlib, lib, pkgs, ... }: {
options = {
dynamicMode = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
If true, use impure config instead for fast edits
Both versions of the package may be installed simultaneously
'';
};
initLua = lib.mkOption {
type = wlib.types.stringable;
default = ./.;
};
dynamicInitLua = lib.mkOption {
type = lib.types.either wlib.types.stringable lib.types.luaInline;
default = lib.generators.mkLuaInline "vim.uv.os_homedir() .. '/Documents/MyNixOs/modules/features/neovim'";
};
};
config = {
settings.config_directory =
if config.dynamicMode
then config.dynamicInitLua
else config.initLua;
extraPackages = [
pkgs.ffmpeg-full
pkgs.wl-clipboard
];
specs.init = {
data = null;
before = ["MAIN_INIT"];
config = "require('init')";
};
specs.plugins = {
data = [
pkgs.vimPlugins.lz-n
pkgs.vimPlugins.plenary-nvim
pkgs.vimPlugins.nvim-lspconfig
pkgs.vimPlugins.nvim-treesitter.withAllGrammars
pkgs.vimPlugins.nvim-web-devicons
pkgs.vimPlugins.lspkind-nvim
pkgs.vimPlugins.colorful-menu-nvim
pkgs.vimPlugins.blink-cmp
pkgs.vimPlugins.snacks-nvim
pkgs.vimPlugins.oil-nvim
pkgs.vimPlugins.lualine-nvim
pkgs.vimPlugins.luasnip
pkgs.vimPlugins.kanagawa-nvim
#pkgs.vimPlugins.telescope-nvim
#pkgs.vimPlugins.kiwi-nvim
];
};
specs.lazyPlugins = {
lazy = true;
data = [
pkgs.vimPlugins.lazydev-nvim
pkgs.vimPlugins.gitsigns-nvim
pkgs.vimPlugins.nvim-autopairs
pkgs.vimPlugins.fastaction-nvim
pkgs.vimPlugins.mini-files
pkgs.vimPlugins.codecompanion-nvim
pkgs.vimPlugins.harpoon
pkgs.vimPlugins.undotree
pkgs.vimPlugins.vim-fugitive
];
};
};
};
perSystem = {pkgs, self', ... }: {
packages.neovim = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
imports = [
self.modules.neovim.main
#self.modules.neovim.lua
#self.modules.neovim.nix
];
};
packages.neovimFull = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
dynamicMode = true;
imports = [
self.modules.neovim.main
#self.modules.neovim.allServers
];
};
};
}

15
modules/features/nh.nix Normal file
View File

@@ -0,0 +1,15 @@
{
flake.nixosModules.nh = {pkgs, config, ...}: let
user = config.preferences.user.name;
in {
programs.nh = {
enable = true;
clean = {
enable = true;
extraArgs = "--keep-since 30d --keep 15";
};
flake = "/home/${user}/Documents/MyNixOS/#laptop";
};
};
}

189
modules/features/niri.nix Normal file
View File

@@ -0,0 +1,189 @@
{ self, inputs, ... }: {
flake.nixosModules.niri = { pkgs, lib, ... }: {
environment.systemPackages = [
pkgs.wl-clipboard
pkgs.clipman
];
programs.niri = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
};
};
flake.nixosModules.tuigreet = { pkgs, lib, ... }: {
environment.systemPackages = with pkgs; [
tuigreet
];
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri";
};
};
};
};
perSystem = { pkgs, lib, self', ... }: {
packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
inherit pkgs;
settings = {
spawn-at-startup = [
(lib.getExe self'.packages.myNoctalia)
];
prefer-no-csd = true;
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
input = {
keyboard = {
xkb.layout = "us,dk";
xkb.options = "caps:escape,grp:win_space_toggle";
repeat-rate = 25;
repeat-delay = 300;
};
};
extraConfig = ''
gestures {
hot-corners {
off
}
}
'';
window-rules = [
{
matches = [ { is-focused = false; } ];
default-column-width = { proportion = 1.; };
opacity = 0.65;
}
{
matches = [
{ app-id = "firefox"; }
{ app-id = "discord"; }
];
default-column-width = { proportion = 1.; };
opacity = 1.;
}
{
matches = [ { app-id = "Alacritty"; } ];
excludes = [ { is-focused = false; } ];
opacity = .90;
}
];
screenshot-path = "~/Pictures/Screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png";
hotkey-overlay.skip-at-startup = true;
layout = {
gaps = 15;
border.off = {};
focus-ring.off = {};
preset-column-widths = [
{ proportion = 1.; }
{ proportion = 1. / 2.; }
{ proportion = 1. / 3.; }
{ proportion = 2. / 3.; }
];
default-column-width = { proportion = 1. / 2.; };
center-focused-column = "never"; #"on-overflow"; "always";
default-column-display = "normal"; #"tabbed";
};
binds = {
"Mod+Return".spawn-sh = lib.getExe self'.packages.myAlacritty;
"Mod+Shift+Slash".show-hotkey-overlay = {};
"Mod+Shift+C".close-window = {};
"Mod+Shift+Q".quit = {};
"Mod+O".toggle-overview = {};
"Mod+Left".focus-column-left = {};
"Mod+Down".focus-window-down = {};
"Mod+Up".focus-window-up = {};
"Mod+Right".focus-column-right = {};
"Mod+Ctrl+Left".move-column-left = {};
"Mod+Ctrl+Down".move-window-down = {};
"Mod+Ctrl+Up".move-window-up = {};
"Mod+Ctrl+Right".move-column-right = {};
"Mod+H".focus-column-left = {};
"Mod+J".focus-window-down = {};
"Mod+K".focus-window-up = {};
"Mod+L".focus-column-right = {};
"Mod+Ctrl+H".move-column-left = {};
"Mod+Ctrl+J".move-window-down = {};
"Mod+Ctrl+K".move-window-up = {};
"Mod+Ctrl+L".move-column-right = {};
"Mod+Ctrl+Shift+j".move-workspace-down = {};
"Mod+Ctrl+Shift+k".move-workspace-up = {};
"Mod+U".focus-workspace-down = {};
"Mod+I".focus-workspace-up = {};
"Mod+Ctrl+U".move-column-to-workspace-down = {};
"Mod+Ctrl+I".move-column-to-workspace-up = {};
"Mod+R".switch-preset-column-width = {};
"Mod+1".focus-workspace = 1;
"Mod+2".focus-workspace = 2;
"Mod+3".focus-workspace = 3;
"Mod+4".focus-workspace = 4;
"Mod+5".focus-workspace = 5;
"Mod+6".focus-workspace = 6;
"Mod+7".focus-workspace = 7;
"Mod+8".focus-workspace = 8;
"Mod+9".focus-workspace = 9;
"Mod+Ctrl+1".move-column-to-workspace = 1;
"Mod+Ctrl+2".move-column-to-workspace = 2;
"Mod+Ctrl+3".move-column-to-workspace = 3;
"Mod+Ctrl+4".move-column-to-workspace = 4;
"Mod+Ctrl+5".move-column-to-workspace = 5;
"Mod+Ctrl+6".move-column-to-workspace = 6;
"Mod+Ctrl+7".move-column-to-workspace = 7;
"Mod+Ctrl+8".move-column-to-workspace = 8;
"Mod+Ctrl+9".move-column-to-workspace = 9;
"XF86AudioRaiseVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume increase";
"XF86AudioLowerVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume decrease";
"XF86AudioMute".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume muteOutput";
"XF86MonBrightnessUp".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness increase";
"XF86MonBrightnessDown".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness decrease";
"XF86AudioPrev".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media previous";
"XF86AudioPlay".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media playPause";
"XF86AudioNext".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media next";
"XF86AudioMedia".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call systemMonitor toggle";
"Mod+Comma".consume-window-into-column = {};
"Mod+Period".expel-window-from-column = {};
"Mod+BracketLeft".consume-or-expel-window-left = {};
"Mod+BracketRight".consume-or-expel-window-right = {};
"Mod+F".maximize-column = {};
"Mod+Shift+F".fullscreen-window = {};
"Mod+W".toggle-column-tabbed-display = {};
"Mod+V".toggle-window-floating = {};
"Mod+Shift+V".switch-focus-between-floating-and-tiling = {};
"Print".screenshot = {};
"Mod+Print".screenshot-window = {};
"Mod+Shift+Print".screenshot-screen = {};
"Mod+Shift+L".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu lockAndSuspend";
"Mod+Shift+E".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher emoji";
"Mod+Shift+Escape".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu toggle";
"Mod+P".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
"Mod+Y".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher clipboard";
};
};
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{ self, inputs, ... }: {
perSystem = { pkgs, ... }: {
packages.myNoctalia = inputs.wrapper-modules.wrappers.noctalia-shell.wrap {
inherit pkgs;
settings =
(builtins.fromJSON
(builtins.readFile ./noctalia.json)).settings;
};
};
}

View File

@@ -0,0 +1,11 @@
{ self, inputs, ... }: {
flake.nixosModules.pipewire = { pkgs, lib, ... }: {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
}

View File

@@ -0,0 +1,9 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.rofi = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
pkgs.rofi
];
};
}

View File

@@ -0,0 +1,11 @@
{ pkgs, inputs, ... }: {
flake.nixosModules.stylix = {pkgs, ...}: {
imports = [
inputs.stylix.nixosModules.stylix
];
stylix.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/kanagawa.yaml";
};
}

View File

@@ -0,0 +1,15 @@
{
flake.nixosModules.thunar = {pkgs, ...}: {
programs.thunar.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
xdg.mime.defaultApplications = {
"inode/directory" = "thunar.desktop";
};
/* persistance.cache.directories = [
".config/vesktop"
];*/
};
}

183
modules/features/zsh.nix Normal file
View File

@@ -0,0 +1,183 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.zsh = { pkgs, config, ... }: {
imports = [ # Include the results of the hardware scan.
self.nixosModules.fastfetch
];
programs.zsh.enable = true;
programs.zsh.syntaxHighlighting.enable = true;
programs.zsh.histSize=1000;
programs.zsh.histFile="${config.users.users.adam.home}/.local/histfile";
programs.zsh.setOptions= [
"beep"
"prompt_subst"
];
programs.zsh.shellInit =
''
bindkey -v
bindkey "^H" backward-delete-char
bindkey "^?" backward-delete-char
'';
environment.sessionVariables = rec {
EDITOR = "nvim";
BROWSER = "firefox";
ZDOTDIR = "/etc/";
};
programs.zsh.shellAliases = {
fs = "lf";
ls = "ls --color=auto";
cp = "cp -v";
mkdir = "mkdir -v";
mv = "mv -v";
rm = "rm -v";
};
programs.zsh.promptInit =
''
autoload -Uz add-zsh-hook vcs_info
add-zsh-hook precmd vcs_info
sep=""
rsep=""
purple="#957fb8"
blue="#7e9cd8"
black="#090618"
green="#76946a"
zstyle ':vcs_info:*' formats "%F{$purple}%K{$blue}$sep%k%f%K{$blue}%F{$black} (%r:%b) %F{$blue}"
export PS1='%K{$purple}%F{$black} 󰣇 %1~ %F{$purple}''${vcs_info_msg_0_}%k$sep%k%f '
export RPROMPT="%F{$green}$rsep%f%K{$green}%F{$black} %n@%m %f%k"
tty > /dev/null && (clear ; fastfetch)
'';
system.userActivationScripts.zshrc = "touch .zshrc";
};
flake.nixosModules.fastfetch = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.myFastfetch
];
};
perSystem = { pkgs, ... }: let
conf =
pkgs.writeText "config.jsonc"
''
{
"''$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "auto",
"color": {
"1": "35",
},
},
"display": {
"separator": " ",
"constants": [
""
],
"key": {
"type": "icon",
"paddingLeft": 2
},
"color": {
"keys": "35",
},
},
"modules": [
{
"type": "custom", // HardwareStart
"format": "{''$1} {#1}Hardware Information{#} {''$1}"
},
//"host",
"cpu",
"gpu",
"disk",
"swap",
"display",
"brightness",
"battery",
"poweradapter",
"bluetooth",
//"sound",
"memory",
"gamepad",
{
"type": "custom", // SoftwareStart
"format": "{''$1} {#1}Software Information{#} {''$1}"
},
/*{
"type": "title",
"keyIcon": "",
"key": "Title", // Title module has no key by default, so that icon is not displayed
"format": "{user-name}@{host-name}"
},*/
"os",
//"kernel",
//"lm",
"de",
"wm",
"shell",
"terminal",
"terminalfont",
"theme",
"icons",
"wallpaper",
"packages",
"uptime",
//"media",
/*{
"type": "localip",
"compact": true
},
"publicip",
{
"type": "wifi",
"format": "{ssid}"
},
"locale",*/
{
"type": "custom", // InformationEnd
"format": "{''$1}{''$1}"
},
{
"type": "colors",
"paddingLeft": 2,
"symbol": "circle"
}
]
}
'';
logo =
pkgs.writeText "navi.txt"
''
/X\
XXX
\X/
/X/ /XXXXXXXXX\ \X\
/XXX/ /XXX/ \XXX\ \XXX\
/XX/ /XXX/ \XXX\ \XX\
/XX/ XXX /XXX\ XXX \XX\
XXX XXX /XXXXX\ XXX XXX
XXX\ XXX \XXXXX/ XXX /XXX
\XX\ \XX\ \XXX/ /XX/ /XX/
\XXX\ \XX\ /XX/ /XXX/
XX \XX\ \XXX\ /XXX/ /XX/ XX
XX \XX\ /XX/ XX
XXX XXX
XXX XXX
\XX\ /XX/ \XX\ /XX/
\XXXXXXX/ \XXXXXXX/
'';
in {
packages.myFastfetch = inputs.wrappers.lib.wrapPackage {
inherit pkgs;
package = pkgs.fastfetch;
flags = {
"--config" = "${conf}";
"--logo" = "${logo}";
};
};
};
}