Initial commit
This commit is contained in:
82
modules/features/alacritty.nix
Normal file
82
modules/features/alacritty.nix
Normal 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]
|
||||
|
||||
'' );
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
57
modules/features/alacritty.toml
Normal file
57
modules/features/alacritty.toml
Normal 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]
|
||||
22
modules/features/chromium.nix
Normal file
22
modules/features/chromium.nix
Normal 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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
13
modules/features/discord.nix
Normal file
13
modules/features/discord.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
flake.nixosModules.discord = {pkgs, ...}: {
|
||||
environment.systemPackages = [
|
||||
pkgs.vesktop
|
||||
];
|
||||
|
||||
|
||||
/* persistance.cache.directories = [
|
||||
".config/vesktop"
|
||||
];*/
|
||||
|
||||
};
|
||||
}
|
||||
66
modules/features/firefox.nix
Normal file
66
modules/features/firefox.nix
Normal 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
22
modules/features/git.nix
Normal 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
21
modules/features/hjem.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/features/keepmenu.nix
Normal file
7
modules/features/keepmenu.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
flake.nixosModules.keepmenu = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
keepmenu
|
||||
];
|
||||
};
|
||||
}
|
||||
79
modules/features/lf.nix
Normal file
79
modules/features/lf.nix
Normal 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}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
2
modules/features/neovim/lua/init.lua
Normal file
2
modules/features/neovim/lua/init.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
require("navi")
|
||||
require('lz.n').load('plugins')
|
||||
10
modules/features/neovim/lua/navi/colors.lua
Normal file
10
modules/features/neovim/lua/navi/colors.lua
Normal file
@@ -0,0 +1,10 @@
|
||||
function ColorMyPencils(color)
|
||||
require('kanagawa').setup({
|
||||
transparent = true,
|
||||
})
|
||||
|
||||
color = color or "kanagawa"
|
||||
vim.cmd.colorscheme(color)
|
||||
end
|
||||
|
||||
ColorMyPencils()
|
||||
7
modules/features/neovim/lua/navi/init.lua
Normal file
7
modules/features/neovim/lua/navi/init.lua
Normal file
@@ -0,0 +1,7 @@
|
||||
require("navi.remap")
|
||||
require("navi.set")
|
||||
require("navi.colors")
|
||||
|
||||
|
||||
--require("navi.lazy")
|
||||
|
||||
62
modules/features/neovim/lua/navi/lazy.lua
Normal file
62
modules/features/neovim/lua/navi/lazy.lua
Normal 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'} }
|
||||
},
|
||||
|
||||
})
|
||||
27
modules/features/neovim/lua/navi/remap.lua
Normal file
27
modules/features/neovim/lua/navi/remap.lua
Normal 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>")
|
||||
|
||||
33
modules/features/neovim/lua/navi/set.lua
Normal file
33
modules/features/neovim/lua/navi/set.lua
Normal 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 = " "
|
||||
6
modules/features/neovim/lua/plugins/fugitive.lua
Normal file
6
modules/features/neovim/lua/plugins/fugitive.lua
Normal file
@@ -0,0 +1,6 @@
|
||||
return {
|
||||
"vim-fugitive",
|
||||
after = function()
|
||||
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
|
||||
end
|
||||
}
|
||||
7
modules/features/neovim/lua/plugins/undotree.lua
Normal file
7
modules/features/neovim/lua/plugins/undotree.lua
Normal 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
|
||||
}
|
||||
111
modules/features/neovim/neovim.nix
Normal file
111
modules/features/neovim/neovim.nix
Normal 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
15
modules/features/nh.nix
Normal 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
189
modules/features/niri.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
2111
modules/features/noctalia.json
Normal file
2111
modules/features/noctalia.json
Normal file
File diff suppressed because it is too large
Load Diff
11
modules/features/noctalia.nix
Normal file
11
modules/features/noctalia.nix
Normal 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;
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/features/pipewire.nix
Normal file
11
modules/features/pipewire.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/features/rofi.nix
Normal file
9
modules/features/rofi.nix
Normal 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
|
||||
];
|
||||
};
|
||||
}
|
||||
11
modules/features/stylix.nix
Normal file
11
modules/features/stylix.nix
Normal 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";
|
||||
|
||||
};
|
||||
}
|
||||
15
modules/features/thunar.nix
Normal file
15
modules/features/thunar.nix
Normal 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
183
modules/features/zsh.nix
Normal 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}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
116
modules/host/laptop/configuration.nix
Normal file
116
modules/host/laptop/configuration.nix
Normal file
@@ -0,0 +1,116 @@
|
||||
{self, inputs, ... }: {
|
||||
flake.nixosModules.laptopConfiguration = { config, pkgs, self', ... }: {
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
self.nixosModules.base
|
||||
self.nixosModules.laptopHardware
|
||||
self.nixosModules.visualProfile
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.bitstream-vera-sans-mono
|
||||
];
|
||||
|
||||
# BIOS
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Use latest kernel.
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
networking.hostName = "laptop"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
powerManagement.enable = true;
|
||||
services.power-profiles-daemon.enable = true;
|
||||
services.upower.enable = true;
|
||||
#services.tlp.enable = true;
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Copenhagen";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_DK.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "da_DK.UTF-8";
|
||||
LC_IDENTIFICATION = "da_DK.UTF-8";
|
||||
LC_MEASUREMENT = "da_DK.UTF-8";
|
||||
LC_MONETARY = "da_DK.UTF-8";
|
||||
LC_NAME = "da_DK.UTF-8";
|
||||
LC_NUMERIC = "da_DK.UTF-8";
|
||||
LC_PAPER = "da_DK.UTF-8";
|
||||
LC_TELEPHONE = "da_DK.UTF-8";
|
||||
LC_TIME = "da_DK.UTF-8";
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${config.preferences.user.name} = {
|
||||
isNormalUser = true;
|
||||
description = "Adam";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.git.enable = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
#self.packages.${pkgs.system}.lf
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
};
|
||||
}
|
||||
9
modules/host/laptop/default.nix
Normal file
9
modules/host/laptop/default.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ self, inputs, ... }: {
|
||||
|
||||
flake.nixosConfigurations.laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
self.nixosModules.laptopConfiguration
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
39
modules/host/laptop/hardware-configuration.nix
Normal file
39
modules/host/laptop/hardware-configuration.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{ self, inputs, ... }: {
|
||||
|
||||
flake.nixosModules.laptopHardware = { config, lib, pkgs, modulesPath, ... }: {
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"thunderbolt"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/e920679f-af38-4509-bb4a-98c12d8606a5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/3800-D0D0";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/f1657874-9bb9-4724-8ddb-05ddc5aca5d9"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
};
|
||||
}
|
||||
10
modules/parts.nix
Normal file
10
modules/parts.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
config = {
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
}
|
||||
31
modules/profiles/profiles.nix
Normal file
31
modules/profiles/profiles.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ inputs, lib, self, ... }: {
|
||||
flake.nixosModules.main = { pkgs, ... }: {
|
||||
imports = [
|
||||
self.nixosModules.git
|
||||
self.nixosModules.lf
|
||||
self.nixosModules.zsh
|
||||
self.nixosModules.stylix
|
||||
self.nixosModules.hjem
|
||||
self.nixosModules.nh
|
||||
];
|
||||
};
|
||||
|
||||
flake.nixosModules.visualProfile = { pkgs, ... }: {
|
||||
imports = [
|
||||
self.nixosModules.main
|
||||
|
||||
self.nixosModules.niri
|
||||
self.nixosModules.pipewire
|
||||
self.nixosModules.discord
|
||||
self.nixosModules.neovim
|
||||
self.nixosModules.alacritty
|
||||
self.nixosModules.firefox
|
||||
self.nixosModules.chromium
|
||||
self.nixosModules.keepmenu
|
||||
self.nixosModules.rofi
|
||||
self.nixosModules.tuigreet
|
||||
];
|
||||
};
|
||||
|
||||
#flake.nixosModules.INSERTNAMEHERE = { pkgs, ... }: {};
|
||||
}
|
||||
10
modules/profiles/user.nix
Normal file
10
modules/profiles/user.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
flake.nixosModules.base = {lib, ...}: {
|
||||
options.preferences = {
|
||||
user.name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "adam";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user