Compare commits

..

9 Commits

Author SHA1 Message Date
Giulio De Pasquale
0a29ba5480 beautify 2021-07-01 06:28:26 +02:00
Giulio De Pasquale
83aa91b7e5 Merge branch 'master' of https://giugl.io/gitea/peperunas/nixos 2021-07-01 06:28:06 +02:00
Giulio De Pasquale
90d56d059f beautification 2021-07-01 06:26:22 +02:00
Giulio De Pasquale
304dcdf1ca formatting 2021-07-01 06:25:53 +02:00
Giulio De Pasquale
70212633c8 formatting 2021-07-01 06:24:09 +02:00
Giulio De Pasquale
3e5f402619 rename home 2021-07-01 06:23:50 +02:00
Giulio De Pasquale
9284a90970 formatting 2021-07-01 06:23:25 +02:00
Giulio De Pasquale
3b78b072bc added garbage collection 2021-07-01 06:06:23 +02:00
Giulio De Pasquale
e5f4c465ce beautification 2021-07-01 06:05:55 +02:00
6 changed files with 207 additions and 108 deletions

View File

@ -5,18 +5,23 @@
console = { console = {
keyMap = "us"; keyMap = "us";
font = "Lat2-Terminus16"; font = "Lat2-Terminus16";
}; };
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
nix = { nix = {
autoOptimiseStore = true; autoOptimiseStore = true;
nixPath = [ nixPath = [
"nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos" "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos"
"nixos-config=/etc/nixos/hosts/${variables.hostname}/default.nix" "nixos-config=/etc/nixos/hosts/${variables.hostname}/default.nix"
"/nix/var/nix/profiles/per-user/root/channels" "/nix/var/nix/profiles/per-user/root/channels"
]; ];
gc = {
automatic = true;
dates = "weekly";
persistent = true;
};
}; };
nixpkgs = { nixpkgs = {

View File

@ -9,7 +9,7 @@
]; ];
programs.neovim = { programs.neovim = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
" syntax " syntax
syntax enable syntax enable
@ -34,11 +34,38 @@
" enable indent guides " enable indent guides
let g:indent_guides_enable_on_vim_startup = 1 let g:indent_guides_enable_on_vim_startup = 1
" Exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
" Start NERDTree. If a file is specified, move the cursor to its window.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif
" Start NERDTree when Vim starts with a directory argument.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists('s:std_in') |
\ execute 'NERDTree' argv()[0] | wincmd p | enew | execute 'cd '.argv()[0] | endif
" Exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
" Start interactive EasyAlign in visual mode (e.g. vipga)
xmap ga <Plug>(EasyAlign)
" Start interactive EasyAlign for a motion/text object (e.g. gaip)
nmap ga <Plug>(EasyAlign)
" Highlight row and column
set cul
set cuc
''; '';
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
plugins = with pkgs.vimPlugins; [ plugins = with pkgs.vimPlugins; [
vim-nix vim-nix
molokai molokai
YouCompleteMe YouCompleteMe
@ -47,6 +74,8 @@
vim-lsp vim-lsp
vim-indent-guides vim-indent-guides
vim-signify vim-signify
nerdtree
vim-easy-align
]; ];
}; };

View File

@ -2,6 +2,39 @@
let let
albert_autostart = (pkgs.makeAutostartItem { albert_autostart = (pkgs.makeAutostartItem {
<<<<<<< HEAD
name = "albert";
package = pkgs.albert;
});
guake_autostart = (pkgs.makeAutostartItem {
name = "guake";
package = pkgs.guake;
});
in {
imports = [
./zsh.nix
./code.nix
./git.nix
];
nixpkgs.config.allowUnfree = true;
home = {
stateVersion = "21.05";
sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
packages = with pkgs; [
# essentials
albert
guake
# browsers
firefox
brave
=======
name = "albert"; name = "albert";
package = pkgs.albert; package = pkgs.albert;
}); });
@ -21,32 +54,59 @@ in {
guake guake
firefox firefox
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
chromium chromium
# reversing # reversing
rizin rizin
<<<<<<< HEAD
# networking
nmap
# development
clang
# social
=======
nmap nmap
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
slack slack
signal-desktop signal-desktop
teams teams
discord discord
element-desktop element-desktop
<<<<<<< HEAD
# music
spotify
# misc
bind
# system
gparted
=======
spotify spotify
bind bind
gparted gparted
sshfs sshfs
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
# autostart # autostart
albert_autostart albert_autostart
guake_autostart guake_autostart
]; ];
<<<<<<< HEAD
};
=======
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
VISUAL = "nvim"; VISUAL = "nvim";
}; };
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
} }

View File

@ -1,11 +1,13 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }:
{
dconf.settings = { dconf.settings = {
# #
# touchpad # touchpad
# #
"org/gnome/desktop/peripherals/touchpad" = { "org/gnome/desktop/peripherals/touchpad" = {
natural-scroll = false; natural-scroll = false;
two-finger-scrolling-enabled = true; two-finger-scrolling-enabled = true;
}; };
@ -14,16 +16,16 @@
# #
"org/gnome/desktop/wm/keybindings" = { "org/gnome/desktop/wm/keybindings" = {
close = [ "<Alt>q" ]; close = [ "<Alt>q" ];
maximize = [ "<Primary><Shift>Up" ]; maximize = [ "<Primary><Shift>Up" ];
unmaximize = [ "<Primary><Shift>Down" ]; unmaximize = [ "<Primary><Shift>Down" ];
move-to-workspace-left = [ "<Shift><Alt>Left" ]; move-to-workspace-left = [ "<Shift><Alt>Left" ];
move-to-workspace-right = [ "<Shift><Alt>Right" ]; move-to-workspace-right = [ "<Shift><Alt>Right" ];
switch-to-workspace-left = [ "<Primary><Alt>Left" ]; switch-to-workspace-left = [ "<Primary><Alt>Left" ];
switch-to-workspace-right = [ "<Primary><Alt>Right" ]; switch-to-workspace-right = [ "<Primary><Alt>Right" ];
}; };
"org/gnome/mutter/keybindings" = { "org/gnome/mutter/keybindings" = {
toggle-tiled-left = [ "<Primary><Shift>Left" ]; toggle-tiled-left = [ "<Primary><Shift>Left" ];
toggle-tiled-right = [ "<Primary><Shift>Right" ]; toggle-tiled-right = [ "<Primary><Shift>Right" ];
}; };
@ -41,21 +43,21 @@
screensaver = [ "<Primary><Alt>l" ]; screensaver = [ "<Primary><Alt>l" ];
# disable screenshot # disable screenshot
screenshot = []; screenshot = [];
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" =
{ {
binding = "F12"; binding = "F12";
command = "guake-toggle"; command = "guake-toggle";
name = "Guake"; name = "Guake";
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" =
{ {
binding = "<Alt>a"; binding = "<Alt>a";
command = "albert toggle"; command = "albert toggle";
name = "Albert"; name = "Albert";
}; };
# #
@ -63,9 +65,8 @@
# #
"org/gnome/settings-daemon/plugins/power" = { "org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing"; sleep-inactive-ac-type = "nothing";
sleep-inactive-battery-type = "nothing"; sleep-inactive-battery-type = "nothing";
}; };
# #
@ -73,7 +74,7 @@
# #
"org/gnome/settings-daemon/plugins/color" = { "org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true; night-light-enabled = true;
night-light-temperature = 2536; night-light-temperature = 2536;
}; };

View File

@ -17,6 +17,11 @@ in {
../../users.nix ../../users.nix
]; ];
variables.hostname = hostname;
time.timeZone = "Europe/Rome";
system.stateVersion = "21.05"; # Did you read the comment?
users.users.giulio.openssh.authorizedKeys.keys = pubkeys;
boot = { boot = {
kernelParams = ["ip=${lan_address}::10.0.0.1:255.255.255.0::enp5s0:off"]; kernelParams = ["ip=${lan_address}::10.0.0.1:255.255.255.0::enp5s0:off"];
@ -25,9 +30,9 @@ in {
network = { network = {
enable = true; enable = true;
ssh = { ssh = {
enable = true; enable = true;
port = 2222; port = 2222;
hostKeys = [/boot/host_ecdsa_key]; hostKeys = [/boot/host_ecdsa_key];
authorizedKeys = pubkeys; authorizedKeys = pubkeys;
}; };
@ -38,81 +43,78 @@ in {
}; };
loader = { loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
supportedFilesystems = ["zfs"]; supportedFilesystems = ["zfs"];
zfs.requestEncryptionCredentials = true; zfs.requestEncryptionCredentials = true;
}; };
variables.hostname = hostname;
time.timeZone = "Europe/Rome";
networking = { networking = {
hostName = hostname; hostName = hostname;
hostId = "49350853"; hostId = "49350853";
useDHCP = false; useDHCP = false;
defaultGateway = "10.0.0.1";
interfaces = { interfaces = {
enp5s0.ipv4.addresses = [{ address = lan_address; prefixLength = 24; }]; enp5s0.ipv4.addresses = [{ address = lan_address; prefixLength = 24; }];
enp6s0.useDHCP = false; enp6s0.useDHCP = false;
wlp4s0.useDHCP = false; wlp4s0.useDHCP = false;
}; };
defaultGateway = "10.0.0.1"; # extraHosts = ''
extraHosts = '' # 127.0.0.1 ${hostname}.devs.giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io giupyter.giugl.io irc.giugl.io localhost
127.0.0.1 ${hostname}.devs.giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io giupyter.giugl.io irc.giugl.io localhost #
## LAN
# LAN #${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io #
# 10.0.0.1 router.devs.giugl.io
10.0.0.1 router.devs.giugl.io # 10.0.0.2 dvr.devs.giugl.io
10.0.0.2 dvr.devs.giugl.io # 10.0.0.3 nas.devs.giugl.io
10.0.0.3 nas.devs.giugl.io #
## Wireguard hosts
# Wireguard hosts # 10.3.0.1 ${hostname}.devs.giugl.io jf.giugl.io giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io
10.3.0.1 ${hostname}.devs.giugl.io jf.giugl.io giugl.io yt.giugl.io s3.giugl.io synclounge.giugl.io htson.giugl.io htrad.giugl.io htnzb.giugl.io httra.giugl.io todo.giugl.io giupyter.giugl.io collabora.giugl.io htjak.giugl.io irc.giugl.io # 10.3.0.2 galuminum.devs.giugl.io
10.3.0.2 galuminum.devs.giugl.io # 10.3.0.3 oneplus.devs.giugl.io
10.3.0.3 oneplus.devs.giugl.io # 10.3.0.4 ipad.devs.giugl.io
10.3.0.4 ipad.devs.giugl.io # 10.3.0.5 manduria.devs.giugl.io
10.3.0.5 manduria.devs.giugl.io # 10.3.0.6 antonio.devs.giugl.io
10.3.0.6 antonio.devs.giugl.io # 10.3.0.7 gbeast.devs.giugl.io
10.3.0.7 gbeast.devs.giugl.io # 10.3.0.8 parisa-phone.devs.giugl.io
10.3.0.8 parisa-phone.devs.giugl.io # 10.3.0.9 parisa-pc.devs.giugl.io
10.3.0.9 parisa-pc.devs.giugl.io # 10.3.0.10 peppiniell.devs.giugl.io
10.3.0.10 peppiniell.devs.giugl.io # 10.3.0.11 padulino.devs.giugl.io
10.3.0.11 padulino.devs.giugl.io # 10.3.0.12 shield.devs.giugl.io
10.3.0.12 shield.devs.giugl.io # 10.3.0.13 angelino.devs.giugl.io
10.3.0.13 angelino.devs.giugl.io # 10.3.0.14 peposone.devs.giugl.io
10.3.0.14 peposone.devs.giugl.io # 10.3.0.15 pepostwo.devs.giugl.io
10.3.0.15 pepostwo.devs.giugl.io # 10.3.0.100 eleonora.devs.giugl.io
10.3.0.100 eleonora.devs.giugl.io # 10.3.0.200 broccolino.devs.giugl.io
10.3.0.200 broccolino.devs.giugl.io # 10.3.0.201 hotpottino.devs.giugl.io
10.3.0.201 hotpottino.devs.giugl.io #
## Blacklist
# Blacklist # 0.0.0.0 metrics.plex.tv
0.0.0.0 metrics.plex.tv # 0.0.0.0 analytics.plex.tv
0.0.0.0 analytics.plex.tv # 0.0.0.0 cdn.luckyorange.com
0.0.0.0 cdn.luckyorange.com # 0.0.0.0 w1.luckyorange.com
0.0.0.0 w1.luckyorange.com # 0.0.0.0 browser.sentry-cdn.com
0.0.0.0 browser.sentry-cdn.com # 0.0.0.0 analytics.facebook.com
0.0.0.0 analytics.facebook.com # 0.0.0.0 ads.facebook.com
0.0.0.0 ads.facebook.com # 0.0.0.0 extmaps-api.yandex.net
0.0.0.0 extmaps-api.yandex.net # 0.0.0.0 logservice.hicloud.com
0.0.0.0 logservice.hicloud.com # 0.0.0.0 logbak.hicloud.com
0.0.0.0 logbak.hicloud.com # 0.0.0.0 logservice1.hicloud.com
0.0.0.0 logservice1.hicloud.com # 0.0.0.0 samsung-com.112.2o7.net
0.0.0.0 samsung-com.112.2o7.net # 0.0.0.0 supportmetrics.apple.com
0.0.0.0 supportmetrics.apple.com # 0.0.0.0 analytics.oneplus.cn
0.0.0.0 analytics.oneplus.cn # 0.0.0.0 click.oneplus.cn
0.0.0.0 click.oneplus.cn # 0.0.0.0 analytics-api.samsunghealthcn.com
0.0.0.0 analytics-api.samsunghealthcn.com #
## The following lines are desirable for IPv6 capable hosts
# The following lines are desirable for IPv6 capable hosts # ::1 localhost ip6-localhost ip6-loopback
::1 localhost ip6-localhost ip6-loopback # ff02::1 ip6-allnodes
ff02::1 ip6-allnodes # ff02::2 ip6-allrouters
ff02::2 ip6-allrouters # '';
'';
}; };
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs;
@ -138,8 +140,8 @@ ${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giu
xserver.videoDrivers = [ "nvidia" ]; xserver.videoDrivers = [ "nvidia" ];
dnsmasq = { dnsmasq = {
enable = true; enable = true;
servers = ["127.0.0.1#5353"]; servers = ["127.0.0.1#5353"];
extraConfig = '' extraConfig = ''
localise-queries localise-queries
''; '';
@ -148,29 +150,26 @@ ${lan_address} ${hostname}.devs.giugl.io giugl.io jf.giugl.io yt.giugl.io s3.giu
dnscrypt-proxy2 = { dnscrypt-proxy2 = {
enable = true; enable = true;
settings = { settings = {
listen_addresses = ["127.0.0.1:5353"]; listen_addresses = ["127.0.0.1:5353"];
ipv4_servers = true; ipv4_servers = true;
ipv6_servers = false; ipv6_servers = false;
dnscrypt_servers = true; dnscrypt_servers = true;
doh_servers = true; doh_servers = true;
require_nolog = true; require_nolog = true;
require_nofilter = true; require_nofilter = true;
timeout = 350; timeout = 350;
lb_strategy = "p4"; lb_strategy = "p4";
lb_estimator = true; lb_estimator = true;
ignore_system_dns = true; ignore_system_dns = true;
fallback_resolvers = ["1.1.1.1:53" "9.9.9.9:53"]; fallback_resolvers = ["1.1.1.1:53" "9.9.9.9:53"];
}; };
}; };
openssh = { openssh = {
enable = true; enable = true;
passwordAuthentication = false; passwordAuthentication = true;
permitRootLogin = "yes";
}; };
}; };
system.stateVersion = "21.05"; # Did you read the comment?
users.users.giulio.openssh.authorizedKeys.keys = pubkeys;
} }

View File

@ -4,8 +4,12 @@
imports = [ <home-manager/nixos> ]; imports = [ <home-manager/nixos> ];
users.users.giulio = { users.users.giulio = {
description = "Giulio De Pasquale"; description = "Giulio De Pasquale";
isNormalUser = true; isNormalUser = true;
<<<<<<< HEAD
shell = pkgs.zsh;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
=======
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = [ "wheel" "docker" "networkmanager" ]; extraGroups = [ "wheel" "docker" "networkmanager" ];
}; };
@ -13,6 +17,7 @@
programs.zsh = { programs.zsh = {
enableBashCompletion = true; enableBashCompletion = true;
enableCompletion = true; enableCompletion = true;
>>>>>>> 010141fe0b7b6d866f46dd9721653d8ee0521a6b
}; };
home-manager.users.giulio = { home-manager.users.giulio = {