Merge branch 'wayland'

This commit is contained in:
Dmitriy Kholkin 2022-01-29 00:44:49 +03:00
commit 3efd371fbb
32 changed files with 953 additions and 748 deletions

283
flake.lock generated
View File

@ -1,27 +1,5 @@
{ {
"nodes": { "nodes": {
"android-nixpkgs": {
"inputs": {
"devshell": "devshell",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1636661994,
"narHash": "sha256-EQ1jTIGAtb2DCippFWPXume+j8Xw02VnT/M35Prlovc=",
"owner": "tadfisher",
"repo": "android-nixpkgs",
"rev": "3ca481a473cb07fdc25b7d4c2cdd5960391aba90",
"type": "github"
},
"original": {
"owner": "tadfisher",
"repo": "android-nixpkgs",
"type": "github"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
@ -88,28 +66,29 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"devshell": { "cachix": {
"locked": { "locked": {
"lastModified": 1636119665, "lastModified": 1642244250,
"narHash": "sha256-e11Z9PyH9hdgTm4Vyl8S5iTwrv0um6+srzb1Ba+YUHA=", "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=",
"owner": "numtide", "owner": "nixos",
"repo": "devshell", "repo": "nixpkgs",
"rev": "ab14b1a3cb253f58e02f5f849d621292fbf81fad", "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "nixos",
"repo": "devshell", "ref": "nixos-21.05",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1634851050, "lastModified": 1638122382,
"narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c91f3de5adaf1de973b797ef7485e441a65b8935", "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -119,6 +98,21 @@
} }
}, },
"flake-utils_2": { "flake-utils_2": {
"locked": {
"lastModified": 1642700792,
"narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "846b2ae0fc4cc943637d3d1def4454213e203cba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": { "locked": {
"lastModified": 1634851050, "lastModified": 1634851050,
"narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=", "narHash": "sha256-N83GlSGPJJdcqhUxSCS/WwW5pksYf3VP1M13cDRTSVA=",
@ -140,11 +134,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1636520380, "lastModified": 1642676973,
"narHash": "sha256-gBiQ8+AQG6Dia34rqJDuqs6VFe/J1SjIhOZBeTXCKQI=", "narHash": "sha256-bLQ6n0pXYaIuNSyJnm30JGCfjmuTi59qAmj8S2ExDXI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1e5c8e9bff00d0844bc3d25d1a98eab5633e600b", "rev": "7eb5106548eaab99ebeb21c87f93092de54fe931",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -155,10 +149,7 @@
}, },
"home-manager_2": { "home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": "nixpkgs_5"
"vscode-server-fixup",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1635839387, "lastModified": 1635839387,
@ -174,22 +165,6 @@
"type": "github" "type": "github"
} }
}, },
"i3lock-fancy-rapid": {
"flake": false,
"locked": {
"lastModified": 1618965247,
"narHash": "sha256-EoX8ts0yV/zkb4wgEh4P8noU+UraRS4w9pp+76v+Nm0=",
"owner": "yvbbrjdr",
"repo": "i3lock-fancy-rapid",
"rev": "6eeebd4caa177b82fa5010b5e8828cce3f89fb97",
"type": "github"
},
"original": {
"owner": "yvbbrjdr",
"repo": "i3lock-fancy-rapid",
"type": "github"
}
},
"lowdown-src": { "lowdown-src": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -209,11 +184,11 @@
"materia-theme": { "materia-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1620818711, "lastModified": 1638461758,
"narHash": "sha256-0eCAfm/MWXv6BbCl2vbVbvgv8DiUH09TAUhoKq7Ow0k=", "narHash": "sha256-+E8eJQcDw4F12MmGrCoFUeGFZzYZWQtY7PVhXVAZRFY=",
"owner": "nana-4", "owner": "nana-4",
"repo": "materia-theme", "repo": "materia-theme",
"rev": "76cac96ca7fe45dc9e5b9822b0fbb5f4cad47984", "rev": "af63425f9bbb2ac9bc4853a4357457d743c65308",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -248,50 +223,38 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1636573809, "lastModified": 1642777172,
"narHash": "sha256-fZqSolh+RfJnqK9zR9TFEMFII+ayo4V9DA21xuI9nhA=", "narHash": "sha256-Sh37PkGIiMhhaiM33+TvacbgQHtg93YITMY0orGJ7y8=",
"owner": "NixOS", "owner": "nixos",
"repo": "nix", "repo": "nix",
"rev": "52a3b2ee6367306a3f17fe9a2d0e2e4096852e05", "rev": "5f08db69d18ea5b868cbb58993822e7dd0307518",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nix", "owner": "nixos",
"type": "indirect" "repo": "nix",
}
},
"nix-direnv": {
"flake": false,
"locked": {
"lastModified": 1634795676,
"narHash": "sha256-p2xWs0I1hrZLiWU1P4cCGNSRuhRsbTFxsMYNVWocS4I=",
"owner": "nix-community",
"repo": "nix-direnv",
"rev": "a3d08b6c8fa2a976aba430c733f54cf97d9046b0",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-direnv",
"type": "github" "type": "github"
} }
}, },
"nixos-rocm": { "nix-alien": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix"
}, },
"locked": { "locked": {
"lastModified": 1630800478, "lastModified": 1642257542,
"narHash": "sha256-dHaXN5bdf1RTK9YpYscflmdBqz2XV01Lit0xXRjLDkc=", "narHash": "sha256-znJjO+22bmYIcMvXTNoxkGrPyCEKhjNpwu/R4gLuKYY=",
"owner": "nixos-rocm", "owner": "thiagokokada",
"repo": "nixos-rocm", "repo": "nix-alien",
"rev": "cb12dc5cf144469b39f47b6be2e162f3202b142f", "rev": "039e009b74b4310986696e28808342741079c7ee",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos-rocm", "owner": "thiagokokada",
"ref": "4.3.x", "repo": "nix-alien",
"repo": "nixos-rocm",
"type": "github" "type": "github"
} }
}, },
@ -325,13 +288,28 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs-21_11": {
"locked": {
"lastModified": 1638371214,
"narHash": "sha256-0kE6KhgH7n0vyuX4aUoGsGIQOqjIx2fJavpCWtn73rc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a640d8394f34714578f3e6335fc767d0755d78f9",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-21.11",
"type": "indirect"
}
},
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1636683649, "lastModified": 1642799162,
"narHash": "sha256-4wDfn9pmGX5WBEttGxYVYliZm2zeZeBLl0ytowHnvXE=", "narHash": "sha256-6KJlDYBM2YUfHyjn3J3iCmNpjKIBUfmenfAGtmVWLoI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "77e7d796b838eae999b7649495770345b54825d2", "rev": "af1309ca38c3d727e5100c18f66f19cf9c0530be",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -344,11 +322,11 @@
"nixpkgs-mozilla": { "nixpkgs-mozilla": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1636569584, "lastModified": 1638887313,
"narHash": "sha256-iDFogua24bhFJZSxG/jhZbbNxDXuKP9S/pyRIYzrRPM=", "narHash": "sha256-FMYV6rVtvSIfthgC1sK1xugh3y7muoQcvduMdriz4ag=",
"owner": "mozilla", "owner": "mozilla",
"repo": "nixpkgs-mozilla", "repo": "nixpkgs-mozilla",
"rev": "9f70f86d73fa97e043bebeb58e5676d157069cfb", "rev": "7c1e8b1dd6ed0043fb4ee0b12b815256b0b9de6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -375,17 +353,38 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1632411313, "lastModified": 1642707142,
"narHash": "sha256-lekODc44lVo9/0EwGiX6LoEt2KhiPdcfNopealMJ7n4=", "narHash": "sha256-BzH6xhnkn52yF4+A8C8slWFQRMInS5VYlzrH/rN1bnA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "51bcdc4cdaac48535dabf0ad4642a66774c609ed", "rev": "6f07605b6916abee5435ea1145a7541299a87c1b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-21.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "51bcdc4cdaac48535dabf0ad4642a66774c609ed", "type": "github"
}
},
"nixpkgs-wayland": {
"inputs": {
"cachix": "cachix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1642775155,
"narHash": "sha256-yQMXrsAxYTbrSr5DGpCsyrWIeBbs/f0S9Uc0/fUABHo=",
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"rev": "a38c5dfa2998e6dddd39a5e119672110a91b79a6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs-wayland",
"type": "github" "type": "github"
} }
}, },
@ -406,27 +405,26 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1630761588, "lastModified": 1642799162,
"narHash": "sha256-7GXckvZy7DGh2KIyfdArqwnyeSc5Owy1fumEDQyd8eY=", "narHash": "sha256-6KJlDYBM2YUfHyjn3J3iCmNpjKIBUfmenfAGtmVWLoI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a51aa6523bd8ee985bc70987909eff235900197a", "rev": "af1309ca38c3d727e5100c18f66f19cf9c0530be",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1636443933, "lastModified": 1642635915,
"narHash": "sha256-ABJmNQdzFWWxaqkb0C0kd9f/MmUtmnQrxm9sZPhgm/s=", "narHash": "sha256-vabPA32j81xBO5m3+qXndWp5aqepe+vu96Wkd9UnngM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9e70e9f732fbb15872cb4ea11bd43c14328a0b69", "rev": "6d8215281b2f87a5af9ed7425a26ac575da0438f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -436,14 +434,46 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1641528457,
"narHash": "sha256-FyU9E63n1W7Ql4pMnhW2/rO9OftWZ37pLppn/c1aisY=",
"path": "/nix/store/pwz0d92vl5hjrvhiri3qzazxjnf1r8wy-source",
"rev": "ff377a78794d412a35245e05428c8f95fef3951f",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1642215333,
"narHash": "sha256-hOs6lr62ITT8gAnpj5C248K0PW4IrCuXzgoan+VUgiM=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "7b5c8e3b838d534e0d4dcaa6bbe6530086ebf407",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"qbittorrent-ee": { "qbittorrent-ee": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1635705887, "lastModified": 1641579458,
"narHash": "sha256-MiAfqcalfk6CWBtLtENnwc0W17MLSZOoLuzfu/xP4Pw=", "narHash": "sha256-7jbG8kQkLyKP03Ta2LNIEctAEbVb4o/opWiaYP15ZAc=",
"owner": "c0re100", "owner": "c0re100",
"repo": "qBittorrent-Enhanced-Edition", "repo": "qBittorrent-Enhanced-Edition",
"rev": "a3955360cd527a641d4623fd84609bc072c574e2", "rev": "fd047415f4fa9d99edabd4a0cb285bb8d30c8c50",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -454,21 +484,19 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"android-nixpkgs": "android-nixpkgs",
"base16": "base16", "base16": "base16",
"base16-horizon-scheme": "base16-horizon-scheme", "base16-horizon-scheme": "base16-horizon-scheme",
"base16-tokyonight-scheme": "base16-tokyonight-scheme", "base16-tokyonight-scheme": "base16-tokyonight-scheme",
"home-manager": "home-manager", "home-manager": "home-manager",
"i3lock-fancy-rapid": "i3lock-fancy-rapid",
"materia-theme": "materia-theme", "materia-theme": "materia-theme",
"multimc-cracked": "multimc-cracked", "multimc-cracked": "multimc-cracked",
"nix": "nix", "nix": "nix",
"nix-direnv": "nix-direnv", "nix-alien": "nix-alien",
"nixos-rocm": "nixos-rocm",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixpkgs-master": "nixpkgs-master", "nixpkgs-master": "nixpkgs-master",
"nixpkgs-mozilla": "nixpkgs-mozilla", "nixpkgs-mozilla": "nixpkgs-mozilla",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-wayland": "nixpkgs-wayland",
"qbittorrent-ee": "qbittorrent-ee", "qbittorrent-ee": "qbittorrent-ee",
"rycee": "rycee", "rycee": "rycee",
"simple-nixos-mailserver": "simple-nixos-mailserver", "simple-nixos-mailserver": "simple-nixos-mailserver",
@ -482,11 +510,11 @@
"rycee": { "rycee": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1636603333, "lastModified": 1642777133,
"narHash": "sha256-VnTFUNJZE2eNnjsPgTVqqHQtcHXe0udFBHPqXljRLwE=", "narHash": "sha256-sJuwCblryqBK4oTsq/MSZIpKgaB4XpfHCfG1kzmKbHM=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "12ffa46d3f18d1a439a63fb78a83db8e9637a12f", "rev": "fdd004510ccd5fe3fd63a38124578a58b2b21c8e",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -502,14 +530,15 @@
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-21_05": "nixpkgs-21_05", "nixpkgs-21_05": "nixpkgs-21_05",
"nixpkgs-21_11": "nixpkgs-21_11",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1636315032, "lastModified": 1638911354,
"narHash": "sha256-hbMXt0/PYssN92hfZwIoAnavyBbcLEpHJS3eMAK6H6c=", "narHash": "sha256-hNhzLOp+dApEY15vwLAQZu+sjEQbJcOXCaSfAT6lpsQ=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "6e8142862f23ab99e1cc57838c02b733361e8d50", "rev": "6e3a7b2ea6f0d68b82027b988aa25d3423787303",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -535,7 +564,7 @@
}, },
"vscode-server-fixup": { "vscode-server-fixup": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@ -575,11 +604,11 @@
"zsh-cod": { "zsh-cod": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1627976995, "lastModified": 1642757985,
"narHash": "sha256-CJDZK/3TCk+Zb6IZk41L1crboED4FZFhrSJJmHF6yBk=", "narHash": "sha256-gn1MXy2kRCZqYewsxr+ZRwhxwUlD6TM1bt0mRDYnRZ8=",
"owner": "dim-an", "owner": "dim-an",
"repo": "cod", "repo": "cod",
"rev": "5e815b558bbc1c2a48df090c9ab6d0dad8e6f551", "rev": "de10c9bfff394dd59f302515776f1413f26e5a49",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -607,11 +636,11 @@
"zsh-you-should-use": { "zsh-you-should-use": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1628094370, "lastModified": 1638894143,
"narHash": "sha256-hTJjeJT9szHl9HXDHaSEmkv3wOARORs7sQA8/MjkfIo=", "narHash": "sha256-g4Fw0TwyajZnWQ8fvJvobyt98nRgg08uxK6yNEABo8Y=",
"owner": "MichaelAquilina", "owner": "MichaelAquilina",
"repo": "zsh-you-should-use", "repo": "zsh-you-should-use",
"rev": "ccc7e7f75bd7169758a1c931ea574b96b71aa9a0", "rev": "773ae5f414b296b4100f1ab6668ecffdab795128",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -4,17 +4,16 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs/master"; nixpkgs-master.url = "github:nixos/nixpkgs/master";
# nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.05"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.11";
nixpkgs-stable.url = "github:nixos/nixpkgs/51bcdc4cdaac48535dabf0ad4642a66774c609ed"; nixpkgs-wayland = {
url = "github:nix-community/nixpkgs-wayland";
inputs.nixpkgs.follows = "nixpkgs";
};
nix.url = "github:nixos/nix"; nix.url = "github:nixos/nix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
android-nixpkgs = {
url = "github:tadfisher/android-nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
base16.url = "github:alukardbf/base16-nix"; base16.url = "github:alukardbf/base16-nix";
base16-horizon-scheme = { base16-horizon-scheme = {
url = "github:michael-ball/base16-horizon-scheme"; url = "github:michael-ball/base16-horizon-scheme";
@ -24,10 +23,6 @@
url = "github:alukardbf/base16-tokyonight-scheme"; url = "github:alukardbf/base16-tokyonight-scheme";
flake = false; flake = false;
}; };
i3lock-fancy-rapid = {
url = "github:yvbbrjdr/i3lock-fancy-rapid";
flake = false;
};
materia-theme = { materia-theme = {
url = "github:nana-4/materia-theme"; url = "github:nana-4/materia-theme";
flake = false; flake = false;
@ -40,19 +35,14 @@
submodules = true; submodules = true;
type = "git"; type = "git";
}; };
nixos-rocm = { nix-alien = {
url = "github:nixos-rocm/nixos-rocm/4.3.x"; url = "github:thiagokokada/nix-alien";
# inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixpkgs-mozilla = { nixpkgs-mozilla = {
url = "github:mozilla/nixpkgs-mozilla"; url = "github:mozilla/nixpkgs-mozilla";
flake = false; flake = false;
}; };
nix-direnv = {
url = "github:nix-community/nix-direnv";
flake = false;
# inputs.nixpkgs.follows = "nixpkgs";
};
qbittorrent-ee = { qbittorrent-ee = {
url = "github:c0re100/qBittorrent-Enhanced-Edition"; url = "github:c0re100/qBittorrent-Enhanced-Edition";
flake = false; flake = false;

View File

@ -28,12 +28,4 @@
deviceSpecific.wireguard.enable = true; deviceSpecific.wireguard.enable = true;
hardware.video.hidpi.enable = lib.mkForce false; hardware.video.hidpi.enable = lib.mkForce false;
services.xserver.config = ''
Section "InputClass"
Identifier "C-Media USB Headphone Set"
MatchUSBID "0d8c:000c"
Option "Ignore" "true"
EndSection
'';
} }

Binary file not shown.

View File

@ -47,16 +47,19 @@ let
activate-secrets = pkgs.writeShellScriptBin "activate-secrets" '' activate-secrets = pkgs.writeShellScriptBin "activate-secrets" ''
set -euo pipefail set -euo pipefail
export PATH="${with pkgs; lib.makeBinPath [ gnupg git coreutils ]}:/run/wrappers/bin/:$PATH"
export SHELL=${pkgs.runtimeShell}
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
if [ -d "${password-store}/.git" ]; then if [ -d "${password-store}/.git" ]; then
cd "${password-store}"; ${pkgs.git}/bin/git pull cd "${password-store}"; git pull
else else
${pkgs.git}/bin/git clone ${ echo "${lib.escapeShellArg config.secretsConfig.repo}"
git clone ${
lib.escapeShellArg config.secretsConfig.repo lib.escapeShellArg config.secretsConfig.repo
} "${password-store}" } "${password-store}"
fi fi
cat ${password-store}/spotify.gpg | ${pkgs.gnupg}/bin/gpg --decrypt > /dev/null cat ${password-store}/spotify.gpg | ${pkgs.gnupg}/bin/gpg --decrypt > /dev/null
sudo systemctl restart ${allServices} [ ! -z "${allServices}" ] && sudo systemctl restart ${allServices}
''; '';
decrypt = name: cfg: decrypt = name: cfg:
@ -118,7 +121,7 @@ in {
options.secretsConfig = { options.secretsConfig = {
repo = lib.mkOption { repo = lib.mkOption {
type = str; type = str;
default = "ssh://gitea@gitea.ataraxiadev.com:AtaraxiaDev/pass.git"; default = "git@github.com:AlukardBF/pass.git";
}; };
}; };
@ -148,14 +151,14 @@ in {
Service = { Service = {
Environment = [ Environment = [
"PASSWORD_STORE_DIR=${password-store}" "PASSWORD_STORE_DIR=${password-store}"
"PATH=${lib.makeBinPath [ pkgs.pass pkgs.inotify-tools pkgs.gnupg ]}" "PATH=${with pkgs; lib.makeBinPath [ pass inotify-tools gnupg git ]}"
]; ];
ExecStart = toString (pkgs.writeShellScript "pass-store-sync" '' ExecStart = toString (pkgs.writeShellScript "pass-store-sync" ''
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
while inotifywait "$PASSWORD_STORE_DIR" -r -e move -e close_write -e create -e delete --exclude .git; do while inotifywait "$PASSWORD_STORE_DIR" -r -e move -e close_write -e create -e delete --exclude .git; do
sleep 0.1 sleep 1
pass git add --all pass git add --all
pass git commit -m "change" pass git commit -m "$(date +%F)_$(date+%T)"
pass git pull --rebase pass git pull --rebase
pass git push pass git push
done done
@ -169,7 +172,7 @@ in {
}; };
programs.password-store = { programs.password-store = {
enable = true; enable = true;
package = pkgs.pass-nodmenu; package = pkgs.pass-wayland;
settings.PASSWORD_STORE_DIR = password-store; settings.PASSWORD_STORE_DIR = password-store;
}; };
}; };

View File

@ -38,7 +38,7 @@
messenger.cmd messenger.cmd
"${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx" "${pkgs.keepassxc}/bin/keepassxc --keyfile=/home/alukard/.passwords.key /home/alukard/nixos-config/misc/Passwords.kdbx"
"${term.cmd} -e spt" "${term.cmd} -e spt"
"${pkgs.feh}/bin/feh --bg-fill ${/. + ../misc/wallpaper}" # "${pkgs.feh}/bin/feh --bg-fill ${/. + ../misc/wallpaper}"
]; ];
environment.sessionVariables = { environment.sessionVariables = {

View File

@ -4,6 +4,8 @@
enable = true; enable = true;
config = { config = {
vo = "gpu"; vo = "gpu";
gpu-context = "wayland";
save-position-on-quit = "yes";
hwdec = if config.deviceSpecific.devInfo.gpu.vendor == "nvidia" then hwdec = if config.deviceSpecific.devInfo.gpu.vendor == "nvidia" then
"vdpau" "vdpau"
else else
@ -11,10 +13,11 @@
ytdl-format = if config.deviceSpecific.isLaptop then ytdl-format = if config.deviceSpecific.isLaptop then
"bestvideo[height<=?1080]+bestaudio/best" "bestvideo[height<=?1080]+bestaudio/best"
else else
"bestvideo+bestaudio/best"; "bestvideo[height<=?2160]+bestaudio/best";
}; };
}; };
home-manager.users.alukard.home.file.".config/youtube-dl/config" = { # TODO: --cookies-from-browser
home-manager.users.alukard.home.file.".config/yt-dlp/config" = {
text = '' text = ''
--cookie=/var/secrets/yt-cookie --cookie=/var/secrets/yt-cookie
--mark-watched --mark-watched

View File

@ -9,12 +9,15 @@ with config.deviceSpecific; {
exa exa
fd fd
ffmpeg.bin ffmpeg.bin
git-filter-repo # git-filter-repo
glib glib
# gptfdisk # gptfdisk
libqalculate libqalculate
lm_sensors lm_sensors
lnav
nix-alien
nix-prefetch-git nix-prefetch-git
nix-index-update
p7zip p7zip
# (p7zip.override { enableUnfree = true; }) # (p7zip.override { enableUnfree = true; })
pciutils pciutils
@ -28,7 +31,7 @@ with config.deviceSpecific; {
unzip unzip
usbutils usbutils
wget wget
youtube-dl yt-dlp
zip zip
# tui # tui
@ -44,39 +47,45 @@ with config.deviceSpecific; {
# gui # gui
audacity audacity
blueman blueman
bookworm # bookworm
discord discord
element-desktop element-desktop
feh feh
gnome.eog
gparted gparted
keepassxc keepassxc
persepolis # persepolis
pinta pinta
qbittorrent qbittorrent
qimgv
quodlibet quodlibet
scrcpy scrcpy
system-config-printer system-config-printer
tdesktop tdesktop
xarchiver xarchiver
xfce4-14.thunar
xfce4-14.xfce4-taskmanager
youtube-to-mpv youtube-to-mpv
zathura zathura
zoom-us
# libsForQt5.networkmanager-qt
# networkmanagerapplet
xdg-utils
# awesome-shell # awesome-shell
lnav curlie
duf
zsh-z
] ++ lib.optionals (!(isVM || isISO)) [ ] ++ lib.optionals (!(isVM || isISO)) [
libreoffice libreoffice
] ++ lib.optionals isGaming [ ] ++ lib.optionals isGaming [
# ceserver # ceserver
# ckan # ckan
gamescope
goverlay goverlay
multimc multimc
lutris lutris
obs-studio obs-studio
reshade-shaders reshade-shaders
# (retroarch.override { cores = [ libretro.genesis-plus-gx ]; })
protontricks
vkBasalt vkBasalt
# wine # wine
# winetricks # winetricks

View File

@ -5,13 +5,14 @@ let
in in
{ {
defaultApplications.dmenu = { defaultApplications.dmenu = {
cmd = "${pkgs.rofi}/bin/rofi -show run"; cmd = "${pkgs.rofi-wayland}/bin/rofi -show run";
desktop = "rofi"; desktop = "rofi";
}; };
home-manager.users.alukard = { home-manager.users.alukard = {
programs.rofi = { programs.rofi = {
enable = true; enable = true;
package = pkgs.rofi-wayland;
font = "${thm.fonts.mono.family} ${thm.fontSizes.header.str}"; font = "${thm.fonts.mono.family} ${thm.fontSizes.header.str}";
terminal = config.defaultApplications.term.cmd; terminal = config.defaultApplications.term.cmd;
theme = "${themeFile}"; theme = "${themeFile}";

View File

@ -8,108 +8,127 @@ in
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscode; package = pkgs.vscode;
extensions = with pkgs.vscode-extensions; ([ extensions = pkgs.vscode-utils.extensionsFromVscodeMarketplace [
alefragnani.project-manager
arrterian.nix-env-selector
bbenoist.nix
codezombiech.gitignore
coenraads.bracket-pair-colorizer-2
eamodio.gitlens
github.vscode-pull-request-github
mhutchie.git-graph
ms-vscode-remote.remote-ssh
naumovs.color-highlight
shardulm94.trailing-spaces
streetsidesoftware.code-spell-checker
tomoki1207.pdf
tyriar.sort-lines
yzhang.markdown-all-in-one
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{ {
name = "awesome-flutter-snippets";
publisher = "nash";
version = "3.0.2";
sha256 = "sha256-GQ42tySMD74F0umBlfBCbcjRsop8lKn/9RrwFM40PwE=";
} {
name = "better-comments"; name = "better-comments";
publisher = "aaron-bond"; publisher = "aaron-bond";
version = "2.1.0"; version = "2.1.0";
sha256 = "sha256-l7MG2bpfTgVgC+xLal6ygbxrrRoNONzOWjs3fZeZtU4="; sha256 = "0kmmk6bpsdrvbb7dqf0d3annpg41n9g6ljzc1dh0akjzpbchdcwp";
} {
name = "Bookmarks";
publisher = "alefragnani";
version = "13.2.2";
sha256 = "17fyk8hr9ml0fx6qfyrkd0hbsb9r9s4s95w3yzly2glbwpwn5mm5";
} {
name = "project-manager";
publisher = "alefragnani";
version = "12.4.0";
sha256 = "0q6zkz7pqz2prmr01h17h9a5q6cn6bjgcxggy69c84j8h2w905wy";
} {
name = "nix-env-selector";
publisher = "arrterian";
version = "1.0.7";
sha256 = "0mralimyzhyp4x9q98x3ck64ifbjqdp8cxcami7clvdvkmf8hxhf";
} {
name = "Nix";
publisher = "bbenoist";
version = "1.0.1";
sha256 = "0zd0n9f5z1f0ckzfjr38xw2zzmcxg1gjrava7yahg5cvdcw6l35b";
} { } {
name = "better-toml"; name = "better-toml";
publisher = "bungcip"; publisher = "bungcip";
version = "0.3.2"; version = "0.3.2";
sha256 = "sha256-g+LfgjAnSuSj/nSmlPdB0t29kqTmegZB5B1cYzP8kCI="; sha256 = "08lhzhrn6p0xwi0hcyp6lj9bvpfj87vr99klzsiy8ji7621dzql3";
} {
name = "bookmarks";
publisher = "alefragnani";
version = "13.2.2";
sha256 = "sha256-pdZi+eWLPuHp94OXpIlOOS29IGgze4dNd4DWlCGa3p0=";
} {
name = "codeacejumper";
publisher = "lucax88x";
version = "3.3.2";
sha256 = "sha256-Fltl6ryBK2g2WWxV2Ru74cSYwqxgfFGclLlm8ChwRQk=";
} {
name = "dart-code";
publisher = "dart-code";
version = "3.28.0";
sha256 = "sha256-m0cZLAlVtjfvkIXlFssDQcNhqpjRrW1JTaUsohnY/14=";
} {
name = "vscode-env";
publisher = "irongeek";
version = "0.1.0";
sha256 = "sha256-URq90lOFtPCNfSIl2NUwihwRQyqgDysGmBc3NG7o7vk=";
} {
name = "flutter";
publisher = "dart-code";
version = "3.28.0";
sha256 = "sha256-3+PGSuJe32F2i1g9+/6GkcSYEMsjXZMK4xv4xPjzXvM=";
} {
name = "flutter-tree";
publisher = "marcelovelasquez";
version = "1.0.0";
sha256 = "sha256-+gQH7so9m/HvO0tDKaiNTP+2pTCvNdecJK60sgTY9CE=";
} {
name = "gruvbox-material";
publisher = "sainnhe";
version = "6.4.6";
sha256 = "sha256-rm/S4SAZ/z8Svd0wZyaYOZUxcUSMmBE0xUk+16drrZ8=";
} {
name = "vscode-hexdump";
publisher = "slevesque";
version = "1.8.1";
sha256 = "sha256-BNPRXRiM0OujxUZhBHREtaa0VrbuhhQ2CG3PUCyxga8=";
} {
name = "material-icon-theme";
publisher = "pkief";
version = "4.10.0";
sha256 = "sha256-4CzjUz/n/lQ7tLXuKEzmSkSE1jinpTZWDy11KHq7P4U=";
} { } {
name = "path-intellisense"; name = "path-intellisense";
publisher = "christian-kohler"; publisher = "christian-kohler";
version = "2.4.2"; version = "2.7.0";
sha256 = "sha256-bPemoDmhBANjbn19ThKTZEjKLbQ5SlVFJp22K4kNjag="; sha256 = "11jbaz8dlr9zmamikgii6pvbncsm61bhkipfarlqrisgfk99im9w";
} { } {
name = "plantuml"; name = "gitignore";
publisher = "jebbs"; publisher = "codezombiech";
version = "2.16.0"; version = "0.7.0";
sha256 = "sha256-E29zGwHzVTARVGKn0JHpyKx3NCBNUSUSngmUvi0Hfo8="; sha256 = "0fm4sxx1cb679vn4v85dw8dfp5x0p74m9p2b56gqkvdap0f2q351";
} { } {
name = "code-spell-checker-russian"; name = "dart-code";
publisher = "streetsidesoftware"; publisher = "Dart-Code";
version = "2.0.1"; version = "3.33.20220111";
sha256 = "sha256-GC1zQp/2BxPLrCBCgKhxHkvX0bM3OAYSvI2C9SSHthQ="; sha256 = "14jc0vh7swn2ijmgc496wjfrk5mbv4yrjpzxq3n9z1l5390sz30x";
} { } {
name = "tokyo-night"; name = "flutter";
publisher = "enkia"; publisher = "Dart-Code";
version = "0.7.9"; version = "3.32.0";
sha256 = "sha256-2+md3lkBew1u+XkAM4e7i4OMNvyyJlZA4OT3WvMUkfk="; sha256 = "02zk6889n9m4s44ygnid28mg9bghrdcj0wg8ma1g1yqx7jv554l6";
} { } {
name = "wal-theme"; name = "wal-theme";
publisher = "dlasagno"; publisher = "dlasagno";
version = "1.2.0"; version = "1.2.0";
sha256 = "sha256-X16N5ClNVLtWST64ybJUEIRo6WgDCzODhBA9ScAHI5w="; sha256 = "17130z04jg8hhj1k62q3d3lni10hajrckf1y95bbnm2d57j8spjz";
} {
name = "gitlens";
publisher = "eamodio";
version = "11.7.0";
sha256 = "0apjjlfdwljqih394ggz2d8m599pyyjrb0b4cfcz83601b7hk3x6";
} {
name = "tokyo-night";
publisher = "enkia";
version = "0.8.4";
sha256 = "15ab2k0xs8kvws8zq0irch4cvq1dc0zr3xynj0qn78zzbgwq92c7";
} {
name = "vscode-pull-request-github";
publisher = "GitHub";
version = "0.35.2022012009";
sha256 = "0rbky4cy6r0nw32pqfjj854nj9kf3f5dc6v38mf4wvzmxd5nb6bj";
} {
name = "vscode-env";
publisher = "IronGeek";
version = "0.1.0";
sha256 = "1ygfx1p38dqpk032n3x0591i274a63axh992gn6z1d45ag9bs6ji";
} {
name = "plantuml";
publisher = "jebbs";
version = "2.17.2";
sha256 = "0yxnfq34g563w96dwfirqscjfclhzr48yb9cwfjjf0c0l638x9vv";
} {
name = "codeacejumper";
publisher = "lucax88x";
version = "3.3.2";
sha256 = "02a5f0lg0rmrjjf52z30mk19ii71pcdxjmbcb4v6haw1pkm6anqn";
} {
name = "flutter-tree";
publisher = "marcelovelasquez";
version = "1.0.0";
sha256 = "08glv02b5d5f4jfdfddg62jvdzscinl2jhsb7gpz36rxrbp0f17s";
} {
name = "git-graph";
publisher = "mhutchie";
version = "1.30.0";
sha256 = "000zhgzijf3h6abhv4p3cz99ykj6489wfn81j0s691prr8q9lxxh";
} {
name = "remote-ssh";
publisher = "ms-vscode-remote";
version = "0.71.2021121615";
sha256 = "1lh08157z7lialb0dxls9fhahmf5l9wz6x2anwrnycvs512lpr1p";
} {
name = "awesome-flutter-snippets";
publisher = "Nash";
version = "3.0.2";
sha256 = "009z6k719w0sypzsk53wiard3j3d8bq9b0g9s82vw3wc4jvkc3hr";
} {
name = "color-highlight";
publisher = "naumovs";
version = "2.5.0";
sha256 = "0ri1rylg0r9r1kdc67815gjlq5fwnb26xpyziva6a40brrbh70vm";
} {
name = "material-icon-theme";
publisher = "PKief";
version = "4.11.0";
sha256 = "1l2s8j645riqjmj09i3v71s8ycin5vd6brdp35z472fnk6wyi1y6";
} {
name = "gruvbox-material";
publisher = "sainnhe";
version = "6.5.0";
sha256 = "1r9kgwrh6jjp8i6aa07prhrb398d5isf9ics4wmdbvd6k0gnzf8n";
} }
]; ];
userSettings = { userSettings = {
@ -171,6 +190,8 @@ in
"git-graph.repository.sign.commits" = true; "git-graph.repository.sign.commits" = true;
"git-graph.repository.sign.tags" = true; "git-graph.repository.sign.tags" = true;
"remote.SSH.configFile" = "/home/alukard/.ssh/remote_config"; "remote.SSH.configFile" = "/home/alukard/.ssh/remote_config";
"editor.bracketPairColorization.enabled" = true;
"editor.guides.bracketPairs" = "active";
}; };
}; };

View File

@ -4,10 +4,12 @@
binaryCaches = [ binaryCaches = [
"https://cache.nixos.org" "https://cache.nixos.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
]; ];
binaryCachePublicKeys = [ binaryCachePublicKeys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
]; ];
registry.self.flake = inputs.self; registry.self.flake = inputs.self;

View File

@ -13,6 +13,7 @@ in
with lib; { with lib; {
nixpkgs.overlays = [ nixpkgs.overlays = [
inputs.nixpkgs-wayland.overlay inputs.nixpkgs-wayland.overlay
inputs.nix-alien.overlay
(self: super: (self: super:
rec { rec {
inherit inputs; inherit inputs;
@ -20,7 +21,7 @@ with lib; {
android-emulator = self.callPackage ./packages/android-emulator.nix { }; android-emulator = self.callPackage ./packages/android-emulator.nix { };
bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { }; bibata-cursors = pkgs.callPackage ./packages/bibata-cursors.nix { };
ceserver = pkgs.callPackage ./packages/ceserver.nix { }; ceserver = pkgs.callPackage ./packages/ceserver.nix { };
i3lock-fancy-rapid = pkgs.callPackage ./packages/i3lock-fancy-rapid.nix { }; gamescope = pkgs.callPackage ./packages/gamescope.nix { };
ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { }; ibm-plex-powerline = pkgs.callPackage ./packages/ibm-plex-powerline.nix { };
mpris-ctl = pkgs.callPackage ./packages/mpris-ctl.nix { }; mpris-ctl = pkgs.callPackage ./packages/mpris-ctl.nix { };
multimc = pkgs.qt5.callPackage ./packages/multimc.nix { multimc-repo = inputs.multimc-cracked; }; multimc = pkgs.qt5.callPackage ./packages/multimc.nix { multimc-repo = inputs.multimc-cracked; };
@ -42,8 +43,8 @@ with lib; {
src = super.fetchFromGitHub { src = super.fetchFromGitHub {
owner = "digint"; owner = "digint";
repo = "btrbk"; repo = "btrbk";
rev = "cb38b7efa411f08fd3d7a65e19a8cef385eda0b8"; rev = "c5273a8745fa60fc52b3180fa210ec3048e6a419";
sha256 = "sha256-426bjK7EDq5LHb3vNS8XYnAuA6TUKXNOVrjGMR70bio="; sha256 = "sha256-Q5KIndnXtTJmqVjmuucutWPggLey7ceT9sqeEInC8vw=";
}; };
preFixup = '' preFixup = ''
wrapProgram $out/bin/btrbk \ wrapProgram $out/bin/btrbk \

View File

@ -0,0 +1,81 @@
{ lib, stdenv, fetchFromGitHub, meson, pkgconfig, libdrm, xorg
, wayland, wayland-protocols, libxkbcommon, libcap
, SDL2, mesa, libinput, pixman, xcbutilerrors, xcbutilwm, glslang
, ninja, makeWrapper, xwayland, libuuid, xcbutilrenderutil
, pipewire, stb, writeText, wlroots, vulkan-loader, vulkan-headers, libkrb5 }:
let
stbpc = writeText "stbpc" ''
prefix=${stb}
includedir=''${prefix}/include/stb
Cflags: -I''${includedir}
Name: stb
Version: ${stb.version}
Description: stb
'';
stb_ = stb.overrideAttrs (oldAttrs: rec {
installPhase = ''
${oldAttrs.installPhase}
install -Dm644 ${stbpc} $out/lib/pkgconfig/stb.pc
'';
});
vulkan-headers_ = vulkan-headers.overrideAttrs (oldAttrs: rec {
version = "1.2.189.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Headers";
rev = "sdk-${version}";
sha256 = "1qggc7dv9jr83xr9w2h375wl3pz3rfgrk9hnrjmylkg9gz4p9q03";
};
});
vulkan-loader_ = (vulkan-loader.overrideAttrs (oldAttrs: rec {
version = "1.2.189.1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Loader";
rev = "sdk-${version}";
sha256 = "1745fdzi0n5qj2s41q6z1y52cq8pwswvh1a32d3n7kl6bhksagp6";
};
})).override { vulkan-headers = vulkan-headers_; };
in stdenv.mkDerivation rec {
pname = "gamescope";
version = "3.9.1";
src = fetchFromGitHub {
owner = "Plagman";
repo = "gamescope";
rev = version;
sha256 = "05a1sj1fl9wpb9jys515m96958cxmgim8i7zc5mn44rjijkfbfcb";
fetchSubmodules = true;
};
preConfigure = ''
substituteInPlace meson.build \
--replace "'examples=false'" "'examples=false', 'logind-provider=systemd', 'libseat=disabled'"
'';
postInstall = ''
wrapProgram $out/bin/gamescope \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libkrb5 ]}" \
--prefix PATH : "${lib.makeBinPath [ xwayland ]}"
'';
buildInputs = with xorg; [
libX11 libXdamage libXcomposite libXrender libXext libXxf86vm
libXtst libdrm vulkan-loader_ wayland wayland-protocols
libxkbcommon libcap SDL2 mesa libinput pixman xcbutilerrors
xcbutilwm libXi libXres libuuid xcbutilrenderutil xwayland
pipewire wlroots libkrb5
];
nativeBuildInputs = [ meson pkgconfig glslang ninja makeWrapper stb_ ];
meta = with lib; {
description = "The micro-compositor formerly known as steamcompmgr";
license = licenses.bsd2;
homepage = src.meta.homepage;
platforms = platforms.linux;
maintainers = with maintainers; [ ];
};
}

View File

@ -1,25 +0,0 @@
{ stdenv, fetchFromGitHub, i3lock, xorg, inputs, pkgs }:
stdenv.mkDerivation rec {
name = "i3lock-fancy-rapid";
src = inputs.i3lock-fancy-rapid;
# src = fetchFromGitHub {
# owner = "yvbbrjdr";
# repo = "i3lock-fancy-rapid";
# rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
# sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
# };
buildInputs = [ i3lock xorg.libX11 ];
installPhase = ''
mkdir -p $out/bin
cp i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
'';
meta = with pkgs.lib; {
description = "A faster implementation of i3lock-fancy. It is blazing fast and provides a fully configurable box blur. It uses linear-time box blur and accelerates using OpenMP.";
homepage = https://github.com/yvbbrjdr/i3lock-fancy-rapid;
maintainers = with maintainers; [ ];
license = licenses.bsd3;
platforms = platforms.linux;
};
}

View File

@ -3,11 +3,11 @@
let let
yt-mpv = pkgs.writeShellScriptBin "yt-mpv" '' yt-mpv = pkgs.writeShellScriptBin "yt-mpv" ''
if [[ "$1" != "--no-video" ]]; then if [[ "$1" != "--no-video" ]]; then
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
${pkgs.mpv}/bin/mpv --fs "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.mpv}/bin/mpv --fs "$(${pkgs.wl-clipboard}/bin/wl-paste)"
else else
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(${pkgs.xclip}/bin/xclip -o)" ${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(${pkgs.wl-clipboard}/bin/wl-paste)"
${term} -e ${pkgs.mpv}/bin/mpv --no-video "$(${pkgs.xclip}/bin/xclip -o)" ${term} -e ${pkgs.mpv}/bin/mpv --no-video "$(${pkgs.wl-clipboard}/bin/wl-paste)"
fi fi
''; '';
in in

View File

@ -28,12 +28,6 @@ with config.deviceSpecific; {
interval = "weekly"; interval = "weekly";
}; };
services.redshift = {
enable = true;
temperature.day = 6500;
temperature.night = 3000;
};
services.thermald.enable = isLaptop; services.thermald.enable = isLaptop;
services.tlp = { services.tlp = {
@ -69,6 +63,14 @@ with config.deviceSpecific; {
home-manager.users.alukard.services.udiskie.enable = true; home-manager.users.alukard.services.udiskie.enable = true;
home-manager.users.alukard.services.gammastep = {
enable = true;
latitude = 48.79;
longitude = 44.78;
temperature.day = 6500;
temperature.night = 3000;
};
services.upower.enable = true; services.upower.enable = true;
systemd.services.systemd-udev-settle.enable = false; systemd.services.systemd-udev-settle.enable = false;

View File

@ -1,51 +0,0 @@
{ config, lib, pkgs, inputs, ... }: {
home-manager.users.alukard = rec {
imports = [ inputs.android-nixpkgs.hmModule ];
android-sdk = {
enable = true;
path = "${config.home-manager.users.alukard.home.homeDirectory}/.android/sdk";
packages = sdk: with sdk; [
build-tools-31-0-0
build-tools-29-0-2
cmdline-tools-latest
patcher-v4
platform-tools
platforms-android-30
emulator
system-images-android-30-google-apis-x86-64
];
};
home.sessionVariables = {
ANDROID_HOME = android-sdk.path;
ANDROID_SDK_ROOT = android-sdk.path;
JAVA_HOME = pkgs.jdk11.home;
};
home.packages = let
android-emulator = pkgs.android-emulator.override {
name = "flutter-emulator";
avdHomeDir = config.home-manager.users.alukard.home.homeDirectory;
sdk = android-sdk.path;
platformVersion = "30";
systemImageType = "google_apis";
abiVersion = "x86_64";
deviceType = "pixel";
# enableGPU = true;
};
in [
pkgs.flutter
android-emulator
# jdk11
];
};
environment.sessionVariables = {
ANDROID_HOME = config.home-manager.users.alukard.android-sdk.path;
ANDROID_SDK_ROOT = config.home-manager.users.alukard.android-sdk.path;
JAVA_HOME = pkgs.jdk11.home;
};
}

View File

@ -1,51 +0,0 @@
{ pkgs, config, lib, ... }:
let
thm = config.lib.base16.theme;
in {
home-manager.users.alukard = {
services.dunst = {
enable = true;
iconTheme = {
name = "${thm.iconTheme}";
package = thm.iconPackage;
};
settings = {
global = {
geometry = "500x5-30+50";
transparency = 10;
frame_color = "#${thm.base05-hex}";
separator_color = "#${thm.base05-hex}";
font = "${thm.fonts.main.family} ${thm.fontSizes.normal.str}";
padding = 15;
horizontal_padding = 17;
word_wrap = true;
follow = "keyboard";
format = ''
%s %p %I
%b'';
markup = "full";
};
urgency_low = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base05-hex}";
timeout = 8;
};
urgency_normal = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base08-hex}";
timeout = 12;
};
urgency_critical = {
background = "#${thm.base01-hex}";
foreground = "#${thm.base0D-hex}";
timeout = 20;
};
};
};
xsession.windowManager.i3.config.startup =
[{ command = "${pkgs.dunst}/bin/dunst"; }];
};
}

View File

@ -33,7 +33,7 @@ in {
]; ];
gtk.iconCache.enable = true; gtk.iconCache.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
services.dbus.packages = with pkgs; [ gnome3.dconf gcr ]; services.dbus.packages = with pkgs; [ dconf gcr ];
home-manager.users.alukard = { home-manager.users.alukard = {
gtk = { gtk = {
enable = true; enable = true;

View File

@ -1,194 +0,0 @@
{ pkgs, config, lib, ... }:
let
thm = config.lib.base16.theme;
apps = config.defaultApplications;
# lock = pkgs.writeShellScript "lock" "sudo /run/current-system/sw/bin/lock";
in {
environment.sessionVariables._JAVA_AWT_WM_NONREPARENTING = "1";
home-manager.users.alukard.xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
config = rec {
assigns = {
"" = [
{ class = "spotify"; }
{ title = "spt"; }
];
"" = [
{ class = "^Telegram"; }
];
};
fonts = {
names = [ "${thm.fonts.main.family}" ];
style = "Regular";
size = thm.fontSizes.micro.float;
};
bars = [ ];
colors = rec {
background = "#${thm.base00-hex}";
unfocused = {
text = "#${thm.base02-hex}";
border = "#${thm.base01-hex}";
background = "#${thm.base00-hex}";
childBorder = "#${thm.base01-hex}";
indicator = "#${thm.base07-hex}";
};
focusedInactive = unfocused;
urgent = unfocused // {
text = "#${thm.base05-hex}";
border = "#${thm.base09-hex}";
childBorder = "#${thm.base09-hex}";
};
focused = unfocused // {
childBorder = "#${thm.base03-hex}";
border = "#${thm.base03-hex}";
background = "#${thm.base01-hex}";
text = "#${thm.base05-hex}";
};
};
gaps = {
inner = 6;
smartGaps = true;
smartBorders = "on";
};
focus.mouseWarping = false;
focus.followMouse = false;
modifier = "Mod4";
window = {
border = 1;
titlebar = false;
hideEdgeBorders = "smart";
commands = [
{
command = "border pixel 2px";
criteria = { window_role = "popup"; };
}
{
command = "move to workspace ";
criteria = { class = "Spotify"; };
}
{
command = "floating enable";
criteria = { instance = "origin.exe"; };
}
];
};
startup = lib.mkIf (!config.deviceSpecific.isISO) (map (command: { inherit command; }) config.startupApplications);
keybindings = let
script = name: content: "exec ${pkgs.writeScript name content}";
workspaces = (builtins.genList (x: [ (toString x) (toString x) ]) 10)
++ [ [ "c" "" ] [ "t" "" ] ];
in ({
"${modifier}+q" = "kill";
"${modifier}+Shift+q" = "move container to workspace temp; [workspace=__focused__] kill; workspace temp; move container to workspace temp; workspace temp";
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
"${modifier}+Return" = "exec ${apps.term.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd}";
"${modifier}+o" = "layout toggle all";
"${modifier}+Left" = "focus child; focus left";
"${modifier}+Right" = "focus child; focus right";
"${modifier}+Up" = "focus child; focus up";
"${modifier}+Down" = "focus child; focus down";
"${modifier}+Control+Left" = "focus parent; focus left";
"${modifier}+Control+Right" = "focus parent; focus right";
"${modifier}+Control+Up" = "focus parent; focus up";
"${modifier}+Control+Down" = "focus parent; focus down";
"${modifier}+Shift+Up" = "move up";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Right" = "move right";
"${modifier}+Shift+Left" = "move left";
"${modifier}+bracketleft" = "workspace prev";
"${modifier}+bracketright" = "workspace next";
"${modifier}+f" = "fullscreen toggle";
"${modifier}+r" = "mode resize";
"${modifier}+Shift+f" = "floating toggle";
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
"${modifier}+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"${modifier}+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"${modifier}+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"${modifier}+m" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"${modifier}+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"${modifier}+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"${modifier}+Shift+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"${modifier}+Shift+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"${modifier}+i" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
"${modifier}+d" = "exec ${apps.fm.cmd}";
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
"${modifier}+Shift+l" = "exec ${pkgs.i3lock-fancy-rapid}/bin/i3lock-fancy-rapid 8 3";
"${modifier}+Print" = script "screenshot"
"${pkgs.maim}/bin/maim ~/Pictures/$(date +%s).png";
"${modifier}+Control+Print" = script "screenshot-copy"
"${pkgs.maim}/bin/maim | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png";
"--release ${modifier}+Shift+Print" = script "screenshot-area"
"${pkgs.maim}/bin/maim -s ~/Pictures/$(date +%s).png";
"--release ${modifier}+Control+Shift+Print" = script "screenshot-area-copy"
"${pkgs.maim}/bin/maim -s | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png";
"${modifier}+x" = "move workspace to output right";
"${modifier}+F5" = "reload";
"${modifier}+Shift+F5" = "exit";
"${modifier}+Shift+h" = "layout splith";
"${modifier}+Shift+v" = "layout splitv";
"${modifier}+h" = "split h";
"${modifier}+v" = "split v";
"${modifier}+F1" = "move to scratchpad";
"${modifier}+F2" = "scratchpad show";
"${modifier}+F12" = "exec xset dpms force off";
"XF86AudioPlay" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"XF86AudioNext" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"XF86AudioPrev" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"Shift+XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"Shift+XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"--release button2" = "kill";
"--whole-window ${modifier}+button2" = "kill";
} // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+${builtins.elemAt x 0}";
value = "workspace ${builtins.elemAt x 1}";
}) workspaces) // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+Shift+${builtins.elemAt x 0}";
value = "move container to workspace ${builtins.elemAt x 1}";
}) workspaces)
);
workspaceLayout = "tabbed";
};
extraConfig = ''
default_border pixel 1
hide_edge_borders smart
# Set colors
set $base00 #${thm.base00-hex}
set $base01 #${thm.base01-hex}
set $base02 #${thm.base02-hex}
set $base03 #${thm.base03-hex}
set $base04 #${thm.base04-hex}
set $base05 #${thm.base05-hex}
set $base06 #${thm.base06-hex}
set $base07 #${thm.base07-hex}
set $base08 #${thm.base08-hex}
set $base09 #${thm.base09-hex}
set $base0A #${thm.base0A-hex}
set $base0B #${thm.base0B-hex}
set $base0C #${thm.base0C-hex}
set $base0D #${thm.base0D-hex}
set $base0E #${thm.base0E-hex}
set $base0F #${thm.base0F-hex}
'';
};
}

View File

@ -4,16 +4,17 @@ let
thm = config.lib.base16.theme; thm = config.lib.base16.theme;
in { in {
home-manager.users.alukard = { home-manager.users.alukard = {
xsession.windowManager.i3.config.bars = [{ # xsession.windowManager.i3.config.bars = [{
wayland.windowManager.sway.config.bars = [{
id = "default"; id = "default";
position = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-top.toml";
workspaceNumbers = false;
fonts = { fonts = {
names = [ "${thm.fonts.powerline.family}" "${thm.fonts.icon.family}" "${thm.fonts.iconFallback.family}" ]; names = [ "${thm.fonts.powerline.family}" "${thm.fonts.icon.family}" "${thm.fonts.iconFallback.family}" ];
style = "Regular"; style = "Regular";
size = thm.fontSizes.micro.float; size = thm.fontSizes.micro.float;
}; };
position = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs";
workspaceNumbers = false;
colors = let colors = let
default = { default = {
background = "#${thm.base00-hex}"; background = "#${thm.base00-hex}";
@ -29,143 +30,101 @@ in {
urgentWorkspace = default // { text = "#${thm.base09-hex}"; }; urgentWorkspace = default // { text = "#${thm.base09-hex}"; };
bindingMode = default // { text = "#${thm.base0A-hex}"; }; bindingMode = default // { text = "#${thm.base0A-hex}"; };
}; };
}]; }];
xdg.configFile."i3status-rust/config.toml".text = lib.concatStrings ['' programs.i3status-rust = {
enable = true;
[theme] bars.top = {
name = "solarized-dark" settings = {
[theme.overrides] theme = {
idle_bg = "#${thm.base00-hex}" name = "solarized-dark";
idle_fg = "#${thm.base05-hex}" overrides = {
info_bg = "#${thm.base0C-hex}" idle_bg = "#${thm.base00-hex}";
info_fg = "#${thm.base00-hex}" idle_fg = "#${thm.base05-hex}";
good_bg = "#${thm.base0B-hex}" info_bg = "#${thm.base0C-hex}";
good_fg = "#${thm.base00-hex}" info_fg = "#${thm.base00-hex}";
warning_bg = "#${thm.base0A-hex}" good_bg = "#${thm.base0B-hex}";
warning_fg = "#${thm.base00-hex}" good_fg = "#${thm.base00-hex}";
critical_bg = "#${thm.base08-hex}" warning_bg = "#${thm.base0A-hex}";
critical_fg = "#${thm.base00-hex}" warning_fg = "#${thm.base00-hex}";
critical_bg = "#${thm.base08-hex}";
critical_fg = "#${thm.base00-hex}";
# Material Icons Cheatsheet [https://shanfan.github.io/material-icons-cheatsheet/] };
# Font Awesome Cheatsheet [https://fontawesome.com/icons?d=gallery&m=free] };
[icons] icons = {
name = "awesome5" name = "awesome5";
[icons.overrides] overrides = {
backlight_empty = " 🌑 " backlight_empty = " 🌑 ";
backlight_full = " 🌕 " backlight_full = " 🌕 ";
backlight_partial1 = " 🌘 " backlight_partial1 = " 🌘 ";
backlight_partial2 = " 🌗 " backlight_partial2 = " 🌗 ";
backlight_partial3 = " 🌖 " backlight_partial3 = " 🌖 ";
# bat_charging = "" cpu = "";
# bat_discharging = "" net_wired = "";
# bat_full = "" net_wireless = "";
# bat = "" };
# cogs = "" };
cpu = "" };
# gpu = "" blocks = [
# mail = "" {
memory_mem = "" block = "net";
memory_swap = "" device = if config.device == "Dell-Laptop" then
music_next = "" "wlo1"
music_pause = "" else if config.device == "AMD-Workstation" then
music_play = "" "enp9s0"
music_prev = "" else "";
music = "" }
net_down = "" ] ++ lib.optionals config.deviceSpecific.isLaptop [
net_up = "" {
### net_up = "" block = "battery";
net_wired = "" interval = 10;
net_wireless = "" format = "{percentage} {time}";
### net_wired = "" }
### net_wireless = "" {
# ping = "" block = "backlight";
# thermometer = "" }
# time = "" ] ++ [
# toggle_off = "" {
# toggle_on = "" block = "custom";
# update = "" command = "${scripts.weather}";
# uptime = "" interval = 600;
volume_empty = "" }
volume_full = "" {
volume_half = "" block = "sound";
volume_muted = "" driver = "auto";
# weather_clouds = "" }
# weather_default = "" {
# weather_rain = "" block = "temperature";
# weather_snow = "" # collapsed = false;
# weather_sun = "" chip = if config.device == "Dell-Laptop" then
# weather_thunder = "" "*-isa-*"
# xrandr = "" else if config.device == "AMD-Workstation" then
"*-pci-*"
# [[block]] else "*-pci-*";
# block = "music" }
# buttons = ["play", "next"] {
block = "cpu";
[[block]] interval = 1;
block = "net" format = "{utilization} {frequency}";
'' }
(if config.device == "Dell-Laptop" then '' {
device = "wlo1" block = "custom";
'' else "") command = "${scripts.df}";
(if config.device == "AMD-Workstation" then '' interval = 60;
device = "enp9s0" }
'' else "") {
(if config.deviceSpecific.isLaptop then '' block = "memory";
[[block]] display_type = "memory";
block = "battery" format_mem = "{mem_avail;G}";
interval = 10 format_swap = "{swap_free;G}";
format = "{percentage} {time}" }
{
[[block]] block = "time";
block = "backlight" interval = 1;
'' else "") format = "%a %Y/%m/%d %T";
'' }
[[block]] ];
block = "custom" };
command = "${scripts.weather}" };
interval = 600
[[block]]
block = "sound"
driver = "auto"
''
(if config.device == "Dell-Laptop" then ''
[[block]]
block = "custom"
command = "${scripts.cputemp}"
interval = 5
'' else "")
''
[[block]]
block = "cpu"
interval = 1
format = "{utilization} {frequency}"
[[block]]
block = "memory"
display_type = "memory"
format_mem = "{mem_avail;G}"
format_swap = "{swap_free;G}"
[[block]]
block = "custom"
command = "${scripts.df}"
interval = 60
[[block]]
block = "custom"
command = "${scripts.vpn-status}"
interval = 60
[[block]]
block = "time"
interval = 1
format = "%a %Y/%m/%d %T"
''];
}; };
} }

View File

@ -1,6 +1,5 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
with config.lib.base16.theme; { with config.lib.base16.theme; {
xdg.portal.enable = true;
services.dbus.packages = services.dbus.packages =
[ pkgs.systemd iconPackage ]; [ pkgs.systemd iconPackage ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ]; services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];

View File

@ -15,8 +15,8 @@ with config.deviceSpecific; {
location = lib.mkIf (!isServer) { location = lib.mkIf (!isServer) {
provider = "manual"; provider = "manual";
latitude = 48.78583; latitude = 48.79;
longitude = 44.77973; longitude = 44.78;
}; };
home-manager.users.alukard = { home-manager.users.alukard = {

View File

@ -0,0 +1,30 @@
{ pkgs, config, ... }: {
home-manager.users.alukard = {
systemd.user.services.mako = {
Service = {
ExecStart = "${pkgs.mako}/bin/mako";
};
Install = {
WantedBy = [ "sway-session.target" ];
};
Unit = {
After = [ "sway-session.target" ];
};
};
programs.mako = with config.lib.base16; {
enable = true;
layer = "overlay";
font = "${theme.fonts.mono.family} ${theme.fontSizes.normal.str}";
width = 500;
height = 80;
defaultTimeout = 10000;
maxVisible = 10;
backgroundColor = "#${theme.base00-hex}AA";
textColor = "#${theme.base05-hex}";
borderColor = "#${theme.base0D-hex}AA";
progressColor = "over #${theme.base0B-hex}";
iconPath = "${theme.iconPackage}/share/icons/${theme.iconTheme}";
maxIconSize = 24;
};
};
}

View File

@ -0,0 +1,304 @@
{ pkgs, lib, config, ... }:
let
thm = config.lib.base16.theme;
apps = config.defaultApplications;
# lock_fork =
# pkgs.writeShellScript "lock_fork" "sudo /run/current-system/sw/bin/lock &";
# lock = pkgs.writeShellScript "lock"
# "swaymsg 'output * dpms off'; sudo /run/current-system/sw/bin/lock; swaymsg 'output * dpms on'";
in {
programs.sway.enable = true;
programs.sway.wrapperFeatures.gtk = true;
programs.sway.extraPackages = lib.mkForce (with pkgs; [
swayidle
swaylock-effects
xwayland
wl-clipboard
libsForQt5.qt5.qtwayland
gsettings_desktop_schemas
]);
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk ];
gtkUsePortal = true;
};
users.users.alukard.extraGroups = [ "sway" ];
environment.loginShellInit = lib.mkAfter ''
[[ "$(tty)" == /dev/tty1 ]] && {
pass unlock
exec sway 2> /tmp/sway.debug.log
}
'';
home-manager.users.alukard.wayland.windowManager.sway = let
gsettings = "${pkgs.glib}/bin/gsettings";
gnomeSchema = "org.gnome.desktop.interface";
importGsettings = pkgs.writeShellScript "import_gsettings.sh" ''
config="/home/alukard/.config/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
${gsettings} set ${gnomeSchema} gtk-theme "$gtk_theme"
${gsettings} set ${gnomeSchema} icon-theme "$icon_theme"
${gsettings} set ${gnomeSchema} cursor-theme "$cursor_theme"
${gsettings} set ${gnomeSchema} font-name "$font_name"
'';
in {
enable = true;
config = rec {
assigns = {
# "" = [
# { class = "Chromium"; }
# { app_id = "firefox"; }
# { class = "Firefox"; }
# ];
"" = [
{ class = "spotify"; }
{ title = "spt"; }
];
"" = [
{ class = "^Telegram"; }
];
};
fonts = {
names = [ "${thm.fonts.main.family}" ];
style = "Regular";
size = thm.fontSizes.micro.float;
};
bars = [ ];
colors = rec {
background = "#${thm.base00-hex}";
unfocused = {
text = "#${thm.base02-hex}";
border = "#${thm.base01-hex}";
background = "#${thm.base00-hex}";
childBorder = "#${thm.base01-hex}";
indicator = "#${thm.base07-hex}";
};
focusedInactive = unfocused;
urgent = unfocused // {
text = "#${thm.base05-hex}";
border = "#${thm.base09-hex}";
childBorder = "#${thm.base09-hex}";
};
focused = unfocused // {
childBorder = "#${thm.base03-hex}";
border = "#${thm.base03-hex}";
background = "#${thm.base01-hex}";
text = "#${thm.base05-hex}";
};
};
gaps = {
inner = 15;
smartGaps = true;
smartBorders = "on";
};
focus.followMouse = false;
focus.forceWrapping = false;
modifier = "Mod4";
window = {
border = 0;
titlebar = false;
commands = [
{
command = "border pixel 2px";
criteria = { window_role = "popup"; };
}
{
command = "sticky enable";
criteria = { floating = ""; };
}
{
command = "move to workspace ";
criteria = { class = "Spotify"; };
}
{
command = "floating enable";
criteria = { instance = "origin.exe"; };
}
];
};
startup = (map (command: { inherit command; }) config.startupApplications)
++ [
{ command = "${importGsettings}"; always = true; }
{
always = true;
command = ''
swayidle -w timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' '';
}
# {
# command =
# "swayidle -w before-sleep '${lock_fork}' lock '${lock_fork}' unlock 'pkill -9 swaylock'";
# }
];
keybindings = let
script = name: content: "exec ${pkgs.writeScript name content}";
workspaces = (builtins.genList (x: [ (toString x) (toString x) ]) 10)
++ [ [ "c" "" ] [ "t" "" ] ];
in ({
"${modifier}+q" = "kill";
"${modifier}+Shift+q" =
"move container to workspace temp; [workspace=__focused__] kill; workspace temp; move container to workspace temp; workspace temp";
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
"${modifier}+Return" = "exec ${apps.term.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd}";
"${modifier}+o" = "layout toggle all";
"${modifier}+Left" = "focus child; focus left";
"${modifier}+Right" = "focus child; focus right";
"${modifier}+Up" = "focus child; focus up";
"${modifier}+Down" = "focus child; focus down";
"${modifier}+Control+Left" = "focus parent; focus left";
"${modifier}+Control+Right" = "focus parent; focus right";
"${modifier}+Control+Up" = "focus parent; focus up";
"${modifier}+Control+Down" = "focus parent; focus down";
"${modifier}+Shift+Up" = "move up";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Right" = "move right";
"${modifier}+Shift+Left" = "move left";
"${modifier}+bracketleft" = "workspace prev";
"${modifier}+bracketright" = "workspace next";
# "${modifier}+a" = "focus child; focus left";
# "${modifier}+d" = "focus child; focus right";
# "${modifier}+w" = "focus child; focus up";
# "${modifier}+s" = "focus child; focus down";
# "${modifier}+Control+a" = "focus parent; focus left";
# "${modifier}+Control+d" = "focus parent; focus right";
# "${modifier}+Control+w" = "focus parent; focus up";
# "${modifier}+Control+s" = "focus parent; focus down";
# "${modifier}+Shift+w" = "move up";
# "${modifier}+Shift+s" = "move down";
# "${modifier}+Shift+d" = "move right";
# "${modifier}+Shift+a" = "move left";
"${modifier}+f" = "fullscreen toggle; floating toggle";
"${modifier}+r" = "mode resize";
"${modifier}+Shift+f" = "floating toggle";
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
"${modifier}+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"${modifier}+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"${modifier}+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"${modifier}+Shift+j" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify prev";
"${modifier}+Shift+k" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify pp";
"${modifier}+Shift+l" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl --player Spotify next";
"${modifier}+m" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"${modifier}+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"${modifier}+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"${modifier}+Shift+comma" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"${modifier}+Shift+period" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"${modifier}+i" = "exec ${pkgs.pavucontrol}/bin/pavucontrol";
"${modifier}+d" = "exec ${apps.fm.cmd}";
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
"${modifier}+Print" = script "screenshot"
"${pkgs.grim}/bin/grim Pictures/$(date +'%Y-%m-%d+%H:%M:%S').png";
"${modifier}+Control+Print" = script "screenshot-copy"
"${pkgs.grim}/bin/grim - | ${pkgs.wl-clipboard}/bin/wl-copy";
"--release ${modifier}+Shift+Print" = script "screenshot-area" ''
${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" Pictures/$(date +'%Y-%m-%d+%H:%M:%S').png'';
"--release ${modifier}+Control+Shift+Print" =
script "screenshot-area-copy" ''
${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.wl-clipboard}/bin/wl-copy'';
"${modifier}+x" = "focus output right";
"${modifier}+Shift+x" = "move workspace to output right";
"${modifier}+F5" = "reload";
"${modifier}+Shift+F5" = "exit";
"${modifier}+Shift+h" = "layout splith";
"${modifier}+Shift+v" = "layout splitv";
"${modifier}+h" = "split h";
"${modifier}+v" = "split v";
"${modifier}+F1" = "move to scratchpad";
"${modifier}+F2" = "scratchpad show";
"${modifier}+F11" = "output * dpms off";
"${modifier}+F12" = "output * dpms on";
# "${modifier}+End" = "exec ${lock}";
"${modifier}+p" = "sticky toggle";
"${modifier}+backslash" =
script "0x0" ''wl-paste | curl -F"file=@-" https://0x0.st | wl-copy'';
"${modifier}+b" = "focus mode_toggle";
"XF86AudioPlay" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl pp";
"XF86AudioNext" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl next";
"XF86AudioPrev" = "exec ${pkgs.mpris-ctl}/bin/mpris-ctl prev";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
"Shift+XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 2";
"Shift+XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 2";
"button2" = "kill";
"--whole-window ${modifier}+button2" = "kill";
} // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+${builtins.elemAt x 0}";
value = "workspace ${builtins.elemAt x 1}";
}) workspaces) // builtins.listToAttrs (builtins.map (x: {
name = "${modifier}+Shift+${builtins.elemAt x 0}";
value = "move container to workspace ${builtins.elemAt x 1}";
}) workspaces));
keycodebindings = { };
workspaceLayout = "tabbed";
workspaceAutoBackAndForth = true;
input = {
"type:touchpad" = {
accel_profile = "adaptive";
dwt = "enabled";
middle_emulation = "enabled";
natural_scroll = "enabled";
tap = "enabled";
};
"type:mouse" = {
accel_profile = "flat";
natural_scroll = "disabled";
};
"type:keyboard" = {
xkb_layout = "us,ru";
xkb_options = "grp:win_space_toggle";
};
"3468:12:C-Media_USB_Headphone_Set" = {
events = "disabled";
};
};
output = {
"*".bg = "${/. + ../../../misc/wallpaper} fill";
"*".scale = "1";
};
};
wrapperFeatures = { gtk = true; };
xwayland = true;
extraConfig = ''
default_border pixel 1
hide_edge_borders --i3 smart
exec pkill swaynag
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
'';
extraSessionCommands = ''
# export SDL_VIDEODRIVER=wayland
export GDK_BACKEND=wayland
export QT_QPA_PLATFORM=wayland-egl
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export XDG_CURRENT_DESKTOP=sway
export XDG_SESSION_DESKTOP=sway
export XDG_SESSION_TYPE=wayland
export _JAVA_AWT_WM_NONPARENTING=1
export _JAVA_AWT_WM_NONREPARENTING=1
'';
};
}

View File

@ -0,0 +1,10 @@
{ config, pkgs, lib, ... }: {
services.tor = {
enable = true;
client.enable = true;
};
services.privoxy = {
enable = true;
enableTor = true;
};
}

View File

@ -10,7 +10,7 @@
}; };
environment.sessionVariables = { environment.sessionVariables = {
XDG_CURRENT_DESKTOP = "X-Generic"; # XDG_CURRENT_DESKTOP = "X-Generic";
DE = "generic"; DE = "generic";
}; };
} }

View File

@ -43,8 +43,8 @@
shellAliases = { shellAliases = {
"clr" = "clear"; "clr" = "clear";
"weather" = "curl wttr.in/Volzhskiy"; "weather" = "curl wttr.in/Volzhskiy";
"rede" = "systemctl --user start redshift.service &"; "rede" = "systemctl --user start gammastep.service &";
"redd" = "systemctl --user stop redshift.service &"; "redd" = "systemctl --user stop gammastep.service &";
"show-packages" = "_ nix-store -q --references /run/current-system/sw"; "show-packages" = "_ nix-store -q --references /run/current-system/sw";
"nsp" = "nix-shell --run zsh -p"; "nsp" = "nix-shell --run zsh -p";
"grep" = "${pkgs.ripgrep}/bin/rg"; "grep" = "${pkgs.ripgrep}/bin/rg";

View File

@ -4,7 +4,8 @@ let
in in
with config.deviceSpecific; { with config.deviceSpecific; {
services.xserver = { services.xserver = {
enable = true; enable = false;
# enable = true;
# TODO: Disable natural scrolling for external mouse # TODO: Disable natural scrolling for external mouse
libinput = { libinput = {

View File

@ -33,15 +33,16 @@
cursor cursor
direnv direnv
dunst
fonts fonts
gtk gtk
i3
i3status-rust i3status-rust
kde kde
light light
mako
nix-index nix-index
picom picom
print-scan print-scan
tor
sway
]; ];
} }

View File

@ -1,7 +1,5 @@
{ inputs, ... }: { { inputs, ... }: {
imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [ imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [
./desktop.nix ./desktop.nix
flutter
]; ];
} }

View File

@ -0,0 +1,90 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p curl jq unzip
# shellcheck shell=bash
set -eu -o pipefail
# can be added to your configuration with the following command and snippet:
# $ ./pkgs/misc/vscode-extensions/update_installed_exts.sh > extensions.nix
#
# packages = with pkgs;
# (vscode-with-extensions.override {
# vscodeExtensions = map
# (extension: vscode-utils.buildVscodeMarketplaceExtension {
# mktplcRef = {
# inherit (extension) name publisher version sha256;
# };
# })
# (import ./extensions.nix).extensions;
# })
# ]
# Helper to just fail with a message and non-zero exit code.
function fail() {
echo "$1" >&2
exit 1
}
# Helper to clean up after ourselves if we're killed by SIGINT.
function clean_up() {
TDIR="${TMPDIR:-/tmp}"
echo "Script killed, cleaning up tmpdirs: $TDIR/vscode_exts_*" >&2
rm -Rf "$TDIR/vscode_exts_*"
}
function get_vsixpkg() {
N="$1.$2"
# Create a tempdir for the extension download.
EXTTMP=$(mktemp -d -t vscode_exts_XXXXXXXX)
URL="https://$1.gallery.vsassets.io/_apis/public/gallery/publisher/$1/extension/$2/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage"
# Quietly but delicately curl down the file, blowing up at the first sign of trouble.
curl --silent --show-error --fail -X GET -o "$EXTTMP/$N.zip" "$URL"
# Unpack the file we need to stdout then pull out the version
VER=$(jq -r '.version' <(unzip -qc "$EXTTMP/$N.zip" "extension/package.json"))
# Calculate the SHA
SHA=$(nix-hash --flat --base32 --type sha256 "$EXTTMP/$N.zip")
# Clean up.
rm -Rf "$EXTTMP"
# I don't like 'rm -Rf' lurking in my scripts but this seems appropriate.
cat <<-EOF
{
name = "$2";
publisher = "$1";
version = "$VER";
sha256 = "$SHA";
}
EOF
}
# See if we can find our `code` binary somewhere.
if [ $# -ne 0 ]; then
CODE=$1
else
CODE=$(command -v code || command -v codium)
fi
if [ -z "$CODE" ]; then
# Not much point continuing.
fail "VSCode executable not found"
fi
# Try to be a good citizen and clean up after ourselves if we're killed.
trap clean_up SIGINT
# Begin the printing of the nix expression that will house the list of extensions.
printf '{ extensions = [\n'
# Note that we are only looking to update extensions that are already installed.
for i in $($CODE --list-extensions)
do
OWNER=$(echo "$i" | cut -d. -f1)
EXT=$(echo "$i" | cut -d. -f2)
get_vsixpkg "$OWNER" "$EXT"
done
# Close off the nix expression.
printf '];\n}'