Added macintosh

This commit is contained in:
Julien Malka 2021-12-19 19:09:09 +01:00
parent 8293c6593e
commit 5381c1b837
5 changed files with 511 additions and 22 deletions

58
flake.lock generated
View file

@ -31,6 +31,21 @@
"type": "github"
}
},
"hardware": {
"locked": {
"lastModified": 1639240632,
"narHash": "sha256-BAXhgnPOW1COIfZ9EOOFTdolalYS73MFHSRajgrSdZw=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "2a7063461c3751d83869a2a0a8ebc59e34bec5b2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixos-hardware",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -38,11 +53,11 @@
]
},
"locked": {
"lastModified": 1639677999,
"narHash": "sha256-AGd1Z+MF3buhTrCJc3ZrsEgEqWXDlRW9dSkDlW16m2k=",
"lastModified": 1639891275,
"narHash": "sha256-2IMLVTtOHV9kBsirGPRpo8NE48Mjq20iXN7l7uy0YjE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "78aa7cceffe2a48d05694d3ddf7a323d554d9be0",
"rev": "3db603677509eb0b8c396a3234b1d4b70d023894",
"type": "github"
},
"original": {
@ -74,11 +89,11 @@
},
"locked": {
"dir": "contrib",
"lastModified": 1639605401,
"narHash": "sha256-FtoFqT52SDX5S28shnn9xyXBw4i+vnjmUNnl0ghItkk=",
"lastModified": 1639886342,
"narHash": "sha256-OkI09enAc4ID1zrxLkHR5b+WgUL2r2C9BIG4+gwVDFU=",
"owner": "neovim",
"repo": "neovim",
"rev": "326e74571be43823ded9fa805a3173bdabda6bec",
"rev": "abdf3a8128b78fb98ee944bc5d3086c680d779ed",
"type": "github"
},
"original": {
@ -95,11 +110,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1639642693,
"narHash": "sha256-ogdDa5MJAiK6f48BLaZ/qE9mgwwD72BZf/+bf5gdVvQ=",
"lastModified": 1639901638,
"narHash": "sha256-ZMP2xjjo3tHlWfgCd3Odn6qKNpNbvbawjcVpww54A1U=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "7933df62bb350d2f4a258f9e110decc08baaf627",
"rev": "8f7a0bbc9080f55c000344658a071994aa9c6b4b",
"type": "github"
},
"original": {
@ -110,11 +125,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1639525045,
"narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=",
"lastModified": 1639699734,
"narHash": "sha256-tlX6WebGmiHb2Hmniff+ltYp+7dRfdsBxw9YczLsP60=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a2e281f5770247855b85d70c43454ba5bff34613",
"rev": "03ec468b14067729a285c2c7cfa7b9434a04816c",
"type": "github"
},
"original": {
@ -126,11 +141,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1639525045,
"narHash": "sha256-z4GXFNzO+5V4CAUm2DDMAryLOWUKEbQif2ifvv1Ypg4=",
"lastModified": 1639699734,
"narHash": "sha256-tlX6WebGmiHb2Hmniff+ltYp+7dRfdsBxw9YczLsP60=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a2e281f5770247855b85d70c43454ba5bff34613",
"rev": "03ec468b14067729a285c2c7cfa7b9434a04816c",
"type": "github"
},
"original": {
@ -142,11 +157,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1639161226,
"narHash": "sha256-75Y08ynJDTq6HHGIF+8IADBJSVip0UyWQH7jqSFnRR8=",
"lastModified": 1639891440,
"narHash": "sha256-FJxa6ObwOQKZy3VhwN5bJRzX+MV/Yq9WLHK/4jlPKrs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "573095944e7c1d58d30fc679c81af63668b54056",
"rev": "e6377ff35544226392b49fa2cf05590f9f0c4b43",
"type": "github"
},
"original": {
@ -158,11 +173,11 @@
},
"nur": {
"locked": {
"lastModified": 1639677040,
"narHash": "sha256-X5N+0KgS3NbK7g1x+gqVXhPNAS5f4JvpPRLUmD+oRUU=",
"lastModified": 1639920980,
"narHash": "sha256-icSJWsr5M1oMxsCm4adeMD9C4arv2usSlb7tNodO/Q8=",
"owner": "nix-community",
"repo": "NUR",
"rev": "26366b05a1f884116ae254ebaa19feac6160ccf0",
"rev": "6b26266ec67c021bf3e9b6bb3e4ca0cdb5b1543c",
"type": "github"
},
"original": {
@ -172,6 +187,7 @@
},
"root": {
"inputs": {
"hardware": "hardware",
"home-manager": "home-manager",
"homepage": "homepage",
"neovim-nightly-overlay": "neovim-nightly-overlay",

View file

@ -1,7 +1,8 @@
{
description = "A flake for my personnal configurations";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-21.11;
nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -14,6 +15,11 @@
url = "github:JulienMalka/homepage";
flake = false;
};
hardware = {
url = "github:NixOS/nixos-hardware";
};
};
outputs = { self, home-manager, nixpkgs, neovim-nightly-overlay, nur, ... }@inputs:

View file

@ -0,0 +1,265 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
#Execs
exec_always xrandr --output $leftm --primary --mode 1920x1080 --pos 0x0 --rotate normal --output $rightm --mode 1920x1080 --pos 1920x0 --rotate normal
#exec_always xrandr --output $leftm --primary --mode 1920x1080 --pos 0x0 --rotate normal
exec_always feh --bg-scale ~/df/bg.jpg
# Variables {{{
set $sup Mod1
set $terminal tabbed -c urxvt -embed
set $leftm HDMI-1
set $rightm eDP-1
set $workspace1 ""
set $workspace2 ""
set $workspace3 ""
set $workspace4 "4"
set $workspace5 "5"
set $workspace6 "6"
set $workspace7 "7"
set $workspace8 "8"
set $workspace9 "9"
set $workspace10 ""
# }}}
workspace "" output $leftm
workspace "" output $rightm
workspace "" output $rightm
#Set Mod
set $mod Mod4
set $bg-color #172A47
set $text-color #5A9857
set $urgent-bg-color #E53935
set $inactive-bg-color #435E75
##########################################
#Scrolling - doesn't work
#exec --no-startup-id synclient HorizEdgeScroll=1 VertEdgeScroll=1 VertScrollDelta=-111
#WORKSPACE STARTUP
#Gaps and Window
for_window [class="^.*"] border pixel 2
#new_window pixel 4
#new_float pixel 4
#gaps inner 20
gaps inner 10
#border_radius 5
#new_window pixel 3
#new_float pixel 3
#gaps top 35
hide_edge_borders vertical
# Color variables
set $unfocused_border #72afff
set $focused_border #b21c0e
# class border backgr. text indicator
client.focused #698AB2 #698AB2 #698AB2 #698AB2 #698AB2
#client.focused_inactive $base03 $base03 $base05 $base03
#client.unfocused $base03 $base03 $base05 $base00
#client.urgent $base01 $base01 $base05 $base00
#Check .Xresources for font
# start a terminal
bindsym $mod+Return workspace 
bindsym $mod+Shift+Return exec urxvt
# kill focused window
bindsym $mod+q kill
# start rofi
bindsym $mod+space exec ~/.config/rofi/bin/launcher_text
# change focus
# alternatively, you can use the cursor keys:
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# split in horizontal orientation
bindsym $mod+o split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
#bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
bindsym $mod+Ctrl+Left move workspace to output $leftm
bindsym $mod+Ctrl+Right move workspace to output $rightm
# switch to workspace
bindsym $mod+1 workspace 
bindsym $mod+2 workspace 
bindsym $mod+3 workspace 
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 
bindsym $mod+Shift+2 move container to workspace 
bindsym $mod+Shift+3 move container to workspace 
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 
#assign apps to workspaces
#assign [class = "URxvt"] 
assign [class = "Firefox"] 
assign [class = "discord"] 
assign[class="Atomic TweetDeck"] 
assign [class="Slack"] 
assign[class="Atom"]
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
# also destroy anything in startup workspace
bindsym $mod+Shift+r restart [workspace=] kill
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize shrink height 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym $mod+R mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bindsym $mod+p exec i3lock-fancy
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
# font pango:DejaVu Sans Mono, Awesome 8
# status_command i3blocks
# colors {
# background #23313D
# separator #757575
# # border background text
# focused_workspace $inactive-bg-color $bg-color $text-color
# inactive_workspace $bg-color $bg-color $text-color
# urgent_workspace $urgent-bg-color $urgent-bg-color $text-color
# }
#}
#SCROT
bindsym --release Print exec "scrot ~/Pictures/Screenshots/%b%d:%H%M%S.png"
# Alsa controls
bindsym XF86AudioMute exec amixer set Master toggle; exec pkill -RTMIN+10 i3blocks
bindsym XF86AudioRaiseVolume exec amixer set Master 5%+; exec pkill -RTMIN+10 i3blocks
bindsym XF86AudioLowerVolume exec amixer set Master 5%-; exec pkill -RTMIN+10 i3blocks
#Pulse Audio controls
#bindsym XF86AudioRaiseVolume exec amixer -q -D pulse sset Master 2%+;
#exec pkill -RTMIN+10 i3blocks
#bindsym XF86AudioLowerVolume exec amixer -q -D pulse sset Master 2%-;
#exec pkill -RTMIN+10 i3blocks
#bindsym XF86AudioMute exec amixer -q -D pulse sset Master toggle;
#exec pkill -RTMIN+10 i3blocks
# Sreen brightness controls
bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
# Touchpad controls
bindsym XF86TouchpadToggle exec /some/path/toggletouchpad.sh # toggle touchpad
# Media player controls
bindsym XF86AudioPlay exec playerctl play
bindsym XF86AudioPause exec playerctl pause
#bindsym XF86AudioNext exec playerctl next
#bindsym XF86AudioPrev exec playerctl previous
exec systemctl --user restart polybar
exec xrdb /home/julien/.Xressources
#exec --no-startup-id i3-msg 'workspace ; exec urxvt;exec urxvt;exec urxvt;exec urxvt; workspace '

View file

@ -0,0 +1,19 @@
{ config, pkgs, lib, ... }:
let
cfg = config.luj.i3;
in with lib;
{
options.luj.i3 = {
enable = mkEnableOption "activate i3";
};
config = mkIf cfg.enable {
xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
};
xdg.configFile."i3/config".source = lib.mkForce ./config;
};
}

183
machines/macintosh.nix Normal file
View file

@ -0,0 +1,183 @@
{ config, pkgs, lib, modulesPath, inputs, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
(import "${inputs.hardware}/lenovo/thinkpad/p14s/amd/gen2")
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
sound.enable = true;
hardware.pulseaudio.enable = true;
hardware.pulseaudio.support32Bit = true;
networking.hostName = "macintosh"; # Define your hostname.
networking.networkmanager.enable = true;
time.timeZone = "Europe/Paris";
networking.useDHCP = false;
networking.interfaces.enp2s0f0.useDHCP = true;
networking.interfaces.enp5s0.useDHCP = true;
networking.interfaces.wlp3s0.useDHCP = true;
programs.steam.enable = true;
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "fr";
};
nixpkgs.config.allowUnfree = true;
hardware.trackpoint = {
enable = true;
speed = 80;
sensitivity = 220;
emulateWheel = true;
device = "TPPS/2 Elan TrackPoint";
};
programs.gnupg.agent.enable = true;
services = {
tlp.enable = true;
xserver = {
enable = true;
layout = "fr";
libinput.enable = false;
libinput.touchpad.tapping = false;
displayManager.lightdm.enable = true;
desktopManager.xterm.enable = true;
};
};
environment.systemPackages = with pkgs; [
wget
firefox
git
rxvt_unicode
xorg.xbacklight
];
environment.variables.EDITOR = "urxvt";
programs.dconf.enable = true;
networking.firewall.enable = false;
system.stateVersion = "21.11"; # Did you read the comment?
boot.initrd.availableKernelModules = [ "nvme" "ehci_pci" "xhci_pci" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" "amdgpu"];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/3e01f61b-c580-4078-94be-192f7aed5c5a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2799-DF20";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/44dadc95-a61e-40db-93d7-ada237f1e53b"; }
];
# HOME
luj.hmgr.julien = {
luj.programs.neovim.enable = true;
luj.i3.enable = true;
home.packages = with pkgs; [
feh
meld
vlc
nerdfonts
font-awesome
python3
texlive.combined.scheme-full
nodejs
fira-code
neomutt
htop
evince
mosh
signal-desktop
flameshot
ctags
ungoogled-chromium
];
home.keyboard = {
layout = "fr";
};
gtk = {
enable = true;
theme = {
name = "Nordic";
package = pkgs.nordic;
};
};
qt = {
enable = true;
platformTheme = "gtk";
};
fonts.fontconfig.enable = true;
services.polybar = {
enable = true;
package = pkgs.polybar.override {
i3GapsSupport = true;
#i3Support = true;
};
script = "polybar -q PolybarTony &";
};
xsession.enable = true;
programs.rofi.enable = true;
home.stateVersion = "21.11";
};
}