Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
200907c6c4 | |||
980952738f | |||
a5bbcb163c | |||
8200fc8758 | |||
b4177e3dee | |||
2d114632c2 | |||
ed1b7dc0a5 | |||
3727fc359b | |||
9cfe373129 | |||
f6905d27e8 | |||
8eb7008aeb | |||
c4b963cd7e | |||
9ddd8edd1f | |||
de8855153e | |||
dccfcaca64 | |||
f809873243 | |||
02d29fb799 | |||
0da2b3060f | |||
183490c955 |
|
@ -27,6 +27,36 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# [NETWORK]
|
# [NETWORK]
|
||||||
# networking.firewall.allowedTCPPorts = [ 80 ];
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ];
|
networking.firewall.allowedUDPPorts = [ ];
|
||||||
|
|
||||||
|
# VM test user
|
||||||
|
users.users.test.isSystemUser = true ;
|
||||||
|
users.users.test.initialPassword = "test";
|
||||||
|
users.users.test.group = "test";
|
||||||
|
users.groups.test = {};
|
||||||
|
|
||||||
|
console = {
|
||||||
|
useXkbConfig = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
xkb = {
|
||||||
|
layout = "fox,sus";
|
||||||
|
options = "ctrl:nocaps";
|
||||||
|
extraLayouts.sus = {
|
||||||
|
description = "Swedish US";
|
||||||
|
languages = [ "se" ];
|
||||||
|
symbolsFile = ../shared/sus.xkb;
|
||||||
|
};
|
||||||
|
extraLayouts.fox = {
|
||||||
|
description = "Layout suitable to be used by a fox";
|
||||||
|
languages = [ "se" ];
|
||||||
|
symbolsFile = ../shared/fox.xkb;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,13 @@
|
||||||
environment.etc."pipewire/pipewire.conf".text = builtins.readFile ./pipewire.conf;
|
environment.etc."pipewire/pipewire.conf".text = builtins.readFile ./pipewire.conf;
|
||||||
|
|
||||||
|
|
||||||
|
# [DESKTOP / XORG / WAYLAND]
|
||||||
|
services.xserver = {
|
||||||
|
desktopManager.plasma5.enable = true;
|
||||||
|
displayManager.startx.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# [NETWORKING]
|
# [NETWORKING]
|
||||||
networking.hostName = "computational";
|
networking.hostName = "computational";
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
42
flake.lock
42
flake.lock
|
@ -31,11 +31,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706916489,
|
"lastModified": 1712595875,
|
||||||
"narHash": "sha256-x6OrQdcViKUqF8m/yuF+hIJhecTwiwVSH9T/mJa+K4k=",
|
"narHash": "sha256-KaAhKeESwOQ0R0vxeAO/CDPiPimiemoARyr0uIVTQ4w=",
|
||||||
"owner": "isovector",
|
"owner": "isovector",
|
||||||
"repo": "cornelis",
|
"repo": "cornelis",
|
||||||
"rev": "c1f926eb8a2d5bd051e84f330864ebc3857a83f4",
|
"rev": "9d3347e7d8589a28bcdd283001367d60bacf6b05",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -80,11 +80,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -100,11 +100,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1700814205,
|
"lastModified": 1712386041,
|
||||||
"narHash": "sha256-lWqDPKHRbQfi+zNIivf031BUeyciVOtwCwTjyrhDB5g=",
|
"narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "aeb2232d7a32530d3448318790534d196bf9427a",
|
"rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -116,11 +116,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707091808,
|
"lastModified": 1712588820,
|
||||||
"narHash": "sha256-LahKBAfGbY836gtpVNnWwBTIzN7yf/uYM/S0g393r0Y=",
|
"narHash": "sha256-y31s5idk3jMJMAVE4Ud9AdI7HT3CgTAeMTJ0StqKN7Y=",
|
||||||
"owner": "NixOs",
|
"owner": "NixOs",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9f2ee8c91ac42da3ae6c6a1d21555f283458247e",
|
"rev": "d272ca50d1f7424fbfcd1e6f1c9e01d92f6da167",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -132,11 +132,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707268954,
|
"lastModified": 1711703276,
|
||||||
"narHash": "sha256-2en1kvde3cJVc3ZnTy8QeD2oKcseLFjYPLKhIGDanQ0=",
|
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f8e2ebd66d097614d51a56a755450d4ae1632df1",
|
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -158,11 +158,11 @@
|
||||||
"slippi-desktop": {
|
"slippi-desktop": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707981080,
|
"lastModified": 1711346593,
|
||||||
"narHash": "sha256-Qd1jLAXWvxA5SHcafgHFRs1+XYz8yXLdQ27+qZ8MYxk=",
|
"narHash": "sha256-WWgGRT58w1a4UcEe924hqa4ZVodQtsbXC44aCOEj528=",
|
||||||
"owner": "project-slippi",
|
"owner": "project-slippi",
|
||||||
"repo": "slippi-desktop-app",
|
"repo": "slippi-desktop-app",
|
||||||
"rev": "16ab255406f7ab86846a7786ff15e3543501397c",
|
"rev": "02f3f007cd03c6e2b0da57db65c90646efc04a86",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -177,11 +177,11 @@
|
||||||
"slippi-desktop": "slippi-desktop"
|
"slippi-desktop": "slippi-desktop"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708119120,
|
"lastModified": 1712071998,
|
||||||
"narHash": "sha256-SuZbD4eGwS9OYeGL0V9uPVsW2SyL7MbLXBd5rngZB4c=",
|
"narHash": "sha256-k95NCkXJ61PGMFuqyMtfvP3yTLozED/7DkN+lBWK0gs=",
|
||||||
"owner": "lytedev",
|
"owner": "lytedev",
|
||||||
"repo": "ssbm-nix",
|
"repo": "ssbm-nix",
|
||||||
"rev": "041f495ab6446e6edd22c1a5fbd48dd704c5b9a6",
|
"rev": "eff966a97287d1d86b189d59a14bf744d86836b0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
13
flake.nix
13
flake.nix
|
@ -62,6 +62,19 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixosConfigurations.cafe = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
nix-config-module
|
||||||
|
./cafe/host.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
virtualisation.forwardPorts = [
|
||||||
|
{ from = "host"; host.port = 80; guest.port = 8080; }
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
keyboardLayouts.fox = ./shared/fox.xkb;
|
keyboardLayouts.fox = ./shared/fox.xkb;
|
||||||
|
|
||||||
fonts.sax2nf = import ./shared/sax2nf.nix { pkgs = nixpkgs.legacyPackages.x86_64-linux; };
|
fonts.sax2nf = import ./shared/sax2nf.nix { pkgs = nixpkgs.legacyPackages.x86_64-linux; };
|
||||||
|
|
6
home/berry_config
Executable file
6
home/berry_config
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
berryc resize_button 3
|
||||||
|
berryc resize_mask mod4
|
||||||
|
berryc set_font "SAX2 Nerd Font"
|
||||||
|
berryc edge_gap 0 40 0 0
|
10
home/light.sh
Normal file
10
home/light.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
msgTag="lightdunst"
|
||||||
|
|
||||||
|
brightnessctl set "$1"
|
||||||
|
|
||||||
|
light="$(brightnessctl -m | cut -d, -f4)"
|
||||||
|
dunstify -a "changeLight" -u low \
|
||||||
|
-h string:x-dunst-stack-tag:$msgTag \
|
||||||
|
-h int:value:"$light" "Brightness: $light"
|
97
home/polybar.ini
Normal file
97
home/polybar.ini
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
[bar/bar]
|
||||||
|
modules-right = tray pulseaudio battery date
|
||||||
|
modules-left = ewmh
|
||||||
|
modules-center = polywin
|
||||||
|
padding-right = 15px
|
||||||
|
padding-left = 10px
|
||||||
|
bottom = true
|
||||||
|
height = 40px
|
||||||
|
background = #99000000
|
||||||
|
font-0 = "SAX2 Nerd Font:size=16;3"
|
||||||
|
enable-ipc = true
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
date = %Y-%m-%d
|
||||||
|
time = %H:%M
|
||||||
|
label = %date% %time%
|
||||||
|
label-padding-left = 5px
|
||||||
|
|
||||||
|
[module/ewmh]
|
||||||
|
type = internal/xworkspaces
|
||||||
|
|
||||||
|
backgound-color = #999999
|
||||||
|
|
||||||
|
pin-workspaces = true
|
||||||
|
enable-click = true
|
||||||
|
|
||||||
|
icon-0 = 0; ◉
|
||||||
|
icon-1 = 1; ◉
|
||||||
|
icon-2 = 2; ◉
|
||||||
|
icon-3 = 3; ◉
|
||||||
|
icon-default =
|
||||||
|
|
||||||
|
label-active = %icon%
|
||||||
|
label-occupied = %icon%
|
||||||
|
label-empty = %icon%
|
||||||
|
|
||||||
|
label-active-padding = 0.7
|
||||||
|
label-occupied-padding = 0.7
|
||||||
|
label-empty-padding = 0.7
|
||||||
|
|
||||||
|
label-active-foreground = #fff
|
||||||
|
label-occupied-foreground = #999
|
||||||
|
label-empty-foreground = #999
|
||||||
|
|
||||||
|
[module/battery]
|
||||||
|
type = internal/battery
|
||||||
|
|
||||||
|
full-at = 99
|
||||||
|
|
||||||
|
low-at = 10
|
||||||
|
|
||||||
|
battery = BAT0
|
||||||
|
adapter = AC
|
||||||
|
|
||||||
|
poll-interval = 5
|
||||||
|
|
||||||
|
format-full = <ramp-capacity>
|
||||||
|
format-charging = <ramp-capacity>
|
||||||
|
format-discharging = <ramp-capacity>
|
||||||
|
|
||||||
|
format-full-padding = 15px
|
||||||
|
format-charging-padding = 15px
|
||||||
|
format-discharging-padding = 15px
|
||||||
|
|
||||||
|
ramp-capacity-0 =
|
||||||
|
ramp-capacity-1 =
|
||||||
|
ramp-capacity-2 =
|
||||||
|
ramp-capacity-3 =
|
||||||
|
ramp-capacity-4 =
|
||||||
|
|
||||||
|
[module/pulseaudio]
|
||||||
|
type = internal/pulseaudio
|
||||||
|
|
||||||
|
use-ui-max = false
|
||||||
|
format-volume = <ramp-volume>
|
||||||
|
|
||||||
|
label-muted =
|
||||||
|
|
||||||
|
; Only applies if <ramp-volume> is used
|
||||||
|
ramp-volume-0 =
|
||||||
|
ramp-volume-1 =
|
||||||
|
ramp-volume-2 =
|
||||||
|
|
||||||
|
[module/tray]
|
||||||
|
type = internal/tray
|
||||||
|
|
||||||
|
format-margin = 8px
|
||||||
|
tray-spacing = 8px
|
||||||
|
|
||||||
|
[module/polywin]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/scripts/polywin.sh
|
||||||
|
format = <label>
|
||||||
|
label = %output%
|
||||||
|
label-padding = 1
|
||||||
|
interval = 1
|
251
home/rachel.nix
251
home/rachel.nix
|
@ -8,8 +8,9 @@ let username = "rachel";
|
||||||
exec ${hpkgs.haskell-language-server}/bin/haskell-language-server-wrapper "$@"
|
exec ${hpkgs.haskell-language-server}/bin/haskell-language-server-wrapper "$@"
|
||||||
'';
|
'';
|
||||||
rzk = hpkgs.rzk;
|
rzk = hpkgs.rzk;
|
||||||
in
|
vol = pkgs.writeScript "vol" (builtins.readFile ./vol.sh);
|
||||||
{
|
light = pkgs.writeScript "light" (builtins.readFile ./light.sh);
|
||||||
|
in rec {
|
||||||
home = {
|
home = {
|
||||||
username = username;
|
username = username;
|
||||||
homeDirectory = homeDir;
|
homeDirectory = homeDir;
|
||||||
|
@ -85,7 +86,39 @@ in
|
||||||
whalebird
|
whalebird
|
||||||
lean4
|
lean4
|
||||||
slippi-netplay
|
slippi-netplay
|
||||||
|
xwallpaper
|
||||||
|
blueberry
|
||||||
|
pulseaudio
|
||||||
|
brightnessctl
|
||||||
|
maim
|
||||||
];
|
];
|
||||||
|
file.".config/berry/autostart" = {
|
||||||
|
source = ./berry_config;
|
||||||
|
};
|
||||||
|
file.".config/polybar/scripts/polywin.sh" = {
|
||||||
|
source = pkgs.writeScript "polywin.sh" ''
|
||||||
|
PATH="$PATH:${pkgs.lib.makeBinPath [
|
||||||
|
pkgs.wmctrl
|
||||||
|
pkgs.gawk
|
||||||
|
pkgs.coreutils-full
|
||||||
|
]}"
|
||||||
|
current_display=$(wmctrl -d 2>/dev/null |awk '/*/ {print $1}')
|
||||||
|
|
||||||
|
out=$(
|
||||||
|
wmctrl -lx 2>/dev/null |
|
||||||
|
awk -v current_display="$current_display" '{
|
||||||
|
if ($2==current_display) {
|
||||||
|
split($3,window_title,".")
|
||||||
|
printf "%s ", "["tolower(window_title[2])"]"
|
||||||
|
}
|
||||||
|
}'
|
||||||
|
)
|
||||||
|
|
||||||
|
# workaround for clearing on empty output
|
||||||
|
printf '%s\n' "$out"
|
||||||
|
'';
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,6 +157,29 @@ in
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
source ~/.profile
|
source ~/.profile
|
||||||
set -o vi
|
set -o vi
|
||||||
|
|
||||||
|
norm_name() {
|
||||||
|
ret="$1"
|
||||||
|
[ "$ret" = "''${ret#*\#}" ] && ret="nixpkgs#$ret"
|
||||||
|
printf '%s\n' "$ret"
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
prog="$1"
|
||||||
|
shift
|
||||||
|
nix run "$(norm_name $prog)" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
shell() {
|
||||||
|
i=0
|
||||||
|
while [ $i -lt $# ]; do
|
||||||
|
prog="$1"
|
||||||
|
shift
|
||||||
|
set -- "$@" "$(norm_name $prog)"
|
||||||
|
: $(( i++ ))
|
||||||
|
done
|
||||||
|
nix shell "$@"
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -182,11 +238,15 @@ in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
lspcfg.clangd.setup({
|
||||||
|
cmd = { '${pkgs.clang-tools}/bin/clangd' },
|
||||||
|
})
|
||||||
|
lspcfg.ocamllsp.setup({})
|
||||||
require('orgmode').setup_ts_grammar()
|
require('orgmode').setup_ts_grammar()
|
||||||
require('nvim-treesitter.configs').setup({
|
require('nvim-treesitter.configs').setup({
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true,
|
enable = true,
|
||||||
disable = { "c" },
|
disable = { "c", "lua" },
|
||||||
additional_vim_regex_highlighting = {'org'},
|
additional_vim_regex_highlighting = {'org'},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -194,6 +254,43 @@ in
|
||||||
require('lean').setup({
|
require('lean').setup({
|
||||||
mappings = true,
|
mappings = true,
|
||||||
})
|
})
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'gruvbox',
|
||||||
|
component_separators = { left = "", right = ""},
|
||||||
|
section_separators = { left = "", right = ""},
|
||||||
|
always_divide_middle = true,
|
||||||
|
globalstatus = false,
|
||||||
|
refresh = {
|
||||||
|
statusline = 1000,
|
||||||
|
tabline = 1000,
|
||||||
|
winbar = 1000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = { {
|
||||||
|
'diagnostics',
|
||||||
|
always_visible = true,
|
||||||
|
on_click = function(n,b,m)
|
||||||
|
vim.diagnostic.goto_next()
|
||||||
|
end
|
||||||
|
} },
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'encoding', 'filetype'},
|
||||||
|
lualine_y = {'progress'},
|
||||||
|
lualine_z = {'location'}
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'location'},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('LspAttach', {
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
callback = function(args)
|
callback = function(args)
|
||||||
|
@ -201,6 +298,12 @@ in
|
||||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||||
vim.keymap.set('n', '<localleader>r', vim.lsp.buf.rename, opts)
|
vim.keymap.set('n', '<localleader>r', vim.lsp.buf.rename, opts)
|
||||||
vim.keymap.set('n', '<localleader>a', vim.lsp.buf.code_action, opts)
|
vim.keymap.set('n', '<localleader>a', vim.lsp.buf.code_action, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gd', vim.lsp.buf.definition, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gi', vim.lsp.buf.implementation, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gr', vim.lsp.buf.references, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>e', vim.diagnostic.open_float, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>n', vim.diagnostic.goto_next, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>N', vim.diagnostic.goto_prev, opts)
|
||||||
vim.keymap.set('i', '<C-n>', vim.lsp.omnifunc, opts)
|
vim.keymap.set('i', '<C-n>', vim.lsp.omnifunc, opts)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -241,7 +344,6 @@ in
|
||||||
set signcolumn=no
|
set signcolumn=no
|
||||||
set linebreak
|
set linebreak
|
||||||
let g:cornelis_use_global_binary = 1
|
let g:cornelis_use_global_binary = 1
|
||||||
let g:lightline = { 'colorscheme': 'gruvbox' }
|
|
||||||
set conceallevel=2 concealcursor=nc
|
set conceallevel=2 concealcursor=nc
|
||||||
colorscheme gruvbox
|
colorscheme gruvbox
|
||||||
hi Normal guibg=NONE ctermbg=NONE
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
@ -302,8 +404,6 @@ in
|
||||||
comment-nvim
|
comment-nvim
|
||||||
vimtex
|
vimtex
|
||||||
gruvbox-nvim
|
gruvbox-nvim
|
||||||
lightline-vim
|
|
||||||
lightline-gruvbox-vim
|
|
||||||
tmux-nvim
|
tmux-nvim
|
||||||
cornelis-vim
|
cornelis-vim
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
|
@ -318,6 +418,7 @@ in
|
||||||
lean-nvim
|
lean-nvim
|
||||||
bqn-vim
|
bqn-vim
|
||||||
bqn-nvim
|
bqn-nvim
|
||||||
|
lualine-nvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -411,7 +512,7 @@ in
|
||||||
scrolling.history = 0;
|
scrolling.history = 0;
|
||||||
font = {
|
font = {
|
||||||
normal.family = "SAX2 Nerd Font";
|
normal.family = "SAX2 Nerd Font";
|
||||||
size = 11;
|
size = 8;
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
background = "#1d1f21";
|
background = "#1d1f21";
|
||||||
|
@ -453,6 +554,16 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
autorandr = {
|
||||||
|
enable = true;
|
||||||
|
hooks.postswitch = {
|
||||||
|
wall = "xwallpaper --zoom \"$HOME\"/img/wallpaper";
|
||||||
|
bar = "systemctl restart --user polybar";
|
||||||
|
};
|
||||||
|
profiles = {
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
@ -460,5 +571,131 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryFlavor = "qt";
|
pinentryFlavor = "qt";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sxhkd = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.sxhkd;
|
||||||
|
extraOptions = [ "-m 1" ];
|
||||||
|
keybindings = {
|
||||||
|
"super + Return" = "alacritty";
|
||||||
|
"super + BackSpace" = "firefox";
|
||||||
|
"super + r" = "rofi -show drun";
|
||||||
|
"super + p" = "cpypsk";
|
||||||
|
"super + l" = "betterlockscreen -l";
|
||||||
|
"super + q" = "berryc window_close";
|
||||||
|
"super + Left" = "berryc snap_left";
|
||||||
|
"super + Right" = "berryc snap_right";
|
||||||
|
"super + m" = "berryc window_monocle";
|
||||||
|
"super + {1,2,3,4}" = "berryc switch_workspace {0,1,2,3}";
|
||||||
|
"super + shift + {1,2,3,4}" = "berryc send_to_workspace {0,1,2,3}";
|
||||||
|
"super + f" = "berryc fullscreen_state";
|
||||||
|
"alt + Tab" = "berryc cycle_focus";
|
||||||
|
"~button1" = "berryc pointer_focus";
|
||||||
|
"~button2" = "berryc pointer_focus";
|
||||||
|
"~button3" = "berryc pointer_focus";
|
||||||
|
"~Escape" = "dunstctl close-all";
|
||||||
|
"Print" = "maim -s ~/img/scrot/$(date +%s).png";
|
||||||
|
"XF86AudioMute" = "${vol} mute";
|
||||||
|
"XF86AudioRaiseVolume" = "${vol} +5%";
|
||||||
|
"XF86AudioLowerVolume" = "${vol} -5%";
|
||||||
|
"XF86MonBrightnessUp" = "${light} 5%+";
|
||||||
|
"XF86MonBrightnessDown" = "${light} 5%-";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
polybar = {
|
||||||
|
enable = true;
|
||||||
|
config = ./polybar.ini;
|
||||||
|
script = "polybar bar &";
|
||||||
|
package = pkgs.polybarFull;
|
||||||
|
};
|
||||||
|
|
||||||
|
picom = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
volume = {
|
||||||
|
appname = "changeVolume";
|
||||||
|
history_ignore = "yes";
|
||||||
|
};
|
||||||
|
light = {
|
||||||
|
appname = "changeLight";
|
||||||
|
history_ignore = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
redshift = {
|
||||||
|
enable = true;
|
||||||
|
latitude = "57.70";
|
||||||
|
longitude = "11.97";
|
||||||
|
};
|
||||||
|
|
||||||
|
network-manager-applet.enable = true;
|
||||||
|
blueman-applet.enable = true;
|
||||||
|
betterlockscreen.enable = true;
|
||||||
|
gnome-keyring.enable = true;
|
||||||
|
autorandr.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
initExtra = ''
|
||||||
|
xwallpaper --zoom "$HOME"/img/wallpaper
|
||||||
|
'';
|
||||||
|
scriptPath = "bin/xinitrc";
|
||||||
|
windowManager.command = "${pkgs.berry}/bin/berry";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user= {
|
||||||
|
timers = {
|
||||||
|
battery-check = {
|
||||||
|
Unit.Description = "Warn at low battery levels";
|
||||||
|
Timer = {
|
||||||
|
OnBootSec = "1min";
|
||||||
|
OnUnitActiveSec = "30s";
|
||||||
|
Unit = "battery-check.service";
|
||||||
|
};
|
||||||
|
Install.WantedBy = [ "graphical-session.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
battery-check = {
|
||||||
|
Unit.Description = "Warn at low battery levels";
|
||||||
|
Service = let batMon = pkgs.writeShellScript "batMon" ''
|
||||||
|
PATH="$PATH:${pkgs.lib.makeBinPath [
|
||||||
|
pkgs.acpi
|
||||||
|
pkgs.dunst
|
||||||
|
pkgs.gnugrep
|
||||||
|
pkgs.gawk
|
||||||
|
pkgs.systemd
|
||||||
|
]}"
|
||||||
|
acpi -b | grep "Battery 0" | awk -F'[,:%]' '{print $2, $3}' | {
|
||||||
|
read -r status capacity
|
||||||
|
|
||||||
|
if [ "$status" = Discharging -a "$capacity" -le 2 ]; then
|
||||||
|
dunstify -u critical -a batMon \
|
||||||
|
-h string:x-dunst-stack-tag:batMon \
|
||||||
|
-h int:value:"$capacity" "Battery Critical: ''${capacity}%
|
||||||
|
Hibernating"
|
||||||
|
sleep 5
|
||||||
|
systemctl hibernate
|
||||||
|
elif [ "$status" = Discharging -a "$capacity" -le 5 ]; then
|
||||||
|
dunstify -u critical -a batMon \
|
||||||
|
-h string:x-dunst-stack-tag:batMon \
|
||||||
|
-h int:value:"$capacity" "Battery Critical: ''${capacity}%"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
ExecStart = "${batMon}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
23
home/vol.sh
Normal file
23
home/vol.sh
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
msgTag="voldunst"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
mute)
|
||||||
|
pactl set-sink-mute @DEFAULT_SINK@ toggle > /dev/null
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ "$1" > /dev/null
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
volume="$(pactl get-sink-volume @DEFAULT_SINK@ | head -1 | awk '{ print $5 }')"
|
||||||
|
mute="$(pactl get-sink-mute @DEFAULT_SINK@ | cut -d' ' -f2)"
|
||||||
|
if [[ $volume == "0%" || "$mute" == "yes" ]]; then
|
||||||
|
dunstify -a "changeVolume" -u low \
|
||||||
|
-h string:x-dunst-stack-tag:$msgTag "Volume muted"
|
||||||
|
else
|
||||||
|
dunstify -a "changeVolume" -u low \
|
||||||
|
-h string:x-dunst-stack-tag:$msgTag \
|
||||||
|
-h int:value:"$volume" "Volume: ${volume}"
|
||||||
|
fi
|
|
@ -19,6 +19,7 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
services.blueman.enable = true;
|
||||||
services.logind = {
|
services.logind = {
|
||||||
lidSwitch = "hibernate";
|
lidSwitch = "hibernate";
|
||||||
lidSwitchDocked = "ignore";
|
lidSwitchDocked = "ignore";
|
||||||
|
@ -27,6 +28,34 @@
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
KERNEL=="0000:00:14.0", SUBSYSTEM=="pci", ATTR{power/wakeup}="disabled"
|
KERNEL=="0000:00:14.0", SUBSYSTEM=="pci", ATTR{power/wakeup}="disabled"
|
||||||
'';
|
'';
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
TLP_DEFAULT_MODE = "BAT";
|
||||||
|
DISK_IDLE_SECS_ON_AC = 0;
|
||||||
|
DISK_IDLE_SECS_ON_BAT = 5;
|
||||||
|
MAX_LOST_WORK_SECS_ON_AC = 15;
|
||||||
|
MAX_LOST_WORK_SECS_ON_BAT = 120;
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "auto";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
CPU_SCALING_MIN_FREQ_ON_AC = 400000;
|
||||||
|
CPU_SCALING_MAX_FREQ_ON_AC = 4700000;
|
||||||
|
CPU_SCALING_MIN_FREQ_ON_BAT = 400000;
|
||||||
|
CPU_SCALING_MAX_FREQ_ON_BAT = 2700000;
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||||
|
CPU_MIN_PERF_ON_AC = 0;
|
||||||
|
CPU_MAX_PERF_ON_AC = 100;
|
||||||
|
CPU_MIN_PERF_ON_BAT = 0;
|
||||||
|
CPU_MAX_PERF_ON_BAT = 30;
|
||||||
|
CPU_BOOST_ON_AC = 1;
|
||||||
|
CPU_BOOST_ON_BAT = 0;
|
||||||
|
SCHED_POWERSAVE_ON_AC = 0;
|
||||||
|
SCHED_POWERSAVE_ON_BAT = 1;
|
||||||
|
NMI_WATCHDOG = 0;
|
||||||
|
DISK_DEVICES = "nvme0n1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# [BOOT / DISK ENCRYPTION]
|
# [BOOT / DISK ENCRYPTION]
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
@ -51,6 +80,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
boot.kernelParams = [ "i915.enable_dpcd_backlight=1" ];
|
||||||
|
|
||||||
# [NETWORKING]
|
# [NETWORKING]
|
||||||
networking.hostName = "lambda";
|
networking.hostName = "lambda";
|
||||||
|
@ -61,5 +91,12 @@
|
||||||
wifi.macAddress = "random";
|
wifi.macAddress = "random";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# [DESKTOP / XORG / WAYLAND]
|
||||||
|
services.xserver = {
|
||||||
|
windowManager.berry.enable = true;
|
||||||
|
displayManager.startx.enable = true;
|
||||||
|
dpi = 144;
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
# [NIX]
|
# [NIX]
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
bash-prompt = "\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\\n❄\\040";
|
bash-prompt = "\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\\n\\040";
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
};
|
};
|
||||||
|
@ -54,8 +54,6 @@
|
||||||
# [DESKTOP / XORG / WAYLAND]
|
# [DESKTOP / XORG / WAYLAND]
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager.plasma5.enable = true;
|
|
||||||
displayManager.startx.enable = true;
|
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "fox,sus";
|
layout = "fox,sus";
|
||||||
options = "ctrl:nocaps";
|
options = "ctrl:nocaps";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user